Summary
During the E5 second-initiative dogfood (#375, evidence comment 2026-06-11), the skill-launch of /flow-epics #380 failed at preprocessing — before any process step ran:
Shell command failed for pattern "!`gh issue view <N> --json number,title,body,labels,milestone`":
/bin/bash: line 1: N: No such file or directory
Defects in docs/flow-pack/commands/flow-epics.md (tracked template)
-
Literal placeholders inside !-preprocessed patterns — these execute at launch time, before the model can substitute anything:
flow-epics.md:39 — !`gh issue view <N> ...`
flow-epics.md:99 — !`gh issue list --search "<exact epic title>" ...`
flow-epics.md:162 — !`gh issue view <M> ...`
flow-epics.md:88-93 — GraphQL query embeds <N>
Fix: move every parameterized gh call out of ! dynamic-context preprocessing into plain process-body instructions (fenced code blocks the agent runs itself), keeping only argument-independent commands (e.g. :33) as ! patterns.
-
Hardcoded previous-initiative values — the template is supposed to be initiative-agnostic:
flow-epics.md:77 — pre-flight checks for milestone flow-pack-suite specifically; should read the umbrella's milestone from step 2.
flow-epics.md:61 — epic title pattern hardcodes flow-pack (feat(<scope>): flow-pack <phase-label> — ...); should derive an initiative slug from the umbrella title.
flow-epics.md:71 — label regex hardcodes feat; should use the umbrella's type label.
-
Sync requirement — after fixing the tracked template, re-install locally (cp docs/flow-pack/commands/flow-epics.md .claude/commands/flow/) and re-verify parity, per the durable-source split.
Workaround used in the dogfood
The process was executed manually following the template's own steps — outcome identical (5 epics adopted via the EXISTS-hint path, labeled, phase-headered, REST-linked under #380, GraphQL-verified). So the methodology is sound; only the template's preprocessing layer is broken.
Acceptance
Summary
During the E5 second-initiative dogfood (#375, evidence comment 2026-06-11), the skill-launch of
/flow-epics #380failed at preprocessing — before any process step ran:Defects in
docs/flow-pack/commands/flow-epics.md(tracked template)Literal placeholders inside
!-preprocessed patterns — these execute at launch time, before the model can substitute anything:flow-epics.md:39—!`gh issue view <N> ...`flow-epics.md:99—!`gh issue list --search "<exact epic title>" ...`flow-epics.md:162—!`gh issue view <M> ...`flow-epics.md:88-93— GraphQL query embeds<N>Fix: move every parameterized
ghcall out of!dynamic-context preprocessing into plain process-body instructions (fenced code blocks the agent runs itself), keeping only argument-independent commands (e.g.:33) as!patterns.Hardcoded previous-initiative values — the template is supposed to be initiative-agnostic:
flow-epics.md:77— pre-flight checks for milestoneflow-pack-suitespecifically; should read the umbrella's milestone from step 2.flow-epics.md:61— epic title pattern hardcodesflow-pack(feat(<scope>): flow-pack <phase-label> — ...); should derive an initiative slug from the umbrella title.flow-epics.md:71— label regex hardcodesfeat; should use the umbrella's type label.Sync requirement — after fixing the tracked template, re-install locally (
cp docs/flow-pack/commands/flow-epics.md .claude/commands/flow/) and re-verify parity, per the durable-source split.Workaround used in the dogfood
The process was executed manually following the template's own steps — outcome identical (5 epics adopted via the EXISTS-hint path, labeled, phase-headered, REST-linked under #380, GraphQL-verified). So the methodology is sound; only the template's preprocessing layer is broken.
Acceptance
/flow-epics <N>launches cleanly on an umbrella that is not flow-pack (no preprocessing error)flow-pack/flow-pack-suite/featremains in the template's executable patterns.claude/commands/flow/flow-epics.mdbyte-identical after the fix