Skip to content

feat(skills): /feature — idea → create-prd → create-stories, gated (#208) - #238

Merged
thomasluizon merged 2 commits into
mainfrom
feature/208-feature-skill
Jun 19, 2026
Merged

feat(skills): /feature — idea → create-prd → create-stories, gated (#208)#238
thomasluizon merged 2 commits into
mainfrom
feature/208-feature-skill

Conversation

@thomasluizon

Copy link
Copy Markdown
Owner

What

Adds the /feature orchestrator skill at .claude/skills/feature/SKILL.md — a thin chain that drives a rough idea through the full backlog pipeline so it becomes well-formed GitHub issues without hand-running each step.

Flow (gated)

/feature "<idea>"
  → Stage 1: grill (grill-me posture; skipped on --cold)
  → Stage 2: /create-prd <kebab>.prd.md   (or /prd-interactive on --cold / empty idea)
  → GATE 1 (HARD, owned here): confirm PRD — yes / edit <notes> / abort
  → Stage 3: /create-stories .claude/PRDs/<name>.prd.md   (forwards --milestone / --no-create)
  → GATE 2 (HARD, REUSED): /create-stories' own Phase 6.1 "About to create N issues … Confirm?"
  → Report (suggests, never runs, the per-issue /prime→/plan→/implement loop)
  • Thin orchestrator — references the shipped flows by invocation name (grill-me, /create-prd, /prd-interactive, /create-stories). No PRD or story logic is reimplemented; the chained skills own the templates, labels, and issue bodies.
  • GATE 1 is the only gate this skill owns (PRD→stories boundary). GATE 2 reuses /create-stories Phase 6.1 verbatim — not re-spelled, not auto-answered. --no-create skips issue creation entirely.
  • Usage: /feature "<idea>" [--cold] [--milestone "MVP"] [--no-create].

Also

One-line driven-shortcut pointer added to WORKFLOW.md under the medium/large path; the manual steps stay documented.

Validation

Markdown skill — no npm/dotnet. Static read-through confirms: frontmatter name: feature + description, usage line + all flags, both gates present, Stages 2–3 invoke the real flows by name, zero .claude/commands/ path references. Manual dry-run recommended (warm --no-create, gate-abort, edit-loop, cold-start).

Dependencies / merge note

Depends on #206 (the command → skill migration); the chained flows are invoked by their stable invocation names, which survive that migration. Touches WORKFLOW.md — may conflict with #206's WORKFLOW.md edit; resolve at merge. Merge after #206.

Closes #208

🤖 Generated with Claude Code

Add the /feature orchestrator skill (.claude/skills/feature/SKILL.md): a
thin chain over grill-me → /create-prd (or /prd-interactive on --cold) →
[hard GATE 1: confirm PRD] → /create-stories → [GATE 2: /create-stories'
own existing Phase 6.1 issue gate, reused not reimplemented].

Reuses the shipped PRD/story flows by invocation name; no PRD or story
logic is reimplemented. Ends at a report and only suggests the per-issue
/prime→/plan→/implement loop. Adds a one-line driven-shortcut pointer to
WORKFLOW.md under the medium/large path (manual steps left intact).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
orbit-ui-mobile-web Ignored Ignored Jun 19, 2026 8:28pm

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This lands cleanly. The feature skill is a well-structured thin orchestrator — it chains the existing flows by invocation name rather than reimplementing them, owns exactly one gate (PRD-to-stories), and correctly reuses create-stories Phase 6.1 gate rather than duplicating it. The routing table (warm/cold), the gate branches (yes/edit/abort), and the guardrails section are all correct and coherent. The one-line addition to WORKFLOW.md is a good pointer without cluttering the manual steps. No hard-rule violations, no dead references in code, no parity concerns (tooling changes only, not app code). Good to go.

@sonarqubecloud

Copy link
Copy Markdown

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review: PR #238

Scope: PR #238feat(skills): /feature — idea → create-prd → create-stories, gated (#208)
Recommendation: NEEDS WORK

Summary

This PR adds a new /feature orchestrator skill (.claude/skills/feature/SKILL.md) and a two-line pointer in WORKFLOW.md. The overall design is sound — thin orchestrator, no reimplemented logic, two hard gates — but two issues need resolution before merge: one High (a hardcoded Windows-absolute path to grill-me that will silently fail on CI and other machines), and one Medium (Stage 3 prose that elides the --no-create conditionality on Phase 6). Two Low/Info observations are also noted.


Findings

Critical

None.

High

[HIGH] Stage 1 hardcodes a Windows-absolute path to grill-me that is non-portable and will break on CI/Linux

  • dimension: Correctness (#1)
  • location: .claude/skills/feature/SKILL.md:37
  • issue: Stage 1 instructs: "Apply the grill-me posture (C:/Users/thoma/.claude/skills/grill-me/SKILL.md)". The sibling /execute skill references the same skill with no filesystem path — the harness resolves skills by name. Hardcoding C:/Users/thoma/... makes this path meaningless on the Linux CI runner and on any collaborator's machine, and leaks a local developer path into a committed file.
  • risk: Any agent reading this file literally will encounter a dead path on CI or any non-developer machine. Even for the primary developer it is fragile across machines or user-directory renames.
  • fix: Replace the parenthetical with the invocation-name-only reference used everywhere else: "Apply the grill-me posture" — no path, no parenthetical. The harness resolves the skill by name; filesystem paths belong in .mcp.json / settings, not a SKILL.md.
  • reference: CLAUDE.md rule 1 (root-cause, no workarounds); /execute SKILL.md lines 50-53 (established pattern)

Medium

[MEDIUM] Stage 3 prose implies Phase 6 of /create-stories always fires — omits the --no-create conditionality

  • dimension: Correctness (#1)
  • location: .claude/skills/feature/SKILL.md:72-74
  • issue: Stage 3 says: "It writes .claude/stories/<name>.md (its Phase 5) and then proceeds to its own Phase 6." This reads as unconditional, but /create-stories Phase 6 opens with: "Skip this phase if --no-create was passed." The flag is documented in the inputs table but Stage 3's prose does not reflect it — an agent reading Stage 3 in isolation would not know Phase 6 is conditional.
  • risk: Low runtime risk (the flag is documented elsewhere in the file), but the description could cause an agent to mis-describe the flow to the user or miscount the gates in the --no-create path.
  • fix: Change Stage 3 to: "It writes .claude/stories/<name>.md (Phase 5). If --no-create was NOT passed, it then proceeds to its own Phase 6 (issue creation gate)." This matches /create-stories exactly.
  • reference: CLAUDE.md rule 1 (accuracy of chained-flow descriptions)

Low / Info

[LOW] Stage 2 cold-path aside is a load-bearing instruction buried in a parenthetical

  • dimension: Comment policy (#4, informational — linter does not cover .md files)
  • location: .claude/skills/feature/SKILL.md:58-59
  • issue: "read the path back from the SUMMARY before Stage 3 rather than assuming it" is a correctness-critical mechanical instruction easy to miss in prose. Not a lint violation.
  • risk: None immediate.
  • fix: Optional — extract as a titled note block for scanability.

[INFO] WORKFLOW.md two-line addition is accurate, minimal, and well-placed — no findings.


Subagents

Agent Verdict
parity-checker N/A
i18n-syncer N/A
contract-aligner N/A
security-reviewer N/A

Validation

Check Result
Lint N/A — Markdown skill file
Type check N/A
Tests N/A
Build (api) N/A

What's good

  • Thin orchestrator discipline upheld. Invokes grill-me, /create-prd, /prd-interactive, /create-stories by invocation name only — exactly the pattern /execute sets.
  • GATE 2 reuse is explicitly guarded. "Do NOT auto-answer it, pre-confirm it, or suppress it" prevents the outer-orchestrator failure mode of silently passing the inner skill's gate.
  • Routing table is clean and exhaustive. The --cold / non-empty-idea / empty-idea branching in Stage 0 has no overlap or gap.
  • Guardrails section is thorough. Covers all the shortcut failure modes: re-implementing PRD logic, double-grilling, running /plan//implement, etc.
  • --no-create dry-run path is explicit in both the flag table and GATE 2.

Recommendation

Two one-line prose fixes before merging:

  1. Remove the hardcoded Windows path in Stage 1 line 37 — change to simply: "Apply the grill-me posture" (no filesystem path).
  2. Tighten Stage 3 to reflect the --no-create conditionality on Phase 6: "If --no-create was NOT passed, it then proceeds to its own Phase 6."

Once those land, the skill is ready to merge.


Reviewed by /pr-review against rubric.md

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.

Build /feature skill (idea → create-prd → create-stories, gated)

1 participant