@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.
- package/.claude-plugin/marketplace.json +1 -1
- package/config/pipeline-budgets.json +1 -1
- package/config/rules/boundary/config-loading-ownership.yaml +1 -1
- package/config/rules/strict/runtime-boundaries.yaml +3 -3
- package/config/rules/surface/check-cli-surface.yaml +1 -1
- package/config/workflow-candidates.json +1 -1
- package/config/workflows/history-anatomy.yaml +11 -11
- package/package.json +11 -11
- package/plugins/sp/commands/dev-runall.md +1 -1
- package/plugins/sp/plugin.json +1 -1
- package/plugins/sp/skills/conflict-finding/SKILL.md +2 -0
- package/plugins/sp/skills/dogfood-testing/SKILL.md +7 -7
- package/plugins/sp/skills/dogfood-testing/references/report-template.md +1 -1
- package/plugins/sp/skills/history-anatomy/references/modes.md +1 -1
- package/plugins/sp/skills/issue-finding/SKILL.md +2 -0
- package/plugins/sp/skills/reverse-engineering/SKILL.md +2 -0
- package/plugins/sp/skills/spur-cli/references/agent.md +6 -5
- package/plugins/sp/skills/spur-cli/references/builder.md +1 -8
- package/plugins/sp/skills/spur-cli/references/history.md +8 -1
- package/plugins/sp/skills/spur-cli/references/self.md +37 -2
- package/plugins/sp/skills/spur-cli/references/tasks.md +2 -1
- package/plugins/sp/skills/spur-cli/references/workflows.md +6 -2
- package/plugins/sp/skills/spur-dev/references/execution-batch-report.md +3 -3
- package/plugins/sp/skills/spur-dev/references/execution-batch.md +3 -3
- package/plugins/sp/skills/spur-dev/references/execution-worktree-landing.md +2 -2
- package/plugins/sp/skills/spur-dev/references/execution-worktree-setup.md +4 -4
- package/plugins/sp/skills/wayfinder/SKILL.md +2 -0
- package/spur.js +33626 -21793
- package/web/_astro/{BoardApp.DFBNysRC.js → BoardApp.CNBpKuB6.js} +167 -169
- package/web/_astro/{BoardApp.DspUVt5b.js → BoardApp.DVWLxHcV.js} +1 -1
- package/web/_astro/{TaskDetail.DEzLL6Fe.js → TaskDetail.BY6jO_3P.js} +1 -1
- package/web/_astro/arc.CLFbvaU4.js +1 -0
- package/web/_astro/{architectureDiagram-3BPJPVTR.D2Zyc6nm.js → architectureDiagram-3BPJPVTR.YYrMKtrm.js} +1 -1
- package/web/_astro/{blockDiagram-GPEHLZMM.BnA_rJl6.js → blockDiagram-GPEHLZMM.D-Xzu32A.js} +1 -1
- package/web/_astro/{c4Diagram-AAUBKEIU.DVUo9pxo.js → c4Diagram-AAUBKEIU.Cv7EV8QD.js} +1 -1
- package/web/_astro/channel.DzHZuqj0.js +1 -0
- package/web/_astro/{chunk-2J33WTMH.BJ-VkV91.js → chunk-2J33WTMH.CkAKN-fF.js} +1 -1
- package/web/_astro/{chunk-4BX2VUAB.xpN1rBQK.js → chunk-4BX2VUAB.D-xu2Tgi.js} +1 -1
- package/web/_astro/{chunk-55IACEB6.Dtu4VTmK.js → chunk-55IACEB6.yNQibVGY.js} +1 -1
- package/web/_astro/{chunk-727SXJPM.CjXhM1c1.js → chunk-727SXJPM.DlVIFHHZ.js} +4 -4
- package/web/_astro/{chunk-AQP2D5EJ.DSCad_Gd.js → chunk-AQP2D5EJ.C-LGFaeS.js} +1 -1
- package/web/_astro/{chunk-FMBD7UC4.DxwDIiuY.js → chunk-FMBD7UC4.Df2n26zT.js} +1 -1
- package/web/_astro/{chunk-ND2GUHAM.D5LgSWYE.js → chunk-ND2GUHAM.CV_k83Gj.js} +1 -1
- package/web/_astro/{chunk-QZHKN3VN.CwXZoKZI.js → chunk-QZHKN3VN.BQQDO3h3.js} +1 -1
- package/web/_astro/{classDiagram-4FO5ZUOK.DZ-I2QOo.js → classDiagram-4FO5ZUOK.DkSMdA84.js} +1 -1
- package/web/_astro/{classDiagram-v2-Q7XG4LA2.DZ-I2QOo.js → classDiagram-v2-Q7XG4LA2.DkSMdA84.js} +1 -1
- package/web/_astro/{cose-bilkent-S5V4N54A.DszE5dpz.js → cose-bilkent-S5V4N54A.CCN7GwAZ.js} +1 -1
- package/web/_astro/{cynefin-OW5HDTMX.c-ctyPLt.js → cynefin-OW5HDTMX.CqQCttkM.js} +1 -1
- package/web/_astro/{dagre-BM42HDAG.Boq07Shn.js → dagre-BM42HDAG.CCn6iftc.js} +2 -2
- package/web/_astro/diagram-2AECGRRQ.DImUVZK-.js +43 -0
- package/web/_astro/diagram-5GNKFQAL.BYNywZwV.js +10 -0
- package/web/_astro/{diagram-KO2AKTUF.BXEZQbTM.js → diagram-KO2AKTUF.LJZ9DjsJ.js} +3 -3
- package/web/_astro/{diagram-LMA3HP47.CFcDobF6.js → diagram-LMA3HP47.CJ3YpVED.js} +1 -1
- package/web/_astro/{diagram-OG6HWLK6.CJ8Q1cQd.js → diagram-OG6HWLK6.CnVtq5_j.js} +1 -1
- package/web/_astro/{erDiagram-TEJ5UH35.B409nFLg.js → erDiagram-TEJ5UH35.SdmuzZwT.js} +5 -5
- package/web/_astro/{flowDiagram-I6XJVG4X.BtF5dGDY.js → flowDiagram-I6XJVG4X.C9V-B-nO.js} +5 -5
- package/web/_astro/{ganttDiagram-6RSMTGT7.BbflTg4R.js → ganttDiagram-6RSMTGT7.DT5v7SL5.js} +1 -1
- package/web/_astro/{gitGraphDiagram-PVQCEYII.BLPcOhGS.js → gitGraphDiagram-PVQCEYII.B3qURYBL.js} +1 -1
- package/web/_astro/index.C8LjH5ri.css +1 -0
- package/web/_astro/{infoDiagram-5YYISTIA.DsaY8QU3.js → infoDiagram-5YYISTIA.CHO0xT8l.js} +1 -1
- package/web/_astro/{ishikawaDiagram-YF4QCWOH.D9PaTLtO.js → ishikawaDiagram-YF4QCWOH.buALAOGh.js} +5 -5
- package/web/_astro/{journeyDiagram-JHISSGLW.4_zPJ9m2.js → journeyDiagram-JHISSGLW.DvKuIdbX.js} +1 -1
- package/web/_astro/{kanban-definition-UN3LZRKU.IqD1vq7W.js → kanban-definition-UN3LZRKU.Dvoi9jdN.js} +7 -7
- package/web/_astro/{linear.JJiEkviR.js → linear.EsEfz8Ex.js} +1 -1
- package/web/_astro/mermaid.core.Vk3ryVC7.js +303 -0
- package/web/_astro/{mindmap-definition-RKZ34NQL.B6pZnBGO.js → mindmap-definition-RKZ34NQL.DG1pkymq.js} +2 -2
- package/web/_astro/{pieDiagram-4H26LBE5.MM6Of7YP.js → pieDiagram-4H26LBE5.DAUmIdd6.js} +3 -3
- package/web/_astro/{quadrantDiagram-W4KKPZXB.7eWQnH9R.js → quadrantDiagram-W4KKPZXB.Du3QUozl.js} +1 -1
- package/web/_astro/{requirementDiagram-4Y6WPE33.C3T9mbHc.js → requirementDiagram-4Y6WPE33.neRi5GrQ.js} +3 -3
- package/web/_astro/{sankeyDiagram-5OEKKPKP.CqlwDe_m.js → sankeyDiagram-5OEKKPKP.CMUtxA70.js} +4 -4
- package/web/_astro/{sequenceDiagram-3UESZ5HK.BNVlPChR.js → sequenceDiagram-3UESZ5HK.CfYFLmYH.js} +1 -1
- package/web/_astro/{stateDiagram-AJRCARHV.DSExW-ER.js → stateDiagram-AJRCARHV.Bn4dmAad.js} +1 -1
- package/web/_astro/{stateDiagram-v2-BHNVJYJU.CxE4k_fB.js → stateDiagram-v2-BHNVJYJU.BMNezvp-.js} +1 -1
- package/web/_astro/{timeline-definition-PNZ67QCA.uFqjG7Z5.js → timeline-definition-PNZ67QCA.ByaDwsBX.js} +3 -3
- package/web/_astro/{vennDiagram-CIIHVFJN.DpTrAXYs.js → vennDiagram-CIIHVFJN.CUYU1Mc9.js} +5 -5
- package/web/_astro/{wardleyDiagram-YWT4CUSO.Dl0KBFZe.js → wardleyDiagram-YWT4CUSO.DpZZeJr2.js} +3 -3
- package/web/_astro/{xychartDiagram-2RQKCTM6.CE0syl0o.js → xychartDiagram-2RQKCTM6.CWwI33U0.js} +1 -1
- package/web/board-runtime.json +4 -0
- package/web/index.html +2 -2
- package/web/_astro/arc.TAQDSOGC.js +0 -1
- package/web/_astro/channel.DpBpvy1k.js +0 -1
- package/web/_astro/diagram-2AECGRRQ.Csap4wVu.js +0 -43
- package/web/_astro/diagram-5GNKFQAL.Cy4jXe_F.js +0 -10
- package/web/_astro/index.DVDW9-eD.css +0 -1
- 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
|
|
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
|
|
372
|
-
spur workflow commit-guard
|
|
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
|
|
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.
|