@gobing-ai/spur 0.4.21 → 0.4.23

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 (85) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/config/pipeline-budgets.json +1 -1
  3. package/config/rules/boundary/config-loading-ownership.yaml +1 -1
  4. package/config/rules/strict/runtime-boundaries.yaml +3 -3
  5. package/config/rules/surface/check-cli-surface.yaml +1 -1
  6. package/config/workflow-candidates.json +1 -1
  7. package/config/workflows/history-anatomy.yaml +11 -11
  8. package/package.json +11 -11
  9. package/plugins/sp/commands/dev-runall.md +1 -1
  10. package/plugins/sp/plugin.json +1 -1
  11. package/plugins/sp/skills/conflict-finding/SKILL.md +2 -0
  12. package/plugins/sp/skills/dogfood-testing/SKILL.md +7 -7
  13. package/plugins/sp/skills/dogfood-testing/references/report-template.md +1 -1
  14. package/plugins/sp/skills/history-anatomy/references/modes.md +1 -1
  15. package/plugins/sp/skills/issue-finding/SKILL.md +2 -0
  16. package/plugins/sp/skills/reverse-engineering/SKILL.md +2 -0
  17. package/plugins/sp/skills/spur-cli/references/agent.md +6 -5
  18. package/plugins/sp/skills/spur-cli/references/builder.md +1 -8
  19. package/plugins/sp/skills/spur-cli/references/history.md +8 -1
  20. package/plugins/sp/skills/spur-cli/references/self.md +37 -2
  21. package/plugins/sp/skills/spur-cli/references/tasks.md +2 -1
  22. package/plugins/sp/skills/spur-cli/references/workflows.md +6 -2
  23. package/plugins/sp/skills/spur-dev/references/execution-batch-report.md +3 -3
  24. package/plugins/sp/skills/spur-dev/references/execution-batch.md +3 -3
  25. package/plugins/sp/skills/spur-dev/references/execution-worktree-landing.md +2 -2
  26. package/plugins/sp/skills/spur-dev/references/execution-worktree-setup.md +4 -4
  27. package/plugins/sp/skills/wayfinder/SKILL.md +2 -0
  28. package/spur.js +33626 -21793
  29. package/web/_astro/{BoardApp.DFBNysRC.js → BoardApp.CNBpKuB6.js} +167 -169
  30. package/web/_astro/{BoardApp.DspUVt5b.js → BoardApp.DVWLxHcV.js} +1 -1
  31. package/web/_astro/{TaskDetail.DEzLL6Fe.js → TaskDetail.BY6jO_3P.js} +1 -1
  32. package/web/_astro/arc.CLFbvaU4.js +1 -0
  33. package/web/_astro/{architectureDiagram-3BPJPVTR.D2Zyc6nm.js → architectureDiagram-3BPJPVTR.YYrMKtrm.js} +1 -1
  34. package/web/_astro/{blockDiagram-GPEHLZMM.BnA_rJl6.js → blockDiagram-GPEHLZMM.D-Xzu32A.js} +1 -1
  35. package/web/_astro/{c4Diagram-AAUBKEIU.DVUo9pxo.js → c4Diagram-AAUBKEIU.Cv7EV8QD.js} +1 -1
  36. package/web/_astro/channel.DzHZuqj0.js +1 -0
  37. package/web/_astro/{chunk-2J33WTMH.BJ-VkV91.js → chunk-2J33WTMH.CkAKN-fF.js} +1 -1
  38. package/web/_astro/{chunk-4BX2VUAB.xpN1rBQK.js → chunk-4BX2VUAB.D-xu2Tgi.js} +1 -1
  39. package/web/_astro/{chunk-55IACEB6.Dtu4VTmK.js → chunk-55IACEB6.yNQibVGY.js} +1 -1
  40. package/web/_astro/{chunk-727SXJPM.CjXhM1c1.js → chunk-727SXJPM.DlVIFHHZ.js} +4 -4
  41. package/web/_astro/{chunk-AQP2D5EJ.DSCad_Gd.js → chunk-AQP2D5EJ.C-LGFaeS.js} +1 -1
  42. package/web/_astro/{chunk-FMBD7UC4.DxwDIiuY.js → chunk-FMBD7UC4.Df2n26zT.js} +1 -1
  43. package/web/_astro/{chunk-ND2GUHAM.D5LgSWYE.js → chunk-ND2GUHAM.CV_k83Gj.js} +1 -1
  44. package/web/_astro/{chunk-QZHKN3VN.CwXZoKZI.js → chunk-QZHKN3VN.BQQDO3h3.js} +1 -1
  45. package/web/_astro/{classDiagram-4FO5ZUOK.DZ-I2QOo.js → classDiagram-4FO5ZUOK.DkSMdA84.js} +1 -1
  46. package/web/_astro/{classDiagram-v2-Q7XG4LA2.DZ-I2QOo.js → classDiagram-v2-Q7XG4LA2.DkSMdA84.js} +1 -1
  47. package/web/_astro/{cose-bilkent-S5V4N54A.DszE5dpz.js → cose-bilkent-S5V4N54A.CCN7GwAZ.js} +1 -1
  48. package/web/_astro/{cynefin-OW5HDTMX.c-ctyPLt.js → cynefin-OW5HDTMX.CqQCttkM.js} +1 -1
  49. package/web/_astro/{dagre-BM42HDAG.Boq07Shn.js → dagre-BM42HDAG.CCn6iftc.js} +2 -2
  50. package/web/_astro/diagram-2AECGRRQ.DImUVZK-.js +43 -0
  51. package/web/_astro/diagram-5GNKFQAL.BYNywZwV.js +10 -0
  52. package/web/_astro/{diagram-KO2AKTUF.BXEZQbTM.js → diagram-KO2AKTUF.LJZ9DjsJ.js} +3 -3
  53. package/web/_astro/{diagram-LMA3HP47.CFcDobF6.js → diagram-LMA3HP47.CJ3YpVED.js} +1 -1
  54. package/web/_astro/{diagram-OG6HWLK6.CJ8Q1cQd.js → diagram-OG6HWLK6.CnVtq5_j.js} +1 -1
  55. package/web/_astro/{erDiagram-TEJ5UH35.B409nFLg.js → erDiagram-TEJ5UH35.SdmuzZwT.js} +5 -5
  56. package/web/_astro/{flowDiagram-I6XJVG4X.BtF5dGDY.js → flowDiagram-I6XJVG4X.C9V-B-nO.js} +5 -5
  57. package/web/_astro/{ganttDiagram-6RSMTGT7.BbflTg4R.js → ganttDiagram-6RSMTGT7.DT5v7SL5.js} +1 -1
  58. package/web/_astro/{gitGraphDiagram-PVQCEYII.BLPcOhGS.js → gitGraphDiagram-PVQCEYII.B3qURYBL.js} +1 -1
  59. package/web/_astro/index.C8LjH5ri.css +1 -0
  60. package/web/_astro/{infoDiagram-5YYISTIA.DsaY8QU3.js → infoDiagram-5YYISTIA.CHO0xT8l.js} +1 -1
  61. package/web/_astro/{ishikawaDiagram-YF4QCWOH.D9PaTLtO.js → ishikawaDiagram-YF4QCWOH.buALAOGh.js} +5 -5
  62. package/web/_astro/{journeyDiagram-JHISSGLW.4_zPJ9m2.js → journeyDiagram-JHISSGLW.DvKuIdbX.js} +1 -1
  63. package/web/_astro/{kanban-definition-UN3LZRKU.IqD1vq7W.js → kanban-definition-UN3LZRKU.Dvoi9jdN.js} +7 -7
  64. package/web/_astro/{linear.JJiEkviR.js → linear.EsEfz8Ex.js} +1 -1
  65. package/web/_astro/mermaid.core.Vk3ryVC7.js +303 -0
  66. package/web/_astro/{mindmap-definition-RKZ34NQL.B6pZnBGO.js → mindmap-definition-RKZ34NQL.DG1pkymq.js} +2 -2
  67. package/web/_astro/{pieDiagram-4H26LBE5.MM6Of7YP.js → pieDiagram-4H26LBE5.DAUmIdd6.js} +3 -3
  68. package/web/_astro/{quadrantDiagram-W4KKPZXB.7eWQnH9R.js → quadrantDiagram-W4KKPZXB.Du3QUozl.js} +1 -1
  69. package/web/_astro/{requirementDiagram-4Y6WPE33.C3T9mbHc.js → requirementDiagram-4Y6WPE33.neRi5GrQ.js} +3 -3
  70. package/web/_astro/{sankeyDiagram-5OEKKPKP.CqlwDe_m.js → sankeyDiagram-5OEKKPKP.CMUtxA70.js} +4 -4
  71. package/web/_astro/{sequenceDiagram-3UESZ5HK.BNVlPChR.js → sequenceDiagram-3UESZ5HK.CfYFLmYH.js} +1 -1
  72. package/web/_astro/{stateDiagram-AJRCARHV.DSExW-ER.js → stateDiagram-AJRCARHV.Bn4dmAad.js} +1 -1
  73. package/web/_astro/{stateDiagram-v2-BHNVJYJU.CxE4k_fB.js → stateDiagram-v2-BHNVJYJU.BMNezvp-.js} +1 -1
  74. package/web/_astro/{timeline-definition-PNZ67QCA.uFqjG7Z5.js → timeline-definition-PNZ67QCA.ByaDwsBX.js} +3 -3
  75. package/web/_astro/{vennDiagram-CIIHVFJN.DpTrAXYs.js → vennDiagram-CIIHVFJN.CUYU1Mc9.js} +5 -5
  76. package/web/_astro/{wardleyDiagram-YWT4CUSO.Dl0KBFZe.js → wardleyDiagram-YWT4CUSO.DpZZeJr2.js} +3 -3
  77. package/web/_astro/{xychartDiagram-2RQKCTM6.CE0syl0o.js → xychartDiagram-2RQKCTM6.CWwI33U0.js} +1 -1
  78. package/web/board-runtime.json +4 -0
  79. package/web/index.html +2 -2
  80. package/web/_astro/arc.TAQDSOGC.js +0 -1
  81. package/web/_astro/channel.DpBpvy1k.js +0 -1
  82. package/web/_astro/diagram-2AECGRRQ.Csap4wVu.js +0 -43
  83. package/web/_astro/diagram-5GNKFQAL.Cy4jXe_F.js +0 -10
  84. package/web/_astro/index.DVDW9-eD.css +0 -1
  85. package/web/_astro/mermaid.core.Brxzivhz.js +0 -301
@@ -352,7 +352,7 @@ fingerprints the invoking tree for the same reason (its own step 1b).
352
352
  [ "$(git branch --show-current)" = "$BRANCH" ] \
353
353
  || { echo "branch mismatch: expected $BRANCH, got $(git branch --show-current)" >&2; exit 1; }
354
354
  RUN_ID="<marker-id>" # the WT-3 marker's id — the same id WT-3b's stage call uses
355
- spur workflow commit-guard start --run "$RUN_ID" # <worktree>/.spur/run/$RUN_ID-tree-start.json = { head, dirty[] }
355
+ spur workflow commit-guard-start --run "$RUN_ID" # <worktree>/.spur/run/$RUN_ID-tree-start.json = { head, dirty[] }
356
356
  )
357
357
  ```
358
358
 
@@ -368,8 +368,8 @@ same call, verifies the WT-3 identity, and never relies on a persistent `cd` or
368
368
  cd -- "../<worktree-dir>" || { echo "tree missing: expected ../<worktree-dir>" >&2; exit 1; }
369
369
  [ "$(git branch --show-current)" = "$BRANCH" ] \
370
370
  || { echo "branch mismatch: expected $BRANCH, got $(git branch --show-current)" >&2; exit 1; }
371
- spur workflow commit-guard check --run "$RUN_ID" # 1129 R3: concurrent foreign writers; a non-empty list goes in the batch report
372
- spur workflow commit-guard stage --run "$RUN_ID" -- <files-the-batch-wrote> \
371
+ spur workflow commit-guard-check --run "$RUN_ID" # 1129 R3: concurrent foreign writers; a non-empty list goes in the batch report
372
+ spur workflow commit-guard-stage --run "$RUN_ID" -- <files-the-batch-wrote> \
373
373
  || { echo "WT-3b halt: commit-guard refused a path (foreign, unmerged or conflict-marked); nothing committed" >&2; exit 1; }
374
374
  git commit -m "<type>(<scope>): <command> <selector> batch writes"
375
375
  )
@@ -377,7 +377,7 @@ same call, verifies the WT-3 identity, and never relies on a persistent `cd` or
377
377
 
378
378
  > **Forbidden in every driver commit step:** `git add -A` and `git add .`. They stage whatever a
379
379
  > concurrent writer happened to leave in the tree — the two incidents this guard exists for are
380
- > `a94f9f431` and `36f274590` — so a driver stages only through `spur workflow commit-guard stage`.
380
+ > `a94f9f431` and `36f274590` — so a driver stages only through `spur workflow commit-guard-stage`.
381
381
 
382
382
  > **`stage` takes files, never directories.** A directory argument is refused as `(unchanged since
383
383
  > base)` and stages *nothing*, so a task whose diff lives in a moved tree must expand the changed
@@ -142,6 +142,8 @@ Invoked when a map already exists (operator provides the feature ID). A ticket i
142
142
  | **Prototype** | Cheap, rough, concrete artifact to react to — an outline, stub, or rough implementation via `sp:code-implementation`. | Linked prototype as a task artifact |
143
143
  | **Task** | Literal manual work — nothing to prototype or research. Moving data, provisioning access. | Checklist in task body; resolved when done |
144
144
 
145
+ **Search routing** (hybrid search, ADR-147): concept, cross-file, or "how does X work" questions → semantic first — the zg MCP tool `zvec_grep_search` when the host exposes it, else `spur self search "<query>" --mode fuzzy --json`. Literal, symbol, regex, or exhaustive occurrence lists → `rg`. If zg is absent or the search response carries a `skipped` reason → fall back to `rg`.
146
+
145
147
  An open question from the map is **not** resolved this way. It is settled with the operator in
146
148
  conversation (`AskUserQuestion` where available) and recorded straight into **## Decisions so far**
147
149
  — no task is claimed, and it does not consume the session's one ticket.