Skip to content

Conversation

@tzachbon
Copy link
Owner

@tzachbon tzachbon commented Jan 30, 2026

Summary

Refactors both ralph-specum and ralph-speckit plugins to follow plugin-dev best practices:

  • 11 new skills created - Extracted procedural logic into reusable skills for DRY code
  • Simplified commands/agents - Major commands reduced 70-81% (e.g., implement.md from 1235→233 lines)
  • Metadata fixes - Added color, version, matcher, examples fields where missing
  • Legacy migration - Migrated ralph-speckit legacy commands, removed .claude/commands directory

Phase A: Metadata Fixes

  • Added color field to all 14 agents (blue/cyan=analysis, green=execution, yellow=validation, magenta=transformation)
  • Added 2+ <example> blocks to all agents for proper triggering
  • Added version: 0.1.0 to all 21 skills
  • Added matcher: "*" to all hook entries
  • Migrated 8 legacy commands from .claude/commands/ to commands/
  • Removed legacy commands directory

Phase B: Skill Consolidation

New skills extracted from commands/agents:

  • failure-recovery - Recovery orchestration from implement.md
  • verification-layers - 4-layer verification pattern
  • coordinator-pattern - Task delegation pattern
  • branch-management - Branch/worktree workflow
  • intent-classification - Goal type detection
  • spec-scanner - Spec discovery logic
  • parallel-research - Multi-agent parallel execution
  • phase-rules - POC/Refactor/Testing/Quality phase behaviors
  • commit-discipline - Commit conventions and rules
  • quality-checkpoints - [VERIFY] task insertion rules
  • quality-commands - Package.json/Makefile command discovery

Commands/agents now reference skills via <skill-reference> blocks, reducing duplication significantly.

Test Plan

  • Validation script passes: bash scripts/validate-plugins.sh
    • 14/14 agents have color field
    • 14/14 agents have 2+ example blocks
    • 21/21 skills have version field
    • 2/2 hooks.json files have matcher field
    • 0 legacy commands directories found
  • All acceptance criteria verified programmatically
  • CI passes

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Adds an automated plugin validation script and several new documented skills/patterns to guide workflows.
  • Improvements

    • Enhanced plugin metadata: agent color tags, richer examples, and standardized front-matter across commands and skills.
    • Consolidated many command/agent flows into reusable skill-driven patterns (coordinator, verification, branch/commit discipline, research, etc.).
  • Updates

    • Plugin version bumps: ralph-specum → 2.11.1, ralph-speckit → 0.5.1.

✏️ Tip: You can customize this high-level summary in your review settings.

tzachbon and others added 30 commits January 29, 2026 21:19
Two-phase approach:
- Phase A: Metadata fixes (color, version, matcher, examples)
- Phase B: Skill consolidation (11 new skills, simplified commands/agents)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
32 tasks across 2 phases:
- Phase A: 14 tasks (metadata fixes)
- Phase B: 18 tasks (skill consolidation)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Migrate 8 legacy commands from .claude/commands/ to commands/:
- analyze.md - cross-artifact consistency analysis
- checklist.md - requirements quality validation
- clarify.md - spec ambiguity detection and resolution
- constitution.md - project constitution management
- plan.md - implementation planning workflow
- specify.md - feature specification creation
- tasks.md - task generation from design artifacts
- taskstoissues.md - GitHub issue creation from tasks

All commands now have proper frontmatter with name, description,
and allowed-tools fields.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Reduced design.md from 301 to 86 lines (71% reduction)
Reduced requirements.md from 294 to 85 lines (71% reduction)
Reduced tasks.md from 314 to 94 lines (70% reduction)

All three commands now explicitly reference interview-framework skill
for the interview loop pattern instead of duplicating the algorithm.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
tzachbon and others added 3 commits January 30, 2026 22:22
- Reduce from 538 to 286 lines (47% reduction)
- Add skill references: phase-rules, quality-checkpoints
- Remove inline POC workflow and quality checkpoint rules
- Keep essential identity: E2E validation, no manual tasks

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@coderabbitai
Copy link

coderabbitai bot commented Jan 30, 2026

Warning

Rate limit exceeded

@tzachbon has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 5 minutes and 4 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📝 Walkthrough

Walkthrough

Bumps two plugin versions, adds an automated plugin validation script and CLAUDE.md guidance, augments agent/skill front-matter (colors, examples, versions), introduces many SKILL.md artifacts and branch/commit/workflow skills, standardizes command frontmatter/style, adds hook matcher fields, and adds refactor planning specs and progress docs.

Changes

Cohort / File(s) Summary
Marketplace & Plugin Manifests
/.claude-plugin/marketplace.json, plugins/ralph-specum/.claude-plugin/plugin.json, plugins/ralph-speckit/.claude-plugin/plugin.json
Bumped marketplace and per-plugin versions: ralph-specum 2.10.0 → 2.11.1; ralph-speckit 0.4.0 → 0.5.1.
Validation Script & CLAUDE.md
scripts/validate-plugins.sh, CLAUDE.md
Added executable plugin validation script and expanded CLAUDE.md with plugin-validation checklist and agent color conventions.
Agent Frontmatter
plugins/ralph-speckit/agents/.../*.md, plugins/ralph-specum/agents/.../*.md
Converted single-line descriptions to YAML block scalars, added color fields and example blocks across many agent docs.
Commands — Frontmatter & Style
plugins/ralph-speckit/commands/*.md, plugins/ralph-specum/commands/*.md
Added/standardized frontmatter (name, allowed-tools, argument-hint), reordered handoffs, replaced typographic arrows with ->, and shifted procedural detail toward skill references.
Deleted Legacy Command
plugins/ralph-speckit/.claude/commands/speckit.implement.md
Removed legacy speckit implementation markdown file.
Hook Config Changes
plugins/ralph-speckit/hooks/hooks.json, plugins/ralph-specum/hooks/hooks.json
Added matcher: "*" entries to Stop and SessionStart hook configurations (global matcher).
New & Updated Skills
plugins/ralph-specum/skills/*, plugins/ralph-speckit/skills/*
Added many SKILL.md docs (branch-management, commit-discipline, coordinator-pattern, failure-recovery, verification-layers, parallel-research, phase-rules, quality-checkpoints, quality-commands, spec-scanner, etc.) and added version: 0.1.0/expanded descriptions for several existing skills.
Refactor Specs & Progress
specs/refactor-plugins/{requirements,research,design,tasks,.progress.md}
Added comprehensive refactor planning artifacts: requirements, research, design, multi‑phase tasks, and progress tracking.

Sequence Diagram(s)

sequenceDiagram
    participant Runner as Runner (scripts/validate-plugins.sh)
    participant FS as File System / Repo
    participant Plugin as Plugin Dir (ralph-*/)
    participant Hooks as hooks.json

    Runner->>FS: enumerate plugin directories
    loop per-plugin
      Runner->>Plugin: read agent/skill .md files and hooks
      Plugin-->>Runner: frontmatter (color, examples, version) / hooks.json
      Runner->>Hooks: validate hooks.json matcher fields
      Runner->>Plugin: check skills for version, agents for examples/colors, legacy .claude/commands
      Plugin-->>Runner: pass/fail per-check
    end
    Runner->>Runner: aggregate results and print colored summary
    Runner-->>FS: exit with 0 if all pass, else exit 1
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Possibly related PRs

Poem

🐰 I hopped through manifests, docs, and hooks,

I left bright colors in agent books,
I planted skills where long guides sprawled,
A validator watches, tidy and tall,
Refactor carrots gathered—one and all.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'refactor(plugins): apply plugin-dev best practices' clearly and directly summarizes the main change: refactoring plugins to follow established best practices.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/refactor-plugins

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

tzachbon and others added 2 commits January 30, 2026 22:31
- ralph-speckit: 0.4.0 -> 0.5.0
- ralph-specum: 2.10.0 -> 2.11.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 11

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
plugins/ralph-speckit/commands/cancel.md (1)

2-36: ⚠️ Potential issue | 🟠 Major

allowed-tools doesn’t permit the Skill tool referenced in steps.

The command instructs using the Skill tool, but allowed-tools omits it—this will fail under tool gating. Add Skill (or change the instruction to a permitted tool). Also fixes the duplicate “loop” wording.

🔧 Proposed fix
-allowed-tools: [Read, Bash, Task]
+allowed-tools: [Read, Bash, Task, Skill]
@@
-1. Stop Ralph Loop loop (if running):
+1. Stop Ralph Loop (if running):
plugins/ralph-speckit/agents/qa-engineer.md (1)

309-318: ⚠️ Potential issue | 🟠 Major

Avoid VERIFICATION_PASS when all verification commands are skipped.

If every command is skipped (e.g., missing executables), this produces a false green without any real verification. Prefer failing so the task is retried or corrected.

🔧 Suggested adjustment
-| All commands SKIP | Output VERIFICATION_PASS (no failures) |
+| All commands SKIP | Output VERIFICATION_FAIL (no verification executed) |
plugins/ralph-specum/commands/requirements.md (1)

1-85: ⚠️ Potential issue | 🟠 Major

Bump plugin versions in both plugin.json and marketplace.json.

The command file requirements.md was modified, but the plugin versions were not updated. According to coding guidelines, you must bump the version in BOTH plugins/ralph-specum/.claude-plugin/plugin.json and ./.claude-plugin/marketplace.json (ralph-specum entry) whenever ANY changes are made to plugin files (commands, agents, hooks, templates, schemas). Update both versions using semantic versioning appropriate to the changes made.

🤖 Fix all issues with AI agents
In `@plugins/ralph-speckit/agents/task-planner.md`:
- Around line 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).

In `@plugins/ralph-speckit/commands/tasks.md`:
- Around line 96-101: Update the first "CORRECT" example line "- [ ] T001 Create
project structure per implementation plan" so it includes a file path consistent
with the rule and the other examples (e.g., append a path like "in
src/<appropriate_file>.py" or add "in src/<dir>/README.md"); ensure the task ID
"T001" remains and formatting matches the other examples such as "- [ ] T005 [P]
Implement authentication middleware in src/middleware/auth.py".

In `@plugins/ralph-specum/commands/start.md`:
- Around line 147-152: The markdown table containing the keys `problem`,
`constraints`, `success`, and `additionalContext` has pipes with no surrounding
spaces which triggers MD060; update the table so each cell pipe has a single
space on both sides (e.g., "| 1 | What problem... | Required | `problem` |")
including the header and separator rows to satisfy markdownlint spacing rules.

In `@plugins/ralph-specum/skills/intent-classification/SKILL.md`:
- Around line 47-105: Tables in SKILL.md have pipes without spaces which
triggers markdownlint MD060; update each Markdown table (for example the headers
"Keyword | Confidence Boost", "Match Count | Confidence | Action", and "Intent |
Min Questions | Max Questions") to have a single space before and after every
pipe delimiter (e.g., "Keyword | Confidence Boost" -> "Keyword | Confidence
Boost"), and ensure all rows follow the same spacing convention so each pipe is
surrounded by spaces throughout the file.

In `@plugins/ralph-specum/skills/quality-commands/SKILL.md`:
- Around line 74-79: The markdown table in SKILL.md uses compact pipe spacing
that triggers MD060; update the table rows (the block showing File Exists |
Package Manager | Run Prefix around the `pnpm-lock.yaml`, `yarn.lock`,
`bun.lockb`, `package-lock.json` entries) and the second table at lines ~127-133
to use a single space on both sides of each pipe (e.g., " | " between columns)
and align columns consistently so markdownlint MD060 is satisfied; ensure the
header separator row also has matching spacing (the row with dashes and pipes)
to keep the table format valid.
- Line 47: Update the heading "### 3. CI Configs (.github/workflows/*.yml)" to
capitalize GitHub (change "CI Configs" line to "### 3. CI Configs
(GitHub/.github/workflows/*.yml)" or simply "### 3. CI Configs
(.github/workflows/*.yml) — GitHub" as appropriate); locate the heading text
string in SKILL.md and replace the lowercase "GitHub" instance to "GitHub" so
the heading correctly capitalizes the platform name.

In `@plugins/ralph-specum/skills/spec-scanner/SKILL.md`:
- Around line 198-211: The Example 3 matching is incorrect because the "Keywords
extracted" list (the Keywords extracted entry) does not contain "jwt" yet the
"Matching" section claims user-auth has 3 matches including "jwt"; update the
"Matching" section to only count actual overlaps with the extracted keywords
(e.g., set user-auth to 2 matches for "authentication" and "token",
token-refresh to 2, api-auth to 1 or 2 depending on overlaps) or explicitly
state that a stemming/fuzzy match was used and document that behavior;
specifically edit the "Keywords extracted" and "Matching" blocks in Example 3
and adjust the user-auth, token-refresh, and api-auth match counts and
matched-terms to be consistent.

In `@scripts/validate-plugins.sh`:
- Around line 26-34: The arithmetic increments in log_fail and log_warn (the
((errors++)) and ((warnings++)) calls) can cause the script to exit under set -e
because ((errors++)) returns the old value (0) as the exit status; change these
to a safe increment that never yields a zero exit status such as assigning the
incremented value (e.g., errors=$((errors+1)) and warnings=$((warnings+1))) so
log_fail and log_warn update the counters without triggering set -e; update both
functions accordingly.

In `@specs/refactor-plugins/requirements.md`:
- Around line 15-19: The Markdown tables in this file (e.g., the table row
starting with "Primary users | Both developers and end users" and the rows for
"Priority tradeoffs" and "Success criteria") use compact pipe separators that
trigger MD060; update these table rows and any other tables in the file to
include a single space before and after each pipe (e.g., " | ") and ensure
consistent spacing for the header separator line as well so all table pipes have
surrounding spaces throughout the document.

In `@specs/refactor-plugins/tasks.md`:
- Around line 10-511: The spec currently defines five phases (Phase 1..5) but
must follow the repo standard four-phase POC-first workflow; update
specs/refactor-plugins/tasks.md to consolidate the PR lifecycle/PR creation and
monitoring steps (the content under "Phase 5: PR Lifecycle" and the PR steps in
"Phase 4: Quality Gates" / item 4.2) into the Phase 4 "Quality Gates" section or
move them to a Notes/Appendix section, and rename/ensure the top-level headings
match exactly: Phase 1: Make It Work (POC), Phase 2: Refactoring, Phase 3:
Testing, Phase 4: Quality Gates; adjust or remove the separate "Phase 5" heading
and ensure references to PR steps (4.2, 5.1, PR creation/monitoring) are present
only under Phase 4 or an appendix so the document enforces the required 4‑phase
workflow.
- Around line 561-565: The markdown table in specs/refactor-plugins/tasks.md
violates MD060 because the pipe characters in the header and rows lack
consistent spaces; update the three table lines (the header line "| Phase |
Files Changed | Files Created | Files Deleted |" the separator
"|-------|---------------|---------------|---------------|" and each data row "|
Phase A | 32 | 9 | 9 |", "| Phase B | 10 | 11 | 0 |", "| **Total** | **42** |
**20** | **9** |") so that there is a single space before and after each pipe
delimiter (i.e., ensure " | " between columns) to satisfy markdownlint spacing
rules.
🧹 Nitpick comments (4)
plugins/ralph-specum/skills/intent-classification/SKILL.md (1)

76-190: Align examples and tie‑break behavior with the keyword rules.

Example 2 lists “new” as a matched keyword, but “new” isn’t present in the GREENFIELD table; also, tie‑break behavior is implicit (TRIVIAL wins on equal scores). Please either add “new” to the table or update the example, and document tie‑break priority explicitly to avoid ambiguity.

Also applies to: 112-133

plugins/ralph-speckit/skills/speckit-workflow/SKILL.md (1)

3-120: Align phase model with the required 4-phase POC-first workflow.
This doc defines a 6‑phase flow, which conflicts with the required 4‑phase model. Consider mapping or reconciling the phases so the skill reflects the mandated workflow.

Based on learnings: "All specs must follow the 4-phase POC-first workflow: Phase 1 (Make It Work - POC validation, skip tests), Phase 2 (Refactoring - code cleanup), Phase 3 (Testing - unit, integration, e2e), Phase 4 (Quality Gates - lint, types, CI, PR)".

plugins/ralph-specum/skills/spec-workflow/SKILL.md (1)

3-45: Reconcile phase naming with the 4‑phase POC‑first workflow.
Current phase labels don’t align with the mandated 4‑phase model; consider adding a mapping or updating the phase flow to match.

Based on learnings: "All specs must follow the 4-phase POC-first workflow: Phase 1 (Make It Work - POC validation, skip tests), Phase 2 (Refactoring - code cleanup), Phase 3 (Testing - unit, integration, e2e), Phase 4 (Quality Gates - lint, types, CI, PR)".

plugins/ralph-specum/skills/branch-management/SKILL.md (1)

200-209: Consider tightening the default branch protection exception.

The mandatory block correctly prohibits direct pushes to the default branch, but Line 208 introduces an exception "if the user explicitly requests pushing to the default branch." This loophole could undermine the protection policy, as users might request it without fully understanding the consequences.

Consider one of these approaches:

  • Remove the exception entirely and require feature branches in all cases
  • Add additional verification steps (e.g., require confirmation with a warning about team workflow implications)
  • Document specific scenarios where direct pushes are acceptable (e.g., hotfixes, single-maintainer repos)

Comment on lines 1 to 21
---
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
---
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).

Comment on lines +10 to +511
## Phase 1: Make It Work (POC) - Phase A Metadata Fixes

Focus: Fix all missing frontmatter fields (color, version, matcher, name) and add example blocks to agents.

### A1: Agent Metadata

- [x] 1.1 Add color and examples to ralph-specum agents (8 files)
- **Do**:
1. For each of 8 agents, add `color` field after `model` in frontmatter
2. Add 2 `<example>` blocks with Context/user/assistant/commentary format to description
3. Colors: research-analyst=blue, product-manager=cyan, architect-reviewer=blue, task-planner=cyan, spec-executor=green, plan-synthesizer=green, qa-engineer=yellow, refactor-specialist=magenta
- **Files**:
- `plugins/ralph-specum/agents/research-analyst.md`
- `plugins/ralph-specum/agents/product-manager.md`
- `plugins/ralph-specum/agents/architect-reviewer.md`
- `plugins/ralph-specum/agents/task-planner.md`
- `plugins/ralph-specum/agents/spec-executor.md`
- `plugins/ralph-specum/agents/plan-synthesizer.md`
- `plugins/ralph-specum/agents/qa-engineer.md`
- `plugins/ralph-specum/agents/refactor-specialist.md`
- **Done when**: All 8 agents have color field and 2+ example blocks
- **Verify**: `for f in plugins/ralph-specum/agents/*.md; do grep -q "^color:" "$f" && test $(grep -c "<example>" "$f") -ge 2 || echo "FAIL: $f"; done | grep -c FAIL | xargs test 0 -eq`
- **Commit**: `feat(ralph-specum): add color and examples to all agents`
- _Requirements: AC-1.1, AC-1.3, AC-1.4, AC-1.5_
- _Design: ralph-specum Agents, Agent Color Assignments_

- [x] 1.2 Add color and examples to ralph-speckit agents (6 files)
- **Do**:
1. For each of 6 agents, add `color` field after `model` in frontmatter
2. Add 2 `<example>` blocks with Context/user/assistant/commentary format to description
3. Colors: constitution-architect=magenta, spec-analyst=blue, qa-engineer=yellow, spec-executor=green, plan-architect=cyan, task-planner=cyan
- **Files**:
- `plugins/ralph-speckit/agents/constitution-architect.md`
- `plugins/ralph-speckit/agents/spec-analyst.md`
- `plugins/ralph-speckit/agents/qa-engineer.md`
- `plugins/ralph-speckit/agents/spec-executor.md`
- `plugins/ralph-speckit/agents/plan-architect.md`
- `plugins/ralph-speckit/agents/task-planner.md`
- **Done when**: All 6 agents have color field and 2+ example blocks
- **Verify**: `for f in plugins/ralph-speckit/agents/*.md; do grep -q "^color:" "$f" && test $(grep -c "<example>" "$f") -ge 2 || echo "FAIL: $f"; done | grep -c FAIL | xargs test 0 -eq`
- **Commit**: `feat(ralph-speckit): add color and examples to all agents`
- _Requirements: AC-1.2, AC-1.3, AC-1.4, AC-1.5_
- _Design: ralph-speckit Agents, Agent Color Assignments_

- [x] 1.3 [VERIFY] Quality checkpoint: agent metadata
- **Do**: Verify all 14 agents have color field and 2+ example blocks
- **Verify**: `count=0; for f in plugins/*/agents/*.md; do grep -q "^color:" "$f" && test $(grep -c "<example>" "$f") -ge 2 || ((count++)); done; test $count -eq 0`
- **Done when**: All agents pass color and example validation
- **Commit**: `chore(plugins): pass agent metadata checkpoint` (only if fixes needed)

### A2: Skill Metadata

- [x] 1.4 Add version to ralph-specum skills (6 files)
- **Do**:
1. Add `version: 0.1.0` to frontmatter of each skill
2. Fix interview-framework description to third-person format with trigger phrases
- **Files**:
- `plugins/ralph-specum/skills/communication-style/SKILL.md`
- `plugins/ralph-specum/skills/delegation-principle/SKILL.md`
- `plugins/ralph-specum/skills/interview-framework/SKILL.md`
- `plugins/ralph-specum/skills/reality-verification/SKILL.md`
- `plugins/ralph-specum/skills/smart-ralph/SKILL.md`
- `plugins/ralph-specum/skills/spec-workflow/SKILL.md`
- **Done when**: All 6 skills have version field, interview-framework has third-person description
- **Verify**: `for f in plugins/ralph-specum/skills/*/SKILL.md; do grep -q "^version:" "$f" || echo "FAIL: $f"; done | grep -c FAIL | xargs test 0 -eq`
- **Commit**: `feat(ralph-specum): add version to all skills`
- _Requirements: AC-2.1, AC-2.5_
- _Design: ralph-specum Skills_

- [x] 1.5 Add version and fix descriptions for ralph-speckit skills (4 files)
- **Do**:
1. Add `version: 0.1.0` to frontmatter of each skill
2. Rewrite all 4 descriptions to third-person format: "This skill should be used when..."
3. Include at least 3 trigger phrases in quotes
- **Files**:
- `plugins/ralph-speckit/skills/communication-style/SKILL.md`
- `plugins/ralph-speckit/skills/delegation-principle/SKILL.md`
- `plugins/ralph-speckit/skills/smart-ralph/SKILL.md`
- `plugins/ralph-speckit/skills/speckit-workflow/SKILL.md`
- **Done when**: All 4 skills have version field and third-person descriptions
- **Verify**: `for f in plugins/ralph-speckit/skills/*/SKILL.md; do grep -q "^version:" "$f" && grep -q "This skill should be used when" "$f" || echo "FAIL: $f"; done | grep -c FAIL | xargs test 0 -eq`
- **Commit**: `feat(ralph-speckit): add version and fix descriptions for all skills`
- _Requirements: AC-2.2, AC-2.3, AC-2.4_
- _Design: ralph-speckit Skills_

### A3: Hook Metadata

- [x] 1.6 Add matcher field to hooks (2 files)
- **Do**:
1. Add `"matcher": "*"` to Stop entry in ralph-specum hooks.json
2. Add `"matcher": "*"` to SessionStart entry in ralph-specum hooks.json
3. Add `"matcher": "*"` to Stop entry in ralph-speckit hooks.json
- **Files**:
- `plugins/ralph-specum/hooks/hooks.json`
- `plugins/ralph-speckit/hooks/hooks.json`
- **Done when**: All hook entries have matcher field
- **Verify**: `for f in plugins/*/hooks/hooks.json; do grep -q '"matcher"' "$f" || echo "FAIL: $f"; done | grep -c FAIL | xargs test 0 -eq`
- **Commit**: `feat(plugins): add matcher field to all hook entries`
- _Requirements: AC-3.1, AC-3.2, AC-3.3_
- _Design: Hooks_

- [x] 1.7 [VERIFY] Quality checkpoint: skills and hooks
- **Do**: Verify all skills have version and all hooks have matcher
- **Verify**: `count=0; for f in plugins/*/skills/*/SKILL.md; do grep -q "^version:" "$f" || ((count++)); done; for f in plugins/*/hooks/hooks.json; do grep -q '"matcher"' "$f" || ((count++)); done; test $count -eq 0`
- **Done when**: All skills and hooks pass validation
- **Commit**: `chore(plugins): pass skills/hooks checkpoint` (only if fixes needed)

### A4: Command Fixes

- [x] 1.8 Add name field to ralph-speckit modern commands (5 files)
- **Do**:
1. Add `name: <command>` field to frontmatter of each command
2. Names: start, status, switch, cancel, implement
- **Files**:
- `plugins/ralph-speckit/commands/start.md` (name: start)
- `plugins/ralph-speckit/commands/status.md` (name: status)
- `plugins/ralph-speckit/commands/switch.md` (name: switch)
- `plugins/ralph-speckit/commands/cancel.md` (name: cancel)
- `plugins/ralph-speckit/commands/implement.md` (name: implement)
- **Done when**: All 5 commands have name field in frontmatter
- **Verify**: `for f in plugins/ralph-speckit/commands/*.md; do grep -q "^name:" "$f" || echo "FAIL: $f"; done | grep -c FAIL | xargs test 0 -eq`
- **Commit**: `feat(ralph-speckit): add name field to modern commands`
- _Requirements: AC-4.1_
- _Design: ralph-speckit Commands_

- [x] 1.9 Migrate legacy commands to commands/ directory (8 files)
- **Do**:
1. For each legacy command in `.claude/commands/`:
- Copy to `plugins/ralph-speckit/commands/` with new name (strip speckit. prefix)
- Add proper frontmatter: name, description, allowed_tools
2. Files to migrate (skip speckit.implement.md - duplicate):
- speckit.analyze.md -> analyze.md
- speckit.checklist.md -> checklist.md
- speckit.clarify.md -> clarify.md
- speckit.constitution.md -> constitution.md
- speckit.plan.md -> plan.md
- speckit.specify.md -> specify.md
- speckit.tasks.md -> tasks.md
- speckit.taskstoissues.md -> taskstoissues.md
- **Files**:
- `plugins/ralph-speckit/commands/analyze.md` (create)
- `plugins/ralph-speckit/commands/checklist.md` (create)
- `plugins/ralph-speckit/commands/clarify.md` (create)
- `plugins/ralph-speckit/commands/constitution.md` (create)
- `plugins/ralph-speckit/commands/plan.md` (create)
- `plugins/ralph-speckit/commands/specify.md` (create)
- `plugins/ralph-speckit/commands/tasks.md` (create)
- `plugins/ralph-speckit/commands/taskstoissues.md` (create)
- **Done when**: All 8 commands exist in commands/ with proper frontmatter
- **Verify**: `for cmd in analyze checklist clarify constitution plan specify tasks taskstoissues; do test -f "plugins/ralph-speckit/commands/$cmd.md" && grep -q "^name:" "plugins/ralph-speckit/commands/$cmd.md" || echo "FAIL: $cmd"; done | grep -c FAIL | xargs test 0 -eq`
- **Commit**: `feat(ralph-speckit): migrate legacy commands to commands/`
- _Requirements: AC-4.2, AC-4.5_
- _Design: Legacy commands migration_

- [x] 1.10 Remove legacy commands directory
- **Do**:
1. Verify all commands migrated successfully (from 1.9)
2. Delete `.claude/commands/` directory from ralph-speckit
3. This removes duplicate speckit.implement.md
- **Files**:
- `plugins/ralph-speckit/.claude/commands/` (delete entire directory)
- **Done when**: Legacy directory no longer exists
- **Verify**: `test ! -d "plugins/ralph-speckit/.claude/commands"`
- **Commit**: `chore(ralph-speckit): remove legacy commands directory`
- _Requirements: AC-4.3, AC-4.4_
- _Design: Post-migration cleanup_

- [x] 1.11 [VERIFY] Quality checkpoint: commands
- **Do**: Verify all ralph-speckit commands have name field and legacy dir removed
- **Verify**: `count=0; for f in plugins/ralph-speckit/commands/*.md; do grep -q "^name:" "$f" || ((count++)); done; test ! -d "plugins/ralph-speckit/.claude/commands" || ((count++)); test $count -eq 0`
- **Done when**: All commands valid, legacy directory removed
- **Commit**: `chore(ralph-speckit): pass commands checkpoint` (only if fixes needed)

### A5: Validation and Documentation

- [x] 1.12 Create validation script
- **Do**:
1. Create `scripts/validate-plugins.sh` with compliance checks:
- Agents have color field
- Agents have 2+ example blocks
- Skills have version field
- Hooks have matcher field
- No legacy commands directory
2. Script exits 0 on pass, non-zero on failure
3. Make script executable
- **Files**:
- `scripts/validate-plugins.sh` (create)
- **Done when**: Script runs and validates all checks
- **Verify**: `test -x scripts/validate-plugins.sh && bash scripts/validate-plugins.sh`
- **Commit**: `feat(scripts): add plugin compliance validation script`
- _Requirements: AC-5.1, AC-5.2, AC-5.3, AC-5.4_
- _Design: Validation Script Design_

- [x] 1.13 Update CLAUDE.md with best practices
- **Do**:
1. Add section referencing plugin-dev skills for best practices
2. Include validation script usage
3. Document color conventions for agents
- **Files**:
- `CLAUDE.md` (edit)
- **Done when**: CLAUDE.md has plugin best practices reference
- **Verify**: `grep -q "validate-plugins" CLAUDE.md && grep -q "plugin-dev" CLAUDE.md`
- **Commit**: `docs: add plugin best practices reference to CLAUDE.md`
- _Requirements: AC-5.5_
- _Design: Documentation_

- [x] 1.14 [VERIFY] Phase A complete validation
- **Do**: Run full validation script to verify all Phase A changes
- **Verify**: `bash scripts/validate-plugins.sh && echo "Phase A PASS"`
- **Done when**: Validation script passes with 0 errors
- **Commit**: `chore(plugins): pass Phase A validation` (only if fixes needed)

---

## Phase 2: Refactoring - Phase B Skill Consolidation

Focus: Extract procedural logic from commands/agents into reusable skills, then simplify sources.

### B1: Create New Skills

- [x] 2.1 Create failure-recovery skill
- **Do**:
1. Extract recovery orchestration logic from implement.md sections 6b-6d
2. Create skill with proper frontmatter (name, description, version)
3. Document recovery loop pattern, fix task generation, recovery state management
- **Files**:
- `plugins/ralph-specum/skills/failure-recovery/SKILL.md` (create)
- **Done when**: Skill contains full recovery pattern, ~300-400 lines
- **Verify**: `test -f plugins/ralph-specum/skills/failure-recovery/SKILL.md && grep -q "^version:" plugins/ralph-specum/skills/failure-recovery/SKILL.md`
- **Commit**: `feat(ralph-specum): add failure-recovery skill`
- _Design: New Skills - failure-recovery_

- [x] 2.2 Create verification-layers skill
- **Do**:
1. Extract 4-layer verification pattern from implement.md section 7
2. Document: contradiction check, uncommitted changes, checkmark verification, completion signal
- **Files**:
- `plugins/ralph-specum/skills/verification-layers/SKILL.md` (create)
- **Done when**: Skill contains all 4 verification layers
- **Verify**: `test -f plugins/ralph-specum/skills/verification-layers/SKILL.md && grep -q "contradiction" plugins/ralph-specum/skills/verification-layers/SKILL.md`
- **Commit**: `feat(ralph-specum): add verification-layers skill`
- _Design: New Skills - verification-layers_

- [x] 2.3 Create coordinator-pattern skill
- **Do**:
1. Extract coordinator prompt pattern from implement.md
2. Document role definition, state reading, task delegation, completion signaling
- **Files**:
- `plugins/ralph-specum/skills/coordinator-pattern/SKILL.md` (create)
- **Done when**: Skill contains coordinator delegation pattern
- **Verify**: `test -f plugins/ralph-specum/skills/coordinator-pattern/SKILL.md && grep -q "COORDINATOR" plugins/ralph-specum/skills/coordinator-pattern/SKILL.md`
- **Commit**: `feat(ralph-specum): add coordinator-pattern skill`
- _Design: New Skills - coordinator-pattern_

- [x] 2.4 [VERIFY] Quality checkpoint: new skills batch 1
- **Do**: Verify first 3 new skills have proper structure
- **Verify**: `count=0; for s in failure-recovery verification-layers coordinator-pattern; do test -f "plugins/ralph-specum/skills/$s/SKILL.md" && grep -q "^version:" "plugins/ralph-specum/skills/$s/SKILL.md" || ((count++)); done; test $count -eq 0`
- **Done when**: All 3 skills exist with version field
- **Commit**: `chore(ralph-specum): pass new skills batch 1 checkpoint` (only if fixes needed)

- [x] 2.5 Create branch-management skill
- **Do**:
1. Extract branch management logic from start.md
2. Document branch creation, worktree setup, naming conventions, default branch detection
- **Files**:
- `plugins/ralph-specum/skills/branch-management/SKILL.md` (create)
- **Done when**: Skill contains branch workflow patterns
- **Verify**: `test -f plugins/ralph-specum/skills/branch-management/SKILL.md && grep -q "branch" plugins/ralph-specum/skills/branch-management/SKILL.md`
- **Commit**: `feat(ralph-specum): add branch-management skill`
- _Design: New Skills - branch-management_

- [x] 2.6 Create intent-classification skill
- **Do**:
1. Extract intent classification logic from start.md
2. Document goal type detection, keyword matching, question count determination
- **Files**:
- `plugins/ralph-specum/skills/intent-classification/SKILL.md` (create)
- **Done when**: Skill contains intent detection patterns and keyword tables
- **Verify**: `test -f plugins/ralph-specum/skills/intent-classification/SKILL.md && grep -q "intent" plugins/ralph-specum/skills/intent-classification/SKILL.md`
- **Commit**: `feat(ralph-specum): add intent-classification skill`
- _Design: New Skills - intent-classification_

- [x] 2.7 Create spec-scanner skill
- **Do**:
1. Extract spec discovery logic from start.md
2. Document related specs finding, status checking, recommendation logic
- **Files**:
- `plugins/ralph-specum/skills/spec-scanner/SKILL.md` (create)
- **Done when**: Skill contains spec discovery patterns
- **Verify**: `test -f plugins/ralph-specum/skills/spec-scanner/SKILL.md && grep -q "spec" plugins/ralph-specum/skills/spec-scanner/SKILL.md`
- **Commit**: `feat(ralph-specum): add spec-scanner skill`
- _Design: New Skills - spec-scanner_

- [x] 2.8 Create parallel-research skill
- **Do**:
1. Extract parallel execution pattern from research.md
2. Document multi-agent spawning, parallel search, results merge algorithm
- **Files**:
- `plugins/ralph-specum/skills/parallel-research/SKILL.md` (create)
- **Done when**: Skill contains parallel execution and merge patterns
- **Verify**: `test -f plugins/ralph-specum/skills/parallel-research/SKILL.md && grep -q "parallel" plugins/ralph-specum/skills/parallel-research/SKILL.md`
- **Commit**: `feat(ralph-specum): add parallel-research skill`
- _Design: New Skills - parallel-research_

- [x] 2.9 [VERIFY] Quality checkpoint: new skills batch 2
- **Do**: Verify skills 4-7 have proper structure
- **Verify**: `count=0; for s in branch-management intent-classification spec-scanner parallel-research; do test -f "plugins/ralph-specum/skills/$s/SKILL.md" && grep -q "^version:" "plugins/ralph-specum/skills/$s/SKILL.md" || ((count++)); done; test $count -eq 0`
- **Done when**: All 4 skills exist with version field
- **Commit**: `chore(ralph-specum): pass new skills batch 2 checkpoint` (only if fixes needed)

- [x] 2.10 Create phase-rules skill
- **Do**:
1. Extract phase-specific rules from spec-executor.md
2. Document POC/Refactor/Testing/Quality phase behaviors, shortcuts allowed per phase
- **Files**:
- `plugins/ralph-specum/skills/phase-rules/SKILL.md` (create)
- **Done when**: Skill contains all 4 phase behavior definitions
- **Verify**: `test -f plugins/ralph-specum/skills/phase-rules/SKILL.md && grep -q "Phase" plugins/ralph-specum/skills/phase-rules/SKILL.md`
- **Commit**: `feat(ralph-specum): add phase-rules skill`
- _Design: New Skills - phase-rules_

- [x] 2.11 Create commit-discipline skill
- **Do**:
1. Extract commit rules from spec-executor.md
2. Document commit message format, spec file inclusion, commit frequency rules
- **Files**:
- `plugins/ralph-specum/skills/commit-discipline/SKILL.md` (create)
- **Done when**: Skill contains commit conventions and rules
- **Verify**: `test -f plugins/ralph-specum/skills/commit-discipline/SKILL.md && grep -q "commit" plugins/ralph-specum/skills/commit-discipline/SKILL.md`
- **Commit**: `feat(ralph-specum): add commit-discipline skill`
- _Design: New Skills - commit-discipline_

- [x] 2.12 Create quality-checkpoints skill
- **Do**:
1. Extract [VERIFY] task rules from task-planner.md
2. Document checkpoint frequency, format, verification commands
- **Files**:
- `plugins/ralph-specum/skills/quality-checkpoints/SKILL.md` (create)
- **Done when**: Skill contains checkpoint insertion rules and formats
- **Verify**: `test -f plugins/ralph-specum/skills/quality-checkpoints/SKILL.md && grep -q "VERIFY" plugins/ralph-specum/skills/quality-checkpoints/SKILL.md`
- **Commit**: `feat(ralph-specum): add quality-checkpoints skill`
- _Design: New Skills - quality-checkpoints_

- [x] 2.13 Create quality-commands skill
- **Do**:
1. Extract quality command discovery from research-analyst.md
2. Document package.json/Makefile/CI discovery patterns, fallback commands
- **Files**:
- `plugins/ralph-specum/skills/quality-commands/SKILL.md` (create)
- **Done when**: Skill contains command discovery patterns
- **Verify**: `test -f plugins/ralph-specum/skills/quality-commands/SKILL.md && grep -q "package.json" plugins/ralph-specum/skills/quality-commands/SKILL.md`
- **Commit**: `feat(ralph-specum): add quality-commands skill`
- _Design: New Skills - quality-commands_

- [x] 2.14 [VERIFY] Quality checkpoint: new skills batch 3
- **Do**: Verify skills 8-11 have proper structure
- **Verify**: `count=0; for s in phase-rules commit-discipline quality-checkpoints quality-commands; do test -f "plugins/ralph-specum/skills/$s/SKILL.md" && grep -q "^version:" "plugins/ralph-specum/skills/$s/SKILL.md" || ((count++)); done; test $count -eq 0`
- **Done when**: All 4 skills exist with version field
- **Commit**: `chore(ralph-specum): pass new skills batch 3 checkpoint` (only if fixes needed)

### B2: Simplify Commands

- [x] 2.15 Simplify implement.md command
- **Do**:
1. Replace inline coordinator prompt with skill reference to coordinator-pattern
2. Replace inline recovery logic with skill reference to failure-recovery
3. Replace inline verification logic with skill reference to verification-layers
4. Target: ~150 lines (down from 1200+)
- **Files**:
- `plugins/ralph-specum/commands/implement.md` (edit)
- **Done when**: Command references skills, reduced to ~150-200 lines
- **Verify**: `test $(wc -l < plugins/ralph-specum/commands/implement.md) -lt 300 && grep -q "skill" plugins/ralph-specum/commands/implement.md`
- **Commit**: `refactor(ralph-specum): simplify implement.md to reference skills`
- _Design: Command Simplification Plan_

- [x] 2.16 Simplify start.md command
- **Do**:
1. Replace inline branch management with skill reference to branch-management
2. Replace inline intent classification with skill reference to intent-classification
3. Replace inline spec scanning with skill reference to spec-scanner
4. Target: ~200 lines (down from 980+)
- **Files**:
- `plugins/ralph-specum/commands/start.md` (edit)
- **Done when**: Command references skills, reduced to ~200-250 lines
- **Verify**: `test $(wc -l < plugins/ralph-specum/commands/start.md) -lt 350 && grep -q "skill" plugins/ralph-specum/commands/start.md`
- **Commit**: `refactor(ralph-specum): simplify start.md to reference skills`
- _Design: Command Simplification Plan_

- [x] 2.17 Simplify research.md command
- **Do**:
1. Replace inline parallel execution with skill reference to parallel-research
2. Target: ~150 lines (down from 700+)
- **Files**:
- `plugins/ralph-specum/commands/research.md` (edit)
- **Done when**: Command references skills, reduced to ~150-200 lines
- **Verify**: `test $(wc -l < plugins/ralph-specum/commands/research.md) -lt 250 && grep -q "skill" plugins/ralph-specum/commands/research.md`
- **Commit**: `refactor(ralph-specum): simplify research.md to reference skills`
- _Design: Command Simplification Plan_

- [x] 2.18 Simplify design.md, requirements.md, tasks.md commands
- **Do**:
1. Each command already uses interview-framework skill
2. Ensure explicit skill references are present
3. Target: ~80 lines each (down from ~300)
- **Files**:
- `plugins/ralph-specum/commands/design.md` (edit)
- `plugins/ralph-specum/commands/requirements.md` (edit)
- `plugins/ralph-specum/commands/tasks.md` (edit)
- **Done when**: Commands explicitly reference interview-framework skill
- **Verify**: `for f in design requirements tasks; do test $(wc -l < "plugins/ralph-specum/commands/$f.md") -lt 150 || echo "FAIL: $f"; done | grep -c FAIL | xargs test 0 -eq`
- **Commit**: `refactor(ralph-specum): simplify phase commands to reference skills`
- _Design: Command Simplification Plan_

- [x] 2.19 [VERIFY] Quality checkpoint: command simplification
- **Do**: Verify all simplified commands are under target line counts
- **Verify**: `count=0; test $(wc -l < plugins/ralph-specum/commands/implement.md) -lt 300 || ((count++)); test $(wc -l < plugins/ralph-specum/commands/start.md) -lt 350 || ((count++)); test $(wc -l < plugins/ralph-specum/commands/research.md) -lt 250 || ((count++)); test $count -eq 0`
- **Done when**: All major commands under target line counts
- **Commit**: `chore(ralph-specum): pass command simplification checkpoint` (only if fixes needed)

### B3: Simplify Agents

- [x] 2.20 Simplify spec-executor.md agent
- **Do**:
1. Replace inline phase rules with skill reference to phase-rules
2. Replace inline commit discipline with skill reference to commit-discipline
3. Add skill reference to verification-layers for [VERIFY] tasks
4. Target: ~200 lines (down from 440)
- **Files**:
- `plugins/ralph-specum/agents/spec-executor.md` (edit)
- **Done when**: Agent references skills, reduced to ~200-250 lines
- **Verify**: `test $(wc -l < plugins/ralph-specum/agents/spec-executor.md) -lt 300 && grep -q "skill" plugins/ralph-specum/agents/spec-executor.md`
- **Commit**: `refactor(ralph-specum): simplify spec-executor.md to reference skills`
- _Design: Agent Simplification Plan_

- [x] 2.21 Simplify task-planner.md agent
- **Do**:
1. Replace inline POC workflow with skill reference to phase-rules
2. Replace inline quality checkpoints with skill reference to quality-checkpoints
3. Target: ~250 lines (down from 520)
- **Files**:
- `plugins/ralph-specum/agents/task-planner.md` (edit)
- **Done when**: Agent references skills, reduced to ~250-300 lines
- **Verify**: `test $(wc -l < plugins/ralph-specum/agents/task-planner.md) -lt 350 && grep -q "skill" plugins/ralph-specum/agents/task-planner.md`
- **Commit**: `refactor(ralph-specum): simplify task-planner.md to reference skills`
- _Design: Agent Simplification Plan_

- [x] 2.22 Simplify research-analyst.md agent
- **Do**:
1. Replace inline quality command discovery with skill reference to quality-commands
2. Target: ~200 lines (down from 340)
- **Files**:
- `plugins/ralph-specum/agents/research-analyst.md` (edit)
- **Done when**: Agent references skills, reduced to ~200-250 lines
- **Verify**: `test $(wc -l < plugins/ralph-specum/agents/research-analyst.md) -lt 280 && grep -q "skill" plugins/ralph-specum/agents/research-analyst.md`
- **Commit**: `refactor(ralph-specum): simplify research-analyst.md to reference skills`
- _Design: Agent Simplification Plan_

- [x] 2.23 [VERIFY] Quality checkpoint: agent simplification
- **Do**: Verify all simplified agents are under target line counts
- **Verify**: `count=0; test $(wc -l < plugins/ralph-specum/agents/spec-executor.md) -lt 300 || ((count++)); test $(wc -l < plugins/ralph-specum/agents/task-planner.md) -lt 350 || ((count++)); test $(wc -l < plugins/ralph-specum/agents/research-analyst.md) -lt 280 || ((count++)); test $count -eq 0`
- **Done when**: All simplified agents under target line counts
- **Commit**: `chore(ralph-specum): pass agent simplification checkpoint` (only if fixes needed)

---

## Phase 3: Testing

Minimal testing per interview context.

- [x] 3.1 Run full validation script
- **Do**: Execute validation script to verify all compliance requirements
- **Files**: (none - verification only)
- **Done when**: Validation script passes with 0 errors
- **Verify**: `bash scripts/validate-plugins.sh`
- **Commit**: None (verification only)
- _Requirements: AC-5.1, AC-5.2, AC-5.3, AC-5.4_

---

## Phase 4: Quality Gates

- [x] 4.1 [VERIFY] Full local validation
- **Do**: Run validation script and verify all components
- **Verify**: `bash scripts/validate-plugins.sh && echo "All checks pass"`
- **Done when**: Validation passes, no compliance issues
- **Commit**: `fix(plugins): address validation issues` (only if fixes needed)

- [x] 4.2 Create PR and verify
- **Do**:
1. Verify current branch is feature branch: `git branch --show-current`
2. Push branch: `git push -u origin $(git branch --show-current)`
3. Create PR: `gh pr create --title "refactor(plugins): apply plugin-dev best practices" --body "..."`
4. Wait for CI: `gh pr checks --watch`
- **Verify**: `gh pr checks | grep -v "pending\|in_progress" | grep -c "fail" | xargs test 0 -eq`
- **Done when**: PR created, CI passes
- **Commit**: None (PR creation)

---

## Phase 5: PR Lifecycle

- [x] 5.1 Monitor CI and fix failures
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

Align spec phases to the required 4‑phase POC‑first workflow.

This spec defines five phases, but the repo standard mandates exactly four (POC → Refactor → Testing → Quality Gates). Please merge PR lifecycle steps into Phase 4 or move them to Notes/appendix.

Based on learnings: “All specs must follow the 4-phase POC-first workflow: Phase 1 (Make It Work - POC validation, skip tests), Phase 2 (Refactoring - code cleanup), Phase 3 (Testing - unit, integration, e2e), Phase 4 (Quality Gates - lint, types, CI, PR)”.

🤖 Prompt for AI Agents
In `@specs/refactor-plugins/tasks.md` around lines 10 - 511, The spec currently
defines five phases (Phase 1..5) but must follow the repo standard four-phase
POC-first workflow; update specs/refactor-plugins/tasks.md to consolidate the PR
lifecycle/PR creation and monitoring steps (the content under "Phase 5: PR
Lifecycle" and the PR steps in "Phase 4: Quality Gates" / item 4.2) into the
Phase 4 "Quality Gates" section or move them to a Notes/Appendix section, and
rename/ensure the top-level headings match exactly: Phase 1: Make It Work (POC),
Phase 2: Refactoring, Phase 3: Testing, Phase 4: Quality Gates; adjust or remove
the separate "Phase 5" heading and ensure references to PR steps (4.2, 5.1, PR
creation/monitoring) are present only under Phase 4 or an appendix so the
document enforces the required 4‑phase workflow.

Comment on lines 561 to 565
| Phase | Files Changed | Files Created | Files Deleted |
|-------|---------------|---------------|---------------|
| Phase A | 32 | 9 | 9 |
| Phase B | 10 | 11 | 0 |
| **Total** | **42** | **20** | **9** |
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix markdown table spacing (MD060).

The table pipes lack spacing, which markdownlint flags.

✅ Suggested fix
-| Phase | Files Changed | Files Created | Files Deleted |
-|-------|---------------|---------------|---------------|
-| Phase A | 32 | 9 | 9 |
-| Phase B | 10 | 11 | 0 |
-| **Total** | **42** | **20** | **9** |
+| Phase | Files Changed | Files Created | Files Deleted |
+|-------|---------------|---------------|---------------|
+| Phase A | 32 | 9 | 9 |
+| Phase B | 10 | 11 | 0 |
+| **Total** | **42** | **20** | **9** |
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 562-562: Table column style
Table pipe is missing space to the right for style "compact"

(MD060, table-column-style)


[warning] 562-562: Table column style
Table pipe is missing space to the left for style "compact"

(MD060, table-column-style)


[warning] 562-562: Table column style
Table pipe is missing space to the right for style "compact"

(MD060, table-column-style)


[warning] 562-562: Table column style
Table pipe is missing space to the left for style "compact"

(MD060, table-column-style)


[warning] 562-562: Table column style
Table pipe is missing space to the right for style "compact"

(MD060, table-column-style)


[warning] 562-562: Table column style
Table pipe is missing space to the left for style "compact"

(MD060, table-column-style)


[warning] 562-562: Table column style
Table pipe is missing space to the right for style "compact"

(MD060, table-column-style)


[warning] 562-562: Table column style
Table pipe is missing space to the left for style "compact"

(MD060, table-column-style)

🤖 Prompt for AI Agents
In `@specs/refactor-plugins/tasks.md` around lines 561 - 565, The markdown table
in specs/refactor-plugins/tasks.md violates MD060 because the pipe characters in
the header and rows lack consistent spaces; update the three table lines (the
header line "| Phase | Files Changed | Files Created | Files Deleted |" the
separator "|-------|---------------|---------------|---------------|" and each
data row "| Phase A | 32 | 9 | 9 |", "| Phase B | 10 | 11 | 0 |", "| **Total** |
**42** | **20** | **9** |") so that there is a single space before and after
each pipe delimiter (i.e., ensure " | " between columns) to satisfy markdownlint
spacing rules.

- Add Skill tool to cancel.md allowed-tools (ralph-speckit)
- Fix "Ralph Loop loop" duplicate wording to "Ralph Loop"
- Change all-commands-SKIP to output VERIFICATION_FAIL (qa-engineer)
- Add file path to T001 example (tasks.md)
- Fix markdown table spacing (MD060) in multiple files:
  - start.md, intent-classification, quality-commands, spec-scanner
  - requirements.md, tasks.md
- Capitalize GitHub in CI Configs heading (quality-commands)
- Fix spec-scanner Example 3 match counts for consistency
- Fix arithmetic increment under set -e (validate-plugins.sh)
- Fix Example 2 "new" keyword to "new system" (intent-classification)
- Bump versions: ralph-speckit 0.5.0->0.5.1, ralph-specum 2.11.0->2.11.1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
plugins/ralph-specum/commands/start.md (1)

102-109: ⚠️ Potential issue | 🟠 Major

Align phase model with required 4-phase POC-first workflow.

The phase list and state initialization omit the required phases (POC validation, refactoring, testing, quality gates), which conflicts with the mandated workflow. Please update the phase taxonomy and flow steps to include Phase 1–4 explicitly.

💡 Suggested direction (update phases and state)
-| Phase | Action |
-|-------|--------|
-| research | Invoke research-analyst agent |
-| requirements | Invoke product-manager agent |
-| design | Invoke architect-reviewer agent |
-| tasks | Invoke task-planner agent |
-| execution | Invoke spec-executor for current task |
+| Phase | Action |
+|-------|--------|
+| poc | Invoke research-analyst agent; validate POC (skip tests) |
+| refactor | Invoke architect-reviewer agent; clean up and harden |
+| testing | Invoke qa-engineer agent; unit/integration/e2e |
+| quality-gates | Run lint/types/CI/PR checks |
-6. Initialize `.ralph-state.json` with phase "research"
+6. Initialize `.ralph-state.json` with phase "poc"

Based on learnings: “All specs must follow the 4-phase POC-first workflow: Phase 1 (Make It Work - POC validation, skip tests), Phase 2 (Refactoring - code cleanup), Phase 3 (Testing - unit, integration, e2e), Phase 4 (Quality Gates - lint, types, CI, PR)”.

Also applies to: 124-124

plugins/ralph-speckit/agents/qa-engineer.md (1)

311-317: ⚠️ Potential issue | 🟠 Major

Align “command not found” handling with VERIFICATION_FAIL rules.

The mandatory section states any verification command failure should yield VERIFICATION_FAIL, but the error table says “Command not found” is SKIP. That inconsistency can allow missing commands to pass.

🛠️ Suggested fix
-| Command not found | Mark as SKIP, log warning, continue |
+| Command not found | Mark as FAIL, report missing command |
🤖 Fix all issues with AI agents
In `@plugins/ralph-speckit/agents/qa-engineer.md`:
- Around line 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.

In `@plugins/ralph-specum/skills/quality-commands/SKILL.md`:
- Around line 41-43: Replace the overly restrictive grep pattern '^[a-z]+:' in
the SKILL.md example with a broader pattern that also matches digits, hyphens,
underscores and dots (e.g. grep -E '^[A-Za-z0-9._-]+:' Makefile) so targets like
test-unit, build_app or e2e are not missed; update the literal pattern string in
the doc (the grep example) to this new regex.

In `@plugins/ralph-specum/skills/spec-scanner/SKILL.md`:
- Around line 82-89: The tables in SKILL.md use compact pipe separators causing
markdownlint MD060 errors; update every table (including the "Stop Words",
"Scoring Rules" and "Edge Cases" tables) to add a single space before and after
each pipe and ensure each separator row uses the same column dashes and spacing
style (e.g., "| --- | --- |") so the header, separator, and data rows are
consistently spaced across the file.

In `@scripts/validate-plugins.sh`:
- Around line 84-95: The current check uses grep -q '"matcher"' which can be
fooled by unrelated strings; replace it with a jq-based validation on hooks_file
that asserts every hook object contains the matcher key (e.g., use jq -e
'all(.hooks[]; has("matcher"))' or 'all(.[]; has("matcher"))' depending on the
schema) and then call log_pass or log_fail for that hooks_file/plugin_name
accordingly; update the conditional that references hooks_file and keep using
PLUGINS_DIR, plugin_name, log_pass and log_fail to locate and report the result.

Comment on lines 1 to 21
---
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
---
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.

Comment on lines +41 to +43
```bash
grep -E '^[a-z]+:' Makefile
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Broaden the Makefile target regex to avoid missing common targets.

^[a-z]+: skips targets like test-unit, build_app, or e2e. Consider matching common target characters.

♻️ Suggested tweak
-grep -E '^[a-z]+:' Makefile
+grep -E '^[[:alnum:]_-]+:' Makefile
🤖 Prompt for AI Agents
In `@plugins/ralph-specum/skills/quality-commands/SKILL.md` around lines 41 - 43,
Replace the overly restrictive grep pattern '^[a-z]+:' in the SKILL.md example
with a broader pattern that also matches digits, hyphens, underscores and dots
(e.g. grep -E '^[A-Za-z0-9._-]+:' Makefile) so targets like test-unit, build_app
or e2e are not missed; update the literal pattern string in the doc (the grep
example) to this new regex.

Comment on lines +82 to +89
| Category | Words |
|----------|-------|
| Articles | the, a, an |
| Prepositions | to, for, with, on, in, of |
| Conjunctions | and, or |
| Pronouns | it, this, that |
| Verbs (common) | is, be |

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix table pipe spacing to satisfy markdownlint (MD060).

The tables in this file still use compact separators. Please add spaces around pipes and keep the separator rows consistent across all tables (Stop Words, Scoring Rules, Edge Cases).

🧹 Example fix (apply to all tables)
-|----------|-------|
+| -------- | ----- |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| Category | Words |
|----------|-------|
| Articles | the, a, an |
| Prepositions | to, for, with, on, in, of |
| Conjunctions | and, or |
| Pronouns | it, this, that |
| Verbs (common) | is, be |
| Category | Words |
| -------- | ----- |
| Articles | the, a, an |
| Prepositions | to, for, with, on, in, of |
| Conjunctions | and, or |
| Pronouns | it, this, that |
| Verbs (common) | is, be |
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 83-83: Table column style
Table pipe is missing space to the right for style "compact"

(MD060, table-column-style)


[warning] 83-83: Table column style
Table pipe is missing space to the left for style "compact"

(MD060, table-column-style)


[warning] 83-83: Table column style
Table pipe is missing space to the right for style "compact"

(MD060, table-column-style)


[warning] 83-83: Table column style
Table pipe is missing space to the left for style "compact"

(MD060, table-column-style)

🤖 Prompt for AI Agents
In `@plugins/ralph-specum/skills/spec-scanner/SKILL.md` around lines 82 - 89, The
tables in SKILL.md use compact pipe separators causing markdownlint MD060
errors; update every table (including the "Stop Words", "Scoring Rules" and
"Edge Cases" tables) to add a single space before and after each pipe and ensure
each separator row uses the same column dashes and spacing style (e.g., "| --- |
--- |") so the header, separator, and data rows are consistently spaced across
the file.

Integrate walkthrough feature from main:
- Add Walkthrough sections to research.md, requirements.md, design.md, tasks.md
- Walkthroughs include Key Points, Metrics, and Review Focus
- Error handling for missing data in walkthrough extraction
- Keep version bumps from PR review fixes (2.11.1, 0.5.1)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
name: taskstoissues
description: Convert existing tasks into actionable, dependency-ordered GitHub issues for the feature based on available design artifacts.
tools: ['github/github-mcp-server/issue_write']
allowed-tools: [Read, Bash, mcp__github__create_issue]
Copy link
Owner Author

Choose a reason for hiding this comment

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

hit to use gh cli as fallback

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🤖 Fix all issues with AI agents
In `@plugins/ralph-specum/commands/design.md`:
- Line 26: Reword step 3 to explicitly list the sequence of operations: first
read the `.ralph-state.json` file, then set the awaitingApproval property to
false, and finally write the updated JSON back to disk (i.e., "Read
`.ralph-state.json`, set `awaitingApproval: false`, and write back"). Mention
the `.ralph-state.json` file and the awaitingApproval field so implementers know
exactly which file/field to modify.

In `@plugins/ralph-specum/commands/requirements.md`:
- Around line 67-73: Replace the bold-as-heading "Skip if --quick flag." in the
"Review Loop" section with a proper Markdown heading (e.g., "Skip if --quick
flag") followed by a normal sentence explaining to ask the user to review
generated requirements and to re-invoke the product-manager with feedback until
approved; keep the existing note about skipping when --quick is provided and
ensure the "Update State" instruction that writes .ralph-state.json remains
unchanged.
- Around line 40-49: The markdown table under the "### Requirements Interview
Question Pool" header needs surrounding blank lines and consistent spacing
around pipe characters to satisfy MD058/MD060; edit the table rows and header
(including the separator row with ---) so each cell is separated by a single
space on both sides of "|" (e.g., " | ") and add one blank line before the table
and one blank line after it (the table stores responses in `.progress.md` under
"### Requirements Interview (from requirements.md)"—ensure that heading remains
intact and the `primaryUsers`, `priorityTradeoffs`, `successCriteria`, and
`additionalReqContext` keys and options columns keep the same content while you
normalize the pipe spacing and blank lines).

In `@plugins/ralph-specum/commands/research.md`:
- Around line 92-122: The markdown tables in the Research template are missing
separator rows; after each header row — "| Spec | Relevance | Relationship | May
Need Update |", "| Type | Command | Source |", and "| Aspect | Assessment |
Notes |" — insert the corresponding Markdown separator row (e.g. "| --- | --- |
--- | --- |", "| --- | --- | --- |", and "| --- | --- | --- |") immediately
beneath each header so the tables render correctly; update the template around
the "Related Specs", "Quality Commands", and "Feasibility Assessment" sections
accordingly.

In `@plugins/ralph-specum/commands/tasks.md`:
- Around line 46-49: The {goal} placeholder in the interview questions is
ambiguous; update the tasks.md "Gather Context" section to explicitly define how
{goal} is populated by stating that goal is extracted from the requirements.md
(e.g., "goal = extract primary objective from requirements.md"), or
alternatively note that {goal} is a literal shown to users—add this
clarification next to the "Gather Context" heading and reference the {goal}
placeholder so readers know to pull it from requirements.md (or that it will be
displayed verbatim).
- Around line 35-38: Update the skill-reference entry in
plugins/ralph-specum/commands/tasks.md to use the full repository-root path:
replace the relative `skills/interview-framework/SKILL.md` with
`plugins/ralph-specum/skills/interview-framework/SKILL.md` inside the
<skill-reference> block so it matches the convention used in start.md,
research.md, and implement.md; ensure the token `Apply skill` text remains
unchanged aside from the path.
🧹 Nitpick comments (1)
plugins/ralph-specum/commands/design.md (1)

43-49: Optional: Fix table formatting for consistency.

Static analysis detected minor table formatting issues: missing blank line around the table and missing spaces around pipe characters. While these don't affect functionality, fixing them would improve consistency with markdown style guidelines.

📋 Proposed formatting fix
 | 3 | How should this integrate with existing systems? | Required | `integrationApproach` | Use existing APIs / Create new layer / Minimal integration / Other |
 | 4 | Any other design context? (or 'done') | Optional | `additionalDesignContext` | No, proceed / Yes, more details / Other |
+
-Store responses in `.progress.md` under `### Design Interview (from design.md)`
+Store responses in `.progress.md` under `### Design Interview (from design.md)`

2. Check `./specs/$spec/requirements.md` exists. If not, error: "Requirements not found. Run /ralph-specum:requirements first."
3. Read `.ralph-state.json`
4. Clear approval flag: update state with `awaitingApproval: false`
3. Read `.ralph-state.json` and clear approval flag: `awaitingApproval: false`
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Clarify the read-and-update operation sequence.

The instruction "Read .ralph-state.json and clear approval flag" describes two operations but is phrased as a single step. Consider being explicit about the sequence: "Read .ralph-state.json, set awaitingApproval: false, and write back" to prevent ambiguity during execution.

✍️ Suggested clarification
-3. Read `.ralph-state.json` and clear approval flag: `awaitingApproval: false`
+3. Read `.ralph-state.json`, set `awaitingApproval: false`, and write back
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
3. Read `.ralph-state.json` and clear approval flag: `awaitingApproval: false`
3. Read `.ralph-state.json`, set `awaitingApproval: false`, and write back
🤖 Prompt for AI Agents
In `@plugins/ralph-specum/commands/design.md` at line 26, Reword step 3 to
explicitly list the sequence of operations: first read the `.ralph-state.json`
file, then set the awaitingApproval property to false, and finally write the
updated JSON back to disk (i.e., "Read `.ralph-state.json`, set
`awaitingApproval: false`, and write back"). Mention the `.ralph-state.json`
file and the awaitingApproval field so implementers know exactly which
file/field to modify.

Comment on lines 40 to +49
### Requirements Interview Question Pool

| # | Question | Required | Key | Options |
|---|----------|----------|-----|---------|
| 1 | Who are the primary users of this feature? | Required | `primaryUsers` | Internal developers only / End users via UI / Both developers and end users / Other |
| 2 | What priority tradeoffs should we consider for {goal}? | Required | `priorityTradeoffs` | Prioritize speed of delivery / Prioritize code quality and maintainability / Prioritize feature completeness / Other |
| 3 | What defines success for this feature? | Required | `successCriteria` | Feature works as specified / High performance/reliability required / User satisfaction metrics / Other |
| 4 | Any other requirements context? (or say 'done' to proceed) | Optional | `additionalReqContext` | No, let's proceed / Yes, I have more details / Other |

### Store Requirements Interview Responses

After interview, append to `.progress.md` under the "Interview Responses" section:

```markdown
### Requirements Interview (from requirements.md)
- Primary users: [responses.primaryUsers]
- Priority tradeoffs: [responses.priorityTradeoffs]
- Success criteria: [responses.successCriteria]
- Additional requirements context: [responses.additionalReqContext]
[Any follow-up responses from "Other" selections]
```
| 1 | Who are the primary users of this feature? | Required | `primaryUsers` | Internal devs / End users via UI / Both / Other |
| 2 | What priority tradeoffs for {goal}? | Required | `priorityTradeoffs` | Speed of delivery / Code quality / Feature completeness / Other |
| 3 | What defines success for this feature? | Required | `successCriteria` | Works as specified / High performance / User satisfaction / Other |
| 4 | Any other requirements context? (or 'done') | Optional | `additionalReqContext` | No, proceed / Yes, more details / Other |

### Interview Context Format

Pass the combined context (prior + new responses) to the Task delegation prompt:

```text
Interview Context:
- Primary users: [Answer]
- Priority tradeoffs: [Answer]
- Success criteria: [Answer]
- Follow-up details: [Any additional clarifications]
```

Store this context to include in the Task delegation prompt.
Store responses in `.progress.md` under `### Requirements Interview (from requirements.md)`
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix table formatting (blank lines + pipe spacing).
markdownlint flags MD058/MD060 around the question pool table. Add blank lines around the table and ensure spaces around pipes.

🔧 Proposed markdown fixes
 ### Requirements Interview Question Pool
-
-| # | Question | Required | Key | Options |
-|---|----------|----------|-----|---------|
-| 1 | Who are the primary users of this feature? | Required | `primaryUsers` | Internal devs / End users via UI / Both / Other |
-| 2 | What priority tradeoffs for {goal}? | Required | `priorityTradeoffs` | Speed of delivery / Code quality / Feature completeness / Other |
-| 3 | What defines success for this feature? | Required | `successCriteria` | Works as specified / High performance / User satisfaction / Other |
-| 4 | Any other requirements context? (or 'done') | Optional | `additionalReqContext` | No, proceed / Yes, more details / Other |
-
-Store responses in `.progress.md` under `### Requirements Interview (from requirements.md)`
+
+| # | Question | Required | Key | Options |
+| --- | --- | --- | --- | --- |
+| 1 | Who are the primary users of this feature? | Required | `primaryUsers` | Internal devs / End users via UI / Both / Other |
+| 2 | What priority tradeoffs for {goal}? | Required | `priorityTradeoffs` | Speed of delivery / Code quality / Feature completeness / Other |
+| 3 | What defines success for this feature? | Required | `successCriteria` | Works as specified / High performance / User satisfaction / Other |
+| 4 | Any other requirements context? (or 'done') | Optional | `additionalReqContext` | No, proceed / Yes, more details / Other |
+
+Store responses in `.progress.md` under `### Requirements Interview (from requirements.md)`
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Requirements Interview Question Pool
| # | Question | Required | Key | Options |
|---|----------|----------|-----|---------|
| 1 | Who are the primary users of this feature? | Required | `primaryUsers` | Internal developers only / End users via UI / Both developers and end users / Other |
| 2 | What priority tradeoffs should we consider for {goal}? | Required | `priorityTradeoffs` | Prioritize speed of delivery / Prioritize code quality and maintainability / Prioritize feature completeness / Other |
| 3 | What defines success for this feature? | Required | `successCriteria` | Feature works as specified / High performance/reliability required / User satisfaction metrics / Other |
| 4 | Any other requirements context? (or say 'done' to proceed) | Optional | `additionalReqContext` | No, let's proceed / Yes, I have more details / Other |
### Store Requirements Interview Responses
After interview, append to `.progress.md` under the "Interview Responses" section:
```markdown
### Requirements Interview (from requirements.md)
- Primary users: [responses.primaryUsers]
- Priority tradeoffs: [responses.priorityTradeoffs]
- Success criteria: [responses.successCriteria]
- Additional requirements context: [responses.additionalReqContext]
[Any follow-up responses from "Other" selections]
```
| 1 | Who are the primary users of this feature? | Required | `primaryUsers` | Internal devs / End users via UI / Both / Other |
| 2 | What priority tradeoffs for {goal}? | Required | `priorityTradeoffs` | Speed of delivery / Code quality / Feature completeness / Other |
| 3 | What defines success for this feature? | Required | `successCriteria` | Works as specified / High performance / User satisfaction / Other |
| 4 | Any other requirements context? (or 'done') | Optional | `additionalReqContext` | No, proceed / Yes, more details / Other |
### Interview Context Format
Pass the combined context (prior + new responses) to the Task delegation prompt:
```text
Interview Context:
- Primary users: [Answer]
- Priority tradeoffs: [Answer]
- Success criteria: [Answer]
- Follow-up details: [Any additional clarifications]
```
Store this context to include in the Task delegation prompt.
Store responses in `.progress.md` under `### Requirements Interview (from requirements.md)`
### Requirements Interview Question Pool
| # | Question | Required | Key | Options |
| --- | --- | --- | --- | --- |
| 1 | Who are the primary users of this feature? | Required | `primaryUsers` | Internal devs / End users via UI / Both / Other |
| 2 | What priority tradeoffs for {goal}? | Required | `priorityTradeoffs` | Speed of delivery / Code quality / Feature completeness / Other |
| 3 | What defines success for this feature? | Required | `successCriteria` | Works as specified / High performance / User satisfaction / Other |
| 4 | Any other requirements context? (or 'done') | Optional | `additionalReqContext` | No, proceed / Yes, more details / Other |
Store responses in `.progress.md` under `### Requirements Interview (from requirements.md)`
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 48-48: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


[warning] 49-49: Table column style
Table pipe is missing space to the right for style "compact"

(MD060, table-column-style)


[warning] 49-49: Table column style
Table pipe is missing space to the left for style "compact"

(MD060, table-column-style)


[warning] 49-49: Table column style
Table pipe is missing space to the right for style "compact"

(MD060, table-column-style)


[warning] 49-49: Table column style
Table pipe is missing space to the left for style "compact"

(MD060, table-column-style)


[warning] 49-49: Table column style
Table pipe is missing space to the right for style "compact"

(MD060, table-column-style)


[warning] 49-49: Table column style
Table pipe is missing space to the left for style "compact"

(MD060, table-column-style)


[warning] 49-49: Table column style
Table pipe is missing space to the right for style "compact"

(MD060, table-column-style)


[warning] 49-49: Table column style
Table pipe is missing space to the left for style "compact"

(MD060, table-column-style)

🤖 Prompt for AI Agents
In `@plugins/ralph-specum/commands/requirements.md` around lines 40 - 49, The
markdown table under the "### Requirements Interview Question Pool" header needs
surrounding blank lines and consistent spacing around pipe characters to satisfy
MD058/MD060; edit the table rows and header (including the separator row with
---) so each cell is separated by a single space on both sides of "|" (e.g., " |
") and add one blank line before the table and one blank line after it (the
table stores responses in `.progress.md` under "### Requirements Interview (from
requirements.md)"—ensure that heading remains intact and the `primaryUsers`,
`priorityTradeoffs`, `successCriteria`, and `additionalReqContext` keys and
options columns keep the same content while you normalize the pipe spacing and
blank lines).

Comment on lines +67 to +73
## Review Loop

Check if `--quick` appears anywhere in `$ARGUMENTS`. If present, skip directly to "Update State".

### Requirements Review Questions

After the requirements have been created by the product-manager agent, ask the user to review them and provide feedback.

**Review Question Flow:**

1. **Read the generated requirements.md** to understand what was created
2. **Ask initial review questions** to confirm the requirements meet their expectations:

| # | Question | Key | Options |
|---|----------|-----|---------|
| 1 | Do the user stories capture your intended functionality? | `userStoriesApproval` | Yes, complete / Missing some stories / Need refinement / Other |
| 2 | Are the acceptance criteria clear and testable? | `acceptanceCriteriaApproval` | Yes, clear / Need more details / Some are unclear / Other |
| 3 | Are the priorities and scope appropriate? | `prioritiesApproval` | Yes, appropriate / Need adjustment / Missing items / Other |
| 4 | Any other feedback on the requirements? (or say 'approved' to proceed) | `requirementsFeedback` | Approved, let's proceed / Yes, I have feedback / Other |

### Store Requirements Review Responses

After review questions, append to `.progress.md` under a new section:

```markdown
### Requirements Review (from requirements.md)
- User stories approval: [responses.userStoriesApproval]
- Acceptance criteria approval: [responses.acceptanceCriteriaApproval]
- Priorities approval: [responses.prioritiesApproval]
- Requirements feedback: [responses.requirementsFeedback]
[Any follow-up responses from "Other" selections]
```

### Update Requirements Based on Feedback

<mandatory>
If the user provided feedback requiring changes (any answer other than "Yes, complete", "Yes, clear", "Yes, appropriate", or "Approved, let's proceed"), you MUST:

1. Collect specific change requests from the user
2. Invoke product-manager again with update instructions
3. Repeat the review questions after updates
4. Continue loop until user approves
</mandatory>

**Update Flow:**

If changes are needed:

1. **Ask for specific changes:**
```
What specific changes would you like to see in the requirements?
```

2. **Invoke product-manager with update prompt:**
```
You are updating the requirements for spec: $spec
Spec path: ./specs/$spec/

Current requirements: ./specs/$spec/requirements.md

User feedback:
$user_feedback

Your task:
1. Read the existing requirements.md
2. Understand the user's feedback and concerns
3. Update the requirements to address the feedback
4. Maintain consistency with research findings
5. Update requirements.md with the changes
6. Append update notes to .progress.md explaining what changed

Focus on addressing the specific feedback while maintaining requirements quality.
```

3. **After update, repeat review questions** (go back to "Requirements Review Questions")

4. **Continue until approved:** Loop until user responds with approval
**Skip if --quick flag.** Ask user to review generated requirements. If changes needed, invoke product-manager again with feedback and repeat until approved.

## Update State

After requirements complete and approved:

1. Update `.ralph-state.json`:
```json
{
"phase": "requirements",
"awaitingApproval": true,
...
}
```

2. Update `.progress.md`:
- Mark research as implicitly approved
- Set current phase to requirements
Update `.ralph-state.json`: `{ "phase": "requirements", "awaitingApproval": true }`
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Avoid bold-as-heading in review loop.
markdownlint MD036 flags the bold sentence; use a heading + sentence instead.

✍️ Proposed tweak
-**Skip if --quick flag.** Ask user to review generated requirements. If changes needed, invoke product-manager again with feedback and repeat until approved.
+### Quick mode
+Skip if --quick flag. Ask user to review generated requirements. If changes needed, invoke product-manager again with feedback and repeat until approved.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Review Loop
Check if `--quick` appears anywhere in `$ARGUMENTS`. If present, skip directly to "Update State".
### Requirements Review Questions
After the requirements have been created by the product-manager agent, ask the user to review them and provide feedback.
**Review Question Flow:**
1. **Read the generated requirements.md** to understand what was created
2. **Ask initial review questions** to confirm the requirements meet their expectations:
| # | Question | Key | Options |
|---|----------|-----|---------|
| 1 | Do the user stories capture your intended functionality? | `userStoriesApproval` | Yes, complete / Missing some stories / Need refinement / Other |
| 2 | Are the acceptance criteria clear and testable? | `acceptanceCriteriaApproval` | Yes, clear / Need more details / Some are unclear / Other |
| 3 | Are the priorities and scope appropriate? | `prioritiesApproval` | Yes, appropriate / Need adjustment / Missing items / Other |
| 4 | Any other feedback on the requirements? (or say 'approved' to proceed) | `requirementsFeedback` | Approved, let's proceed / Yes, I have feedback / Other |
### Store Requirements Review Responses
After review questions, append to `.progress.md` under a new section:
```markdown
### Requirements Review (from requirements.md)
- User stories approval: [responses.userStoriesApproval]
- Acceptance criteria approval: [responses.acceptanceCriteriaApproval]
- Priorities approval: [responses.prioritiesApproval]
- Requirements feedback: [responses.requirementsFeedback]
[Any follow-up responses from "Other" selections]
```
### Update Requirements Based on Feedback
<mandatory>
If the user provided feedback requiring changes (any answer other than "Yes, complete", "Yes, clear", "Yes, appropriate", or "Approved, let's proceed"), you MUST:
1. Collect specific change requests from the user
2. Invoke product-manager again with update instructions
3. Repeat the review questions after updates
4. Continue loop until user approves
</mandatory>
**Update Flow:**
If changes are needed:
1. **Ask for specific changes:**
```
What specific changes would you like to see in the requirements?
```
2. **Invoke product-manager with update prompt:**
```
You are updating the requirements for spec: $spec
Spec path: ./specs/$spec/
Current requirements: ./specs/$spec/requirements.md
User feedback:
$user_feedback
Your task:
1. Read the existing requirements.md
2. Understand the user's feedback and concerns
3. Update the requirements to address the feedback
4. Maintain consistency with research findings
5. Update requirements.md with the changes
6. Append update notes to .progress.md explaining what changed
Focus on addressing the specific feedback while maintaining requirements quality.
```
3. **After update, repeat review questions** (go back to "Requirements Review Questions")
4. **Continue until approved:** Loop until user responds with approval
**Skip if --quick flag.** Ask user to review generated requirements. If changes needed, invoke product-manager again with feedback and repeat until approved.
## Update State
After requirements complete and approved:
1. Update `.ralph-state.json`:
```json
{
"phase": "requirements",
"awaitingApproval": true,
...
}
```
2. Update `.progress.md`:
- Mark research as implicitly approved
- Set current phase to requirements
Update `.ralph-state.json`: `{ "phase": "requirements", "awaitingApproval": true }`
## Review Loop
### Quick mode
Skip if --quick flag. Ask user to review generated requirements. If changes needed, invoke product-manager again with feedback and repeat until approved.
## Update State
Update `.ralph-state.json`: `{ "phase": "requirements", "awaitingApproval": true }`
🤖 Prompt for AI Agents
In `@plugins/ralph-specum/commands/requirements.md` around lines 67 - 73, Replace
the bold-as-heading "Skip if --quick flag." in the "Review Loop" section with a
proper Markdown heading (e.g., "Skip if --quick flag") followed by a normal
sentence explaining to ask the user to review generated requirements and to
re-invoke the product-manager with feedback until approved; keep the existing
note about skipping when --quick is provided and ensure the "Update State"
instruction that writes .ralph-state.json remains unchanged.

Comment on lines 92 to 122
```markdown
# Research: $spec

**Task 3 - Codebase Analysis (Explore):**
```yaml
subagent_type: Explore
thoroughness: very thorough
## Executive Summary
[Synthesize key findings - 2-3 sentences]

Topic: Existing API and caching patterns in codebase
Output: ./specs/$spec/.research-codebase.md
## External Research
### Best Practices
### Prior Art
### Pitfalls to Avoid

1. Search for existing API implementations
2. Find any caching code or patterns
3. Identify relevant dependencies
4. Document patterns with file paths
```
## Codebase Analysis
### Existing Patterns
### Dependencies
### Constraints

**Task 4 - Quality Commands (Explore):**
```yaml
subagent_type: Explore
thoroughness: quick
## Related Specs
| Spec | Relevance | Relationship | May Need Update |

Topic: Quality commands discovery
Output: ./specs/$spec/.research-quality.md
## Quality Commands
| Type | Command | Source |

1. Check package.json scripts
2. Check Makefile if exists
3. Check CI workflow commands
4. Output as table: Type | Command | Source
```
## Feasibility Assessment
| Aspect | Assessment | Notes |

**Task 5 - Related Specs (Explore):**
```yaml
subagent_type: Explore
thoroughness: medium
## Recommendations for Requirements

Topic: Related specs discovery
Output: ./specs/$spec/.research-related-specs.md
## Open Questions

1. Scan ./specs/ for existing specs
2. Read each spec's progress and requirements
3. Identify overlaps with GraphQL/caching goal
4. Output as table: Name | Relevance | Relationship | mayNeedUpdate
## Sources
```
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

Fix incomplete markdown tables in the template.

The research.md template contains three table headers without separator rows, which will cause the tables to not render properly in the generated output:

  • Line 110: | Spec | Relevance | Relationship | May Need Update |
  • Line 113: | Type | Command | Source |
  • Line 116: | Aspect | Assessment | Notes |

Each table header must be followed by a separator row for proper markdown rendering.

📋 Proposed fix to add table separators
 ## Related Specs
 | Spec | Relevance | Relationship | May Need Update |
+|------|-----------|--------------|-----------------|
 
 ## Quality Commands
 | Type | Command | Source |
+|------|---------|--------|
 
 ## Feasibility Assessment
 | Aspect | Assessment | Notes |
+|--------|------------|-------|
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```markdown
# Research: $spec
**Task 3 - Codebase Analysis (Explore):**
```yaml
subagent_type: Explore
thoroughness: very thorough
## Executive Summary
[Synthesize key findings - 2-3 sentences]
Topic: Existing API and caching patterns in codebase
Output: ./specs/$spec/.research-codebase.md
## External Research
### Best Practices
### Prior Art
### Pitfalls to Avoid
1. Search for existing API implementations
2. Find any caching code or patterns
3. Identify relevant dependencies
4. Document patterns with file paths
```
## Codebase Analysis
### Existing Patterns
### Dependencies
### Constraints
**Task 4 - Quality Commands (Explore):**
```yaml
subagent_type: Explore
thoroughness: quick
## Related Specs
| Spec | Relevance | Relationship | May Need Update |
Topic: Quality commands discovery
Output: ./specs/$spec/.research-quality.md
## Quality Commands
| Type | Command | Source |
1. Check package.json scripts
2. Check Makefile if exists
3. Check CI workflow commands
4. Output as table: Type | Command | Source
```
## Feasibility Assessment
| Aspect | Assessment | Notes |
**Task 5 - Related Specs (Explore):**
```yaml
subagent_type: Explore
thoroughness: medium
## Recommendations for Requirements
Topic: Related specs discovery
Output: ./specs/$spec/.research-related-specs.md
## Open Questions
1. Scan ./specs/ for existing specs
2. Read each spec's progress and requirements
3. Identify overlaps with GraphQL/caching goal
4. Output as table: Name | Relevance | Relationship | mayNeedUpdate
## Sources
```
🤖 Prompt for AI Agents
In `@plugins/ralph-specum/commands/research.md` around lines 92 - 122, The
markdown tables in the Research template are missing separator rows; after each
header row — "| Spec | Relevance | Relationship | May Need Update |", "| Type |
Command | Source |", and "| Aspect | Assessment | Notes |" — insert the
corresponding Markdown separator row (e.g. "| --- | --- | --- | --- |", "| --- |
--- | --- |", and "| --- | --- | --- |") immediately beneath each header so the
tables render correctly; update the template around the "Related Specs",
"Quality Commands", and "Feasibility Assessment" sections accordingly.

Comment on lines +35 to +38
<skill-reference>
**Apply skill**: `skills/interview-framework/SKILL.md`
Use interview framework for single-question loop, parameter chain, and completion signals.
</skill-reference>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify interview-framework skill exists and check path conventions

echo "=== Checking if interview-framework skill exists in plugin ==="
find plugins/ralph-specum -name "SKILL.md" -o -name "interview-framework" -type d 2>/dev/null

echo ""
echo "=== Listing all SKILL.md files in plugins/ralph-specum ==="
find plugins/ralph-specum -name "SKILL.md" 2>/dev/null

echo ""
echo "=== Checking skill-reference patterns in commands ==="
rg '<skill-reference>' plugins/ralph-specum/commands/ -A3 2>/dev/null | head -40

echo ""
echo "=== Checking tasks.md context around lines 35-38 ==="
sed -n '30,45p' plugins/ralph-specum/commands/tasks.md 2>/dev/null

Repository: tzachbon/smart-ralph

Length of output: 5619


🏁 Script executed:

#!/bin/bash
# Check for all skill-reference patterns to identify convention

echo "=== All skill-reference paths used in commands ==="
rg '<skill-reference>' plugins/ralph-specum/commands/ -A1 | grep "Apply skill" | sort | uniq -c

echo ""
echo "=== Commands using relative paths (skills/) ==="
rg 'Apply skill.*`skills/' plugins/ralph-specum/commands/ -l

echo ""
echo "=== Commands using full paths (plugins/ralph-specum/skills/) ==="
rg 'Apply skill.*`plugins/ralph-specum/skills/' plugins/ralph-specum/commands/ -l

echo ""
echo "=== Check if there's a plugin-dev documentation ==="
find . -path "*/plugin-dev*" -type f 2>/dev/null | head -20

Repository: tzachbon/smart-ralph

Length of output: 1835


🏁 Script executed:

#!/bin/bash
# Search for documentation on path conventions or README files

echo "=== Searching for command documentation or README ==="
find plugins/ralph-specum -name "README*" -o -name "*.md" -path "*command*" | head -10

echo ""
echo "=== Check for any comments in commands about path convention ==="
rg -i "path|convention|reference" plugins/ralph-specum/commands/ --type md | head -20

echo ""
echo "=== Check the command files that use full paths vs relative ==="
echo "--- design.md (relative path) ---"
head -5 plugins/ralph-specum/commands/design.md

echo ""
echo "--- start.md (full path) ---"
head -5 plugins/ralph-specum/commands/start.md

echo ""
echo "=== Check if there's any pattern in file modification dates or grouping ==="
ls -la plugins/ralph-specum/commands/ | grep -E 'design|requirements|tasks|start|research|implement'

Repository: tzachbon/smart-ralph

Length of output: 3861


Use full path convention for skill reference.

The skill reference uses skills/interview-framework/SKILL.md, but the established convention across most commands is to use the full path from repository root: plugins/ralph-specum/skills/interview-framework/SKILL.md. Update to match the standard used in start.md, research.md, and implement.md.

🤖 Prompt for AI Agents
In `@plugins/ralph-specum/commands/tasks.md` around lines 35 - 38, Update the
skill-reference entry in plugins/ralph-specum/commands/tasks.md to use the full
repository-root path: replace the relative `skills/interview-framework/SKILL.md`
with `plugins/ralph-specum/skills/interview-framework/SKILL.md` inside the
<skill-reference> block so it matches the convention used in start.md,
research.md, and implement.md; ensure the token `Apply skill` text remains
unchanged aside from the path.

Comment on lines +46 to +49
| 1 | What testing depth for {goal}? | Required | `testingDepth` | Standard unit+integration / Minimal POC only / Comprehensive E2E / Other |
| 2 | Deployment considerations for {goal}? | Required | `deploymentApproach` | Standard CI/CD / Feature flag / Gradual rollout / Other |
| 3 | What's the execution priority? | Required | `executionPriority` | Ship fast POC / Balanced quality+speed / Quality first / Other |
| 4 | Any other execution context? (or 'done') | Optional | `additionalTasksContext` | No, proceed / Yes, more details / Other |
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Clarify {goal} placeholder population.

The interview questions use a {goal} placeholder (e.g., "What testing depth for {goal}?"), but there's no indication in the command of where this value should come from or how it should be populated.

The "Gather Context" section (line 31) reads requirements, design, research, and progress files, but doesn't explicitly extract or define {goal}. Consider either:

  1. Documenting that {goal} should be extracted from requirements.md
  2. Showing explicit extraction: goal = [extract from requirements]
  3. Clarifying if this is meant to be a literal placeholder string that the user sees
📝 Suggested clarification

Add after line 31:

 Read: `./specs/$spec/requirements.md`, `./specs/$spec/design.md`, `./specs/$spec/research.md` (if exists), `./specs/$spec/.progress.md`
+
+Extract `goal` from requirements.md frontmatter or summary section to use in interview questions.
🤖 Prompt for AI Agents
In `@plugins/ralph-specum/commands/tasks.md` around lines 46 - 49, The {goal}
placeholder in the interview questions is ambiguous; update the tasks.md "Gather
Context" section to explicitly define how {goal} is populated by stating that
goal is extracted from the requirements.md (e.g., "goal = extract primary
objective from requirements.md"), or alternatively note that {goal} is a literal
shown to users—add this clarification next to the "Gather Context" heading and
reference the {goal} placeholder so readers know to pull it from requirements.md
(or that it will be displayed verbatim).

tzachbon and others added 2 commits January 31, 2026 16:37
Replace grep-based check with jq validation to properly verify
that every hook object in .hooks.<event>[] has a matcher key.
The previous grep check could be fooled by unrelated strings.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The previous simplification removed too much critical content from
commands and agents. Skills are not automatically loaded - they're
just documentation references. The coordinator prompt and agents
need to be self-contained.

Restored files from commit d8cf596 (post-Phase A metadata, pre-simplification):
- implement.md: 233 -> 589 lines (restored coordinator prompt content)
- start.md: 248 -> 979 lines (restored branch management, quick mode, interviews)
- research.md: 235 -> 746 lines (restored parallel research, merge logic)
- spec-executor.md: 232 -> 456 lines (restored execution rules)
- task-planner.md: 286 -> 537 lines (restored POC workflow, task format)
- research-analyst.md: 235 -> 354 lines (restored research methodology)

Added walkthrough feature to research.md output section.
Bumped version to 2.11.2.

The skills remain as supplementary documentation for reference,
but the core logic is now inline where it's needed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant