@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.
- package/.claude-plugin/marketplace.json +1 -1
- package/config/config.example.yaml +94 -15
- package/config/transition-shims.json +33 -0
- package/config/workflows/basic.yaml +2 -0
- package/config/workflows/docs-pipeline.yaml +2 -0
- package/config/workflows/feature-dev.yaml +8 -0
- package/config/workflows/idea-pipeline.yaml +10 -0
- package/config/workflows/planning-pipeline.yaml +4 -0
- package/config/workflows/pr-review.yaml +338 -0
- package/config/workflows/task-pipeline.yaml +8 -0
- package/config/workflows/wayfinder-resolution.yaml +4 -0
- package/config/workflows/wrapup-pipeline.yaml +18 -1
- package/package.json +8 -8
- package/plugins/sp/README.md +9 -6
- package/plugins/sp/agents/expert-spur.md +1 -0
- package/plugins/sp/commands/dev-arch.md +2 -1
- package/plugins/sp/commands/dev-brainstorm.md +2 -1
- package/plugins/sp/commands/dev-changelog.md +1 -0
- package/plugins/sp/commands/dev-daily.md +1 -0
- package/plugins/sp/commands/dev-debug.md +2 -1
- package/plugins/sp/commands/dev-dogfood.md +2 -1
- package/plugins/sp/commands/{dev-featurechange.md → dev-feature-change.md} +8 -10
- package/plugins/sp/commands/dev-find-conflict.md +2 -1
- package/plugins/sp/commands/dev-find-issue.md +36 -43
- package/plugins/sp/commands/dev-find-next.md +5 -4
- package/plugins/sp/commands/dev-fixall.md +1 -0
- package/plugins/sp/commands/dev-gitmsg.md +1 -0
- package/plugins/sp/commands/dev-gtd.md +12 -12
- package/plugins/sp/commands/dev-handover.md +1 -0
- package/plugins/sp/commands/dev-history-load.md +63 -0
- package/plugins/sp/commands/dev-idea.md +1 -0
- package/plugins/sp/commands/dev-next.md +2 -1
- package/plugins/sp/commands/dev-parallel.md +2 -1
- package/plugins/sp/commands/dev-plan.md +2 -1
- package/plugins/sp/commands/dev-pr-review.md +39 -0
- package/plugins/sp/commands/dev-refine.md +5 -3
- package/plugins/sp/commands/dev-refineall.md +2 -1
- package/plugins/sp/commands/dev-refresh.md +2 -1
- package/plugins/sp/commands/dev-reverse.md +2 -1
- package/plugins/sp/commands/dev-review.md +2 -1
- package/plugins/sp/commands/dev-run.md +3 -2
- package/plugins/sp/commands/dev-runall.md +3 -2
- package/plugins/sp/commands/dev-simplify.md +2 -1
- package/plugins/sp/commands/dev-unit.md +2 -1
- package/plugins/sp/commands/dev-verify.md +2 -1
- package/plugins/sp/commands/dev-verifyall.md +2 -1
- package/plugins/sp/commands/dev-wrap.md +7 -5
- package/plugins/sp/commands/dev-wrapall.md +7 -5
- package/plugins/sp/commands/rule-add.md +1 -0
- package/plugins/sp/commands/rule-refine.md +1 -0
- package/plugins/sp/commands/rule-scan.md +1 -0
- package/plugins/sp/commands/spur-init.md +1 -0
- package/plugins/sp/commands/workflow-add.md +1 -0
- package/plugins/sp/commands/workflow-refine.md +1 -0
- package/plugins/sp/hooks/careful-guard.ts +5 -80
- package/plugins/sp/hooks/destructive-policy.ts +146 -0
- package/plugins/sp/hooks/pi/guard-extension.ts +33 -46
- package/plugins/sp/hooks/task-file-policy.ts +31 -0
- package/plugins/sp/hooks/task-write-guard.ts +4 -0
- package/plugins/sp/plugin.json +1 -1
- package/plugins/sp/references/roles.md +106 -0
- package/plugins/sp/scripts/feature-sync-bounded.ts +28 -2
- package/plugins/sp/scripts/history-load.ts +400 -0
- package/plugins/sp/scripts/pr-reviewing.ts +867 -0
- package/plugins/sp/scripts/stage-registry-adapter.ts +66 -31
- package/plugins/sp/scripts/surface-drift-inventory.ts +908 -0
- package/plugins/sp/scripts/task-size-precheck.ts +30 -4
- package/plugins/sp/scripts/transition-shim-check.ts +238 -0
- package/plugins/sp/scripts/validate-commands.ts +33 -2
- package/plugins/sp/scripts/validate-flag-contracts.ts +5 -2
- package/plugins/sp/skills/code-implementation/SKILL.md +9 -1
- package/plugins/sp/skills/code-verification/SKILL.md +29 -28
- package/plugins/sp/skills/issue-finding/SKILL.md +123 -141
- package/plugins/sp/skills/issue-finding/examples/expected-findings.json +1 -1
- package/plugins/sp/skills/issue-finding/references/session-formats.md +87 -90
- package/plugins/sp/skills/next-feature/SKILL.md +6 -6
- package/plugins/sp/skills/next-feature/references/handoff-routing.md +5 -5
- package/plugins/sp/skills/next-feature/references/signal-derivation.md +7 -2
- package/plugins/sp/skills/next-router/SKILL.md +1 -1
- package/plugins/sp/skills/parallel-execution/references/dispatch-surface.md +40 -2
- package/plugins/sp/skills/pr-reviewing/SKILL.md +285 -0
- package/plugins/sp/skills/spur-cli/SKILL.md +3 -0
- package/plugins/sp/skills/spur-cli/references/agent.md +12 -7
- package/plugins/sp/skills/spur-cli/references/features/hierarchy-mece.md +5 -5
- package/plugins/sp/skills/spur-cli/references/features.md +1 -1
- package/plugins/sp/skills/spur-cli/references/team.md +10 -3
- package/plugins/sp/skills/spur-dev/SKILL.md +2 -0
- package/plugins/sp/skills/spur-dev/references/ac-style-guide.md +17 -0
- package/plugins/sp/skills/spur-dev/references/cross-cutting.md +44 -23
- package/plugins/sp/skills/spur-dev/references/dev-operations.md +14 -11
- package/plugins/sp/skills/spur-dev/references/execution-workflow.md +14 -12
- package/plugins/sp/skills/spur-dev/references/flag-glossary.md +28 -7
- package/plugins/sp/skills/spur-dev/references/gate-checklists.md +2 -0
- package/plugins/sp/skills/spur-dev/references/inline-pipeline-driver.md +12 -2
- package/schemas/spur-config.schema.json +47 -3
- package/spur.js +12223 -7716
- package/web/_astro/BoardApp.8hiqShQn.js +1 -0
- package/web/_astro/{BoardApp.DKyrGxdo.js → BoardApp.BjQUNhuj.js} +74 -74
- package/web/_astro/{TaskDetail.6-27_LMa.js → TaskDetail.CVBuD6dF.js} +1 -1
- package/web/_astro/{arc.Df-9AQvS.js → arc.BMMjdODi.js} +1 -1
- package/web/_astro/{architectureDiagram-3BPJPVTR.VAI_-paS.js → architectureDiagram-3BPJPVTR.BU5ShzXf.js} +1 -1
- package/web/_astro/{blockDiagram-GPEHLZMM.DFpUY1ue.js → blockDiagram-GPEHLZMM.Bj1iEqPD.js} +1 -1
- package/web/_astro/{c4Diagram-AAUBKEIU.CF8doOpg.js → c4Diagram-AAUBKEIU.vX8wepCL.js} +1 -1
- package/web/_astro/channel.EwdSemIC.js +1 -0
- package/web/_astro/{chunk-2J33WTMH.BnjK3fjt.js → chunk-2J33WTMH.BKAipTym.js} +1 -1
- package/web/_astro/{chunk-4BX2VUAB.x6ZDnJKq.js → chunk-4BX2VUAB.B68XkPG7.js} +1 -1
- package/web/_astro/{chunk-55IACEB6.zY-0uu7w.js → chunk-55IACEB6.BmeDLcrc.js} +1 -1
- package/web/_astro/{chunk-727SXJPM.BZxKg_Vi.js → chunk-727SXJPM.PDuBA3Kw.js} +1 -1
- package/web/_astro/{chunk-AQP2D5EJ.Cpi9G9Td.js → chunk-AQP2D5EJ.C7A044za.js} +1 -1
- package/web/_astro/{chunk-FMBD7UC4.DWTB-Pif.js → chunk-FMBD7UC4.BtzKKFqR.js} +1 -1
- package/web/_astro/{chunk-ND2GUHAM.BPDQbiOG.js → chunk-ND2GUHAM.BJuDeeOy.js} +1 -1
- package/web/_astro/{chunk-QZHKN3VN.BRWIcuoM.js → chunk-QZHKN3VN.DSeMDgcQ.js} +1 -1
- package/web/_astro/{classDiagram-4FO5ZUOK.mGTCZsDO.js → classDiagram-4FO5ZUOK.D53Q4tCw.js} +1 -1
- package/web/_astro/{classDiagram-v2-Q7XG4LA2.mGTCZsDO.js → classDiagram-v2-Q7XG4LA2.D53Q4tCw.js} +1 -1
- package/web/_astro/{cose-bilkent-S5V4N54A.D1GEut-z.js → cose-bilkent-S5V4N54A.c712AFRH.js} +1 -1
- package/web/_astro/{dagre-BM42HDAG.BV0XG9Do.js → dagre-BM42HDAG.D-idisph.js} +1 -1
- package/web/_astro/{diagram-2AECGRRQ.DzpYxsjo.js → diagram-2AECGRRQ.DLgnsJCU.js} +1 -1
- package/web/_astro/{diagram-5GNKFQAL.Cm9YzJh4.js → diagram-5GNKFQAL.BiaxBVqx.js} +1 -1
- package/web/_astro/{diagram-KO2AKTUF.BjhottUj.js → diagram-KO2AKTUF.C8HX1vd8.js} +1 -1
- package/web/_astro/{diagram-LMA3HP47.BFsQW5kb.js → diagram-LMA3HP47.CfqDLLes.js} +1 -1
- package/web/_astro/{diagram-OG6HWLK6.8pdpzSWO.js → diagram-OG6HWLK6.15SDiEed.js} +1 -1
- package/web/_astro/{erDiagram-TEJ5UH35.Bd7KUJmJ.js → erDiagram-TEJ5UH35.DksYtOYM.js} +1 -1
- package/web/_astro/{flowDiagram-I6XJVG4X.7LWffkaE.js → flowDiagram-I6XJVG4X.DR_Au-HV.js} +1 -1
- package/web/_astro/{ganttDiagram-6RSMTGT7.BeDcO5tI.js → ganttDiagram-6RSMTGT7.CHhHrffI.js} +1 -1
- package/web/_astro/{gitGraphDiagram-PVQCEYII.Ca4n730A.js → gitGraphDiagram-PVQCEYII.B2Xehvam.js} +1 -1
- package/web/_astro/{index.Dbvuw6d4.css → index.DAxu50UF.css} +1 -1
- package/web/_astro/{infoDiagram-5YYISTIA.B0OakQYb.js → infoDiagram-5YYISTIA.C9c3CNNN.js} +1 -1
- package/web/_astro/{ishikawaDiagram-YF4QCWOH.DSmNQe-1.js → ishikawaDiagram-YF4QCWOH.BibUHkh8.js} +1 -1
- package/web/_astro/{journeyDiagram-JHISSGLW.Cy5ruEUu.js → journeyDiagram-JHISSGLW.BYoVHiyO.js} +1 -1
- package/web/_astro/{kanban-definition-UN3LZRKU.CUJXub0p.js → kanban-definition-UN3LZRKU.CM1K5wHE.js} +1 -1
- package/web/_astro/{linear.DC1jCCXn.js → linear.SPpjJUb-.js} +1 -1
- package/web/_astro/{mermaid.core.DxVP99Ab.js → mermaid.core.BAgx3nnb.js} +4 -4
- package/web/_astro/{mindmap-definition-RKZ34NQL.D0MaV6sJ.js → mindmap-definition-RKZ34NQL.D35oPG1R.js} +1 -1
- package/web/_astro/{pieDiagram-4H26LBE5.DCC6_q32.js → pieDiagram-4H26LBE5.DiWuRwk7.js} +1 -1
- package/web/_astro/{quadrantDiagram-W4KKPZXB.BeUOAM7C.js → quadrantDiagram-W4KKPZXB.B9PBzTWn.js} +1 -1
- package/web/_astro/{requirementDiagram-4Y6WPE33.Dbl4MASO.js → requirementDiagram-4Y6WPE33.CYuuamFN.js} +1 -1
- package/web/_astro/{sankeyDiagram-5OEKKPKP.HsLg0VS4.js → sankeyDiagram-5OEKKPKP.W24UhhtD.js} +1 -1
- package/web/_astro/{sequenceDiagram-3UESZ5HK.DT7DJTnZ.js → sequenceDiagram-3UESZ5HK.BpbNjA51.js} +1 -1
- package/web/_astro/{stateDiagram-AJRCARHV.d_ju1Vr1.js → stateDiagram-AJRCARHV.DqVsHudf.js} +1 -1
- package/web/_astro/{stateDiagram-v2-BHNVJYJU.DMCAjMJ4.js → stateDiagram-v2-BHNVJYJU.CzwHYX81.js} +1 -1
- package/web/_astro/{timeline-definition-PNZ67QCA.DNOHr62_.js → timeline-definition-PNZ67QCA.Bc3B6djw.js} +1 -1
- package/web/_astro/{vennDiagram-CIIHVFJN.B7dUy-1W.js → vennDiagram-CIIHVFJN.C-D5rh8O.js} +1 -1
- package/web/_astro/{wardley-L42UT6IY.DEqOXvBh.js → wardley-L42UT6IY.D7PdYCqn.js} +1 -1
- package/web/_astro/{wardleyDiagram-YWT4CUSO.BCRb2p6x.js → wardleyDiagram-YWT4CUSO.CwmJKXF3.js} +1 -1
- package/web/_astro/{xychartDiagram-2RQKCTM6.NxVQLdBh.js → xychartDiagram-2RQKCTM6.avDYnLsb.js} +1 -1
- package/web/index.html +2 -2
- package/web/_astro/BoardApp.Ce6zJYAH.js +0 -1
- 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. |
|
|
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
|
-
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
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. |
|
|
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: "
|
|
3
|
-
|
|
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 —
|
|
10
|
-
|
|
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
|
|
16
|
-
|
|
|
17
|
-
| `[<topic>]`
|
|
18
|
-
| `--sessions` `<glob>`
|
|
19
|
-
| `--source` `<auto\|
|
|
20
|
-
| `--feature` `<id>`
|
|
21
|
-
| `--template` `<meta\|issue\|standard>`
|
|
22
|
-
| `--priority` `<P0\|P1\|P2\|P3>`
|
|
23
|
-
| `--severity` `<S0\|S1\|S2>`
|
|
24
|
-
| `--category` `<list>`
|
|
25
|
-
| `--since` `<iso>`
|
|
26
|
-
| `--until` `<iso>`
|
|
27
|
-
| `--top` `<n>`
|
|
28
|
-
| `--min-cost` `<duration>`
|
|
29
|
-
| `--strict-topic`
|
|
30
|
-
| `--
|
|
31
|
-
| `--
|
|
32
|
-
| `--
|
|
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
|
|
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
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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-
|
|
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-
|
|
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. |
|
|
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-
|
|
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,14 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Get things done — quality gate → fix →
|
|
3
|
-
|
|
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
|
|
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
|
-
| `--
|
|
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] [--
|
|
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
|
|
44
|
-
|
|
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
|
|
60
|
-
Then stop the run (this stage failed). The operator can
|
|
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
|
|
@@ -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. |
|
|
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.
|
|
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
|
|
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. |
|
|
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:
|
|
38
|
-
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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
|
|