@gobing-ai/spur 0.3.87 → 0.3.89

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 (96) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/config/config.example.yaml +9 -0
  3. package/config/rules/boundary/env-var-hygiene.yaml +13 -5
  4. package/config/rules/strict/runtime-boundaries.yaml +1 -0
  5. package/config/workflows/idea-pipeline.yaml +17 -0
  6. package/config/workflows/task-pipeline.yaml +25 -0
  7. package/package.json +9 -9
  8. package/plugins/sp/README.md +2 -2
  9. package/plugins/sp/commands/dev-refine.md +25 -7
  10. package/plugins/sp/commands/dev-refineall.md +9 -6
  11. package/plugins/sp/hooks/agent-hint.ts +1 -1
  12. package/plugins/sp/hooks/careful-guard.ts +1 -1
  13. package/plugins/sp/hooks/context-post-tool.ts +1 -1
  14. package/plugins/sp/hooks/context-session-start.ts +1 -1
  15. package/plugins/sp/hooks/context-session-stop.ts +1 -1
  16. package/plugins/sp/hooks/pi/guard-extension.ts +1 -1
  17. package/plugins/sp/hooks/task-write-guard.ts +1 -1
  18. package/plugins/sp/lib/env.ts +46 -0
  19. package/plugins/sp/lib/idea-handoff.generated.mjs +160 -152
  20. package/plugins/sp/plugin.json +1 -1
  21. package/plugins/sp/scripts/daily-summary/daily-summary.mjs +1 -1
  22. package/plugins/sp/scripts/daily-summary/daily-summary.ts +1 -1
  23. package/plugins/sp/scripts/feature-sync-bounded.mjs +1 -1
  24. package/plugins/sp/scripts/feature-sync-bounded.ts +1 -1
  25. package/plugins/sp/scripts/idea-handoff.mjs +1 -1
  26. package/plugins/sp/scripts/idea-handoff.ts +1 -1
  27. package/plugins/sp/scripts/inline-run-setup.ts +1 -1
  28. package/plugins/sp/scripts/pr-reviewing.mjs +1 -1
  29. package/plugins/sp/scripts/pr-reviewing.ts +1 -1
  30. package/plugins/sp/scripts/quality-gate.mjs +1 -1
  31. package/plugins/sp/scripts/quality-gate.ts +1 -1
  32. package/plugins/sp/scripts/task-evidence-precheck.ts +1 -1
  33. package/plugins/sp/scripts/task-size-precheck.ts +1 -1
  34. package/plugins/sp/scripts/verify-answer-lint.ts +1 -1
  35. package/plugins/sp/scripts/workflow-step-profile.mjs +1 -1
  36. package/plugins/sp/scripts/workflow-step-profile.ts +1 -1
  37. package/plugins/sp/scripts/wrapup-steps.mjs +1 -1
  38. package/plugins/sp/scripts/wrapup-steps.ts +1 -1
  39. package/plugins/sp/skills/spur-cli/references/agent.md +92 -9
  40. package/plugins/sp/skills/spur-dev/SKILL.md +33 -33
  41. package/plugins/sp/skills/spur-dev/references/dev-operations.md +81 -24
  42. package/plugins/sp/skills/spur-dev/references/flag-glossary.md +6 -3
  43. package/plugins/sp/skills/spur-dev/references/planning-workflow.md +10 -6
  44. package/schemas/spur-config.schema.json +14 -2
  45. package/spur.js +1889 -465
  46. package/web/_astro/{BoardApp.yBBcFXWP.js → BoardApp.CDUcHlTJ.js} +67 -67
  47. package/web/_astro/BoardApp.CaCGU_uX.js +1 -0
  48. package/web/_astro/{TaskDetail.DqFJbRFc.js → TaskDetail.DwTmbQp5.js} +1 -1
  49. package/web/_astro/{arc.DL-BpHoi.js → arc.BzF71EFI.js} +1 -1
  50. package/web/_astro/{architectureDiagram-3BPJPVTR.9IdQYyDq.js → architectureDiagram-3BPJPVTR.jvdDahWM.js} +1 -1
  51. package/web/_astro/{blockDiagram-GPEHLZMM.BKsFCqTl.js → blockDiagram-GPEHLZMM.zSg4AmFD.js} +1 -1
  52. package/web/_astro/{c4Diagram-AAUBKEIU.DhwI0dh1.js → c4Diagram-AAUBKEIU.BkUIUQWH.js} +1 -1
  53. package/web/_astro/channel.SSVY0JPQ.js +1 -0
  54. package/web/_astro/{chunk-2J33WTMH.B3QVmQ9S.js → chunk-2J33WTMH.DvfQ_f50.js} +1 -1
  55. package/web/_astro/{chunk-4BX2VUAB.DBSuqs9F.js → chunk-4BX2VUAB.DuI4gQqX.js} +1 -1
  56. package/web/_astro/{chunk-55IACEB6.BSYTWAYD.js → chunk-55IACEB6.D3BWBOpF.js} +1 -1
  57. package/web/_astro/{chunk-727SXJPM.cWVuxXfS.js → chunk-727SXJPM.3QSi0a9M.js} +1 -1
  58. package/web/_astro/{chunk-AQP2D5EJ.DpU_Ob3d.js → chunk-AQP2D5EJ.xazCQrAF.js} +1 -1
  59. package/web/_astro/{chunk-FMBD7UC4.BykFkyji.js → chunk-FMBD7UC4.B2g6u4rA.js} +1 -1
  60. package/web/_astro/{chunk-ND2GUHAM.DwgHlMdY.js → chunk-ND2GUHAM.wWwWs99t.js} +1 -1
  61. package/web/_astro/{chunk-QZHKN3VN.CusXUGWM.js → chunk-QZHKN3VN.BD5g3qa9.js} +1 -1
  62. package/web/_astro/{classDiagram-4FO5ZUOK.fx0ObzkN.js → classDiagram-4FO5ZUOK.C7CzCdsX.js} +1 -1
  63. package/web/_astro/{classDiagram-v2-Q7XG4LA2.fx0ObzkN.js → classDiagram-v2-Q7XG4LA2.C7CzCdsX.js} +1 -1
  64. package/web/_astro/{cose-bilkent-S5V4N54A.Z4HgOlsd.js → cose-bilkent-S5V4N54A.Xyiau0gw.js} +1 -1
  65. package/web/_astro/{cynefin-OW5HDTMX.B5dIZHJu.js → cynefin-OW5HDTMX.BeC5MWas.js} +1 -1
  66. package/web/_astro/{dagre-BM42HDAG.DT70Q_Yw.js → dagre-BM42HDAG.yZbMN9vc.js} +1 -1
  67. package/web/_astro/{diagram-2AECGRRQ.DqHA3XBF.js → diagram-2AECGRRQ.Cmo2zQM-.js} +1 -1
  68. package/web/_astro/{diagram-5GNKFQAL.BmCem957.js → diagram-5GNKFQAL.D033eSVi.js} +1 -1
  69. package/web/_astro/{diagram-KO2AKTUF.sn0-hrE0.js → diagram-KO2AKTUF.CR6k3Y3G.js} +1 -1
  70. package/web/_astro/{diagram-LMA3HP47.BSHe9tVc.js → diagram-LMA3HP47.x7mwu8jz.js} +1 -1
  71. package/web/_astro/{diagram-OG6HWLK6.DHIc-86k.js → diagram-OG6HWLK6.D8aTTvUr.js} +1 -1
  72. package/web/_astro/{erDiagram-TEJ5UH35.Bxayrs7v.js → erDiagram-TEJ5UH35.BoBqcKXQ.js} +1 -1
  73. package/web/_astro/{flowDiagram-I6XJVG4X.BkzoE_5I.js → flowDiagram-I6XJVG4X.D3mTQdrU.js} +1 -1
  74. package/web/_astro/{ganttDiagram-6RSMTGT7.okT6CvTo.js → ganttDiagram-6RSMTGT7.H-cqgIh-.js} +1 -1
  75. package/web/_astro/{gitGraphDiagram-PVQCEYII.CJuYbhC7.js → gitGraphDiagram-PVQCEYII.B6s9zbfC.js} +1 -1
  76. package/web/_astro/{infoDiagram-5YYISTIA.RqLy7nBo.js → infoDiagram-5YYISTIA.BzgCoV6P.js} +1 -1
  77. package/web/_astro/{ishikawaDiagram-YF4QCWOH.BwIcoagw.js → ishikawaDiagram-YF4QCWOH.BZzVhy1-.js} +1 -1
  78. package/web/_astro/{journeyDiagram-JHISSGLW.UB1VbWtH.js → journeyDiagram-JHISSGLW.BV3195Py.js} +1 -1
  79. package/web/_astro/{kanban-definition-UN3LZRKU.AaxMKpTk.js → kanban-definition-UN3LZRKU.BjRd2DWz.js} +1 -1
  80. package/web/_astro/{linear.Nv_xOUjP.js → linear.BILTgS5N.js} +1 -1
  81. package/web/_astro/{mermaid.core.Bc4LqQgX.js → mermaid.core.DBy_WKeW.js} +4 -4
  82. package/web/_astro/{mindmap-definition-RKZ34NQL.oKUvU_qi.js → mindmap-definition-RKZ34NQL.BiEjaI4-.js} +1 -1
  83. package/web/_astro/{pieDiagram-4H26LBE5.DQk0oo03.js → pieDiagram-4H26LBE5.i_8V5pIn.js} +1 -1
  84. package/web/_astro/{quadrantDiagram-W4KKPZXB.BdDjESDa.js → quadrantDiagram-W4KKPZXB.BWaW3MHn.js} +1 -1
  85. package/web/_astro/{requirementDiagram-4Y6WPE33.C2u9hUeH.js → requirementDiagram-4Y6WPE33.CzddBbtg.js} +1 -1
  86. package/web/_astro/{sankeyDiagram-5OEKKPKP.CDEoiJST.js → sankeyDiagram-5OEKKPKP.X2ww0e-D.js} +1 -1
  87. package/web/_astro/{sequenceDiagram-3UESZ5HK.D_hT_GAT.js → sequenceDiagram-3UESZ5HK.DSA4kTcc.js} +1 -1
  88. package/web/_astro/{stateDiagram-AJRCARHV.DI8RYG0b.js → stateDiagram-AJRCARHV.D0DtFSpR.js} +1 -1
  89. package/web/_astro/{stateDiagram-v2-BHNVJYJU.Bkxz4DnP.js → stateDiagram-v2-BHNVJYJU.BfQq0zQv.js} +1 -1
  90. package/web/_astro/{timeline-definition-PNZ67QCA.DSY-kH3-.js → timeline-definition-PNZ67QCA.Dmlrgi1m.js} +1 -1
  91. package/web/_astro/{vennDiagram-CIIHVFJN.CpaDtuGr.js → vennDiagram-CIIHVFJN.D5mpl00Z.js} +1 -1
  92. package/web/_astro/{wardleyDiagram-YWT4CUSO.DujQWvo8.js → wardleyDiagram-YWT4CUSO.Df4BdzO4.js} +1 -1
  93. package/web/_astro/{xychartDiagram-2RQKCTM6.DcM5Y4b9.js → xychartDiagram-2RQKCTM6.DiTRreKN.js} +1 -1
  94. package/web/index.html +1 -1
  95. package/web/_astro/BoardApp.CJiqp5pS.js +0 -1
  96. package/web/_astro/channel.CX5453qQ.js +0 -1
@@ -174,7 +174,8 @@ establishes a baseline with it before the first change and re-runs it after each
174
174
  Constrain the operation to a named subset of dimensions — review dimensions on `dev-review`/
175
175
  `dev-verify`/`dev-verifyall` (`all|stack|dependencies|data|flows|api|security|quality|performance`),
176
176
  a refactor lens set on `dev-refactor` (`api|architect|tests|ui|auto`), a refine focus mode on
177
- `dev-refine`/`dev-refineall`, or a reconstruction lens on `dev-reverse`.
177
+ `dev-refine`/`dev-refineall` (`all|requirements|background|constraints|acceptance|quick` —
178
+ [dev-operations.md](dev-operations.md) § refine), or a reconstruction lens on `dev-reverse`.
178
179
  Narrowing reduces token cost; omitting runs
179
180
  all dimensions.
180
181
 
@@ -372,10 +373,12 @@ Orthogonal to `--focus` (which _narrows_ domains) and to `--mode` on other comma
372
373
  | Value (refine family) | Bar | `--auto` SKIP behavior |
373
374
  | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
374
375
  | `standard` (default when omitted) | L3 structural completeness (not empty/placeholder; check-clean for target sections) | **SKIP** when no L3 findings on target sections |
375
- | `ready` | **Implement-ready** freeze: another agent can implement without inventing design (frozen names/APIs or explicit "no new API", anti-patterns, file targets, handoffs, out-of-scope) | **Do not SKIP** on L3-clean alone — run the ready checklist; rewrite sections until the bar is met |
376
+ | `ready` | **Implement-ready** freeze: another agent can implement without inventing design (frozen names/APIs or explicit "no new API", anti-patterns, file targets, handoffs, out-of-scope) | **Do not SKIP** on L3-clean alone — audit existing claims, run the ready checklist, rewrite sections until the bar is met, then promote `backlog → todo` |
376
377
 
377
378
  Default for refine stays `standard` so ordinary `refineall --auto` remains cheap. Use `ready` for
378
- multi-package / multi-agent handoffs and flaky-pipeline features where a wrong implement is costly.
379
+ multi-package / multi-agent handoffs, flaky-pipeline features where a wrong implement is costly, and
380
+ evaluating/correcting an existing task (review-triage filing, stale backlog) whose claims may no
381
+ longer hold.
379
382
  Full checklist: [dev-operations.md](dev-operations.md) § refine (depth ready).
380
383
 
381
384
  ### `--bdd` — use BDD scenarios as the verification lens
@@ -301,10 +301,12 @@ the handoff degrades to refineall.
301
301
  (and preferably Plan/AC) so tasks land **content-ready**. **`--skip-design`:** leave `design`
302
302
  empty — headings only.
303
303
 
304
- **Refine is the fallback**, not the primary Design author:
304
+ **Refine is the fallback** Design author, not the primary one. It is also the audit path for
305
+ tasks that already have content:
305
306
 
306
307
  ```text
307
308
  /sp:dev-refine <wbs> # single task — fills blank Design/AC/Plan if L3 gaps
309
+ /sp:dev-refine <wbs> --depth ready # evaluate + correct an existing/filed task, then promote to todo
308
310
  /sp:dev-refineall --feature X --auto
309
311
  /sp:dev-refineall --feature X --auto --depth ready # implement-ready freeze (no L3-only SKIP)
310
312
  ```
@@ -314,7 +316,9 @@ Under `--auto` + **`--depth standard`** (default), refine **SKIP**s when target
314
316
  placeholder, synthesis runs (standard tier by default; escalates only on gate-fail). Under
315
317
  **`--depth ready`**, do not SKIP on L3-clean alone — run the implement-ready checklist in
316
318
  [dev-operations.md](dev-operations.md) § refine (frozen APIs, anti-patterns, file targets, handoffs)
317
- so another agent can implement without inventing design.
319
+ so another agent can implement without inventing design. Ready depth also audits every existing
320
+ claim against the current tree, records corrections in Background, and promotes a passing task
321
+ `backlog → todo`.
318
322
 
319
323
  **Check the variant before you write.** Which sections a task carries is decided by its `template:`
320
324
  frontmatter against `.spur/tasks/section-matrix.yaml` — NOT a fixed list. Before authoring any
@@ -344,16 +348,16 @@ feature filled before a runall, use `/sp:dev-refineall --feature <id> --auto` (b
344
348
  of `/sp:dev-refine`). It reuses the same per-task refine operation, freezes the set, topo-sorts by
345
349
  `dependencies[]`, and emits a batch report — see [dev-operations.md](dev-operations.md) § refineall.
346
350
  This does **not** replace just-in-time refine before each implement; it is a bulk pre-pass when the
347
- feature's tasks are still `backlog`/`todo` placeholders. Prefer `--auto` for batch scale; avoid
348
- `--next` on large features (that chains each task into run).
351
+ feature's tasks are still `backlog`/`todo` placeholders. Prefer `--auto` for batch scale.
352
+ `/sp:dev-refineall` takes no `--next`; chain with `/sp:dev-runall --feature <id>` afterwards.
349
353
 
350
354
  **Refine arguments** (defined on the `/sp:dev-refine` entry point, passed through verbatim; also
351
355
  shared flags on `/sp:dev-refineall`):
352
356
 
353
357
  | Argument | Effect |
354
358
  |----------|--------|
355
- | `--focus <mode>` | Narrows the gap analysis to a subset of domain hints. See the `sp:dev-refine` skill for the full value table (`all`, `requirements`, `background`, `constraints`, `acceptance`, `quick`). Default `all`. |
356
- | `--depth <standard\|ready>` | Spec depth bar. `standard` (default) = L3 structural completeness + L3 SKIP under `--auto`. `ready` = implement-ready freeze (never L3-only SKIP). See [flag-glossary.md](flag-glossary.md#flag-depth). |
359
+ | `--focus <mode>` | Narrows the gap analysis to a subset of domain hints. Values `all`, `requirements`, `background`, `constraints`, `acceptance`, `quick` — hint table in [dev-operations.md](dev-operations.md) § refine. Default `all`. Under `--depth ready` it only orders the work. |
360
+ | `--depth <standard\|ready>` | Spec depth bar. `standard` (default) = L3 structural completeness + L3 SKIP under `--auto`. `ready` = audit + implement-ready freeze + promote to `todo` (never L3-only SKIP). See [flag-glossary.md](flag-glossary.md#flag-depth). |
357
361
  | `--auto` | Skip interactive Q&A — synthesize improvements from the task content alone. Use for well-scoped tasks where the agent can fill gaps without operator input. **Required for practical batch use** via `dev-refineall`. |
358
362
 
359
363
  **Pre-synthesis skip gate (under `--auto` + `--depth standard`).** Before synthesizing, run `spur task check <wbs> --json`. When the **refine target sections** show no L3 findings, emit a structured SKIP instead of calling the synthesis agent. **Not applied when `--depth ready`.**
@@ -167,8 +167,20 @@
167
167
  "description": "Capability tier for stage-registry adaptive model routing (ADR-033, 0343). Live values: cheap | standard | capable-1 | capable-2 | capable-3 (1=low output quality, 3=high within the capable band). A stage starts on the cheapest eligible executor meeting its model_policy min_tier. Bare legacy `capable` is accepted at runtime (zod preprocess \u2192 capable-1) during the deprecation window but is not part of this editor enum."
168
168
  },
169
169
  "disabled": {
170
- "type": "boolean",
171
- "description": "Routing kill-switch (111): a disabled profile never serves a role, team, stage, or explicit selection, and doctor inventories it without probing. Omitted = enabled; only true/false accepted (no string/number/null coercion)."
170
+ "description": "Routing kill-switch (111; ownership widened 0890): a disabled profile never serves a role, team, stage, or explicit selection, and doctor inventories it without probing. Omitted = enabled. Bare `true` is operator-owned (only humans write booleans); automatic writers emit the object form carrying owner (operator|quota|probe), since (RFC 3339) and reason.",
171
+ "anyOf": [
172
+ { "type": "boolean" },
173
+ {
174
+ "type": "object",
175
+ "additionalProperties": false,
176
+ "required": ["owner", "since", "reason"],
177
+ "properties": {
178
+ "owner": { "enum": ["operator", "quota", "probe"] },
179
+ "since": { "type": "string", "format": "date-time", "minLength": 1 },
180
+ "reason": { "type": "string", "minLength": 1 }
181
+ }
182
+ }
183
+ ]
172
184
  }
173
185
  }
174
186
  }