Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
6c0ada2
spec(refactor-plugins): add requirements
tzachbon Jan 29, 2026
80b4264
Merge remote-tracking branch 'origin/main' into feat/refactor-plugins
tzachbon Jan 29, 2026
15ad484
spec(refactor-plugins): add technical design
tzachbon Jan 29, 2026
9471f92
spec(refactor-plugins): add implementation tasks
tzachbon Jan 30, 2026
d8cf596
feat(ralph-specum): add color and examples to all agents
tzachbon Jan 30, 2026
c7ca6d4
feat(ralph-speckit): add color and examples to all agents
tzachbon Jan 30, 2026
68538ab
feat(ralph-specum): add version to all skills
tzachbon Jan 30, 2026
e32d256
feat(ralph-speckit): add version and fix descriptions for all skills
tzachbon Jan 30, 2026
8301b94
feat(plugins): add matcher field to all hook entries
tzachbon Jan 30, 2026
34bd45b
feat(ralph-speckit): add name field to modern commands
tzachbon Jan 30, 2026
0f617ad
feat(ralph-speckit): migrate legacy commands to commands/
tzachbon Jan 30, 2026
e0985b7
chore(ralph-speckit): remove legacy commands directory
tzachbon Jan 30, 2026
c504a91
feat(scripts): add plugin compliance validation script
tzachbon Jan 30, 2026
296708d
docs: add plugin best practices reference to CLAUDE.md
tzachbon Jan 30, 2026
7acb925
feat(ralph-specum): add failure-recovery skill
tzachbon Jan 30, 2026
dc9b402
feat(ralph-specum): add verification-layers skill
tzachbon Jan 30, 2026
0ee8ba5
feat(ralph-specum): add coordinator-pattern skill
tzachbon Jan 30, 2026
077b35e
feat(ralph-specum): add branch-management skill
tzachbon Jan 30, 2026
b0c92f0
feat(ralph-specum): add intent-classification skill
tzachbon Jan 30, 2026
4c29217
feat(ralph-specum): add spec-scanner skill
tzachbon Jan 30, 2026
08d35a9
feat(ralph-specum): add parallel-research skill
tzachbon Jan 30, 2026
abd964a
feat(ralph-specum): add phase-rules skill
tzachbon Jan 30, 2026
0302ddb
feat(ralph-specum): add commit-discipline skill
tzachbon Jan 30, 2026
d04c8bc
feat(ralph-specum): add quality-checkpoints skill
tzachbon Jan 30, 2026
e8b4f1a
feat(ralph-specum): add quality-commands skill
tzachbon Jan 30, 2026
1fede3f
refactor(ralph-specum): simplify implement.md to reference skills
tzachbon Jan 30, 2026
69a82ba
refactor(ralph-specum): simplify start.md to reference skills
tzachbon Jan 30, 2026
5e41f84
refactor(ralph-specum): simplify research.md to reference skills
tzachbon Jan 30, 2026
8be1abf
refactor(ralph-specum): simplify phase commands to reference skills
tzachbon Jan 30, 2026
d4381f3
chore(spec): mark task 2.18 complete
tzachbon Jan 30, 2026
08631b3
refactor(ralph-specum): simplify spec-executor.md to reference skills
tzachbon Jan 30, 2026
e8c9257
refactor(ralph-specum): simplify task-planner.md to reference skills
tzachbon Jan 30, 2026
598b33d
refactor(ralph-specum): simplify research-analyst.md to reference skills
tzachbon Jan 30, 2026
384538e
fix(plugins): bump versions for ralph-speckit and ralph-specum
tzachbon Jan 30, 2026
c1a432d
chore(spec): mark all tasks complete for refactor-plugins
tzachbon Jan 30, 2026
6213a50
fix(plugins): address PR review feedback
tzachbon Jan 30, 2026
f5319a9
Merge origin/main into feat/refactor-plugins
tzachbon Jan 31, 2026
ce463d1
fix(scripts): use jq for robust hooks matcher validation
tzachbon Jan 31, 2026
f4733ec
revert(ralph-specum): restore full command/agent content
tzachbon Jan 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
{
"name": "ralph-specum",
"description": "Spec-driven development with research, requirements, design, tasks, and autonomous execution. Fresh context per task.",
"version": "2.11.0",
"version": "2.11.2",
"author": {
"name": "tzachbon"
},
Expand All @@ -21,7 +21,7 @@
{
"name": "ralph-speckit",
"description": "Spec-driven development using GitHub spec-kit methodology. Constitution-first approach with specify, plan, tasks, and implement phases.",
"version": "0.4.0",
"version": "0.5.1",
"author": {
"name": "tzachbon"
},
Expand Down
22 changes: 22 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,28 @@ claude --plugin-dir ./plugins/ralph-specum

No build step required. Changes take effect on Claude Code restart.

### Plugin Validation

Run the validation script to check all plugins for compliance:

```bash
bash scripts/validate-plugins.sh
```

This checks:
- Agent `color:` fields and `<example>` blocks
- Skill `version:` fields
- Hook `matcher` fields
- No legacy command directories

### Agent Color Conventions

Assign colors by function for visual consistency:
- **blue/cyan** - Analysis agents (research-analyst, architect-reviewer)
- **green** - Execution agents (spec-executor)
- **yellow** - Validation agents (qa-engineer)
- **magenta** - Transformation agents (task-planner, product-manager)

### Plugin Development Skills (ALWAYS USE)

When creating or modifying plugin components, **ALWAYS** use the `plugin-dev` skills for guidance:
Expand Down
2 changes: 1 addition & 1 deletion plugins/ralph-speckit/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ralph-speckit",
"version": "0.4.0",
"version": "0.5.1",
"description": "Spec-driven development using GitHub spec-kit methodology. Constitution-first approach with specify, plan, tasks, and implement phases.",
"author": {
"name": "tzachbon"
Expand Down
135 changes: 0 additions & 135 deletions plugins/ralph-speckit/.claude/commands/speckit.implement.md

This file was deleted.

18 changes: 17 additions & 1 deletion plugins/ralph-speckit/agents/constitution-architect.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,23 @@
---
name: constitution-architect
description: Expert in creating and maintaining project constitutions. Establishes governance principles, technology standards, and quality guidelines.
description: |
Expert in creating and maintaining project constitutions. Establishes governance principles, technology standards, and quality guidelines.

<example>
Context: User wants to establish project governance before starting feature development
user: /speckit:constitution
assistant: [Explores codebase to discover patterns, reads existing docs, then creates .specify/memory/constitution.md with MUST/SHOULD/MAY principles]
commentary: Triggered when user wants to establish or update project governance rules and standards
</example>

<example>
Context: User needs to update constitution after technology stack changes
user: We've switched from REST to GraphQL, update the constitution
assistant: [Reads current constitution, identifies affected sections, updates API patterns and examples, bumps version with changelog]
commentary: Triggered when project constraints or technology decisions change requiring constitution updates
</example>
model: inherit
color: magenta
---

You are a constitution architect who establishes and maintains project governance documents. You create clear, actionable principles that guide all feature development.
Expand Down
18 changes: 17 additions & 1 deletion plugins/ralph-speckit/agents/plan-architect.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,23 @@
---
name: plan-architect
description: Technical architect for creating implementation plans from specifications. Designs architecture, data models, and API contracts aligned with constitution.
description: |
Technical architect for creating implementation plans from specifications. Designs architecture, data models, and API contracts aligned with constitution.

<example>
Context: User has approved spec and wants technical design
user: /speckit:plan
assistant: [Reads spec.md and constitution, explores codebase architecture, creates plan.md with components, data models, API contracts, and constitution references]
commentary: Triggered when user wants to create technical implementation plan from approved specification
</example>

<example>
Context: Complex feature needs detailed architecture before implementation
user: The payment integration needs careful planning
assistant: [Parallel exploration for patterns, creates plan with security considerations per C§5.3, integration points, error handling per C§4.3]
commentary: Triggered when translating specifications into detailed technical architecture aligned with project constitution
</example>
model: inherit
color: cyan
---

You are a technical architect who transforms feature specifications into detailed implementation plans. You design architectures, data models, and contracts that align with the project constitution.
Expand Down
20 changes: 18 additions & 2 deletions plugins/ralph-speckit/agents/qa-engineer.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,23 @@
---
name: qa-engineer
description: QA engineer that runs verification commands and checks acceptance criteria for [VERIFY] tasks.
description: |
QA engineer that runs verification commands and checks acceptance criteria for [VERIFY] tasks.

<example>
Context: spec-executor delegates a verification checkpoint task
user: [Task tool invocation] Execute this verification task - V4 [VERIFY] Full local CI: pnpm lint && pnpm test
assistant: [Runs each command, captures exit codes, analyzes test quality for mock-only anti-patterns, outputs VERIFICATION_PASS or VERIFICATION_FAIL]
commentary: Triggered by spec-executor when encountering [VERIFY] tasks - never executed directly by users
</example>

<example>
Context: spec-executor delegates AC checklist verification
user: [Task tool invocation] V6 [VERIFY] AC checklist - verify all acceptance criteria from spec.md
assistant: [Reads spec.md, extracts all AC-* entries, verifies each against implementation, outputs table with PASS/FAIL/SKIP and evidence]
commentary: Triggered for final acceptance criteria verification before marking feature complete
</example>
model: inherit
color: yellow
---
Comment on lines 1 to 21
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find and display plugin.json and marketplace.json versions in ralph-speckit
echo "=== Checking plugin.json versions ==="
fd -a 'plugin.json' plugins/ralph-speckit -x cat {} 2>/dev/null | head -50

echo ""
echo "=== Checking marketplace.json versions ==="
fd -a 'marketplace.json' plugins/ralph-speckit -x cat {} 2>/dev/null | head -50

Repository: tzachbon/smart-ralph

Length of output: 145


🏁 Script executed:

#!/bin/bash
# List the structure of ralph-speckit plugin
echo "=== Structure of plugins/ralph-speckit ==="
find plugins/ralph-speckit -type f -name "*.json" | head -20

echo ""
echo "=== Full directory tree of plugins/ralph-speckit ==="
tree plugins/ralph-speckit -L 3 2>/dev/null || find plugins/ralph-speckit -type f | sort

echo ""
echo "=== Search for all plugin.json files in repository ==="
fd -a 'plugin.json' plugins/ 

echo ""
echo "=== Search for all marketplace.json files in repository ==="
fd -a 'marketplace.json' plugins/

Repository: tzachbon/smart-ralph

Length of output: 1384


🏁 Script executed:

#!/bin/bash
# Read the plugin.json file to check versioning
echo "=== Content of plugin.json ==="
cat plugins/ralph-speckit/.claude-plugin/plugin.json

Repository: tzachbon/smart-ralph

Length of output: 472


🏁 Script executed:

#!/bin/bash
# Check git status/diff to see if plugin.json was modified in this PR
echo "=== Check git diff for plugin.json ==="
git diff HEAD -- plugins/ralph-speckit/.claude-plugin/plugin.json 2>/dev/null || echo "No git diff available"

echo ""
echo "=== Check git status ==="
git status plugins/ralph-speckit/.claude-plugin/plugin.json 2>/dev/null || echo "No git status available"

echo ""
echo "=== Check recent commits touching plugin.json ==="
git log --oneline -5 -- plugins/ralph-speckit/.claude-plugin/plugin.json 2>/dev/null || echo "No git log available"

echo ""
echo "=== Check if any changes exist in staging or working tree ==="
git diff --name-only 2>/dev/null | grep -E "(plugin\.json|marketplace\.json)" || echo "No plugin metadata changes in diff"

Repository: tzachbon/smart-ralph

Length of output: 392


Bump plugin version for this agent change.

The file plugins/ralph-speckit/agents/qa-engineer.md requires a version bump to plugin.json (plugins/ralph-speckit/.claude-plugin/plugin.json) since changes to agent files trigger the version bump requirement. According to the coding guidelines, all modifications to files in plugins/*/agents/ must have the plugin version updated. Please bump the version using semantic versioning (patch for fixes, minor for features, major for breaking changes).

🤖 Prompt for AI Agents
In `@plugins/ralph-speckit/agents/qa-engineer.md` around lines 1 - 21, The
plugin’s version in plugin.json needs to be bumped because agents/qa-engineer.md
for the ralph-speckit plugin was modified; open the plugin.json for the
ralph-speckit plugin, update the "version" field to a new valid semver
(increment patch for a fix, minor for a feature, major for breaking change),
save and commit the change so the plugin version reflects the
agents/qa-engineer.md modification.


You are a QA engineer agent that executes [VERIFY] tasks. You run verification commands and check acceptance criteria, then output VERIFICATION_PASS or VERIFICATION_FAIL.
Expand Down Expand Up @@ -298,7 +314,7 @@ Skip mock quality checks when:
| Command timeout | Mark as FAIL, report timeout |
| AC ambiguous | Mark as SKIP with explanation |
| File not found | Mark as FAIL if required, SKIP if optional |
| All commands SKIP | Output VERIFICATION_PASS (no failures) |
| All commands SKIP | Output VERIFICATION_FAIL (no verification executed) |

## Output Truncation

Expand Down
18 changes: 17 additions & 1 deletion plugins/ralph-speckit/agents/spec-analyst.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,23 @@
---
name: spec-analyst
description: Expert specification analyst for creating feature specs aligned with project constitution. Generates user stories, acceptance criteria, and scope definitions.
description: |
Expert specification analyst for creating feature specs aligned with project constitution. Generates user stories, acceptance criteria, and scope definitions.

<example>
Context: User wants to create a specification for a new feature
user: /speckit:specify user-auth
assistant: [Reads constitution, explores codebase for context, then creates .specify/specs/user-auth/spec.md with user stories, acceptance criteria, and scope]
commentary: Triggered when user wants to define feature requirements and acceptance criteria aligned with constitution
</example>

<example>
Context: User provides a feature goal that needs structured specification
user: I need to add webhook notifications when orders are placed
assistant: [Analyzes goal, maps to constitution principles, creates spec with US1: Order webhook delivery, AC-1.1 through AC-1.N with verifiable criteria]
commentary: Triggered when converting feature goals into structured specifications with testable acceptance criteria
</example>
model: inherit
color: blue
---

You are a specification analyst who creates feature specifications grounded in the project constitution. You translate goals into structured specs with user stories and acceptance criteria.
Expand Down
18 changes: 17 additions & 1 deletion plugins/ralph-speckit/agents/spec-executor.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,23 @@
---
name: spec-executor
description: Autonomous task executor for spec-kit development. Executes a single task from tasks.md, verifies, commits, and signals completion.
description: |
Autonomous task executor for spec-kit development. Executes a single task from tasks.md, verifies, commits, and signals completion.

<example>
Context: Coordinator delegates a task for implementation
user: [Task tool invocation] Execute task T003 from tasks.md - Implement core API endpoint
assistant: [Reads task details, executes Do steps, modifies only listed Files, runs Verify command, commits with exact message, outputs TASK_COMPLETE]
commentary: Triggered by coordinator during /speckit:implement - never invoked directly by users
</example>

<example>
Context: Coordinator delegates a [VERIFY] checkpoint task
user: [Task tool invocation] Execute task T004 [VERIFY] Quality checkpoint
assistant: [Detects [VERIFY] tag, delegates to qa-engineer via Task tool, handles VERIFICATION_PASS/FAIL result, updates progress]
commentary: Triggered for verification tasks - delegates to qa-engineer rather than executing directly
</example>
model: inherit
color: green
---

You are an autonomous execution agent that implements ONE task from a spec. You execute the task exactly as specified, verify completion, commit changes, update progress, and signal completion.
Expand Down
18 changes: 17 additions & 1 deletion plugins/ralph-speckit/agents/task-planner.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,23 @@
---
name: task-planner
description: Expert task planner for breaking plans into executable tasks. Masters POC-first workflow, task sequencing, quality gates, and constitution alignment.
description: |
Expert task planner for breaking plans into executable tasks. Masters POC-first workflow, task sequencing, quality gates, and constitution alignment.

<example>
Context: User has approved plan and wants implementation tasks
user: /speckit:tasks
assistant: [Reads plan.md, spec.md, constitution, explores for commands, creates tasks.md with POC-first phases, [P] parallel markers, [VERIFY] checkpoints]
commentary: Triggered when user wants to break technical plan into executable task list for spec-executor
</example>

<example>
Context: Complex feature needs careful task sequencing
user: Generate tasks for the payment feature
assistant: [Creates tasks with Phase 1-5 structure, inserts [VERIFY] every 2-3 tasks, marks parallelizable tasks with [P], includes E2E validation tasks]
commentary: Triggered when converting technical plans into structured task sequences following POC-first workflow
</example>
model: inherit
color: cyan
---
Comment on lines 1 to 21
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find and inspect plugin.json for ralph-speckit
echo "=== ralph-speckit plugin.json ==="
find plugins/ralph-speckit -name "plugin.json" -type f | head -5
find plugins/ralph-speckit -name "plugin.json" -type f -exec cat {} \;

echo -e "\n=== marketplace.json search ==="
find . -name "marketplace.json" -type f | head -10
find . -name "marketplace.json" -type f -exec cat {} \; 2>/dev/null | head -100

Repository: tzachbon/smart-ralph

Length of output: 1642


🏁 Script executed:

#!/bin/bash
# Check git diff for version changes
echo "=== Git diff for plugin.json ==="
git diff plugins/ralph-speckit/.claude-plugin/plugin.json

echo -e "\n=== Git diff for marketplace.json ==="
git diff ./.claude-plugin/marketplace.json

Repository: tzachbon/smart-ralph

Length of output: 135


Version bumps required: Plugin.json and marketplace.json were not updated for this agent change.

The agent file plugins/ralph-speckit/agents/task-planner.md was modified, but neither plugins/ralph-speckit/.claude-plugin/plugin.json nor ./.claude-plugin/marketplace.json were updated. Per coding guidelines, you must bump the version in BOTH files whenever making ANY changes to agent files. Consider incrementing from 0.5.0 to 0.5.1 (patch) using semantic versioning unless this is part of a larger feature release.

🤖 Prompt for AI Agents
In `@plugins/ralph-speckit/agents/task-planner.md` around lines 1 - 21, The agent
change requires a patch version bump in both plugin manifest files: open
plugins/ralph-speckit/.claude-plugin/plugin.json and
./.claude-plugin/marketplace.json, locate the "version" field (currently 0.5.0)
and update it to 0.5.1 so both files match, save and commit the two files
alongside the agent change; ensure the same semantic version string is used in
both manifests (plugin.json and marketplace.json).


You are a task planning specialist who breaks technical plans into executable implementation steps. Your focus is POC-first workflow, clear task definitions, and quality gates aligned with the project constitution.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
---
name: analyze
description: Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
allowed-tools: [Read, Bash]
---

## User Input
Expand Down Expand Up @@ -68,7 +70,7 @@ Load only the minimal necessary context from each artifact:

Create internal representations (do not include raw artifacts in output):

- **Requirements inventory**: Each functional + non-functional requirement with a stable key (derive slug based on imperative phrase; e.g., "User can upload file" `user-can-upload-file`)
- **Requirements inventory**: Each functional + non-functional requirement with a stable key (derive slug based on imperative phrase; e.g., "User can upload file" -> `user-can-upload-file`)
- **User story/action inventory**: Discrete user actions with acceptance criteria
- **Task coverage mapping**: Map each task to one or more requirements or stories (inference by keyword / explicit reference patterns like IDs or key phrases)
- **Constitution rule set**: Extract principle names and MUST/SHOULD normative statements
Expand Down
5 changes: 3 additions & 2 deletions plugins/ralph-speckit/commands/cancel.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
name: cancel
description: Cancel active execution loop and cleanup state
argument-hint: [feature-name]
allowed-tools: [Read, Bash, Task]
allowed-tools: [Read, Bash, Task, Skill]
---

# Cancel Execution
Expand All @@ -28,7 +29,7 @@ If state file exists, read and display:

## Cleanup

1. Stop Ralph Loop loop (if running):
1. Stop Ralph Loop (if running):
```
Use the Skill tool to invoke ralph-wiggum:cancel-ralph
This stops any active Ralph Loop loop iteration
Expand Down
Loading