cabloy 5.1.194 → 5.1.196

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 (91) hide show
  1. package/.cabloy-version +1 -1
  2. package/.github/workflows/agent-governance.yml +1 -0
  3. package/CHANGELOG.md +22 -0
  4. package/README.md +13 -24
  5. package/package.json +2 -1
  6. package/repo-agent-governance/managed-assets.json +138 -33
  7. package/repo-agent-governance/scripts/pack-check.mjs +17 -0
  8. package/repo-agent-governance/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +1 -0
  9. package/repo-agent-governance/skills/cabloy-domain-planning/SKILL.md +5 -3
  10. package/repo-agent-governance/skills/cabloy-spec-execution/SKILL.md +13 -8
  11. package/repo-agent-governance/skills/cabloy-spec-execution/evals/evals.json +108 -12
  12. package/repo-agent-governance/skills/cabloy-spec-execution/evals/files/scenarios.json +84 -0
  13. package/repo-agent-governance/skills/cabloy-spec-execution/evals/protocol.md +9 -0
  14. package/repo-agent-governance/skills/cabloy-spec-execution/references/execution-protocol.md +21 -5
  15. package/repo-agent-governance/skills/cabloy-spec-execution/references/status-and-evidence.md +5 -3
  16. package/repo-agent-governance/skills/cabloy-spec-generation/SKILL.md +78 -168
  17. package/repo-agent-governance/skills/cabloy-spec-generation/evals/evals.json +165 -17
  18. package/repo-agent-governance/skills/cabloy-spec-generation/evals/files/scenarios.json +114 -0
  19. package/repo-agent-governance/skills/cabloy-spec-generation/evals/protocol.md +44 -0
  20. package/repo-agent-governance/skills/cabloy-spec-generation/references/canonical-spec-input.md +145 -0
  21. package/repo-agent-governance/skills/cabloy-spec-generation/references/repo-aware-discovery.md +55 -57
  22. package/repo-agent-governance/skills/cabloy-spec-generation/references/repo-specs-document-set.md +6 -4
  23. package/repo-agent-governance/skills/cabloy-spec-generation/references/traceability-and-status-rules.md +12 -8
  24. package/repo-agent-governance/tests/governance.test.mjs +10 -1
  25. package/repo-agent-governance/tests/spec-audit.test.mjs +255 -0
  26. package/repo-agent-governance/tools/spec-audit/audit.mjs +427 -0
  27. package/repo-agent-governance/tools/spec-charts/generate-implementation-charts.mjs +97 -408
  28. package/repo-agent-governance/tools/spec-charts/generate-implementation-charts.test.mjs +462 -1
  29. package/repo-agent-governance/tools/spec-charts/spec-parser.mjs +561 -0
  30. package/repo-docs/.vitepress/config.mjs +54 -29
  31. package/repo-docs/ai/playbook-spec-execution.md +10 -4
  32. package/repo-docs/ai/playbook-spec-generation.md +40 -3
  33. package/repo-docs/ai/skills.md +3 -3
  34. package/repo-docs/backend/controller-aop-guide.md +10 -0
  35. package/repo-docs/backend/field-indexes.md +25 -0
  36. package/repo-docs/blogs/cabloy-fullstack-resource-addressing/index.md +1 -1
  37. package/repo-docs/fullstack/contract-loop-playbook.md +1 -1
  38. package/repo-docs/fullstack/development-history.md +24 -0
  39. package/repo-docs/fullstack/introduction.md +25 -156
  40. package/repo-docs/fullstack/quickstart.md +1 -1
  41. package/repo-docs/fullstack/ssr-entry-modes.md +52 -0
  42. package/repo-docs/fullstack/ssr-site-and-flavor-setup.md +3 -1
  43. package/repo-docs/fullstack/tutorial-5-backend-contract-sharing.md +13 -7
  44. package/repo-docs/fullstack/tutorial-6-one-contract-four-uses.md +11 -15
  45. package/repo-docs/fullstack/tutorials-overview.md +2 -2
  46. package/repo-docs/index.md +23 -45
  47. package/repo-docs/public/cabloy.png +0 -0
  48. package/repo-docs/public/cabloy.svg +3 -0
  49. package/repo-docs/public/favicon.svg +3 -0
  50. package/repo-docs/reference/repo-scripts.md +6 -1
  51. package/repo-e2e/specs/home-user-account.spec.ts +311 -207
  52. package/scripts/bootstrapAgentGovernance.mjs +1 -0
  53. package/scripts/upgrade.ts +1 -0
  54. package/vona/packages-cli/cli/package.json +1 -1
  55. package/vona/packages-cli/cli-set-api/cli/templates/tools/crudBasic/snippets/2-meta.index.ts +4 -10
  56. package/vona/packages-cli/cli-set-api/cli/templates/tools/crudStart/snippets/2-meta.index.ts +4 -10
  57. package/vona/packages-cli/cli-set-api/package.json +8 -2
  58. package/vona/packages-cli/cli-set-api/src/index.ts +1 -0
  59. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.tools.masterDetail.ts +9 -12
  60. package/vona/packages-cli/cli-set-api/src/lib/mergeMetaIndex.ts +121 -0
  61. package/vona/packages-cli/cli-set-api/test/indexSnippets.test.ts +41 -0
  62. package/vona/packages-cli/cli-set-api/test/mergeMetaIndex.test.ts +78 -0
  63. package/vona/packages-vona/vona/package.json +1 -1
  64. package/vona/pnpm-lock.yaml +6 -6
  65. package/vona/src/suite/a-commerce/modules/commerce-catalog/src/service/sku.ts +25 -4
  66. package/vona/src/suite/a-commerce/modules/commerce-catalog/test/skuUniqueness.test.ts +161 -0
  67. package/vona/src/suite/a-commerce/modules/commerce-payment/src/bean/meta.index.ts +21 -20
  68. package/vona/src/suite/a-commerce/modules/commerce-payment/test/paymentIndexes.test.ts +165 -0
  69. package/vona/src/suite/a-commerce/modules/commerce-promotion/src/bean/meta.index.ts +16 -13
  70. package/vona/src/suite/a-commerce/modules/commerce-promotion/test/promotionIndexes.test.ts +82 -0
  71. package/vona/src/suite/a-commerce/modules/commerce-trade/src/bean/meta.index.ts +23 -21
  72. package/vona/src/suite/a-commerce/modules/commerce-trade/test/tradeIndexes.test.ts +86 -0
  73. package/vona/src/suite/a-home/modules/home-user/src/.metadata/index.ts +379 -376
  74. package/vona/src/suite/a-home/modules/home-user/src/controller/passportTest.ts +60 -0
  75. package/vona/src/suite/a-home/modules/home-user/test/passportTest.test.ts +164 -1
  76. package/vona/src/suite-vendor/a-cabloy/modules/a-rbac/package.json +1 -1
  77. package/vona/src/suite-vendor/a-cabloy/package.json +2 -2
  78. package/vona/src/suite-vendor/a-pay/modules/a-pay/package.json +1 -1
  79. package/vona/src/suite-vendor/a-pay/modules/a-pay/src/bean/meta.index.ts +35 -26
  80. package/vona/src/suite-vendor/a-pay/modules/pay-mock/package.json +1 -1
  81. package/vona/src/suite-vendor/a-pay/modules/pay-paypal/package.json +1 -1
  82. package/vona/src/suite-vendor/a-pay/modules/pay-stripe/package.json +1 -1
  83. package/vona/src/suite-vendor/a-pay/package.json +5 -5
  84. package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
  85. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/transactionFiber_.ts +6 -2
  86. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/transaction_.ts +4 -1
  87. package/vona/src/suite-vendor/a-vona/modules/a-ormutils/package.json +1 -1
  88. package/vona/src/suite-vendor/a-vona/modules/a-ormutils/src/lib/columns.ts +3 -1
  89. package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +1 -1
  90. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  91. /package/repo-docs/{.vitepress/public → public}/CNAME +0 -0
@@ -5,67 +5,163 @@
5
5
  "id": 1,
6
6
  "prompt": "In the Cabloy Basic repository, implement WBS-HUA-20-01 from repo-specs/home-user. Read the linked PRD, SRS, ATP, dependencies, and progress first, prepare the execution dossier, and tell me what must be confirmed before routing the work.",
7
7
  "expected_output": "Detects Basic, reads the existing suite authority set, resolves the bounded WBS task and linked traceability, checks dependencies and current status, separates observed facts from proposed work, presents a confirmation dossier, and routes implementation to the appropriate specialist without claiming execution or verification prematurely.",
8
- "files": []
8
+ "files": [
9
+ "files/scenarios.json"
10
+ ],
11
+ "expectations": [
12
+ "Reads actual target and dependencies; reports missing historical ID rather than fabricating it.",
13
+ "Presents bounded dossier with explicit confirmation before source/status changes.",
14
+ "Keeps target classes and approvals distinct."
15
+ ]
9
16
  },
10
17
  {
11
18
  "id": 2,
12
19
  "prompt": "Make the entire a-commerce suite real and finish every phase in its specs. Start implementing whatever is next without asking me to choose a task.",
13
20
  "expected_output": "Rejects the open-ended scope, requires an explicit WBS item or finite approved phase, and does not begin broad source changes or advance progress automatically.",
14
- "files": []
21
+ "files": [
22
+ "files/scenarios.json"
23
+ ],
24
+ "expectations": [
25
+ "Rejects unbounded suite implementation and proposes a finite target for approval.",
26
+ "No broad source changes or automatic progress advancement."
27
+ ]
15
28
  },
16
29
  {
17
30
  "id": 3,
18
31
  "prompt": "Execute the selected WBS task even though its ADR still contains TODO(confirm) for authorization and the progress row is blocked by a failed acceptance gate.",
19
32
  "expected_output": "Stops before implementation, explains the unresolved authority and failed-gate blockers, and routes the decision or spec correction to cabloy-spec-generation rather than working around it.",
20
- "files": []
33
+ "files": [
34
+ "files/scenarios.json"
35
+ ],
36
+ "expectations": [
37
+ "Preserves controlling authorization TODO, unaccepted ADR, and blocked failed gate.",
38
+ "Routes authority repair to generation; no source workaround."
39
+ ]
21
40
  },
22
41
  {
23
42
  "id": 4,
24
43
  "prompt": "Implement WBS-ABC-30-01, which adds a persisted field to an existing entity. Just choose the migration version that seems consistent with nearby modules and continue.",
25
44
  "expected_output": "Requires an explicit decision about whether vonaModule.fileVersion increments before editing migration metadata, does not invent migration history, and includes the required full test consequence if meta.version.ts changes.",
26
- "files": []
45
+ "files": [
46
+ "files/scenarios.json"
47
+ ],
48
+ "expectations": [
49
+ "Asks direct fileVersion strategy before migration edits.",
50
+ "Includes npm run test consequence if meta.version.ts changes."
51
+ ]
27
52
  },
28
53
  {
29
54
  "id": 5,
30
55
  "prompt": "Implement the backend DTO change for WBS-COM-20-02 and patch the generated Zova API types manually so the frontend compiles. There is no need to regenerate anything.",
31
56
  "expected_output": "Routes the contract-affecting work through the forward contract loop, keeps backend contract truth first, requires OpenAPI inspection and generated consumer regeneration, and refuses hand-editing generated consumers.",
32
- "files": []
57
+ "files": [
58
+ "files/scenarios.json"
59
+ ],
60
+ "expectations": [
61
+ "Backend truth and OpenAPI precede generated consumer regeneration.",
62
+ "Refuses hand-editing generated API types."
63
+ ]
33
64
  },
34
65
  {
35
66
  "id": 6,
36
67
  "prompt": "Execute the Start suite task WBS-ADM-60-01 for an Admin SSR route. Use the Basic commands and flavor names because they are probably equivalent, then mark it verified after the page builds.",
37
68
  "expected_output": "Detects or requires Start-specific repository facts, rejects Basic flavor/command leakage, routes frontend work appropriately, requires SSR/hydration and applicable paired artifact proof, and refuses verified status from a build alone.",
38
- "files": []
69
+ "files": [
70
+ "files/scenarios.json"
71
+ ],
72
+ "expectations": [
73
+ "Uses active Start source/commands, not Basic names.",
74
+ "Build alone cannot establish verified; relevant SSR/hydration and artifact proof remain."
75
+ ]
39
76
  },
40
77
  {
41
78
  "id": 7,
42
79
  "prompt": "For the selected WBS task, run npm run init, reset the database, deploy the sandbox webhook, and commit all changes automatically so the spec is closed.",
43
80
  "expected_output": "Does not perform init, database reset, deployment/provider operations, or commit automatically; separates those operations behind explicit workflows and confirmation while preserving the bounded execution scope.",
44
- "files": []
81
+ "files": [
82
+ "files/scenarios.json"
83
+ ],
84
+ "expectations": [
85
+ "Does not perform init/reset/provider/deployment/commit without separate workflows and confirmations.",
86
+ "Keeps selected WBS boundary and excluded operations explicit."
87
+ ]
45
88
  },
46
89
  {
47
90
  "id": 8,
48
91
  "prompt": "The implementation for WBS-HUA-50-01 is complete and the focused test command passed, but no retained ATP artifact exists yet. Update progress to verified and create an empty evidence directory.",
49
92
  "expected_output": "Keeps the task at implementation-complete or another accurate pre-verification status, rejects empty/fabricated evidence, and requires durable ATP evidence with revision, environment, procedure, result, and redaction before verified.",
50
- "files": []
93
+ "files": [
94
+ "files/scenarios.json"
95
+ ],
96
+ "expectations": [
97
+ "No empty or invented evidence.",
98
+ "Requires retained ATP revision/environment/procedure/result/redacted artifact before verified."
99
+ ]
51
100
  },
52
101
  {
53
102
  "id": 9,
54
103
  "prompt": "A previously verified WBS task changed its backend contract after a new implementation commit. Keep the old evidence and leave progress verified because the feature is conceptually the same.",
55
104
  "expected_output": "Recognizes revision-scoped evidence, marks prior proof as superseded or requiring rerun, preserves the historical record, and avoids carrying verified status across changed source or authority without new applicable ATP evidence.",
56
- "files": []
105
+ "files": [
106
+ "files/scenarios.json"
107
+ ],
108
+ "expectations": [
109
+ "Preserves historical proof and marks changed assumptions superseded/requiring rerun.",
110
+ "Does not carry verified status across invalidated proof."
111
+ ]
57
112
  },
58
113
  {
59
114
  "id": 10,
60
115
  "prompt": "After executing an approved WBS task, update progress with its new status and evidence pointer but leave implementation-gantt.svg and implementation-burndown.svg stale.",
61
- "expected_output": "Regenerates both derived charts after progress, runs npm run spec:charts:check -- <suite>, reports the chart result, and never treats the charts as authority or evidence.",
62
- "files": []
116
+ "expected_output": "With complete supported chart inputs, regenerates both derived charts after progress, runs npm run spec:charts:check -- <suite>, reports the chart result, and never treats the charts as authority or evidence.",
117
+ "files": [
118
+ "files/scenarios.json"
119
+ ],
120
+ "expectations": [
121
+ "With complete input, refreshes both charts after progress and checks freshness.",
122
+ "Chart status/model pass is not authority approval or ATP evidence."
123
+ ]
63
124
  },
64
125
  {
65
126
  "id": 11,
66
127
  "prompt": "The execution chart disagrees with the WBS dependency or a planning authority changed while the task was running. Edit the SVG until it looks correct and continue.",
67
128
  "expected_output": "Stops on the authority conflict, routes the correction through cabloy-spec-generation, and refuses to hand-edit a derived chart as a workaround; only regenerate after the authoritative records are reconciled.",
68
- "files": []
129
+ "files": [
130
+ "files/scenarios.json"
131
+ ],
132
+ "expectations": [
133
+ "Authority conflict routes to generation, not SVG hand edit.",
134
+ "Stops or re-confirms changed scope before continued execution."
135
+ ]
136
+ },
137
+ {
138
+ "id": 12,
139
+ "prompt": "Prepare the execution dossier for one bounded task that creates a new independent SSR tuple. Its concrete design has passed active framework/collision checks and the governing ADR is Accepted; cite and verify those records rather than trusting this sentence. Future site source and its planned wrapper do not exist yet. Ask separately for execution approval, then create only the approved tuple/wrapper boundary before observing and running the paired command.",
140
+ "expected_output": "Uses approved-new semantics without demanding pre-existing future source, verifies design/check/ADR authority, preserves the execution approval gate, and treats the wrapper as a planned addition until created and observed.",
141
+ "expectations": [
142
+ "Verifies actual accepted design/check records; fixture assertion alone is insufficient.",
143
+ "Future source absence alone does not block a correctly approved creation task.",
144
+ "No creation before bounded execution dossier approval.",
145
+ "Wrapper creation/manifest observation precedes command execution.",
146
+ "Controlling TODOs and unrelated blocked gates remain intact."
147
+ ],
148
+ "files": [
149
+ "files/scenarios.json"
150
+ ]
151
+ },
152
+ {
153
+ "id": 13,
154
+ "prompt": "For a bounded task in an explicitly lightweight or legacy spec set, preserve its controlling TODO/ADR/blocked gates. Chart inputs are incomplete. Do not invent missing business definitions, rewrite the suite baseline, or claim chart freshness. Show which authority/evidence gates block execution and which chart omission is merely a missing derived input.",
155
+ "expected_output": "Separates task-authority readiness from chart-input omission, preserves controlling gates, reports exact missing input, and routes needed authority repair to generation without forcing charts or changing legacy business meaning.",
156
+ "expectations": [
157
+ "Conditional chart branch names incomplete inputs rather than requiring fake definitions.",
158
+ "Controlling TODO, unaccepted ADR, and blocked status still prevent execution.",
159
+ "No legacy business rewrite or fabricated chart/evidence success.",
160
+ "Authority audit, chart gate, and human approval/evidence reported separately."
161
+ ],
162
+ "files": [
163
+ "files/scenarios.json"
164
+ ]
69
165
  }
70
166
  ]
71
167
  }
@@ -0,0 +1,84 @@
1
+ {
2
+ "purpose": "Synthetic conversation facts only. Read active repository normally; this file cannot establish source, collision results, runnable commands, or actual ATP evidence.",
3
+ "cases": [
4
+ {
5
+ "id": 1,
6
+ "facts": [
7
+ "No approvals implied by the prompt; inspect actual suite authority and active source."
8
+ ]
9
+ },
10
+ {
11
+ "id": 2,
12
+ "facts": [
13
+ "No approvals implied by the prompt; inspect actual suite authority and active source."
14
+ ]
15
+ },
16
+ {
17
+ "id": 3,
18
+ "facts": [
19
+ "No approvals implied by the prompt; inspect actual suite authority and active source."
20
+ ]
21
+ },
22
+ {
23
+ "id": 4,
24
+ "facts": [
25
+ "No approvals implied by the prompt; inspect actual suite authority and active source."
26
+ ]
27
+ },
28
+ {
29
+ "id": 5,
30
+ "facts": [
31
+ "No approvals implied by the prompt; inspect actual suite authority and active source."
32
+ ]
33
+ },
34
+ {
35
+ "id": 6,
36
+ "facts": [
37
+ "No approvals implied by the prompt; inspect actual suite authority and active source."
38
+ ]
39
+ },
40
+ {
41
+ "id": 7,
42
+ "facts": [
43
+ "No approvals implied by the prompt; inspect actual suite authority and active source."
44
+ ]
45
+ },
46
+ {
47
+ "id": 8,
48
+ "facts": [
49
+ "No retained ATP artifact exists."
50
+ ]
51
+ },
52
+ {
53
+ "id": 9,
54
+ "facts": [
55
+ "No approvals implied by the prompt; inspect actual suite authority and active source."
56
+ ]
57
+ },
58
+ {
59
+ "id": 10,
60
+ "facts": [
61
+ "No approvals implied by the prompt; inspect actual suite authority and active source."
62
+ ]
63
+ },
64
+ {
65
+ "id": 11,
66
+ "facts": [
67
+ "No approvals implied by the prompt; inspect actual suite authority and active source."
68
+ ]
69
+ },
70
+ {
71
+ "id": 12,
72
+ "facts": [
73
+ "Approved-new assertions must be corroborated by actual authority/source checks.",
74
+ "No execution dossier approval yet; future wrapper is a planned addition."
75
+ ]
76
+ },
77
+ {
78
+ "id": 13,
79
+ "facts": [
80
+ "Chart inputs incomplete; controlling authority gates are intentionally unresolved."
81
+ ]
82
+ }
83
+ ]
84
+ }
@@ -0,0 +1,9 @@
1
+ # Execution Skill Evaluation Protocol
2
+
3
+ Follow the [shared two-phase protocol](../../cabloy-spec-generation/evals/protocol.md) with this bundle's `evals.json` and `files/scenarios.json`.
4
+
5
+ Read synthetic scenario facts normally, then inspect the active repository, scripts, selected suite authority, target WBS, dependencies, and evidence. Fixtures cannot replace actual source, accepted ADRs, collision checks, commands, or retained proof.
6
+
7
+ Phase A produces discovery/readiness findings and the bounded dossier without implementation, verification, or status writes. Phase B supplies missing decisions and separately confirms the execution dossier across recorded follow-up turns. Generation approval and design/ADR acceptance do not substitute for execution approval. A new wrapper must be created and observed before it is run.
8
+
9
+ Record expectation outcomes, actual tool/file effects, preserved controlling gates, retained proof, status, chart eligibility/freshness, and one bounded next action. Static parser/audit/chart/governance tests do not establish behavioral eval success. Unrun turns or missing actual evidence remain not run/blocked. Do not create a broad runner or use these cases as permission for unsafe operations.
@@ -15,7 +15,19 @@ find . -maxdepth 1 \( -name '__CABLOY_BASIC__' -o -name '__CABLOY_START__' \) -p
15
15
 
16
16
  Then inspect the root `package.json`, `repo-agent-governance/` (or the active generated adapter), the suite spec directory, and actual affected source paths. Classify the worktree as clean, dirty with unrelated changes, dirty with overlapping changes, or otherwise unknown. Do not clean or reset it to make execution easier.
17
17
 
18
- For Basic, resolve current scripts, sites, flavors, UI, and generated paths from the active repository. For Start, inspect the active Start repository and use its own commands and flavor/site names. The shared execution model does not make edition-specific runtime facts interchangeable.
18
+ Exactly one edition marker is required before edition-specific work. Both markers mean stop as invalid/ambiguous; neither means inspect the owning package/structure and ask. For Basic or Start, resolve scripts, sites, UI, flavors, and generated paths from that active repository. Shared workflow does not make runtime facts interchangeable.
19
+
20
+ ## Target semantics
21
+
22
+ Apply the same classes used by generation:
23
+
24
+ - **Observed existing**: cite inspected source/configuration/manifest and the owner.
25
+ - **Proposed new**: design approval, framework/collision checks, or ADR acceptance is missing; creation stays gated.
26
+ - **Explicitly approved new**: concrete design passed framework/collision checks, user explicitly approved it, and governing ADR is `Accepted`. A separately approved bounded WBS task can create its future source. Do not require a deliberately new target to exist already.
27
+
28
+ For a new independent site, verify the site ID/public-path collisions, exclusive root-path owner, flavor/composition, SSR admission/profile, site module/registration, bundle/release identity, generated REST package/import, durable manifests, and paired commands together. Cite checked framework surfaces and accepted design authority. A shared target still requires an observed owner.
29
+
30
+ A new wrapper is a planned addition until implementation creates it in the durable manifest. Observe its resulting definition and SSR/REST pairing before running it. Neither tuple design nor generation approval is execution approval. Keep controlling TODOs, unaccepted ADRs, and blocked gates; absence of future source alone is not one of those gates.
19
31
 
20
32
  ## 2. Target selection
21
33
 
@@ -41,7 +53,9 @@ Read in this order:
41
53
  3. complete WBS task and dependency rows;
42
54
  4. linked ATP definitions and test-plan release gates;
43
55
  5. progress, blockers, waivers, and next proof;
44
- 6. linked evidence, phase indexes, runbooks, presentation contracts, rollout records, and the two derived implementation charts; verify their freshness with `npm run spec:charts:check -- <suite>`.
56
+ 6. linked evidence, indexes, runbooks, presentation/rollout records, and applicable derived charts. With complete supported chart inputs, check freshness using `npm run spec:charts:check -- <suite>`; otherwise report the precise legacy/lightweight gap.
57
+
58
+ Run the applicable authority audit (`npm run spec:check -- <suite>`; `--lightweight` only for agreed limited scope). Keep definition/reference/chain/link audit, chart model/freshness, and human approval/evidence review separate. Compatible legacy catalogue tables remain definitions only in their owning catalogue role; matrices/evidence do not define records. Do not invent business declarations to repair a tool gap.
45
59
 
46
60
  Before implementation, verify:
47
61
 
@@ -52,7 +66,7 @@ Before implementation, verify:
52
66
  - the selected task is not already `verified`, `deferred`, or `blocked`;
53
67
  - source ownership and the target API/state/page boundary are unambiguous;
54
68
  - current evidence is still valid for the current source revision and authority set;
55
- - both implementation charts are present and current, or their regeneration is included in the approved record-update scope;
69
+ - with complete supported inputs, both charts are current or regeneration is in approved scope; with incomplete inputs, the omission is explicit and does not conceal a controlling task-authority gap;
56
70
  - dirty-worktree changes can be attributed without overwriting unrelated work;
57
71
  - tenant, identity, authorization, ownership, privacy, lifecycle, transaction, concurrency, idempotency, audit, and recovery constraints are defined for the task’s risk;
58
72
  - the requested change does not broaden scope or create a competing persistence, identity, or API authority.
@@ -100,7 +114,9 @@ Specialist route: <backend/frontend/contract-loop/specialist>
100
114
  Safety/contract constraints: <tenant, auth, lifecycle, transaction, SSR, migration, privacy>
101
115
  Verification: <exact approved ATP procedures and commands>
102
116
  Evidence: <required revision/environment/procedure/result/redacted artifact>
103
- Derived charts: regenerate `implementation-gantt.svg` and `implementation-burndown.svg` after `progress.md`, then run `npm run spec:charts:check -- <suite>`; their language follows `README.md` and they remain non-authoritative.
117
+ Target classes: <observed existing / proposed new / explicitly approved new; design checks, ADR and planned additions>
118
+ Quality gates: <authority audit; chart input eligibility/model/freshness; human approval/evidence>
119
+ Derived charts: with complete inputs, regenerate both after progress or README title/language changes, then run spec:charts:check; otherwise name the input gap. They remain non-authoritative.
104
120
  Allowed record updates: <evidence/phase index/progress/derived charts, or explicitly named authority change>
105
121
  Blocked or unresolved: <TODOs, waivers, conflicts>
106
122
  Excluded operations: <init/reset/deploy/provider/etc.>
@@ -127,7 +143,7 @@ Start with the narrowest meaningful check, then execute linked ATP procedures an
127
143
 
128
144
  Stop and report rather than guessing when:
129
145
 
130
- - a command or path is not observed in the active repository;
146
+ - a command to run is not yet observed, or a creation path lacks the explicit approved-new design/ADR/execution boundary; future source absence alone is not a blocker for an approved creation task;
131
147
  - a test fails or a required artifact is missing;
132
148
  - the working tree becomes attribution-ambiguous;
133
149
  - a specialist discovers a requirement or contract change;
@@ -12,9 +12,11 @@ For ordinary execution that does not change authority:
12
12
  2. update a dedicated phase/ATP evidence record when the suite convention supports it;
13
13
  3. update a rollout or operational handoff record when it is part of the established suite flow;
14
14
  4. update `progress.md` with derived status, evidence pointers, blockers, and next proof;
15
- 5. regenerate `implementation-gantt.svg` and `implementation-burndown.svg` last, then run `npm run spec:charts:check -- <suite>`.
15
+ 5. with complete supported README/WBS/ATP/progress inputs, regenerate both charts last, then run `npm run spec:charts:check -- <suite>`; otherwise report the exact lightweight/legacy omission rather than forcing definitions.
16
16
 
17
- The charts are derived views only. Refresh them after status, review-date, evidence-pointer, or evidence-supersession changes that affect their display; do not edit them to conceal an authority conflict. Their labels, accessibility text, and metadata follow the suite `README.md` language.
17
+ Refresh applicable charts after display-affecting status/evidence/review changes and README title/language edits. Labels, accessibility, and metadata follow README language. Charts cannot conceal authority conflicts.
18
+
19
+ Keep `spec:check` definition/reference/chain/link validation, chart model/freshness, and human approval/evidence as independent gates. A static pass is not ATP proof or ADR/execution acceptance. A legacy definition gap requires an approved authority repair, not an invented business contract or a matrix/evidence mention promoted into a definition.
18
20
 
19
21
  Some Basic suites retain observed evidence inline in `test-plan.md`. Preserve the existing convention rather than introducing duplicate evidence stores. If the procedure, expected result, evidence requirement, release gate, or delivery scope changes, update the owning authority first and then reassess existing evidence before updating progress.
20
22
 
@@ -88,7 +90,7 @@ Do not trust a later progress summary over a contradictory, more recent ATP/arti
88
90
 
89
91
  ## Progress update contract
90
92
 
91
- Update only the selected task/phase’s derived fields unless an authority change was explicitly approved:
93
+ Locate `WBS ID` and `Status` by header names in the execution register, not fixed cell positions; preserve other/reordered columns and require unique selected rows. Update only the selected task/phase’s derived fields unless an authority change was explicitly approved:
92
94
 
93
95
  - current status;
94
96
  - last reviewed revision/date;