@gobing-ai/spur 0.3.57 → 0.3.58

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 (72) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/config/corpus-baseline.json +264 -56
  3. package/config/workflow-composition-baseline.json +1 -1
  4. package/config/workflows/wrapup-pipeline.yaml +31 -1
  5. package/package.json +9 -9
  6. package/plugins/README.md +1 -1
  7. package/plugins/sp/README.md +1 -1
  8. package/plugins/sp/agents/expert-spur.md +1 -1
  9. package/plugins/sp/commands/dev-feature-change.md +2 -2
  10. package/plugins/sp/plugin.json +1 -1
  11. package/plugins/sp/skills/spur-cli/references/features/hierarchy-mece.md +2 -2
  12. package/plugins/sp/skills/spur-cli/references/features/roadmap-priority.md +1 -1
  13. package/plugins/sp/skills/spur-cli/references/features/verbs.md +1 -1
  14. package/plugins/sp/skills/spur-cli/references/features.md +5 -2
  15. package/plugins/sp/skills/spur-dev/references/ac-style-guide.md +1 -1
  16. package/plugins/sp/skills/spur-dev/references/execution-workflow.md +1 -1
  17. package/plugins/sp/skills/spur-dev/references/planning-workflow.md +1 -1
  18. package/spur.js +3523 -248
  19. package/web/_astro/BoardApp.CrusGeQ4.js +1 -0
  20. package/web/_astro/BoardApp.P8SRAD5Q.js +179 -0
  21. package/web/_astro/{TaskDetail.DN_RxS-2.js → TaskDetail.DHjEt5vl.js} +1 -1
  22. package/web/_astro/{arc.CldTHRg-.js → arc.XgRC1Ij_.js} +1 -1
  23. package/web/_astro/{architectureDiagram-3BPJPVTR.DQ4T9oeU.js → architectureDiagram-3BPJPVTR.DOZWrfHc.js} +1 -1
  24. package/web/_astro/{blockDiagram-GPEHLZMM.CGDaXH8J.js → blockDiagram-GPEHLZMM.ClQnCGf_.js} +1 -1
  25. package/web/_astro/{c4Diagram-AAUBKEIU.Cqsc2iub.js → c4Diagram-AAUBKEIU.CKCtUD0Y.js} +1 -1
  26. package/web/_astro/channel.CmK546kO.js +1 -0
  27. package/web/_astro/{chunk-2J33WTMH.CQSKsRmq.js → chunk-2J33WTMH.c7J8OHq5.js} +1 -1
  28. package/web/_astro/{chunk-4BX2VUAB.Pv1HCtp8.js → chunk-4BX2VUAB.C-A1Dv27.js} +1 -1
  29. package/web/_astro/{chunk-55IACEB6.-9MseOIk.js → chunk-55IACEB6.C4kGGALB.js} +1 -1
  30. package/web/_astro/{chunk-727SXJPM.M3OI1DF7.js → chunk-727SXJPM.Bith2NHt.js} +1 -1
  31. package/web/_astro/{chunk-AQP2D5EJ.NfHka5Ca.js → chunk-AQP2D5EJ.qeSXhsVY.js} +1 -1
  32. package/web/_astro/{chunk-FMBD7UC4.B2suYe3s.js → chunk-FMBD7UC4.DdQQnTAy.js} +1 -1
  33. package/web/_astro/{chunk-ND2GUHAM.BfJ7aucP.js → chunk-ND2GUHAM.BZYQVeZd.js} +1 -1
  34. package/web/_astro/{chunk-QZHKN3VN._582hZVc.js → chunk-QZHKN3VN.BiUWwHaV.js} +1 -1
  35. package/web/_astro/{classDiagram-4FO5ZUOK._tttU_jk.js → classDiagram-4FO5ZUOK.OGRhcldh.js} +1 -1
  36. package/web/_astro/{classDiagram-v2-Q7XG4LA2._tttU_jk.js → classDiagram-v2-Q7XG4LA2.OGRhcldh.js} +1 -1
  37. package/web/_astro/{cose-bilkent-S5V4N54A.C4rVATLQ.js → cose-bilkent-S5V4N54A.DxYklM_j.js} +1 -1
  38. package/web/_astro/{dagre-BM42HDAG.8BLRi7f9.js → dagre-BM42HDAG.BSb2dEbo.js} +1 -1
  39. package/web/_astro/{diagram-2AECGRRQ.D6lwUZos.js → diagram-2AECGRRQ.mOrItPK2.js} +1 -1
  40. package/web/_astro/{diagram-5GNKFQAL.Cl_rMiVT.js → diagram-5GNKFQAL.C99r7J3C.js} +1 -1
  41. package/web/_astro/{diagram-KO2AKTUF.DhMExHLp.js → diagram-KO2AKTUF.BKbnisJO.js} +1 -1
  42. package/web/_astro/{diagram-LMA3HP47.3OAxzH_o.js → diagram-LMA3HP47.D8FJGo4V.js} +1 -1
  43. package/web/_astro/{diagram-OG6HWLK6.Uh9RLucG.js → diagram-OG6HWLK6.DVBs7n4Q.js} +1 -1
  44. package/web/_astro/{erDiagram-TEJ5UH35.izzElG0c.js → erDiagram-TEJ5UH35.CddMTl4l.js} +1 -1
  45. package/web/_astro/{flowDiagram-I6XJVG4X.BlGwp5qM.js → flowDiagram-I6XJVG4X.B7WclnjQ.js} +1 -1
  46. package/web/_astro/{ganttDiagram-6RSMTGT7.je7Vf8dN.js → ganttDiagram-6RSMTGT7.CRh7ggvz.js} +1 -1
  47. package/web/_astro/{gitGraphDiagram-PVQCEYII.DNk0Ycop.js → gitGraphDiagram-PVQCEYII.du-L7V8A.js} +1 -1
  48. package/web/_astro/index.B4x8fe52.css +1 -0
  49. package/web/_astro/{infoDiagram-5YYISTIA.K2HhGyWH.js → infoDiagram-5YYISTIA.CClGl9Px.js} +1 -1
  50. package/web/_astro/{ishikawaDiagram-YF4QCWOH.BbbOW4IN.js → ishikawaDiagram-YF4QCWOH.BuTETIPz.js} +1 -1
  51. package/web/_astro/{journeyDiagram-JHISSGLW.B1UaZKqN.js → journeyDiagram-JHISSGLW.Cyg1zCiE.js} +1 -1
  52. package/web/_astro/{kanban-definition-UN3LZRKU.9tsw5QFd.js → kanban-definition-UN3LZRKU.aH8eDXwX.js} +1 -1
  53. package/web/_astro/{linear.I9dvtu-j.js → linear.paE_RY_i.js} +1 -1
  54. package/web/_astro/{mermaid.core.5bKJsMgf.js → mermaid.core.BhdKkI85.js} +4 -4
  55. package/web/_astro/{mindmap-definition-RKZ34NQL.BC5MqSn6.js → mindmap-definition-RKZ34NQL.aZNfv8Nx.js} +1 -1
  56. package/web/_astro/{pieDiagram-4H26LBE5.B8GIMyxD.js → pieDiagram-4H26LBE5.5psni0hC.js} +1 -1
  57. package/web/_astro/{quadrantDiagram-W4KKPZXB.K_aZSM_u.js → quadrantDiagram-W4KKPZXB.DcGPGrFd.js} +1 -1
  58. package/web/_astro/{requirementDiagram-4Y6WPE33.B_V5kzfT.js → requirementDiagram-4Y6WPE33.BwPD2lzi.js} +1 -1
  59. package/web/_astro/{sankeyDiagram-5OEKKPKP.DyV2quLS.js → sankeyDiagram-5OEKKPKP.B3jGVk0l.js} +1 -1
  60. package/web/_astro/{sequenceDiagram-3UESZ5HK.BlKvPnBv.js → sequenceDiagram-3UESZ5HK.BdWsx3LW.js} +1 -1
  61. package/web/_astro/{stateDiagram-AJRCARHV.C1lYUMdS.js → stateDiagram-AJRCARHV.DRpG4ClZ.js} +1 -1
  62. package/web/_astro/{stateDiagram-v2-BHNVJYJU.DJWjr3QV.js → stateDiagram-v2-BHNVJYJU.Su0ML9Wo.js} +1 -1
  63. package/web/_astro/{timeline-definition-PNZ67QCA.CYYiXVlv.js → timeline-definition-PNZ67QCA.Cg_Uv8A5.js} +1 -1
  64. package/web/_astro/{vennDiagram-CIIHVFJN.zYjQKa_S.js → vennDiagram-CIIHVFJN.DVouKT4b.js} +1 -1
  65. package/web/_astro/{wardley-L42UT6IY.BGrWTY3D.js → wardley-L42UT6IY.CexIVQli.js} +1 -1
  66. package/web/_astro/{wardleyDiagram-YWT4CUSO.CkXxtcI1.js → wardleyDiagram-YWT4CUSO.ChSAzcvx.js} +1 -1
  67. package/web/_astro/{xychartDiagram-2RQKCTM6.BhKH3KG3.js → xychartDiagram-2RQKCTM6.CN-Yp50J.js} +1 -1
  68. package/web/index.html +2 -2
  69. package/web/_astro/BoardApp.DCLSB3Zs.js +0 -179
  70. package/web/_astro/BoardApp.Dx5gzAhb.js +0 -1
  71. package/web/_astro/channel.CrBJYpxo.js +0 -1
  72. package/web/_astro/index.V6Q7nhed.css +0 -1
@@ -601,7 +601,7 @@ All planning entities (tasks and features) share a common lifecycle, managed by
601
601
  | **check** | `spur task check` | `spur feature check` | 4-layer readiness matrix (schema, sections, traceability, AC) |
602
602
  | **update** | `spur task update <wbs> [status]` | `spur feature update <id> [status]` | Lifecycle transition or scalar field set |
603
603
  | **record** | `spur task record <wbs>` | — | Write Testing/Review from a verify verdict; optional Solution backfill (never transitions to `done`) |
604
- | **refresh** | `spur task refresh` | `spur feature refresh` | Index + feature-tree roll-up regeneration |
604
+ | **refresh** | `spur task refresh` | `spur feature refresh --feature <id> \| --all` | Index + feature-tree roll-up regeneration |
605
605
 
606
606
  The **workflow** and **rule** engines have their own lifecycles (author → validate → run → trace /
607
607
  refine), documented in their respective `sp:spur-cli` references.
@@ -71,7 +71,7 @@ Invoke `sp:spur-cli` for verb guidance and per-noun conventions:
71
71
  - [ ] Run the noun's `check`/`validate` verb before and after editing (e.g. `spur task check <wbs> --json`).
72
72
  - [ ] Run the corpus-wide sweep after batch edits: `spur task check --corpus --json` (fails on structural errors outside `config/corpus-baseline.json`).
73
73
  - [ ] Use `spur task update --section --from-file` for all task section edits.
74
- - [ ] Run the noun's `refresh` after batch operations where one exists (`spur task refresh`, `spur feature refresh`).
74
+ - [ ] Run the noun's scoped `refresh` after batch operations where one exists (`spur task refresh`, `spur feature refresh --feature <id>` or `--all`).
75
75
 
76
76
  ### Never
77
77
 
@@ -62,7 +62,7 @@ Do **not** fire independent dry-runs that all claim the same next id. Walk rows
62
62
  3. After predicting `new_id`, add it to the occupancy set so the next sibling under the same parent gets the next free digit.
63
63
  4. Record `mapping` and `tasksUpdated[]` from each dry-run (with multi-folder scan, tasksUpdated should list every linked WBS).
64
64
 
65
- Plan `spur feature refresh` + `spur feature check --json` after apply.
65
+ Plan `spur feature refresh --all` + `spur feature check --json` after apply.
66
66
 
67
67
  **Root docs/\*.md references (high-confidence only)**
68
68
 
@@ -95,7 +95,7 @@ spur feature move <old_id> --parent <new_parent> --json
95
95
  After all moves (or per wave):
96
96
 
97
97
  ```bash
98
- spur feature refresh --json
98
+ spur feature refresh --all --json
99
99
  spur feature check --json
100
100
  ```
101
101
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sp",
3
- "version": "0.3.57",
3
+ "version": "0.3.58",
4
4
  "description": "Spur — a local-first harness engineering toolkit that wraps mainstream coding agents with constraint checking, workflow orchestration, and history analytics.",
5
5
  "extensions": {
6
6
  "pi": ["./hooks/pi/guard-extension.ts"]
@@ -158,7 +158,7 @@ work under H.
158
158
  - [ ] Sibling set stays MECE at that parent.
159
159
  - [ ] Name is capability/outcome, not a package path.
160
160
  - [ ] Will attach tasks with `--feature <new-id>` (or parent if intentionally epic-only).
161
- - [ ] After create: `spur feature refresh` if INDEX must update; `spur feature check <id>`.
161
+ - [ ] After create: `spur feature refresh --feature <new-id>` if INDEX must update; `spur feature check <new-id>`.
162
162
 
163
163
  ## Checklist: before restructure / `/sp:dev-feature-change`
164
164
 
@@ -166,7 +166,7 @@ work under H.
166
166
  - [ ] False merges rejected (name overlap ≠ one Goal).
167
167
  - [ ] Apply via CLI (`spur feature move`, `spur task update --feature`), not raw ID edits.
168
168
  - [ ] Dry-run reviewed; doc rewrites limited to agreed surface (e.g. root `docs/*.md`).
169
- - [ ] `spur feature refresh` + `spur feature check` after apply.
169
+ - [ ] `spur feature refresh --all` + `spur feature check --json` after apply.
170
170
 
171
171
  ---
172
172
 
@@ -78,7 +78,7 @@ For roadmap adjustment work:
78
78
  3. Present the proposed moves/status/priority changes before mutating if the blast radius spans
79
79
  multiple features.
80
80
  4. Apply each accepted deterministic change through `spur feature update` or `spur feature move`.
81
- 5. Run `spur feature refresh` and `spur feature check --json`.
81
+ 5. Run `spur feature refresh --all` and `spur feature check --json`.
82
82
 
83
83
  Do not add `/sp:prd-adjust` for this. The current CLI already has the deterministic primitives; the
84
84
  PM value is the ranking and tradeoff judgment.
@@ -116,7 +116,7 @@ spur feature update <id> [status] [--field <k> --value <v>] [--section <n> --fr
116
116
  spur feature advance <id> [--to <status>] [--folder] [--json]
117
117
  spur feature list [--status <s>] [--priority <p>] [--folder] [--json]
118
118
  spur feature move <id> [--parent <id>] [--dry-run] [--folder] [--json]
119
- spur feature refresh [--feature <id>] [--folder] [--json]
119
+ spur feature refresh [--feature <id> | --all] [--folder] [--json]
120
120
  spur feature sync [id] | --all [--dry-run] [--force] [--folder] [--json]
121
121
  spur feature check [id] [--strict] [--folder] [--json]
122
122
  ```
@@ -27,7 +27,7 @@ what* or *how to write a scenario*, this skill.
27
27
  | `advance <id>` | Walk forward along the legal lifecycle path to a target status | `--to <status>` (default `done`) `--folder` `--json` |
28
28
  | `list` | List features, filtered | `--status <s>` `--priority <p>` `--folder` `--json` |
29
29
  | `move <id>` | Re-parent a subtree (cascade-rename of descendants) | `--parent <id>` `--dry-run` `--folder` `--json` |
30
- | `refresh` | Rebuild INDEX + each feature `## Tasks` table from task edges (**docs only**; no status change) | `--feature <id>` `--folder` `--json` |
30
+ | `refresh` | Rebuild INDEX + each feature `## Tasks` table from task edges (**docs only**; no status change) | `--feature <id>` `--all` `--folder` `--json` |
31
31
  | `check [id]` | Validate one feature / the tree; the 4-layer gate; `--fix` repairs structural findings in place | `--strict` `--fix` `--folder` `--json` |
32
32
  | `sync [id]` | Align feature **lifecycle status** with linked task states (real transitions + guards) | `--all` `--dry-run` `--force` `--folder` `--json` |
33
33
 
@@ -157,6 +157,9 @@ the AC coverage map. Habits that keep it green:
157
157
  the files (files win). This is **not** `sync` — it does not change feature status.
158
158
  - **Scope `refresh` to one feature** with `--feature <id>` when only one feature's task links changed
159
159
  (INDEX.md is still regenerated for the whole tree): `spur feature refresh --feature H2`.
160
+ - **The broad sweep is explicit** (task 0625 R5a): bare `spur feature refresh` refuses to sweep; pass
161
+ `--all` to rewrite every feature's `## Tasks` region. A bare sweep silently touched unrelated
162
+ features during the A3 run.
160
163
 
161
164
  ## Roadmap and priority habits
162
165
 
@@ -192,7 +195,7 @@ reopens. It computes a proposal (`from → to` with a `reason`) and, unless `--d
192
195
  via real lifecycle transitions (dogfood / one-active-goal / L4 gates may deny a hop).
193
196
 
194
197
  **Not for roster tables.** A stale `## Tasks` line (e.g. task still listed `todo` after it is `done`)
195
- is fixed with `spur feature refresh`, not `sync`. Use `sync --dry-run` first when you only want to
198
+ is fixed with `spur feature refresh --feature <id>` (or explicit `--all`), not `sync`. Use `sync --dry-run` first when you only want to
196
199
  see the proposed status hop.
197
200
 
198
201
  ```bash
@@ -193,7 +193,7 @@ During decomposition, each core scenario maps to ≥1 task:
193
193
  | R3 — Login with email and password | 0043, 0044 | Auth service + UI |
194
194
 
195
195
  The mapping is recorded in the task's `## Background` or in the feature's `## Notes`.
196
- `spur feature check` warns on unmapped core scenarios after `spur feature refresh`
196
+ `spur feature check` warns on unmapped core scenarios after `spur feature refresh --feature <id>`
197
197
  regenerates the `## Tasks` block.
198
198
 
199
199
  ## Decision-trace → AC-scenario mapping
@@ -351,7 +351,7 @@ After a completed task, decide next action:
351
351
  - **More tasks in the feature?** Pick the next one, run again.
352
352
  - **Feature complete?** Run `spur feature update <id> verifying` to mark it for
353
353
  acceptance verification.
354
- - **All done?** Run `spur task refresh` + `spur feature refresh` to regenerate the kanban
354
+ - **All done?** Run `spur task refresh` + `spur feature refresh --all` to regenerate the kanban
355
355
  and index.
356
356
 
357
357
  ## Skipping HITL
@@ -146,7 +146,7 @@ that is the pre-check's job above). Common shape failures:
146
146
  - WBS collisions (already-allocated range).
147
147
 
148
148
  Loop until the command exits 0 — then the batch is created and each task appears in the
149
- feature's `## Tasks` block on next `spur feature refresh`.
149
+ feature's `## Tasks` block on next `spur feature refresh --feature <id>`.
150
150
 
151
151
  **If you decomposed a parent task into sub-task files** (the children carry `parent_wbs`), the
152
152
  sub-task roster is **auto-generated** — `spur task batch-create` invokes `spur task refresh-roster`