@gobing-ai/spur 0.3.47 → 0.3.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/config/config.example.yaml +94 -15
  3. package/config/transition-shims.json +33 -0
  4. package/config/workflows/basic.yaml +2 -0
  5. package/config/workflows/docs-pipeline.yaml +2 -0
  6. package/config/workflows/feature-dev.yaml +8 -0
  7. package/config/workflows/idea-pipeline.yaml +10 -0
  8. package/config/workflows/planning-pipeline.yaml +4 -0
  9. package/config/workflows/pr-review.yaml +338 -0
  10. package/config/workflows/task-pipeline.yaml +8 -0
  11. package/config/workflows/wayfinder-resolution.yaml +4 -0
  12. package/config/workflows/wrapup-pipeline.yaml +18 -1
  13. package/package.json +8 -8
  14. package/plugins/sp/README.md +9 -6
  15. package/plugins/sp/agents/expert-spur.md +1 -0
  16. package/plugins/sp/commands/dev-arch.md +2 -1
  17. package/plugins/sp/commands/dev-brainstorm.md +2 -1
  18. package/plugins/sp/commands/dev-changelog.md +1 -0
  19. package/plugins/sp/commands/dev-daily.md +1 -0
  20. package/plugins/sp/commands/dev-debug.md +2 -1
  21. package/plugins/sp/commands/dev-dogfood.md +2 -1
  22. package/plugins/sp/commands/{dev-featurechange.md → dev-feature-change.md} +8 -10
  23. package/plugins/sp/commands/dev-find-conflict.md +2 -1
  24. package/plugins/sp/commands/dev-find-issue.md +36 -43
  25. package/plugins/sp/commands/dev-find-next.md +5 -4
  26. package/plugins/sp/commands/dev-fixall.md +1 -0
  27. package/plugins/sp/commands/dev-gitmsg.md +1 -0
  28. package/plugins/sp/commands/dev-gtd.md +12 -12
  29. package/plugins/sp/commands/dev-handover.md +1 -0
  30. package/plugins/sp/commands/dev-history-load.md +63 -0
  31. package/plugins/sp/commands/dev-idea.md +1 -0
  32. package/plugins/sp/commands/dev-next.md +2 -1
  33. package/plugins/sp/commands/dev-parallel.md +2 -1
  34. package/plugins/sp/commands/dev-plan.md +2 -1
  35. package/plugins/sp/commands/dev-pr-review.md +39 -0
  36. package/plugins/sp/commands/dev-refine.md +5 -3
  37. package/plugins/sp/commands/dev-refineall.md +2 -1
  38. package/plugins/sp/commands/dev-refresh.md +2 -1
  39. package/plugins/sp/commands/dev-reverse.md +2 -1
  40. package/plugins/sp/commands/dev-review.md +2 -1
  41. package/plugins/sp/commands/dev-run.md +3 -2
  42. package/plugins/sp/commands/dev-runall.md +3 -2
  43. package/plugins/sp/commands/dev-simplify.md +2 -1
  44. package/plugins/sp/commands/dev-unit.md +2 -1
  45. package/plugins/sp/commands/dev-verify.md +2 -1
  46. package/plugins/sp/commands/dev-verifyall.md +2 -1
  47. package/plugins/sp/commands/dev-wrap.md +7 -5
  48. package/plugins/sp/commands/dev-wrapall.md +7 -5
  49. package/plugins/sp/commands/rule-add.md +1 -0
  50. package/plugins/sp/commands/rule-refine.md +1 -0
  51. package/plugins/sp/commands/rule-scan.md +1 -0
  52. package/plugins/sp/commands/spur-init.md +1 -0
  53. package/plugins/sp/commands/workflow-add.md +1 -0
  54. package/plugins/sp/commands/workflow-refine.md +1 -0
  55. package/plugins/sp/hooks/careful-guard.ts +5 -80
  56. package/plugins/sp/hooks/destructive-policy.ts +146 -0
  57. package/plugins/sp/hooks/pi/guard-extension.ts +33 -46
  58. package/plugins/sp/hooks/task-file-policy.ts +31 -0
  59. package/plugins/sp/hooks/task-write-guard.ts +4 -0
  60. package/plugins/sp/plugin.json +1 -1
  61. package/plugins/sp/references/roles.md +106 -0
  62. package/plugins/sp/scripts/feature-sync-bounded.ts +28 -2
  63. package/plugins/sp/scripts/history-load.ts +400 -0
  64. package/plugins/sp/scripts/pr-reviewing.ts +867 -0
  65. package/plugins/sp/scripts/stage-registry-adapter.ts +66 -31
  66. package/plugins/sp/scripts/surface-drift-inventory.ts +908 -0
  67. package/plugins/sp/scripts/task-size-precheck.ts +30 -4
  68. package/plugins/sp/scripts/transition-shim-check.ts +238 -0
  69. package/plugins/sp/scripts/validate-commands.ts +33 -2
  70. package/plugins/sp/scripts/validate-flag-contracts.ts +5 -2
  71. package/plugins/sp/skills/code-implementation/SKILL.md +9 -1
  72. package/plugins/sp/skills/code-verification/SKILL.md +29 -28
  73. package/plugins/sp/skills/issue-finding/SKILL.md +123 -141
  74. package/plugins/sp/skills/issue-finding/examples/expected-findings.json +1 -1
  75. package/plugins/sp/skills/issue-finding/references/session-formats.md +87 -90
  76. package/plugins/sp/skills/next-feature/SKILL.md +6 -6
  77. package/plugins/sp/skills/next-feature/references/handoff-routing.md +5 -5
  78. package/plugins/sp/skills/next-feature/references/signal-derivation.md +7 -2
  79. package/plugins/sp/skills/next-router/SKILL.md +1 -1
  80. package/plugins/sp/skills/parallel-execution/references/dispatch-surface.md +40 -2
  81. package/plugins/sp/skills/pr-reviewing/SKILL.md +285 -0
  82. package/plugins/sp/skills/spur-cli/SKILL.md +3 -0
  83. package/plugins/sp/skills/spur-cli/references/agent.md +12 -7
  84. package/plugins/sp/skills/spur-cli/references/features/hierarchy-mece.md +5 -5
  85. package/plugins/sp/skills/spur-cli/references/features.md +1 -1
  86. package/plugins/sp/skills/spur-cli/references/team.md +10 -3
  87. package/plugins/sp/skills/spur-dev/SKILL.md +2 -0
  88. package/plugins/sp/skills/spur-dev/references/ac-style-guide.md +17 -0
  89. package/plugins/sp/skills/spur-dev/references/cross-cutting.md +44 -23
  90. package/plugins/sp/skills/spur-dev/references/dev-operations.md +14 -11
  91. package/plugins/sp/skills/spur-dev/references/execution-workflow.md +14 -12
  92. package/plugins/sp/skills/spur-dev/references/flag-glossary.md +28 -7
  93. package/plugins/sp/skills/spur-dev/references/gate-checklists.md +2 -0
  94. package/plugins/sp/skills/spur-dev/references/inline-pipeline-driver.md +12 -2
  95. package/schemas/spur-config.schema.json +47 -3
  96. package/spur.js +12223 -7716
  97. package/web/_astro/BoardApp.8hiqShQn.js +1 -0
  98. package/web/_astro/{BoardApp.DKyrGxdo.js → BoardApp.BjQUNhuj.js} +74 -74
  99. package/web/_astro/{TaskDetail.6-27_LMa.js → TaskDetail.CVBuD6dF.js} +1 -1
  100. package/web/_astro/{arc.Df-9AQvS.js → arc.BMMjdODi.js} +1 -1
  101. package/web/_astro/{architectureDiagram-3BPJPVTR.VAI_-paS.js → architectureDiagram-3BPJPVTR.BU5ShzXf.js} +1 -1
  102. package/web/_astro/{blockDiagram-GPEHLZMM.DFpUY1ue.js → blockDiagram-GPEHLZMM.Bj1iEqPD.js} +1 -1
  103. package/web/_astro/{c4Diagram-AAUBKEIU.CF8doOpg.js → c4Diagram-AAUBKEIU.vX8wepCL.js} +1 -1
  104. package/web/_astro/channel.EwdSemIC.js +1 -0
  105. package/web/_astro/{chunk-2J33WTMH.BnjK3fjt.js → chunk-2J33WTMH.BKAipTym.js} +1 -1
  106. package/web/_astro/{chunk-4BX2VUAB.x6ZDnJKq.js → chunk-4BX2VUAB.B68XkPG7.js} +1 -1
  107. package/web/_astro/{chunk-55IACEB6.zY-0uu7w.js → chunk-55IACEB6.BmeDLcrc.js} +1 -1
  108. package/web/_astro/{chunk-727SXJPM.BZxKg_Vi.js → chunk-727SXJPM.PDuBA3Kw.js} +1 -1
  109. package/web/_astro/{chunk-AQP2D5EJ.Cpi9G9Td.js → chunk-AQP2D5EJ.C7A044za.js} +1 -1
  110. package/web/_astro/{chunk-FMBD7UC4.DWTB-Pif.js → chunk-FMBD7UC4.BtzKKFqR.js} +1 -1
  111. package/web/_astro/{chunk-ND2GUHAM.BPDQbiOG.js → chunk-ND2GUHAM.BJuDeeOy.js} +1 -1
  112. package/web/_astro/{chunk-QZHKN3VN.BRWIcuoM.js → chunk-QZHKN3VN.DSeMDgcQ.js} +1 -1
  113. package/web/_astro/{classDiagram-4FO5ZUOK.mGTCZsDO.js → classDiagram-4FO5ZUOK.D53Q4tCw.js} +1 -1
  114. package/web/_astro/{classDiagram-v2-Q7XG4LA2.mGTCZsDO.js → classDiagram-v2-Q7XG4LA2.D53Q4tCw.js} +1 -1
  115. package/web/_astro/{cose-bilkent-S5V4N54A.D1GEut-z.js → cose-bilkent-S5V4N54A.c712AFRH.js} +1 -1
  116. package/web/_astro/{dagre-BM42HDAG.BV0XG9Do.js → dagre-BM42HDAG.D-idisph.js} +1 -1
  117. package/web/_astro/{diagram-2AECGRRQ.DzpYxsjo.js → diagram-2AECGRRQ.DLgnsJCU.js} +1 -1
  118. package/web/_astro/{diagram-5GNKFQAL.Cm9YzJh4.js → diagram-5GNKFQAL.BiaxBVqx.js} +1 -1
  119. package/web/_astro/{diagram-KO2AKTUF.BjhottUj.js → diagram-KO2AKTUF.C8HX1vd8.js} +1 -1
  120. package/web/_astro/{diagram-LMA3HP47.BFsQW5kb.js → diagram-LMA3HP47.CfqDLLes.js} +1 -1
  121. package/web/_astro/{diagram-OG6HWLK6.8pdpzSWO.js → diagram-OG6HWLK6.15SDiEed.js} +1 -1
  122. package/web/_astro/{erDiagram-TEJ5UH35.Bd7KUJmJ.js → erDiagram-TEJ5UH35.DksYtOYM.js} +1 -1
  123. package/web/_astro/{flowDiagram-I6XJVG4X.7LWffkaE.js → flowDiagram-I6XJVG4X.DR_Au-HV.js} +1 -1
  124. package/web/_astro/{ganttDiagram-6RSMTGT7.BeDcO5tI.js → ganttDiagram-6RSMTGT7.CHhHrffI.js} +1 -1
  125. package/web/_astro/{gitGraphDiagram-PVQCEYII.Ca4n730A.js → gitGraphDiagram-PVQCEYII.B2Xehvam.js} +1 -1
  126. package/web/_astro/{index.Dbvuw6d4.css → index.DAxu50UF.css} +1 -1
  127. package/web/_astro/{infoDiagram-5YYISTIA.B0OakQYb.js → infoDiagram-5YYISTIA.C9c3CNNN.js} +1 -1
  128. package/web/_astro/{ishikawaDiagram-YF4QCWOH.DSmNQe-1.js → ishikawaDiagram-YF4QCWOH.BibUHkh8.js} +1 -1
  129. package/web/_astro/{journeyDiagram-JHISSGLW.Cy5ruEUu.js → journeyDiagram-JHISSGLW.BYoVHiyO.js} +1 -1
  130. package/web/_astro/{kanban-definition-UN3LZRKU.CUJXub0p.js → kanban-definition-UN3LZRKU.CM1K5wHE.js} +1 -1
  131. package/web/_astro/{linear.DC1jCCXn.js → linear.SPpjJUb-.js} +1 -1
  132. package/web/_astro/{mermaid.core.DxVP99Ab.js → mermaid.core.BAgx3nnb.js} +4 -4
  133. package/web/_astro/{mindmap-definition-RKZ34NQL.D0MaV6sJ.js → mindmap-definition-RKZ34NQL.D35oPG1R.js} +1 -1
  134. package/web/_astro/{pieDiagram-4H26LBE5.DCC6_q32.js → pieDiagram-4H26LBE5.DiWuRwk7.js} +1 -1
  135. package/web/_astro/{quadrantDiagram-W4KKPZXB.BeUOAM7C.js → quadrantDiagram-W4KKPZXB.B9PBzTWn.js} +1 -1
  136. package/web/_astro/{requirementDiagram-4Y6WPE33.Dbl4MASO.js → requirementDiagram-4Y6WPE33.CYuuamFN.js} +1 -1
  137. package/web/_astro/{sankeyDiagram-5OEKKPKP.HsLg0VS4.js → sankeyDiagram-5OEKKPKP.W24UhhtD.js} +1 -1
  138. package/web/_astro/{sequenceDiagram-3UESZ5HK.DT7DJTnZ.js → sequenceDiagram-3UESZ5HK.BpbNjA51.js} +1 -1
  139. package/web/_astro/{stateDiagram-AJRCARHV.d_ju1Vr1.js → stateDiagram-AJRCARHV.DqVsHudf.js} +1 -1
  140. package/web/_astro/{stateDiagram-v2-BHNVJYJU.DMCAjMJ4.js → stateDiagram-v2-BHNVJYJU.CzwHYX81.js} +1 -1
  141. package/web/_astro/{timeline-definition-PNZ67QCA.DNOHr62_.js → timeline-definition-PNZ67QCA.Bc3B6djw.js} +1 -1
  142. package/web/_astro/{vennDiagram-CIIHVFJN.B7dUy-1W.js → vennDiagram-CIIHVFJN.C-D5rh8O.js} +1 -1
  143. package/web/_astro/{wardley-L42UT6IY.DEqOXvBh.js → wardley-L42UT6IY.D7PdYCqn.js} +1 -1
  144. package/web/_astro/{wardleyDiagram-YWT4CUSO.BCRb2p6x.js → wardleyDiagram-YWT4CUSO.CwmJKXF3.js} +1 -1
  145. package/web/_astro/{xychartDiagram-2RQKCTM6.NxVQLdBh.js → xychartDiagram-2RQKCTM6.avDYnLsb.js} +1 -1
  146. package/web/index.html +2 -2
  147. package/web/_astro/BoardApp.Ce6zJYAH.js +0 -1
  148. package/web/_astro/channel.Uhm9O3UV.js +0 -1
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Dogfood an agent skill/command/CLI — drive it end-to-end with bounded auto-fix, self-monitor, and emit a comprehensive report
3
+ role: reviewer
3
4
  argument-hint: "<testee> [--agent <inline|auto|name>] [--max-retry <n>] [--save] [--task] [--chain-follow] [--full]"
4
5
  allowed-tools: ["Bash", "Read", "Write", "Edit", "Grep", "Glob", "Skill"]
5
6
  ---
@@ -13,7 +14,7 @@ Wraps the **sp:dogfood-testing** skill.
13
14
  | Flag | Description | Default |
14
15
  | --- | --- | --- |
15
16
  | `<testee>` | Skill / command / CLI to exercise end-to-end. | required |
16
- | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing dogfood work. | inline |
17
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing dogfood work. | omit |
17
18
  | `--max-retry` `<n>` | Max auto-fix retries per stage. | 3 |
18
19
  | `--save` | Compatibility no-op; saving is now default. Retained until evidenced retirement. | off |
19
20
  | `--task` | Record outcomes against a task. | omitted |
@@ -1,13 +1,11 @@
1
1
  ---
2
- description: >-
3
- Restructure the feature tree from a mapping file — dry-run then apply via
4
- spur feature move / task feature_id edges / root docs/*.md reference rewrites
5
- (CLI-gated; no raw Write on docs/features or docs/tasks)
2
+ description: "Restructure the feature tree from a mapping file — dry-run then apply via spur feature move / task feature_id edges / root docs/*.md reference rewrites (CLI-gated; no raw Write on docs/features or docs/tasks). Triggers: feature restructure, feature tree move, reparent features, apply mapping file"
3
+ role: planner
6
4
  argument-hint: "[--map <path>] [--dry-run] [--apply] [--limit <old-id>] [--wave <1|2|3|all>] [--yes]"
7
5
  allowed-tools: ["Bash", "Read", "AskUserQuestion", "Skill"]
8
6
  ---
9
7
 
10
- # Dev Featurechange
8
+ # Dev Feature Change
11
9
 
12
10
  CLI-gated feature-tree restructure orchestrator. Executes dispositions from a mapping file; does not invent hierarchy.
13
11
 
@@ -27,7 +25,7 @@ For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag
27
25
  ## Usage
28
26
 
29
27
  ```
30
- /sp:dev-featurechange [--map <path>] [--dry-run] [--apply] [--limit <old-id>] [--wave <1|2|3|all>] [--yes]
28
+ /sp:dev-feature-change [--map <path>] [--dry-run] [--apply] [--limit <old-id>] [--wave <1|2|3|all>] [--yes]
31
29
  ```
32
30
 
33
31
  ## Implementation
@@ -42,7 +40,7 @@ For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag
42
40
 
43
41
  - Read `--map`. Collect rows where disposition is not `keep` (typically `reparent-under:<parent>`).
44
42
  - Filter by `--limit` / `--wave` if set.
45
- - Wave defaults from map: **1** = K→J, L→J · **2** = N→H, O→H · **3** = P→D, Q→F, R→F8.
43
+ - Wave membership comes from the map itself (its wave column/section is the SSOT). Never hard-code letter sets here the tree moves under the command and literals go stale.
46
44
 
47
45
  **Free-digit preflight (mandatory before dry-run report)**
48
46
 
@@ -52,7 +50,7 @@ Group selected reparent rows by `new_parent`. For each parent:
52
50
  spur feature list --json
53
51
  ```
54
52
 
55
- Count current children (ids where `id` starts with parent and length = parent.length+1, digit 1–9).
53
+ Count current children (ids where `id` starts with parent and length = parent.length+1, digit 1–9).
56
54
  `free = 9 - childCount`. If `rowsUnderParent.length > free`, **abort the plan** with a clear error naming the parent, free slots, and competing old_ids. Do not apply a partial wave.
57
55
 
58
56
  **Dry-run plan (always) — sequential prediction**
@@ -101,10 +99,10 @@ spur feature refresh --json
101
99
  spur feature check --json
102
100
  ```
103
101
 
104
- Task edges: `feature move` rewrites `feature_id` across **all** configured task folders (via `foldersConfig`). Safety check:
102
+ Task edges: `feature move` rewrites `feature_id` across **all** configured task folders (via `foldersConfig`). Safety check (the glob covers every tasks folder, present and future):
105
103
 
106
104
  ```bash
107
- rg -n '^feature_id: <old_id>$' docs/tasks docs/tasks2 docs/tasks3
105
+ rg -n '^feature_id: <old_id>$' docs/tasks*/
108
106
  ```
109
107
 
110
108
  If any stale edges remain, fix with:
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Authority-aware semantic audit across source, task files, feature files, and project authority files — discover conflicts, resolve claim-specific authority, collect reproducible evidence, and route confirmed repairs through owner surfaces. Triggers: find conflict, conflict audit, semantic conflict, authority mismatch, stale projection."
3
+ role: reviewer
3
4
  argument-hint: "[<scope>] [--pillar <source|tasks|features|authority|all>] [--mode <adaptive|full>] [--resolve] [--agent <inline|auto|name>] [--json]"
4
5
  allowed-tools: ["Bash", "Read", "Write", "Grep", "Glob", "Skill"]
5
6
  ---
@@ -18,7 +19,7 @@ owner-routed remediation.
18
19
  | `--pillar` `<source\|tasks\|features\|authority\|all>` | Limit the internal audit to one pillar; the minimum authorities needed to judge it still load. | all |
19
20
  | `--mode` `<adaptive\|full>` | Scan protocol — adaptive reuses fresh indexed context and discloses skipped areas; full forces a cold comprehensive scan. | adaptive |
20
21
  | `--resolve` | Enable the proposal, confirmation, and owner-routed remediation workflow. Its absence guarantees no source/corpus/numbered-doc mutation. | off |
21
- | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing analysis. | inline |
22
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing analysis. | omit |
22
23
  | `--json` | Emit the same result envelope as Markdown as JSON. | off |
23
24
 
24
25
  For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
@@ -1,36 +1,37 @@
1
1
  ---
2
- description: "Review agent session logs, identify performance bottlenecks and behavioral anti-patterns, and generate a structured task file with proposed fixes. Triggers: post-mortem, performance analysis, session review, find issues, identify bottlenecks"
3
- argument-hint: "[<topic>] [--sessions <glob>] [--source <auto|omp|claude|codex|gemini|opencode|antigravity|openclaw|pi>] [--feature <id>] [--template <meta|issue|standard>] [--priority <P0|P1|P2|P3>] [--severity <S0|S1|S2>] [--category <list>] [--since <iso>] [--until <iso>] [--top <n>] [--min-cost <duration>] [--strict-topic] [--use-history] [--no-task] [--agent <inline|auto|name>] [--json]"
2
+ description: "Render the session-forensics report from imported history data (8 CLI-derivable sections plus 6 model-authored), identify bottlenecks and behavioral anti-patterns, and optionally create a structured fix task behind --create-task. Triggers: post-mortem, performance analysis, session review, find issues, identify bottlenecks"
3
+ role: reviewer
4
+ argument-hint: "[<topic>] [--sessions <glob>] [--source <auto|pi|claude|codex|gemini|opencode|antigravity|openclaw|omp|grok|agy|all>] [--feature <id>] [--template <meta|issue|standard>] [--priority <P0|P1|P2|P3>] [--severity <S0|S1|S2>] [--category <list>] [--since <iso>] [--until <iso>] [--top <n>] [--min-cost <duration>] [--strict-topic] [--create-task] [--agent <inline|auto|name>] [--json]"
4
5
  allowed-tools: ["Bash", "Read", "Write", "Grep", "Glob", "Skill"]
5
6
  ---
6
7
 
7
8
  # Dev Find Issue
8
9
 
9
- Wraps the **sp:issue-finding** skill — forensic session log analysis that identifies performance
10
- bottlenecks, ranks root causes by time cost, proposes targeted fixes, and generates a structured
10
+ Wraps the **sp:issue-finding** skill — report-first session forensics over the history data plane.
11
+ The CLI renders the 8 derivable report sections (`spur history report --mode forensics`); the skill
12
+ identifies bottlenecks, proposes fixes, and — only with `--create-task` — generates a structured
11
13
  task file via `spur task create`.
12
14
 
13
15
  ## Argument Flags
14
16
 
15
- | Flag | Description | Default |
16
- | ------------------------------------------------------------------------------------ | ------------------------------------ | ---------- |
17
- | `[<topic>]` | Narrow the analysis to a topic. | omitted |
18
- | `--sessions` `<glob>` | Session log glob to scan. | recent |
19
- | `--source` `<auto\|omp\|claude\|codex\|gemini\|opencode\|antigravity\|openclaw\|pi>` | Agent source to scan. | auto |
20
- | `--feature` `<id>` | Attach findings to a feature. | omitted |
21
- | `--template` `<meta\|issue\|standard>` | Output template shape. | standard |
22
- | `--priority` `<P0\|P1\|P2\|P3>` | Filter / assign priority. | omitted |
23
- | `--severity` `<S0\|S1\|S2>` | Filter / assign severity. | omitted |
24
- | `--category` `<list>` | Comma list of categories to keep. | all |
25
- | `--since` `<iso>` | Start of the scan window. | configured |
26
- | `--until` `<iso>` | End of the scan window. | now |
27
- | `--top` `<n>` | Limit to top N findings. | omitted |
28
- | `--min-cost` `<duration>` | Minimum wasted duration to report. | omitted |
29
- | `--strict-topic` | Drop findings off-topic. | off |
30
- | `--use-history` | Incorporate indexed history. | off |
31
- | `--no-task` | Do not create a task for findings. | off |
32
- | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing analysis. | inline |
33
- | `--json` | Emit structured JSON. | off |
17
+ | Flag | Description | Default |
18
+ | ---------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ---------- |
19
+ | `[<topic>]` | Narrow the analysis to a topic. | omitted |
20
+ | `--sessions` `<glob>` | Session log glob (fallback input). | recent |
21
+ | `--source` `<auto\|pi\|claude\|codex\|gemini\|opencode\|antigravity\|openclaw\|omp\|grok\|agy\|all>` | Agent source to scan (CLI vocabulary; `all` fans out, `auto` resolves at runtime). | auto |
22
+ | `--feature` `<id>` | Attach the generated task to a feature. | omitted |
23
+ | `--template` `<meta\|issue\|standard>` | Task template shape (`--create-task` only); `issue` is the explicit single-finding override, `standard` the generic override. | meta |
24
+ | `--priority` `<P0\|P1\|P2\|P3>` | Filter / assign task priority. | P2 |
25
+ | `--severity` `<S0\|S1\|S2>` | Filter / assign severity. | all |
26
+ | `--category` `<list>` | Comma list of categories to keep. | all |
27
+ | `--since` `<iso>` | Start of the scan window. | configured |
28
+ | `--until` `<iso>` | End of the scan window. | now |
29
+ | `--top` `<n>` | Limit to top N findings. | omitted |
30
+ | `--min-cost` `<duration>` | Minimum wasted duration to report. | omitted |
31
+ | `--strict-topic` | Drop findings off-topic. | off |
32
+ | `--create-task` | Generate a fix task for findings. | off |
33
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing analysis. | omit |
34
+ | `--json` | Emit structured JSON. | off |
34
35
 
35
36
  For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
36
37
 
@@ -41,28 +42,20 @@ For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag
41
42
  /sp:dev-find-issue "test-loop spinning"
42
43
  /sp:dev-find-issue --sessions "~/.omp/agent/sessions/-xprojects-spur-new/2026-07-29T*"
43
44
  /sp:dev-find-issue "L3 guard format discovery" --feature H51 --priority P1 --severity S1
44
- /sp:dev-find-issue --category test-loop,guard --min-cost 30m --no-task
45
- /sp:dev-find-issue --source claude --since 2026-07-28 --json
46
- /sp:dev-find-issue --sessions plugins/sp/skills/issue-finding/examples/session-test-loop.jsonl --no-task
45
+ /sp:dev-find-issue --category test-loop,guard --min-cost 30m
46
+ /sp:dev-find-issue --source claude --since 2026-07-28 --create-task --json
47
47
  ```
48
48
 
49
- | Argument | Description | Default |
50
- | ----------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------- |
51
- | `[topic]` | Optional focus text or smart positional (path/glob sessions; category phrase filter) | (full taxonomy) |
52
- | `--sessions <glob>` | Session JSONL file(s) or directory | most recent for resolved source |
53
- | `--source <name>` | `auto`, `omp`, `claude`, `codex`, `gemini`, `opencode`, `antigravity`, `openclaw`, `pi` | `auto` |
54
- | `--feature <id>` | Feature ID to link the generated task to | (none) |
55
- | `--template <name>` | `meta` (umbrella), `issue` (single), or `standard` | `meta` |
56
- | `--priority <P0\|P1\|P2\|P3>` | Task frontmatter priority (not bottleneck severity) | `P2` |
57
- | `--severity <S0\|S1\|S2>` | Minimum bottleneck severity to keep | (all) |
58
- | `--category <list>` | Comma-separated category ids (`test-loop`, `guard`, …) | `all` |
59
- | `--since` / `--until` | Session start time bounds | (none) |
60
- | `--top <n>` | Cap number of fixes/requirements | (no cap) |
61
- | `--min-cost <duration>` | Drop findings under this waste floor (`30m`, `2h`) | (none) |
62
- | `--strict-topic` | Drop off-topic findings even if severe | off |
63
- | `--use-history` | Optional `spur history` import/analyze for cost aggregates | off |
64
- | `--no-task` | Markdown report only | off |
65
- | `--json` | JSON findings only (no task) | off |
49
+ **Report-first (task 0556).** Default output is the markdown report to stdout; no task file is
50
+ written. Task creation moved behind `--create-task`. `--use-history` and `--no-task` are removed:
51
+ the history data plane is now the primary source (no flag needed), and the old report-only behavior
52
+ is the new default. Raw JSONL remains a fallback under the three conditions documented in
53
+ `sp:issue-finding`.
54
+
55
+ **Data-plane preflight.** Forensics read the imported history plane as-is. If findings come back
56
+ empty or stale, run `/sp:dev-history-load` (on-demand cumulative `spur history import` + analyze,
57
+ checkpoint resume task 0567) before re-running forensics; it owns the interactive preflight, while
58
+ `spur history daily` owns the periodic cadence.
66
59
 
67
60
  **See also:** skill `sp:issue-finding` (SSOT), `/sp:dev-runall`, `/sp:dev-dogfood`,
68
61
  `sp:daily-summary`, `sp:reverse-engineering`.
@@ -1,5 +1,6 @@
1
1
  ---
2
- description: "Prompt-first feature frontier prioritizer — answers 'which feature should we work on now?' with a ranked, evidence-carrying frontier, and emits rank-distorting tree defects as proposals /sp:dev-featurechange consumes. Triggers: find next, which feature, feature ranking, frontier priority, what should I work on."
2
+ description: "Prompt-first feature frontier prioritizer — answers 'which feature should we work on now?' with a ranked, evidence-carrying frontier, and emits rank-distorting tree defects as proposals /sp:dev-feature-change consumes. Triggers: find next, which feature, feature ranking, frontier priority, what should I work on."
3
+ role: planner
3
4
  argument-hint: "[--task [<feature-id>]] [--agent <inline|auto|name>] [--auto] [--json]"
4
5
  allowed-tools: ["Bash", "Read", "Write", "Grep", "Glob", "Skill"]
5
6
  ---
@@ -12,14 +13,14 @@ instead of ranking them, and emits tree structure defects as proposals only.
12
13
 
13
14
  Answers *"which X"* — the question `/sp:dev-next` deliberately does not (next-router routing-table
14
15
  §0 step 1c). Advancing a chosen target remains `/sp:dev-next`'s job; applying tree changes remains
15
- `/sp:dev-featurechange`'s job.
16
+ `/sp:dev-feature-change`'s job.
16
17
 
17
18
  ## Argument Flags
18
19
 
19
20
  | Flag | Description | Default |
20
21
  | --- | --- | --- |
21
22
  | `--task` `[<feature-id>]` | After the report, confirm one target and dispatch the planning half to produce implement-ready tasks. | omitted |
22
- | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing analysis. | inline |
23
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing analysis. | omit |
23
24
  | `--auto` | Skip the `--task` confirm (accept the offered target) and forward into dispatched children. | off |
24
25
  | `--json` | Emit the ranked frontier, gated list, and proposals as a JSON envelope. | off |
25
26
 
@@ -54,7 +55,7 @@ Without `--task` the command is read-only with respect to the corpus and docs. U
54
55
  only mutation is the one the dispatched commands perform on `docs/tasks*/` after confirm (or
55
56
  auto-accept) — the command still performs no `spur feature move`, no sync apply, and no write under
56
57
  `docs/features/**`. Defect proposals conform to the `docs/plans/feature-tree-restructure-map.md`
57
- schema and are applied only through `/sp:dev-featurechange` (dry-run → confirm → apply).
58
+ schema and are applied only through `/sp:dev-feature-change` (dry-run → confirm → apply).
58
59
 
59
60
  **See also:** skill `sp:next-feature` (SSOT), `sp:next-router` (`/sp:dev-next`),
60
61
  `sp:conflict-finding` (the prompt-first template), `sp:spur-cli`.
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Fix all lint, type, and test errors systematically across the working tree
3
+ role: coder
3
4
  argument-hint: "[<validation-command>] [--max-retry <n>] [--scope <path>] [--gate-log <path>] [--findings <anchors>]"
4
5
  allowed-tools: ["Bash", "Read", "Write", "Edit", "Grep", "Glob"]
5
6
  ---
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Generate conventional commit message(s) from staged changes via per-file summarization, optionally commit
3
+ role: scribe
3
4
  argument-hint: "[--commit] [--squash] [--scope <path>]"
4
5
  allowed-tools: ["Bash", "Read"]
5
6
  ---
@@ -1,14 +1,15 @@
1
1
  ---
2
- description: Get things done — quality gate → fix → act CI simulation → commit → push → gh verify in one flow
3
- argument-hint: "[<quality-gate-command>] [--dry-run] [--skip-act] [--no-push] [--no-verify] [--scope <path>] [--max-retry <n>]"
2
+ description: Get things done — quality gate → fix → commit → push → gh verify in one flow (optional act CI simulation via --act)
3
+ role: coder
4
+ argument-hint: "[<quality-gate-command>] [--dry-run] [--act] [--no-push] [--no-verify] [--scope <path>] [--max-retry <n>]"
4
5
  allowed-tools: ["Bash", "Read", "Write", "Edit", "Grep", "Glob"]
5
6
  ---
6
7
 
7
8
  # Dev GTD
8
9
 
9
10
  Self-contained end-to-end delivery command: local quality gate (auto-fix via `/sp:dev-fixall`),
10
- local CI/CD simulation via `act`, conventional commit message generation, commit, push, and
11
- GitHub push-success verification via `gh`. Designed to stand alone (no backing skill); once mature
11
+ optional local CI/CD simulation via `act` (`--act` only), conventional commit message generation,
12
+ commit, push, and GitHub push-success verification via `gh`. Designed to stand alone (no backing skill); once mature
12
13
  it supersedes `/sp:dev-gitmsg` and is absorbed into the shared command structure.
13
14
 
14
15
  ## Argument Flags
@@ -17,7 +18,7 @@ it supersedes `/sp:dev-gitmsg` and is absorbed into the shared command structure
17
18
  | --- | --- | --- |
18
19
  | `<quality-gate-command>` | Local quality gate to run first; on failure, invoke `/sp:dev-fixall "<cmd>"` to fix all issues automatically. | `bun run check` |
19
20
  | `--dry-run` | Generate the git message and plan only — no commit, push, or gh verify. | off |
20
- | `--skip-act` | Skip the local `act` CI/CD simulation step. | off |
21
+ | `--act` | Run local `act` CI/CD simulation before commit (heavy: launches Docker). Default off — stage 6 `gh` verify covers real CI post-push. Reach for it on workflow edits, dependency bumps, infra changes. Independent of `--dry-run`: `--dry-run --act` still runs the simulation. | off |
21
22
  | `--no-push` | Commit but do not git push or gh-verify. | off |
22
23
  | `--no-verify` | Push but skip the `gh` push-success verification. | off |
23
24
  | `--scope <path>` | Scope the commit-message diff analysis to a path. | all staged changes |
@@ -27,7 +28,7 @@ For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag
27
28
 
28
29
  ## Usage
29
30
 
30
- /sp:dev-gtd [<quality-gate-command>] [--dry-run] [--skip-act] [--no-push] [--no-verify] [--scope <path>] [--max-retry <n>]
31
+ /sp:dev-gtd [<quality-gate-command>] [--dry-run] [--act] [--no-push] [--no-verify] [--scope <path>] [--max-retry <n>]
31
32
 
32
33
  ## Implementation
33
34
 
@@ -40,8 +41,9 @@ default `bun run check`. Run it. If it exits non-zero, invoke `/sp:dev-fixall "<
40
41
  re-run the gate. Loop until the gate is clean or `--max-retry` is exhausted. Report what was fixed
41
42
  per file.
42
43
 
43
- **2 — Local CI/CD simulation via `act`.** Confirm Docker is running (`docker info`). On macOS the
44
- repo uses OrbStack if the default context is not ready, use
44
+ **2 — Local CI/CD simulation via `act` (opt-in).** Skip this stage entirely unless `--act` is
45
+ given. When `--act` is given: confirm Docker is running (`docker info`). On macOS the repo uses
46
+ OrbStack — if the default context is not ready, use
45
47
  `DOCKER_HOST=unix://$HOME/.orbstack/run/docker.sock`. Run
46
48
  `act -W .github/workflows/ci.yml -j verify` (or the repo's `bun run verify-gha-ci`); prefer
47
49
  `--container-architecture` matching your host when the runner pulls a foreign platform. If a step
@@ -56,10 +58,8 @@ If the build failure includes `TS2307: Cannot find module` on a workspace packag
56
58
  resolve Bun workspace packages because Bun does not create `node_modules/@scope/` symlinks.
57
59
  The real GitHub CI runner passes. **Do not** modify the build infrastructure to work around this
58
60
  `act`-specific issue. Instead, emit a clear message:
59
- `⚠ act CI simulation failed on workspace resolution — this is a container-environment artifact. Re-run with --skip-act to skip this step.`
60
- Then stop the run (this stage failed). The operator can use `--skip-act` to proceed.
61
-
62
- Skip this stage entirely when `--skip-act` is given.
61
+ `⚠ act CI simulation failed on workspace resolution — this is a container-environment artifact. Re-run without --act to skip this step (it is opt-in).`
62
+ Then stop the run (this stage failed). The operator can proceed by re-running without `--act`.
63
63
 
64
64
  **3 — Generate a conventional commit message.** Follow the gitmsg procedure (the same one
65
65
  `/sp:dev-gitmsg` runs). Run `git diff --cached --stat` (add `-- <path>` when `--scope` is given) for
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Generate a structured handover document when blocked — captures goal, progress, blocker, rejected approaches, and next steps
3
+ role: scribe
3
4
  argument-hint: "\"<blocker description>\""
4
5
  allowed-tools: ["Bash", "Read", "Write"]
5
6
  ---
@@ -0,0 +1,63 @@
1
+ ---
2
+ description: "On-demand cumulative history load + narrowed analyze: run spur history import (checkpoint-resume, additive) then spur history analyze, optionally narrowed to a session/task/window, with optional forensics render. Triggers: load history, import agent conversations, analyze my history, history for this conversation"
3
+ role: scribe
4
+ argument-hint: "[--source <name>] [--session <id>] [--task <wbs>] [--since <iso>] [--until <iso>] [--report] [--dry-run] [--json]"
5
+ allowed-tools: ["Bash", "Read"]
6
+ ---
7
+
8
+ # Dev History Load
9
+
10
+ Runs the on-demand history load+analyze sequence: `spur history import` (all sources, checkpoint
11
+ resume — additive and self-healing) then `spur history analyze`, with narrowing flags routed to the
12
+ verb that accepts them. Wraps the shipped CLI sequence in one discoverable surface; owns no import
13
+ logic, no state, and no cadence.
14
+
15
+ ## Argument Flags
16
+
17
+ | Flag | Description | Default |
18
+ | -------------------- | -------------------------------------------------------------- | -------- |
19
+ | `--source` `<name>` | Agent source to import and analyze (both verbs). | all |
20
+ | `--session` `<id>` | Narrow the analyze to a single session id. | omitted |
21
+ | `--task` `<wbs>` | Narrow the analyze to a single task WBS. | omitted |
22
+ | `--since` `<iso>` | Inclusive lower bound on the analyze window. | omitted |
23
+ | `--until` `<iso>` | Inclusive upper bound on the analyze window. | omitted |
24
+ | `--report` | Render `spur history report --mode forensics` after analyze. | off |
25
+ | `--dry-run` | Preview the sequence; import scans without persisting. | off |
26
+ | `--json` | Emit one JSON result object; no banner text interleaved. | off |
27
+
28
+ For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
29
+
30
+ ## Usage
31
+
32
+ ```
33
+ /sp:dev-history-load
34
+ /sp:dev-history-load --source omp --session <session-id>
35
+ /sp:dev-history-load --task <wbs> --since 2026-08-01 --until 2026-08-15
36
+ /sp:dev-history-load --report
37
+ /sp:dev-history-load --dry-run
38
+ /sp:dev-history-load --json
39
+ ```
40
+
41
+ **Cumulative by checkpoint, not by this command.** Re-running imports only newly appended
42
+ conversation data — the shipped import checkpoint resume (task 0470 R6) makes repeat runs additive
43
+ and never double-counts. This command never prunes reports and never re-implements the daily
44
+ pipeline; for the periodic cadence (import-all → analyze → artifact → 90-day prune, self-healing),
45
+ run `spur history daily` instead.
46
+
47
+ **Degraded sources proceed with a warning; fully-failed imports abort (0569).** `spur history
48
+ import` distinguishes fatal from degraded fan-outs by exit code: **exit 1** (every source
49
+ failed) aborts the sequence before analyze and propagates the exit code; **exit 2** (mixed —
50
+ at least one source imported, some skipped malformed rows) proceeds to analyze with a loud
51
+ per-source warning: stderr names each degraded source with its parse/validation error counts
52
+ (human mode), and the `--json` payload carries a `warnings` array with the source, counts, and
53
+ the import step's warning detail. A steady-state degraded source therefore no longer blocks a
54
+ bare run; to scope around one deliberately, use `--source <name>` per source.
55
+
56
+ ## Implementation
57
+
58
+ Run the load-then-analyze sequence per `plugins/sp/scripts/history-load.ts` — import first, analyze
59
+ only after import exits 0, narrowing forwarded to `analyze` only:
60
+
61
+ ```
62
+ bun plugins/sp/scripts/history-load.ts $ARGUMENTS
63
+ ```
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Turn a vague idea into a feature with AC and a decomposed task batch — discovery, idea-eval, feature-create, AC, feature-check, system-design, decompose, batch-create (Design by default), handoff
3
+ role: planner
3
4
  argument-hint: "\"<idea>\" [--auto] [--skip-design] [--approve-taste]"
4
5
  allowed-tools: ["Bash", "Read", "AskUserQuestion"]
5
6
  ---
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Status-aware router — pick and run the next best /sp:dev-* step for a task or feature frontier
3
+ role: planner
3
4
  argument-hint: "[<wbs|feature-id>] [--dry-run] [--once] [--auto] [--agent <inline|auto|name>] [--full]"
4
5
  allowed-tools: ["Bash", "Read", "Skill", "AskUserQuestion"]
5
6
  ---
@@ -16,7 +17,7 @@ Wraps the **sp:next-router** skill.
16
17
  | `--dry-run` | Resolve and print the next step without executing. | off |
17
18
  | `--once` | Resolve exactly one step and stop. | off |
18
19
  | `--auto` | Skip objective HITL gates in the dispatched step. | off |
19
- | `--agent` `<inline\|auto\|name>` | Who runs the dispatched model-bearing step. | inline |
20
+ | `--agent` `<inline\|auto\|name>` | Who runs the dispatched model-bearing step. | omit |
20
21
  | `--full` | When the primary route is `dev-run … --next`, substitute `dev-run <wbs> --mode full` (no `--next`). No effect on other routes (warning W-FULL). | off |
21
22
 
22
23
  For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Fan out independent tasks or investigations in parallel via subagents — choose the right pattern and synthesize results
3
+ role: planner
3
4
  argument-hint: "--tasks <selector> [--feature <id>] [--mode <fan-out|review-panel|investigation>] [--agent <inline|auto|name>] [--json]"
4
5
  allowed-tools: ["Bash", "Read", "Skill"]
5
6
  ---
@@ -15,7 +16,7 @@ Wraps the **sp:parallel-execution** skill.
15
16
  | `--tasks` `<selector>` | Task selector to fan out. | required |
16
17
  | `--feature` `<id>` | Restrict the selector to a feature. | omitted |
17
18
  | `--mode` `<fan-out\|review-panel\|investigation>` | Fan-out pattern. | fan-out |
18
- | `--agent` `<inline\|auto\|name>` | Who runs each dispatched slice. | inline |
19
+ | `--agent` `<inline\|auto\|name>` | Who runs each dispatched slice. Parallel fan-out is dispatch, so explicit `--agent inline` runs the batch **sequentially in the host session** with a printed notice (zero dispatch); omit keeps the default fan-out semantics; `auto` tier-resolves an executor; a name pins that executor. | omit |
19
20
  | `--json` | Emit structured JSON. | off |
20
21
 
21
22
  For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Plan a feature from a description — intake → feature create → AC generation → feature check gate → decomposition → batch-create (Design by default)
3
+ role: planner
3
4
  argument-hint: "\"<description>\" [--feature <id>] [--parent <feature-id>] [--agent <inline|auto|name>] [--skip-design] [--auto] [--approve-taste]"
4
5
  allowed-tools: ["Bash", "Read", "Skill", "AskUserQuestion"]
5
6
  ---
@@ -15,7 +16,7 @@ Wraps the **sp:spur-dev** skill.
15
16
  | `"<description>"` | Feature description to plan. | required |
16
17
  | `--feature` `<id>` | Attach to an existing feature. | omitted |
17
18
  | `--parent` `<feature-id>` | Create under a parent feature. | omitted |
18
- | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing planning. The planning pipeline's `agent.run` stages always dispatch a subprocess; `inline` is accepted there as a synonym for omit, resolving to `agent.default` (ADR-047). `auto` tier-resolves an executor; a name pins that executor. | agent.default |
19
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing planning. The planning pipeline's `agent.run` stages are headless — they always dispatch a subprocess. Explicit `--agent inline` is rejected there with the stable special error (exit 2): a headless surface cannot host a session — no dispatch, no `agent.default` fallback. Use `omit` (resolves to `agent.default`), `auto` (tier-resolves an executor), or a name (pins that executor). | agent.default |
19
20
  | `--skip-design` | Omit the system-design hop. | off |
20
21
  | `--auto` | Skip objective HITL gates. | off |
21
22
  | `--approve-taste` | With --auto: skip design-approval pause. | off |
@@ -0,0 +1,39 @@
1
+ ---
2
+ description: "Review GitHub PRs with Codex; collect and fix findings."
3
+ role: reviewer
4
+ argument-hint: "[full|submit|collect|fix|rerun|status|rules] [--base <branch>] [--no-wait] [--agent <inline|auto|name>] [<focus>]"
5
+ allowed-tools: ["Bash", "Read", "Skill"]
6
+ ---
7
+
8
+ # Dev PR Review
9
+
10
+ Wraps the **sp:pr-reviewing** skill. The review itself runs on the GitHub PR through Codex
11
+ (`@codex review`) — never through a local Codex review mechanism; the invoking agent orchestrates
12
+ and (in `fix` mode) implements.
13
+
14
+ ## Argument Flags
15
+
16
+ | Flag | Description | Default |
17
+ | --- | --- | --- |
18
+ | `<mode>` | `full\|submit\|collect\|fix\|rerun\|status\|rules` — full: request (deduped) + wait + report; submit: request and stop at pending; collect: report the latest review; fix: validate findings, fix legitimate ones, re-review; rerun: force a fresh review of the pushed HEAD; status: read-only composite; rules: author the repo's `AGENTS.md` `## Code Review Rules`. | full |
19
+ | `--base` `<branch>` | Base branch when a new PR must be created. | existing PR base, else repo default |
20
+ | `--no-wait` | Return pending right after the review request instead of polling. | off |
21
+ | `--agent` `<inline\|auto\|name>` | Who performs model-bearing triage/fix. Omit uses the current agent, `inline` forbids dispatch, `auto` resolves the declared role, and a name pins that executor. This does not change the deterministic workflow/direct route. | omit |
22
+ | `<focus>` | Remaining free text — extra review focus appended to the Codex request (e.g. `security boundaries and transaction idempotency`). | none |
23
+
24
+ For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
25
+
26
+ ## Usage
27
+
28
+ /sp:dev-pr-review [full|submit|collect|fix|rerun|status|rules] [--base <branch>] [--no-wait] [--agent <inline|auto|name>] [review focus]
29
+
30
+ ## Implementation
31
+
32
+ - Apply the [inline-default execution-surface contract](../skills/spur-dev/references/cross-cutting.md#inline-default-execution-surface).
33
+ - Delegate everything: `Skill(skill="sp:pr-reviewing", args="$ARGUMENTS")`. The skill owns mode
34
+ routing, finding triage, fix, and rules authoring; `.spur/workflows/pr-review.yaml` is the SSOT
35
+ for the review spine's state order and guards; the staged `pr-reviewing.ts` is the
36
+ deterministic git/gh core every spine step shells out to.
37
+ - The external review goes through the GitHub PR and an `@codex review` comment only — never local
38
+ Codex review commands. Never force-push, rewrite history, merge the PR, or discard unrelated
39
+ changes; outside `fix` mode, ask before creating any commit.
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Refine task requirements via structured Q&A — clarify scope, elicit missing details, tighten acceptance criteria; optional implement-ready depth
3
+ role: planner
3
4
  argument-hint: "<wbs> [--focus <mode>] [--description <text>] [--depth <standard|ready>] [--agent <inline|auto|name>] [--auto] [--next]"
4
5
  allowed-tools: ["Bash", "Read", "Skill", "AskUserQuestion"]
5
6
  ---
@@ -18,7 +19,7 @@ agent will implement and L3-clean is not enough (frozen APIs, anti-patterns, fil
18
19
  | `--focus` `<mode>` | Refinement focus mode. | omitted |
19
20
  | `--description` `<text>` | Override the task description. | omitted |
20
21
  | `--depth` `<standard\|ready>` | Spec depth bar (see flag glossary). | `standard` |
21
- | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing refinement. | inline |
22
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing refinement. | omit |
22
23
  | `--auto` | Skip objective HITL gates. | off |
23
24
  | `--next` | Hand off to the next-router on success. | off |
24
25
 
@@ -34,8 +35,9 @@ Under `--auto` with **`--depth standard`** (default), SKIP only when target sect
34
35
  findings: Background, Requirements, Acceptance Criteria, Design, Plan. Solution is not a refine
35
36
  target. Under **`--depth ready`**, do **not** SKIP on L3-clean alone — run the implement-ready
36
37
  checklist (dev-operations § refine) and rewrite Design/Requirements/Plan until another agent can
37
- implement without inventing design. Stage floor: `standard` (fallback `capable-2`); ready synthesis
38
- may use a higher tier when the task spans packages/seams.
38
+ implement without inventing design. Stage floor: the `planner` role per
39
+ [`roles.md`](../references/roles.md) this command names roles, never tiers (0538 R4);
40
+ ready synthesis may use a higher tier when the task spans packages/seams.
39
41
 
40
42
  ## Implementation
41
43
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Refine a batch of tasks via structured Q&A — resolve a set (feature or selector), refine each in dependency-correct order, emit a batch report; optional implement-ready depth
3
+ role: planner
3
4
  argument-hint: "--feature <id> | --tasks <selector> [--focus <mode>] [--description <text>] [--depth <standard|ready>] [--agent <inline|auto|name>] [--auto] [--keep-going] [--status <s>] [--json] [--worktree [<name>]]"
4
5
  allowed-tools: ["Bash", "Read", "Skill", "AskUserQuestion"]
5
6
  ---
@@ -19,7 +20,7 @@ operation, applied to a resolved set (typically every task under a feature). Pas
19
20
  | `--focus` `<mode>` | Refinement focus mode. | omitted |
20
21
  | `--description` `<text>` | Override description for each task. | omitted |
21
22
  | `--depth` `<standard\|ready>` | Spec depth bar (see flag glossary). | `standard` |
22
- | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing refinement. | inline |
23
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing refinement. | omit |
23
24
  | `--auto` | Skip objective HITL gates. | off |
24
25
  | `--keep-going` | Continue past per-task failures. | off |
25
26
  | `--status` `<s>` | Only refine tasks in a status. | backlog,todo |
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Refresh feature status by feature ID, task WBS, or batch sweep via spur feature sync
3
+ role: scribe
3
4
  argument-hint: "[<feature-id|wbs>] [--all] [--auto] [--agent <inline|auto|name>]"
4
5
  allowed-tools: ["Bash", "Read", "Skill"]
5
6
  ---
@@ -15,7 +16,7 @@ Wraps the **sp:spur-dev** skill.
15
16
  | `[<feature-id\|wbs>]` | Feature id or task WBS to refresh. | active |
16
17
  | `--all` | Refresh every feature. | off |
17
18
  | `--auto` | Skip objective HITL gates. | off |
18
- | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing refresh. | inline |
19
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing refresh. | omit |
19
20
 
20
21
  For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
21
22
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Reverse engineer a codebase with selectable depth, focus, and output format
3
+ role: coder
3
4
  argument-hint: "[<path>] [--mode <briefing|structure|architecture|design|full>] [--focus <all|stack|dependencies|data|flows|api|security|quality|performance>] [--format <markdown|json|both>] [--output <file>] [--agent <inline|auto|name>]"
4
5
  allowed-tools: ["Read", "Write", "Edit", "Grep", "Glob", "Bash", "Skill"]
5
6
  ---
@@ -17,7 +18,7 @@ Wraps the **sp:reverse-engineering** skill.
17
18
  | `--focus` `<all\|stack\|dependencies\|data\|flows\|api\|security\|quality\|performance>` | Analysis lens. | all |
18
19
  | `--format` `<markdown\|json\|both>` | Output format. | markdown |
19
20
  | `--output` `<file>` | Write to a file instead of stdout. | stdout |
20
- | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing analysis. | inline |
21
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing analysis. | omit |
21
22
 
22
23
  For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
23
24
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Review code for a task or path — multi-dimensional review across functional traceability, SECUA quality, and architectural depth. Triggers: \"review this\", \"check the code\", \"SECUA review\", \"dev review\", \"audit this\"."
3
+ role: reviewer
3
4
  argument-hint: "[<wbs|path>] [--agent <inline|auto|name>] [--focus <dims>] [--fix (deprecated)]"
4
5
  allowed-tools: ["Bash", "Read", "Skill"]
5
6
  ---
@@ -13,7 +14,7 @@ Wraps the **sp:functional-review**, **sp:code-verification**, and **sp:code-impr
13
14
  | Flag | Description | Default |
14
15
  | --- | --- | --- |
15
16
  | `[<wbs\|path>]` | Task WBS or source path to review. | cwd |
16
- | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing review. | inline |
17
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing review. | omit |
17
18
  | `--focus` `<dims>` | Review dimensions (functional / SECUA / architecture). | all |
18
19
  | `--fix` | Deprecated no-op + warning; route remediation to /sp:dev-verify --fix. | off |
19
20