@gobing-ai/spur 0.3.86 → 0.3.88

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 (107) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/config/config.example.yaml +9 -0
  3. package/config/plugin-scripts.json +4 -0
  4. package/config/rules/strict/runtime-boundaries.yaml +1 -0
  5. package/config/templates/feature/default.md +2 -0
  6. package/config/templates/task/brainstorm.md +2 -2
  7. package/config/templates/task/feature-impl.md +2 -2
  8. package/config/templates/task/issue.md +2 -2
  9. package/config/templates/task/meta.md +2 -2
  10. package/config/templates/task/review.md +2 -2
  11. package/config/templates/task/standard.md +2 -2
  12. package/config/workflow-candidates.json +13 -35
  13. package/config/workflows/feature-lifecycle.yaml +6 -0
  14. package/config/workflows/feature-verification.yaml +6 -5
  15. package/config/workflows/idea-pipeline.yaml +89 -36
  16. package/config/workflows/task-pipeline.yaml +25 -0
  17. package/package.json +9 -9
  18. package/plugins/sp/README.md +9 -6
  19. package/plugins/sp/commands/dev-idea.md +9 -2
  20. package/plugins/sp/commands/dev-refactor.md +33 -0
  21. package/plugins/sp/commands/dev-refine.md +25 -7
  22. package/plugins/sp/commands/dev-refineall.md +9 -6
  23. package/plugins/sp/lib/idea-handoff.generated.mjs +160 -152
  24. package/plugins/sp/plugin.json +1 -1
  25. package/plugins/sp/references/roles.md +1 -1
  26. package/plugins/sp/scripts/idea-coverage-check.ts +168 -0
  27. package/plugins/sp/scripts/inline-pipeline-parity-check.ts +114 -3
  28. package/plugins/sp/scripts/inline-run-setup.ts +28 -18
  29. package/plugins/sp/skills/brainstorm/SKILL.md +4 -0
  30. package/plugins/sp/skills/code-refactoring/SKILL.md +155 -0
  31. package/plugins/sp/skills/code-refactoring/references/finding-schema.md +74 -0
  32. package/plugins/sp/skills/code-refactoring/references/fix-ladder.md +52 -0
  33. package/plugins/sp/skills/code-refactoring/references/focus-detection.md +44 -0
  34. package/plugins/sp/skills/code-refactoring/references/refactor-finding.schema.json +95 -0
  35. package/plugins/sp/skills/spec-decomposition/references/decomposition.md +23 -16
  36. package/plugins/sp/skills/spur-cli/references/agent.md +92 -9
  37. package/plugins/sp/skills/spur-cli/references/features/acceptance-criteria.md +4 -2
  38. package/plugins/sp/skills/spur-cli/references/features.md +6 -1
  39. package/plugins/sp/skills/spur-cli/references/workflows/authoring-workflows.md +2 -2
  40. package/plugins/sp/skills/spur-cli/references/workflows/operations.md +3 -3
  41. package/plugins/sp/skills/spur-cli/references/workflows/workflow-fit-and-tuning.md +1 -1
  42. package/plugins/sp/skills/spur-dev/SKILL.md +33 -33
  43. package/plugins/sp/skills/spur-dev/references/ac-style-guide.md +24 -0
  44. package/plugins/sp/skills/spur-dev/references/dev-operations.md +99 -26
  45. package/plugins/sp/skills/spur-dev/references/flag-glossary.md +27 -5
  46. package/plugins/sp/skills/spur-dev/references/idea-evaluation.md +11 -1
  47. package/plugins/sp/skills/spur-dev/references/inline-pipeline-driver.md +33 -1
  48. package/plugins/sp/skills/spur-dev/references/planning-workflow.md +10 -6
  49. package/plugins/sp/skills/taste-refactoring-api/SKILL.md +44 -1
  50. package/plugins/sp/skills/taste-refactoring-api/references/protocol-modes.md +31 -0
  51. package/plugins/sp/skills/taste-refactoring-architect/SKILL.md +43 -0
  52. package/plugins/sp/skills/taste-refactoring-tests/SKILL.md +42 -0
  53. package/plugins/sp/skills/taste-refactoring-ui/SKILL.md +43 -0
  54. package/schemas/spur-config.schema.json +14 -2
  55. package/schemas/task-batch.schema.json +2 -2
  56. package/spur.js +2012 -487
  57. package/web/_astro/{BoardApp.yBBcFXWP.js → BoardApp.CDUcHlTJ.js} +67 -67
  58. package/web/_astro/BoardApp.CaCGU_uX.js +1 -0
  59. package/web/_astro/{TaskDetail.DqFJbRFc.js → TaskDetail.DwTmbQp5.js} +1 -1
  60. package/web/_astro/{arc.DL-BpHoi.js → arc.BzF71EFI.js} +1 -1
  61. package/web/_astro/{architectureDiagram-3BPJPVTR.9IdQYyDq.js → architectureDiagram-3BPJPVTR.jvdDahWM.js} +1 -1
  62. package/web/_astro/{blockDiagram-GPEHLZMM.BKsFCqTl.js → blockDiagram-GPEHLZMM.zSg4AmFD.js} +1 -1
  63. package/web/_astro/{c4Diagram-AAUBKEIU.DhwI0dh1.js → c4Diagram-AAUBKEIU.BkUIUQWH.js} +1 -1
  64. package/web/_astro/channel.SSVY0JPQ.js +1 -0
  65. package/web/_astro/{chunk-2J33WTMH.B3QVmQ9S.js → chunk-2J33WTMH.DvfQ_f50.js} +1 -1
  66. package/web/_astro/{chunk-4BX2VUAB.DBSuqs9F.js → chunk-4BX2VUAB.DuI4gQqX.js} +1 -1
  67. package/web/_astro/{chunk-55IACEB6.BSYTWAYD.js → chunk-55IACEB6.D3BWBOpF.js} +1 -1
  68. package/web/_astro/{chunk-727SXJPM.cWVuxXfS.js → chunk-727SXJPM.3QSi0a9M.js} +1 -1
  69. package/web/_astro/{chunk-AQP2D5EJ.DpU_Ob3d.js → chunk-AQP2D5EJ.xazCQrAF.js} +1 -1
  70. package/web/_astro/{chunk-FMBD7UC4.BykFkyji.js → chunk-FMBD7UC4.B2g6u4rA.js} +1 -1
  71. package/web/_astro/{chunk-ND2GUHAM.DwgHlMdY.js → chunk-ND2GUHAM.wWwWs99t.js} +1 -1
  72. package/web/_astro/{chunk-QZHKN3VN.CusXUGWM.js → chunk-QZHKN3VN.BD5g3qa9.js} +1 -1
  73. package/web/_astro/{classDiagram-4FO5ZUOK.fx0ObzkN.js → classDiagram-4FO5ZUOK.C7CzCdsX.js} +1 -1
  74. package/web/_astro/{classDiagram-v2-Q7XG4LA2.fx0ObzkN.js → classDiagram-v2-Q7XG4LA2.C7CzCdsX.js} +1 -1
  75. package/web/_astro/{cose-bilkent-S5V4N54A.Z4HgOlsd.js → cose-bilkent-S5V4N54A.Xyiau0gw.js} +1 -1
  76. package/web/_astro/{cynefin-OW5HDTMX.B5dIZHJu.js → cynefin-OW5HDTMX.BeC5MWas.js} +1 -1
  77. package/web/_astro/{dagre-BM42HDAG.DT70Q_Yw.js → dagre-BM42HDAG.yZbMN9vc.js} +1 -1
  78. package/web/_astro/{diagram-2AECGRRQ.DqHA3XBF.js → diagram-2AECGRRQ.Cmo2zQM-.js} +1 -1
  79. package/web/_astro/{diagram-5GNKFQAL.BmCem957.js → diagram-5GNKFQAL.D033eSVi.js} +1 -1
  80. package/web/_astro/{diagram-KO2AKTUF.sn0-hrE0.js → diagram-KO2AKTUF.CR6k3Y3G.js} +1 -1
  81. package/web/_astro/{diagram-LMA3HP47.BSHe9tVc.js → diagram-LMA3HP47.x7mwu8jz.js} +1 -1
  82. package/web/_astro/{diagram-OG6HWLK6.DHIc-86k.js → diagram-OG6HWLK6.D8aTTvUr.js} +1 -1
  83. package/web/_astro/{erDiagram-TEJ5UH35.Bxayrs7v.js → erDiagram-TEJ5UH35.BoBqcKXQ.js} +1 -1
  84. package/web/_astro/{flowDiagram-I6XJVG4X.BkzoE_5I.js → flowDiagram-I6XJVG4X.D3mTQdrU.js} +1 -1
  85. package/web/_astro/{ganttDiagram-6RSMTGT7.okT6CvTo.js → ganttDiagram-6RSMTGT7.H-cqgIh-.js} +1 -1
  86. package/web/_astro/{gitGraphDiagram-PVQCEYII.CJuYbhC7.js → gitGraphDiagram-PVQCEYII.B6s9zbfC.js} +1 -1
  87. package/web/_astro/{infoDiagram-5YYISTIA.RqLy7nBo.js → infoDiagram-5YYISTIA.BzgCoV6P.js} +1 -1
  88. package/web/_astro/{ishikawaDiagram-YF4QCWOH.BwIcoagw.js → ishikawaDiagram-YF4QCWOH.BZzVhy1-.js} +1 -1
  89. package/web/_astro/{journeyDiagram-JHISSGLW.UB1VbWtH.js → journeyDiagram-JHISSGLW.BV3195Py.js} +1 -1
  90. package/web/_astro/{kanban-definition-UN3LZRKU.AaxMKpTk.js → kanban-definition-UN3LZRKU.BjRd2DWz.js} +1 -1
  91. package/web/_astro/{linear.Nv_xOUjP.js → linear.BILTgS5N.js} +1 -1
  92. package/web/_astro/{mermaid.core.Bc4LqQgX.js → mermaid.core.DBy_WKeW.js} +4 -4
  93. package/web/_astro/{mindmap-definition-RKZ34NQL.oKUvU_qi.js → mindmap-definition-RKZ34NQL.BiEjaI4-.js} +1 -1
  94. package/web/_astro/{pieDiagram-4H26LBE5.DQk0oo03.js → pieDiagram-4H26LBE5.i_8V5pIn.js} +1 -1
  95. package/web/_astro/{quadrantDiagram-W4KKPZXB.BdDjESDa.js → quadrantDiagram-W4KKPZXB.BWaW3MHn.js} +1 -1
  96. package/web/_astro/{requirementDiagram-4Y6WPE33.C2u9hUeH.js → requirementDiagram-4Y6WPE33.CzddBbtg.js} +1 -1
  97. package/web/_astro/{sankeyDiagram-5OEKKPKP.CDEoiJST.js → sankeyDiagram-5OEKKPKP.X2ww0e-D.js} +1 -1
  98. package/web/_astro/{sequenceDiagram-3UESZ5HK.D_hT_GAT.js → sequenceDiagram-3UESZ5HK.DSA4kTcc.js} +1 -1
  99. package/web/_astro/{stateDiagram-AJRCARHV.DI8RYG0b.js → stateDiagram-AJRCARHV.D0DtFSpR.js} +1 -1
  100. package/web/_astro/{stateDiagram-v2-BHNVJYJU.Bkxz4DnP.js → stateDiagram-v2-BHNVJYJU.BfQq0zQv.js} +1 -1
  101. package/web/_astro/{timeline-definition-PNZ67QCA.DSY-kH3-.js → timeline-definition-PNZ67QCA.Dmlrgi1m.js} +1 -1
  102. package/web/_astro/{vennDiagram-CIIHVFJN.CpaDtuGr.js → vennDiagram-CIIHVFJN.D5mpl00Z.js} +1 -1
  103. package/web/_astro/{wardleyDiagram-YWT4CUSO.DujQWvo8.js → wardleyDiagram-YWT4CUSO.Df4BdzO4.js} +1 -1
  104. package/web/_astro/{xychartDiagram-2RQKCTM6.DcM5Y4b9.js → xychartDiagram-2RQKCTM6.DiTRreKN.js} +1 -1
  105. package/web/index.html +1 -1
  106. package/web/_astro/BoardApp.CJiqp5pS.js +0 -1
  107. package/web/_astro/channel.CX5453qQ.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobing-ai/spur",
3
- "version": "0.3.86",
3
+ "version": "0.3.88",
4
4
  "description": "Spur CLI — local-first harness for mainstream coding agents: constraint checking, workflow orchestration, agent health, and history analytics. Bun-native; exposes the `spur` command.",
5
5
  "keywords": [
6
6
  "spur",
@@ -53,14 +53,14 @@
53
53
  },
54
54
  "devDependencies": {
55
55
  "@commander-js/extra-typings": "^14.0.0",
56
- "@gobing-ai/ts-db": "^0.4.67",
57
- "@gobing-ai/ts-ai-runner": "^0.4.67",
58
- "@gobing-ai/ts-dual-workflow-engine": "^0.4.67",
59
- "@gobing-ai/ts-infra": "^0.4.67",
60
- "@gobing-ai/ts-llm-jsonl-importer": "^0.4.67",
61
- "@gobing-ai/ts-rule-engine": "^0.4.67",
62
- "@gobing-ai/ts-runtime": "^0.4.67",
63
- "@gobing-ai/ts-utils": "^0.4.67",
56
+ "@gobing-ai/ts-db": "^0.4.69",
57
+ "@gobing-ai/ts-ai-runner": "^0.4.69",
58
+ "@gobing-ai/ts-dual-workflow-engine": "^0.4.69",
59
+ "@gobing-ai/ts-infra": "^0.4.69",
60
+ "@gobing-ai/ts-llm-jsonl-importer": "^0.4.69",
61
+ "@gobing-ai/ts-rule-engine": "^0.4.69",
62
+ "@gobing-ai/ts-runtime": "^0.4.69",
63
+ "@gobing-ai/ts-utils": "^0.4.69",
64
64
  "@types/bun": "1.3.14",
65
65
  "@types/figlet": "^1.7.0",
66
66
  "@types/node-notifier": "8.0.5",
@@ -94,7 +94,7 @@ list this README is checked against.
94
94
  | `dev-idea` | 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, handoff |
95
95
  | `dev-plan` | Plan a feature from a written description — intake → feature create → AC generation → feature check gate → decomposition → batch-create |
96
96
  | `dev-brainstorm` | Interactive solution design — heuristic discovery interview followed by structured ideation with trade-offs and confidence scoring |
97
- | `dev-refine` | Refine task requirements via structured Q&A — clarify scope, elicit missing details, tighten acceptance criteria; `--depth ready` for implement-ready freeze |
97
+ | `dev-refine` | Refine task requirements via structured Q&A — clarify scope, elicit missing details, tighten acceptance criteria; `--depth ready` audits and corrects existing claims, freezes the spec, promotes to todo |
98
98
 
99
99
  #### Lifecycle — execution
100
100
 
@@ -116,7 +116,7 @@ list this README is checked against.
116
116
  | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
117
117
  | `dev-runall` | Run a batch of tasks through their pipelines in dependency-correct order — resolve a set, topo-sort, run each via task-pipeline.yaml, emit a batch report |
118
118
  | `dev-parallel` | Fan out independent tasks or investigations in parallel via subagents — choose the right pattern and synthesize results |
119
- | `dev-refineall` | Batch-refine tasks (feature or selector) — planning-half bulk fill of Background/Requirements/AC/Design/Plan before runall; `--depth ready` for implement-ready freeze |
119
+ | `dev-refineall` | Batch-refine tasks (feature or selector) — planning-half bulk fill of Background/Requirements/AC/Design/Plan before runall; `--depth ready` audits, corrects, freezes and promotes each task |
120
120
  | `dev-verifyall` | Batch-verify tasks against requirements and AC — resolves a set, runs per-task verification, produces consolidated PASS/PARTIAL/FAIL summary report |
121
121
  | `dev-wrapall` | Wrap up a batch of completed tasks — learnings, metrics, doc-sync, feature transition, optional branch cleanup |
122
122
 
@@ -134,6 +134,7 @@ list this README is checked against.
134
134
  | `dev-find-next` | Prompt-first feature frontier prioritizer — ranks the open feature frontier by derived importance/urgency with per-candidate evidence; gates unactionable features; emits tree defects as proposals only |
135
135
  | `dev-fixall` | Fix all lint, type, and test errors systematically across the working tree |
136
136
  | `dev-simplify` | Simplify recently-changed code for clarity without changing behavior — incremental, test-after-each, revert on regression |
137
+ | `dev-refactor` | Lens-routed refactoring with a preservation contract — taste lenses (api/architect/tests/ui) classify findings on the shared schema; cutting/breaking changes pause for operator approval; forwards to sp:code-refactoring |
137
138
  | `dev-arch` | Survey a codebase (or module tree) for shallow modules and deepening opportunities — emit a ranked MARKDOWN candidate report that feeds the planning half; never auto-refactors |
138
139
  | `dev-reverse` | Reverse-engineer a codebase — analyze unfamiliar repos, generate HLD/architecture docs, audit quality/security, and produce onboarding documentation |
139
140
  | `dev-gitmsg` | Generate conventional commit message(s) from the current change set via one bounded diff capture, optionally commit |
@@ -199,6 +200,7 @@ plugins/sp/
199
200
  │ ├── code-review/ # Pre-commit self-review + SECUA review lenses
200
201
  │ │ └── references/{review-lenses, self-review-checklist}.md
201
202
  │ ├── code-simplification/ # Behavior-preserving simplification
203
+ │ ├── code-refactoring/ # Lens-routed refactoring coordinator (shared finding schema, P1–P4 severity map, fix ladder, focus detection)
202
204
  │ ├── code-testing/ # Testing / coverage competency
203
205
  │ │ └── references/{unit-testing.md, stacks/{bun-ts, go, python}.md}
204
206
  │ ├── code-verification/ # Verify + SECUA review
@@ -316,6 +318,7 @@ surface or run one workflow. All skills target the same five core platforms: `cl
316
318
  | `code-review` | 1.0 | Pre-commit self-review checklist (6 categories, catches 60-80% of issues) + SECUA review lenses + findings processing |
317
319
  | `code-simplification` | 1.0 | Behavior-preserving simplification — Chesterton's Fence, signal tables, incremental change + test-after-each, scope-to-changed |
318
320
  | `code-improvement` | 1.0 | Architectural deepening — surface shallow/tightly-coupled modules and propose refactors that make them deep, testable, AI-navigable; backs `/sp:dev-arch` |
321
+ | `code-refactoring` | 1.0 | Lens-routed refactoring coordinator with a preservation contract — focus auto-detection, taste-lens dispatch, shared finding schema, P1–P4 severity map, objective/taste gates, fix ladder with revert-on-regression; backs `/sp:dev-refactor` |
319
322
  | `functional-review` | 1.0 | Requirements-traceability assessment — per-requirement verdicts with file:line evidence that the implementation satisfies ALL task requirements; pipeline Phase 8b gate |
320
323
  | `doubt-driven-development` | 1.0 | In-flight adversarial review of a non-trivial decision before committing it — hand artifact + contract to a fresh-context skeptic, reconcile, stop at 3 cycles |
321
324
  | `source-driven-development` | 1.0 | Source-first verification — verify framework/API/library facts against primary sources before generating code; separates "the API exists" from "used correctly under its contract" |
@@ -340,10 +343,10 @@ surface or run one workflow. All skills target the same five core platforms: `cl
340
343
  | `spur-composer` | 1.0 | Cross-noun composition — workflow catalog selection, the ephemeral→project→shared ladder, ADR-115 budgets, trace-driven rule tuning; applies accepted `spur-doctor` proposals through `spur` verbs; never judges its own output and never runs a recurring loop |
341
344
  | `spur-doctor` | 1.0 | Cross-noun evaluation — read-only CLI evidence per noun (task/feature/rule/workflow/agent spec), reflection over `history-anatomy` findings through a closed action-class map, and a proposal table; writes nothing; diagnoses artifacts, not runtime environments (`spur agent doctor`'s job) |
342
345
  | `redesign-web-ui` | 1.0 | Existing-UI visual upgrade — audit generic AI fingerprints, apply in-stack polish against `DESIGN.md` / live tokens, verify behavior and viewports; does not migrate frameworks |
343
- | `taste-refactoring-api` | — | API design and refactoring for REST/HTTP, RPC/gRPC, GraphQL, and event contracts; compatibility, security, and migration review |
344
- | `taste-refactoring-ui` | — | UI design and refactoring with visual hierarchy, typography, spacing, color, and interaction review |
345
- | `taste-refactoring-architect` | — | Architecture review, simplification, and refactoring; boundary modeling, dependency reduction, and migration planning |
346
- | `taste-refactoring-tests` | — | Test suite refactoring for failure sensitivity, regression detection, and assertion strength; eliminates brittle mocks |
346
+ | `taste-refactoring-api` | 1.0 | API design and refactoring for REST/HTTP, RPC/gRPC, GraphQL, event contracts, and CLI surfaces; compatibility, security, and migration review |
347
+ | `taste-refactoring-ui` | 1.0 | UI design and refactoring with visual hierarchy, typography, spacing, color, and interaction review |
348
+ | `taste-refactoring-architect` | 1.0 | Architecture review, simplification, and refactoring; boundary modeling, dependency reduction, and migration planning |
349
+ | `taste-refactoring-tests` | 1.0 | Test suite refactoring for failure sensitivity, regression detection, and assertion strength; eliminates brittle mocks |
347
350
 
348
351
  #### Bounded coexistence and retirement gate — `sp:issue-finding` (HA-S1 0661)
349
352
 
@@ -1,7 +1,7 @@
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
3
  role: planner
4
- argument-hint: "\"<idea>\" [--auto] [--skip-design] [--approve-taste] [--agent <inline|auto|name>]"
4
+ argument-hint: "\"<idea>\" [--from-file <path>] [--auto] [--skip-design] [--approve-taste] [--agent <inline|auto|name>]"
5
5
  allowed-tools: ["Bash", "Read", "Skill", "AskUserQuestion"]
6
6
  ---
7
7
 
@@ -14,7 +14,8 @@ contract below maps to that workflow's transitions.
14
14
 
15
15
  | Flag | Description | Default |
16
16
  | --- | --- | --- |
17
- | `"<idea>"` | Vague idea to turn into a feature with AC and tasks. | required |
17
+ | `"<idea>"` | Vague idea to turn into a feature with AC and tasks. | required (or `--from-file`) |
18
+ | `--from-file` `<path>` | Read the idea from a file instead of the positional argument. Mutually exclusive with `"<idea>"` — exactly one must be present. The file's contents become the verbatim idea text (trimmed of surrounding whitespace only). Useful for long or multiline asks that are awkward to quote. | off |
18
19
  | `--auto` | Skip objective HITL gates only (taste gates still pause). | off |
19
20
  | `--skip-design` | Omit system-design and per-task Design. | off |
20
21
  | `--approve-taste` | With `--auto`: set idea_approved + design_approved so idea-eval / design-approval do not pause. | off |
@@ -45,5 +46,11 @@ vars as subsets of `--approve-taste` (`idea_approved` / `design_approved`). Pref
45
46
  - Omitted/`inline`: drive `idea-pipeline.yaml` through the [inline pipeline driver](../skills/spur-dev/references/inline-pipeline-driver.md). Do not launch `spur workflow run`, `spur agent run`, or a native subagent unless the operator explicitly requests delegation.
46
47
  - `auto`/name: launch `spur workflow run idea-pipeline.yaml --async`, observe with one `workflow trace --follow`, and only report cancellation as stopped when `workflow cancel --json` returns `killed: true`.
47
48
  - `Skill(skill="sp:spur-dev", args="idea $ARGUMENTS")`
49
+ - Pass the idea text through every hop **verbatim** — never paraphrase or shorten it in the nested
50
+ `Skill` call or stage prompts; long ideas lose their trailing asks when summarized at the hop.
51
+ - Before executing the pipeline's `start` state, persist the operator's idea argument (or the
52
+ `--from-file` contents) **unmodified** to `.spur/run/<run-id>-idea-input.md` (0887 R1); every
53
+ model-bearing stage prompt treats that file as the authoritative ask, and the precheck fails
54
+ the run when it is empty or missing.
48
55
  - Stage contract (discovery → idea-eval → feature-create → AC → feature-check → system-design →
49
56
  decompose → batch-create → ready-prepare → handoff): `plugins/sp/skills/spur-dev/references/dev-operations.md` § idea.
@@ -0,0 +1,33 @@
1
+ ---
2
+ description: Lens-routed refactoring with a preservation contract — taste lenses classify findings against the shared schema; cutting/breaking changes pause for operator approval
3
+ role: reviewer
4
+ argument-hint: "[<description>] [--scope <path>] [--focus <api|architect|tests|ui|auto>] [--fix <none|blockers-first|all>] [--check <cmd>] [--agent <inline|auto|name>] [--auto]"
5
+ allowed-tools: ["Bash", "Read", "Edit", "Skill"]
6
+ ---
7
+
8
+ # Dev Refactor
9
+
10
+ Wraps the **sp:code-refactoring** skill.
11
+
12
+ ## Argument Flags
13
+
14
+ | Flag | Description | Default |
15
+ | --- | --- | --- |
16
+ | `[<description>]` | Free-text steering for the lenses (e.g. "pagination consistency"). | — |
17
+ | `--scope` `<path>` | Path bound; no edit may land outside it. | working tree |
18
+ | `--focus` `<api\|architect\|tests\|ui\|auto>` | Lens set; comma list allowed (`api,tests`). | auto |
19
+ | `--fix` `<none\|blockers-first\|all>` | Apply policy; `blockers-first` = P1/P2. | none |
20
+ | `--check` `<cmd>` | Verification command for baseline and per-fix checks. | project gate |
21
+ | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing analysis. | inline |
22
+ | `--auto` | Skip objective gates only; cutting/breaking taste gates still pause. | off |
23
+
24
+ For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
25
+
26
+ ## Usage
27
+
28
+ /sp:dev-refactor [<description>] [--scope <path>] [--focus <api|architect|tests|ui|auto>] [--fix <none|blockers-first|all>] [--check <cmd>] [--agent <inline|auto|name>] [--auto]
29
+
30
+ ## Implementation
31
+
32
+ - Apply the [inline-default execution-surface contract](../skills/spur-dev/references/cross-cutting.md#inline-default-execution-surface).
33
+ - `Skill(skill="sp:code-refactoring", args="$ARGUMENTS")`
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Refine task requirements via structured Q&A — clarify scope, elicit missing details, tighten acceptance criteria; optional implement-ready depth
2
+ description: Refine or re-audit a task — fill missing sections via Q&A, or with --depth ready verify existing claims and fixes against the tree, correct them, and promote to todo
3
3
  role: planner
4
4
  argument-hint: "<wbs> [--focus <mode>] [--description <text>] [--depth <standard|ready>] [--agent <inline|auto|name>] [--auto] [--next]"
5
5
  allowed-tools: ["Bash", "Read", "Skill", "AskUserQuestion"]
@@ -7,17 +7,24 @@ allowed-tools: ["Bash", "Read", "Skill", "AskUserQuestion"]
7
7
 
8
8
  # Dev Refine
9
9
 
10
- Wraps the **sp:spur-dev** skill. Prefer Design at plan/create (default); refine is the **fallback**
11
- for blank Design/AC/Plan after `--skip-design` or incomplete create. Use `--depth ready` when another
12
- agent will implement and L3-clean is not enough (frozen APIs, anti-patterns, file targets, handoffs).
10
+ Wraps the **sp:spur-dev** skill. Three jobs:
11
+
12
+ | Job | Invocation |
13
+ | --- | --- |
14
+ | Fill blank Design/AC/Plan after `--skip-design` or an incomplete create (fallback; Design normally comes from plan/create) | `/sp:dev-refine <wbs> --auto` |
15
+ | Evaluate and correct an existing task: a review-triage filing, a stale backlog item, anything whose claims or proposed fixes may no longer hold | `/sp:dev-refine <wbs> --depth ready` (add `--auto` to skip Q&A) |
16
+ | Freeze a spec for another implementer; also the recovery command when `spur task create` ready preparation fails | `/sp:dev-refine <wbs> --auto --depth ready` |
17
+
18
+ `standard` checks only that target sections are structurally complete. It never re-checks what
19
+ they say. Use `ready` whenever the existing content itself is in doubt.
13
20
 
14
21
  ## Argument Flags
15
22
 
16
23
  | Flag | Description | Default |
17
24
  | --- | --- | --- |
18
25
  | `<wbs>` | Task WBS to refine. | required |
19
- | `--focus` `<mode>` | Refinement focus mode. | omitted |
20
- | `--description` `<text>` | Override the task description. | omitted |
26
+ | `--focus` `<mode>` | Gap-analysis focus: `all\|requirements\|background\|constraints\|acceptance\|quick`. | `all` |
27
+ | `--description` `<text>` | Operator framing injected into Q&A/synthesis. | omitted |
21
28
  | `--depth` `<standard\|ready>` | Spec depth bar (see flag glossary). | `standard` |
22
29
  | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing refinement. | omit |
23
30
  | `--auto` | Skip objective HITL gates. | off |
@@ -35,7 +42,18 @@ Under `--auto` with **`--depth standard`** (default), SKIP only when target sect
35
42
  findings: Background, Requirements, Acceptance Criteria, Design, Plan. Solution is not a refine
36
43
  target. Under **`--depth ready`**, do **not** SKIP on L3-clean alone — run the implement-ready
37
44
  checklist (dev-operations § refine) and rewrite Design/Requirements/Plan until another agent can
38
- implement without inventing design. Stage floor: the `planner` role per
45
+ implement without inventing design:
46
+
47
+ 1. Audit every existing claim against the current tree: facts, cited sources, fix soundness across
48
+ all callers, test observability, environment, concurrent work, and scope.
49
+ 2. Correct what is wrong and record each change in a dated `**Refine corrections (<date>)**` block
50
+ in Background.
51
+ 3. Run `spur task check <wbs> --as todo --json`, fill unset priority/estimate, and promote
52
+ `backlog → todo`.
53
+ 4. Report checklist rows `{id, pass, evidence}`.
54
+
55
+ Refine targets `backlog`/`todo` tasks; a `wip`-or-later task needs explicit operator consent and is
56
+ never demoted. Stage floor: the `planner` role per
39
57
  [`roles.md`](../references/roles.md) — this command names roles, never tiers (0538 R4);
40
58
  ready synthesis may use a higher tier when the task spans packages/seams.
41
59
 
@@ -1,5 +1,5 @@
1
1
  ---
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
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; --depth ready audits, corrects and promotes each task
3
3
  role: planner
4
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>]]"
5
5
  allowed-tools: ["Bash", "Read", "Skill", "AskUserQuestion"]
@@ -9,7 +9,9 @@ allowed-tools: ["Bash", "Read", "Skill", "AskUserQuestion"]
9
9
 
10
10
  Wraps the **sp:spur-dev** skill. Batch counterpart of `/sp:dev-refine` — same per-task refine
11
11
  operation, applied to a resolved set (typically every task under a feature). Pass
12
- `--depth ready` to force an implement-ready freeze on every task (does not L3-SKIP).
12
+ `--depth ready` to force an implement-ready freeze on every task (does not L3-SKIP). Each task's
13
+ existing claims are audited against the current tree and corrected, and passing tasks are promoted
14
+ `backlog → todo`. Use it to re-audit a feature's filed or stale tasks as well as before handoff.
13
15
 
14
16
  ## Argument Flags
15
17
 
@@ -17,8 +19,8 @@ operation, applied to a resolved set (typically every task under a feature). Pas
17
19
  | --- | --- | --- |
18
20
  | `--feature` `<id>` | Refine all tasks in a feature. | required (one of `--feature` / `--tasks`) |
19
21
  | `--tasks` `<selector>` | Task selector to refine (alternative to `--feature`). | required (one of `--feature` / `--tasks`) |
20
- | `--focus` `<mode>` | Refinement focus mode. | omitted |
21
- | `--description` `<text>` | Override description for each task. | omitted |
22
+ | `--focus` `<mode>` | Gap-analysis focus: `all\|requirements\|background\|constraints\|acceptance\|quick`. | `all` |
23
+ | `--description` `<text>` | Operator framing injected into each task's Q&A/synthesis. | omitted |
22
24
  | `--depth` `<standard\|ready>` | Spec depth bar (see flag glossary). | `standard` |
23
25
  | `--agent` `<inline\|auto\|name>` | Who runs the model-bearing refinement. | omit |
24
26
  | `--auto` | Skip objective HITL gates. | off |
@@ -50,8 +52,9 @@ worktree copy; your main tree still shows pre-run statuses until the FF-merge on
50
52
  not a bug.
51
53
 
52
54
  **Depth:** default `standard` keeps the cheap L3 SKIP gate under `--auto`. Use
53
- `--depth ready` when handing a feature to another implementer (frozen Design/Requirements/Plan);
54
- thread `--depth` into each per-task refine.
55
+ `--depth ready` when handing a feature to another implementer (frozen Design/Requirements/Plan),
56
+ or when the tasks' existing content is in doubt; thread `--depth` into each per-task refine. Ready
57
+ report rows add corrections count, status before → after, and failed checklist ids.
55
58
 
56
59
  > **`--next` dropped** (feature H8, 2026-07-31). Batch-level chaining was a token bomb — each refine
57
60
  > hop is an LLM call, and a large feature means N refine chains fanned out at once. For batch