@davidbalzan/groundwork 0.4.5 → 0.4.7
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/package.json +2 -2
- package/src/commands/doctor.mjs +15 -2
- package/src/lib/artifacts.mjs +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@davidbalzan/groundwork",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.7",
|
|
4
4
|
"description": "Groundwork — an installable AI development workflow (skills + doc methodology) you bolt onto any repo.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"author": "David Balzan",
|
|
30
30
|
"license": "UNLICENSED",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@davidbalzan/groundwork-seam": "0.1.
|
|
32
|
+
"@davidbalzan/groundwork-seam": "0.1.10"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"groundwork": "node src/cli.mjs",
|
package/src/commands/doctor.mjs
CHANGED
|
@@ -1123,8 +1123,21 @@ export function doctor(targetDir, opts = {}) {
|
|
|
1123
1123
|
|
|
1124
1124
|
// ---------- helpers ----------
|
|
1125
1125
|
function phaseNumberFromDir(label) {
|
|
1126
|
-
|
|
1127
|
-
|
|
1126
|
+
// THE PHASE TOKEN CAN HAVE A MINOR PART, and truncating it is the b-clause
|
|
1127
|
+
// defect at a second granularity. There the ID token was too narrow — `3.3b`
|
|
1128
|
+
// matched as `3.3`. Here the PHASE token is: `phase5.1` matched as `5`, so
|
|
1129
|
+
// every box in phase 5.1 was keyed under phase 5 and the citation that names
|
|
1130
|
+
// the phase correctly — `Phase 5.1 Task 7.1` — parsed as nothing at all.
|
|
1131
|
+
//
|
|
1132
|
+
// The consequence was worse than a miss: the citation that LOOKS right is the
|
|
1133
|
+
// one that does not tie, so a correct-looking record reports unevidenced
|
|
1134
|
+
// ticks. Every 5.1 citation had to be written in a form contradicting the
|
|
1135
|
+
// phase's own name.
|
|
1136
|
+
//
|
|
1137
|
+
// Returned as a STRING, because "5.1" is not a number and Number("5.1")
|
|
1138
|
+
// silently collides `phase5.1` with any future `phase5.10`.
|
|
1139
|
+
const m = String(label).match(/^phase(\d+(?:\.\d+)?)/i);
|
|
1140
|
+
return m ? m[1] : null;
|
|
1128
1141
|
}
|
|
1129
1142
|
|
|
1130
1143
|
function roadmapPhaseComplete(roadmapText, n) {
|
package/src/lib/artifacts.mjs
CHANGED
|
@@ -54,6 +54,7 @@ export const ARTIFACTS = [
|
|
|
54
54
|
// it as claimable work. The whole point of the file is that its contents
|
|
55
55
|
// are the items the fleet CANNOT pick up.
|
|
56
56
|
{ path: "docs/DAVID_TASKS.md", scope: "project", purpose: "Standing list of what is blocked on David — his hands, accounts, money, or ruling", writtenBy: "aide (coordinator may append)", readBy: "David, /start-session", rules: "Not a queue: no `- [ ] (Pn)` lines. Items the fleet can do belong in QUEUE.md" },
|
|
57
|
+
{ path: "docs/improvements.md", scope: "project", purpose: "Improvements found by USING the kit, not by reviewing it — each entry records how it was hit", writtenBy: "aide (any agent may append an encounter)", readBy: "David (walkthrough), /plan-phase", rules: "An entry requires an ENCOUNTER: how it was hit, in the tool, by whom. A proposal with no encounter belongs in QUEUE.md. Entries keep their line after the fix lands and gain a reference, so the record of what using it felt like survives the repair. Includes a do-not-improve section: surfaces measured as working, which an in-flight phase must not regress." },
|
|
57
58
|
{ path: "docs/WORKSTREAMS.md", grammar: "workstreams.v1", scope: "project", purpose: "Live state of parallel streams", writtenBy: "/update-workstreams + coordinator", readBy: "everyone, /start-session", rules: "One row per active stream" },
|
|
58
59
|
{ path: "docs/QUEUE.md", grammar: "queue.v1", scope: "project", purpose: "Inbound queue (phases + ad-hoc)", writtenBy: "/plan-phase + human", readBy: "/start-session, coordinator", rules: "Single writer per file: human/proxy only; executors never edit it" },
|
|
59
60
|
{ path: "docs/DONE.md", grammar: "done.v1", scope: "project", purpose: "Completion log", writtenBy: "executor (solo you or coordinator)", readBy: "/start-session, humans", rules: "Append-only; sole executor write in the queue seam; pinned em-dash+middot line format" },
|