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.
- package/.cabloy-version +1 -1
- package/.github/workflows/agent-governance.yml +1 -0
- package/CHANGELOG.md +22 -0
- package/README.md +13 -24
- package/package.json +2 -1
- package/repo-agent-governance/managed-assets.json +138 -33
- package/repo-agent-governance/scripts/pack-check.mjs +17 -0
- package/repo-agent-governance/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +1 -0
- package/repo-agent-governance/skills/cabloy-domain-planning/SKILL.md +5 -3
- package/repo-agent-governance/skills/cabloy-spec-execution/SKILL.md +13 -8
- package/repo-agent-governance/skills/cabloy-spec-execution/evals/evals.json +108 -12
- package/repo-agent-governance/skills/cabloy-spec-execution/evals/files/scenarios.json +84 -0
- package/repo-agent-governance/skills/cabloy-spec-execution/evals/protocol.md +9 -0
- package/repo-agent-governance/skills/cabloy-spec-execution/references/execution-protocol.md +21 -5
- package/repo-agent-governance/skills/cabloy-spec-execution/references/status-and-evidence.md +5 -3
- package/repo-agent-governance/skills/cabloy-spec-generation/SKILL.md +78 -168
- package/repo-agent-governance/skills/cabloy-spec-generation/evals/evals.json +165 -17
- package/repo-agent-governance/skills/cabloy-spec-generation/evals/files/scenarios.json +114 -0
- package/repo-agent-governance/skills/cabloy-spec-generation/evals/protocol.md +44 -0
- package/repo-agent-governance/skills/cabloy-spec-generation/references/canonical-spec-input.md +145 -0
- package/repo-agent-governance/skills/cabloy-spec-generation/references/repo-aware-discovery.md +55 -57
- package/repo-agent-governance/skills/cabloy-spec-generation/references/repo-specs-document-set.md +6 -4
- package/repo-agent-governance/skills/cabloy-spec-generation/references/traceability-and-status-rules.md +12 -8
- package/repo-agent-governance/tests/governance.test.mjs +10 -1
- package/repo-agent-governance/tests/spec-audit.test.mjs +255 -0
- package/repo-agent-governance/tools/spec-audit/audit.mjs +427 -0
- package/repo-agent-governance/tools/spec-charts/generate-implementation-charts.mjs +97 -408
- package/repo-agent-governance/tools/spec-charts/generate-implementation-charts.test.mjs +462 -1
- package/repo-agent-governance/tools/spec-charts/spec-parser.mjs +561 -0
- package/repo-docs/.vitepress/config.mjs +54 -29
- package/repo-docs/ai/playbook-spec-execution.md +10 -4
- package/repo-docs/ai/playbook-spec-generation.md +40 -3
- package/repo-docs/ai/skills.md +3 -3
- package/repo-docs/backend/controller-aop-guide.md +10 -0
- package/repo-docs/backend/field-indexes.md +25 -0
- package/repo-docs/blogs/cabloy-fullstack-resource-addressing/index.md +1 -1
- package/repo-docs/fullstack/contract-loop-playbook.md +1 -1
- package/repo-docs/fullstack/development-history.md +24 -0
- package/repo-docs/fullstack/introduction.md +25 -156
- package/repo-docs/fullstack/quickstart.md +1 -1
- package/repo-docs/fullstack/ssr-entry-modes.md +52 -0
- package/repo-docs/fullstack/ssr-site-and-flavor-setup.md +3 -1
- package/repo-docs/fullstack/tutorial-5-backend-contract-sharing.md +13 -7
- package/repo-docs/fullstack/tutorial-6-one-contract-four-uses.md +11 -15
- package/repo-docs/fullstack/tutorials-overview.md +2 -2
- package/repo-docs/index.md +23 -45
- package/repo-docs/public/cabloy.png +0 -0
- package/repo-docs/public/cabloy.svg +3 -0
- package/repo-docs/public/favicon.svg +3 -0
- package/repo-docs/reference/repo-scripts.md +6 -1
- package/repo-e2e/specs/home-user-account.spec.ts +311 -207
- package/scripts/bootstrapAgentGovernance.mjs +1 -0
- package/scripts/upgrade.ts +1 -0
- package/vona/packages-cli/cli/package.json +1 -1
- package/vona/packages-cli/cli-set-api/cli/templates/tools/crudBasic/snippets/2-meta.index.ts +4 -10
- package/vona/packages-cli/cli-set-api/cli/templates/tools/crudStart/snippets/2-meta.index.ts +4 -10
- package/vona/packages-cli/cli-set-api/package.json +8 -2
- package/vona/packages-cli/cli-set-api/src/index.ts +1 -0
- package/vona/packages-cli/cli-set-api/src/lib/bean/cli.tools.masterDetail.ts +9 -12
- package/vona/packages-cli/cli-set-api/src/lib/mergeMetaIndex.ts +121 -0
- package/vona/packages-cli/cli-set-api/test/indexSnippets.test.ts +41 -0
- package/vona/packages-cli/cli-set-api/test/mergeMetaIndex.test.ts +78 -0
- package/vona/packages-vona/vona/package.json +1 -1
- package/vona/pnpm-lock.yaml +6 -6
- package/vona/src/suite/a-commerce/modules/commerce-catalog/src/service/sku.ts +25 -4
- package/vona/src/suite/a-commerce/modules/commerce-catalog/test/skuUniqueness.test.ts +161 -0
- package/vona/src/suite/a-commerce/modules/commerce-payment/src/bean/meta.index.ts +21 -20
- package/vona/src/suite/a-commerce/modules/commerce-payment/test/paymentIndexes.test.ts +165 -0
- package/vona/src/suite/a-commerce/modules/commerce-promotion/src/bean/meta.index.ts +16 -13
- package/vona/src/suite/a-commerce/modules/commerce-promotion/test/promotionIndexes.test.ts +82 -0
- package/vona/src/suite/a-commerce/modules/commerce-trade/src/bean/meta.index.ts +23 -21
- package/vona/src/suite/a-commerce/modules/commerce-trade/test/tradeIndexes.test.ts +86 -0
- package/vona/src/suite/a-home/modules/home-user/src/.metadata/index.ts +379 -376
- package/vona/src/suite/a-home/modules/home-user/src/controller/passportTest.ts +60 -0
- package/vona/src/suite/a-home/modules/home-user/test/passportTest.test.ts +164 -1
- package/vona/src/suite-vendor/a-cabloy/modules/a-rbac/package.json +1 -1
- package/vona/src/suite-vendor/a-cabloy/package.json +2 -2
- package/vona/src/suite-vendor/a-pay/modules/a-pay/package.json +1 -1
- package/vona/src/suite-vendor/a-pay/modules/a-pay/src/bean/meta.index.ts +35 -26
- package/vona/src/suite-vendor/a-pay/modules/pay-mock/package.json +1 -1
- package/vona/src/suite-vendor/a-pay/modules/pay-paypal/package.json +1 -1
- package/vona/src/suite-vendor/a-pay/modules/pay-stripe/package.json +1 -1
- package/vona/src/suite-vendor/a-pay/package.json +5 -5
- package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/transactionFiber_.ts +6 -2
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/transaction_.ts +4 -1
- package/vona/src/suite-vendor/a-vona/modules/a-ormutils/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-ormutils/src/lib/columns.ts +3 -1
- package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/package.json +1 -1
- /package/repo-docs/{.vitepress/public → public}/CNAME +0 -0
package/.cabloy-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.1.
|
|
1
|
+
5.1.196
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.1.196
|
|
4
|
+
|
|
5
|
+
### Improvements
|
|
6
|
+
|
|
7
|
+
- Clean up home-user account test fixtures.
|
|
8
|
+
|
|
9
|
+
## 5.1.195
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
- Update application features.
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- Fix metadata index merging and preserve indexes on the same table in metadata and generators.
|
|
18
|
+
|
|
19
|
+
### Improvements
|
|
20
|
+
|
|
21
|
+
- Enhance transaction handling and specification skills.
|
|
22
|
+
- Refine the commerce specification and clarify the tutorial’s OpenAPI workflow and contract model.
|
|
23
|
+
- Update the controller AOP guide, SSR comparison, development history, introduction, README, and site icon.
|
|
24
|
+
|
|
3
25
|
## 5.1.194
|
|
4
26
|
|
|
5
27
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -6,32 +6,31 @@
|
|
|
6
6
|
[](https://cabloy.com)
|
|
7
7
|
[](https://cabloy.com/demo)
|
|
8
8
|
|
|
9
|
-
Cabloy is a Node.js fullstack framework for AI vibe coding, with AI Spec-Driven Development
|
|
9
|
+
Cabloy is a Node.js fullstack framework for AI vibe coding, with AI Spec-Driven Development guiding work from confirmed specs to verifiable delivery.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Instead of stitching separate backend and frontend stacks together, Cabloy keeps their contracts, tooling, and guidance connected in one repository. [AI Spec-Driven Development](https://cabloy.com/ai/ai-spec-driven-development) provides the disciplined path from confirmed Specs to evidence-backed delivery; its precise engineering method is Traceable Spec Delivery. Vona is its backend framework and runtime layer, and Zova is its frontend framework and application layer. Cabloy Basic and Cabloy Start are related, complete edition baselines built on that shared architecture; see [Editions Overview](https://cabloy.com/editions/overview) for their deliberate differences.
|
|
11
|
+
Cabloy Basic and Cabloy Start are complete editions built on this shared architecture; see [Editions Overview](https://cabloy.com/editions/overview) for their differences.
|
|
14
12
|
|
|
15
13
|
[Documentation](https://cabloy.com) · [npm](https://www.npmjs.com/package/cabloy) · [Demo](https://cabloy.com/demo) · [GitHub](https://github.com/cabloy/cabloy)
|
|
16
14
|
|
|
17
15
|
## Fullstack Principles
|
|
18
16
|
|
|
19
|
-
Cabloy
|
|
17
|
+
Cabloy connects Vona and Zova in two ways:
|
|
20
18
|
|
|
21
|
-
1. **
|
|
22
|
-
- Zova owns the frontend application source
|
|
23
|
-
- the generated frontend bundle and SSR-related artifacts are consumed by the Vona-side SSR flow
|
|
24
|
-
- backend rendering and frontend hydration stay on one coordinated delivery path
|
|
19
|
+
1. **Integrated SSR.** Zova builds the frontend and SSR artifacts. In Vona integrated SSR, Vona consumes those artifacts to render the page, and Zova hydrates it in the browser.
|
|
25
20
|
|
|
26
|
-
2. **
|
|
27
|
-
- **Backend -> Frontend**: Vona emits Swagger/OpenAPI contracts that Zova can use to generate SDKs and related schema-aware helpers
|
|
28
|
-
- **Frontend -> Backend**: Zova generates structural metadata and typing surfaces such as routes, components, and icons that can improve backend-side tooling and type hints
|
|
21
|
+
2. **Bidirectional contract flow.** Vona's OpenAPI contracts generate Zova SDKs and schema-aware helpers. Zova's generated metadata and types for routes, components, and icons feed back into Vona's tooling and type hints.
|
|
29
22
|
|
|
30
|
-
|
|
23
|
+
Learn more about [Vona + Zova Integration](https://cabloy.com/fullstack/vona-zova-integration) and the [Contract Loop](https://cabloy.com/fullstack/contract-loop-playbook).
|
|
31
24
|
|
|
32
25
|
## Get Started
|
|
33
26
|
|
|
34
|
-
|
|
27
|
+
Create a new Cabloy Basic project:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm create cabloy
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
For Cabloy Start, clone the [Cabloy Start repository](https://github.com/cabloy/cabloy-start) and run `npm run init` from its root. See the [Fullstack Quickstart](https://cabloy.com/fullstack/quickstart) for prerequisites and development commands.
|
|
35
34
|
|
|
36
35
|
## AI Spec-Driven Development
|
|
37
36
|
|
|
@@ -78,16 +77,6 @@ Included demonstration suites give AI vibe coding agents high-quality, project-n
|
|
|
78
77
|
|
|
79
78
|
> “Not included” means that the suite is not part of the default edition baseline. It does not limit what can be built with Cabloy.
|
|
80
79
|
|
|
81
|
-
## Highlights
|
|
82
|
-
|
|
83
|
-
- **One fullstack system** — build backend and frontend together instead of assembling separate stacks
|
|
84
|
-
- **Bidirectional type sync** — use the contract loop to keep backend contracts and frontend metadata aligned in both directions
|
|
85
|
-
- **CLI-first workflows** — use explicit commands for scaffolding, generation, refactors, and verification
|
|
86
|
-
- **Docs and skills** — give people and AI agents reusable, source-grounded guidance for the current repository
|
|
87
|
-
- **AI Spec-Driven Development** — use Traceable Spec Delivery to connect product intent, contracts, bounded work, acceptance procedures, and verifiable evidence
|
|
88
|
-
- **Vona + Zova** — use aligned backend and frontend layers for code sharing and cross-stack consistency
|
|
89
|
-
- **Modular delivery** — organize capabilities as suites and modules, then deliver SSR, SPA, Web, and Admin applications with shared conventions
|
|
90
|
-
|
|
91
80
|
## Technology Stack
|
|
92
81
|
|
|
93
82
|
### General
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cabloy",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.196",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "A Node.js fullstack framework",
|
|
6
6
|
"keywords": [
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"test:spec-charts": "node --test repo-agent-governance/tools/spec-charts/generate-implementation-charts.test.mjs",
|
|
61
61
|
"spec:charts": "node ./repo-agent-governance/tools/spec-charts/generate-implementation-charts.mjs",
|
|
62
62
|
"spec:charts:check": "node ./repo-agent-governance/tools/spec-charts/generate-implementation-charts.mjs --check",
|
|
63
|
+
"spec:check": "node ./repo-agent-governance/tools/spec-audit/audit.mjs",
|
|
63
64
|
"docs:dev": "pnpm --dir repo-docs docs:dev",
|
|
64
65
|
"docs:build": "pnpm --dir repo-docs docs:build",
|
|
65
66
|
"docs:preview": "pnpm --dir repo-docs docs:preview",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
{
|
|
19
19
|
"adapter": "codex",
|
|
20
20
|
"category": "skill",
|
|
21
|
-
"sha256": "
|
|
21
|
+
"sha256": "88e6ca8c60d8caeb68ab932f2a7e22810a31911400b4428fd0756d076dbc78e8",
|
|
22
22
|
"source": "skills/cabloy-backend-scaffold/references/follow-up-checklist.md",
|
|
23
23
|
"target": ".agents/skills/cabloy-backend-scaffold/references/follow-up-checklist.md"
|
|
24
24
|
},
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
{
|
|
68
68
|
"adapter": "codex",
|
|
69
69
|
"category": "skill",
|
|
70
|
-
"sha256": "
|
|
70
|
+
"sha256": "aceca7a587634f574301cafad267b9a2d620db1c5a5c1dd8cec9483870fc0400",
|
|
71
71
|
"source": "skills/cabloy-domain-planning/SKILL.md",
|
|
72
72
|
"target": ".agents/skills/cabloy-domain-planning/SKILL.md"
|
|
73
73
|
},
|
|
@@ -158,63 +158,98 @@
|
|
|
158
158
|
{
|
|
159
159
|
"adapter": "codex",
|
|
160
160
|
"category": "skill",
|
|
161
|
-
"sha256": "
|
|
161
|
+
"sha256": "1d5a93d8285e85778e281c1a82d141f44d6f74112a295fc1d8ad977e2af2b3c3",
|
|
162
162
|
"source": "skills/cabloy-spec-execution/evals/evals.json",
|
|
163
163
|
"target": ".agents/skills/cabloy-spec-execution/evals/evals.json"
|
|
164
164
|
},
|
|
165
165
|
{
|
|
166
166
|
"adapter": "codex",
|
|
167
167
|
"category": "skill",
|
|
168
|
-
"sha256": "
|
|
168
|
+
"sha256": "187c45fea775846326bcdea17b20a465850e563cd98a9c189725ca5aac5fdee5",
|
|
169
|
+
"source": "skills/cabloy-spec-execution/evals/files/scenarios.json",
|
|
170
|
+
"target": ".agents/skills/cabloy-spec-execution/evals/files/scenarios.json"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"adapter": "codex",
|
|
174
|
+
"category": "skill",
|
|
175
|
+
"sha256": "4272ada10c6802a70c3fd926aab858724a65e975a716775ac716d6f0ba85c25a",
|
|
176
|
+
"source": "skills/cabloy-spec-execution/evals/protocol.md",
|
|
177
|
+
"target": ".agents/skills/cabloy-spec-execution/evals/protocol.md"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"adapter": "codex",
|
|
181
|
+
"category": "skill",
|
|
182
|
+
"sha256": "788f9c94a93753f2ad16d0a1f772fe61785514ab69e2564a2a2454f4efb46086",
|
|
169
183
|
"source": "skills/cabloy-spec-execution/references/execution-protocol.md",
|
|
170
184
|
"target": ".agents/skills/cabloy-spec-execution/references/execution-protocol.md"
|
|
171
185
|
},
|
|
172
186
|
{
|
|
173
187
|
"adapter": "codex",
|
|
174
188
|
"category": "skill",
|
|
175
|
-
"sha256": "
|
|
189
|
+
"sha256": "ec93b6999fcf87f35f8f1f18eed54bb08ee2753862b34f6c474480f2c88ee7e0",
|
|
176
190
|
"source": "skills/cabloy-spec-execution/references/status-and-evidence.md",
|
|
177
191
|
"target": ".agents/skills/cabloy-spec-execution/references/status-and-evidence.md"
|
|
178
192
|
},
|
|
179
193
|
{
|
|
180
194
|
"adapter": "codex",
|
|
181
195
|
"category": "skill",
|
|
182
|
-
"sha256": "
|
|
196
|
+
"sha256": "52a1a0ae16f72345a761d657130fd65b681535c20937a86d1d6f279772c9bb31",
|
|
183
197
|
"source": "skills/cabloy-spec-execution/SKILL.md",
|
|
184
198
|
"target": ".agents/skills/cabloy-spec-execution/SKILL.md"
|
|
185
199
|
},
|
|
186
200
|
{
|
|
187
201
|
"adapter": "codex",
|
|
188
202
|
"category": "skill",
|
|
189
|
-
"sha256": "
|
|
203
|
+
"sha256": "4ef681f7bb98e605514e770bfa129d171f915e8562025d6195de0f8dfecaa80a",
|
|
190
204
|
"source": "skills/cabloy-spec-generation/evals/evals.json",
|
|
191
205
|
"target": ".agents/skills/cabloy-spec-generation/evals/evals.json"
|
|
192
206
|
},
|
|
193
207
|
{
|
|
194
208
|
"adapter": "codex",
|
|
195
209
|
"category": "skill",
|
|
196
|
-
"sha256": "
|
|
210
|
+
"sha256": "c5a1923be3cf387d3d31535af816e8ecadd52762ebb847a1be0d7cd1fe7c3d61",
|
|
211
|
+
"source": "skills/cabloy-spec-generation/evals/files/scenarios.json",
|
|
212
|
+
"target": ".agents/skills/cabloy-spec-generation/evals/files/scenarios.json"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"adapter": "codex",
|
|
216
|
+
"category": "skill",
|
|
217
|
+
"sha256": "4fa0405277092948d79cbde3d5b9b0f2e258dac58bf7e462dffea56da5fdd45f",
|
|
218
|
+
"source": "skills/cabloy-spec-generation/evals/protocol.md",
|
|
219
|
+
"target": ".agents/skills/cabloy-spec-generation/evals/protocol.md"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"adapter": "codex",
|
|
223
|
+
"category": "skill",
|
|
224
|
+
"sha256": "85b5a174c20111d31e50071a826f555c1e9b810e52078305af2850f3593f3603",
|
|
225
|
+
"source": "skills/cabloy-spec-generation/references/canonical-spec-input.md",
|
|
226
|
+
"target": ".agents/skills/cabloy-spec-generation/references/canonical-spec-input.md"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"adapter": "codex",
|
|
230
|
+
"category": "skill",
|
|
231
|
+
"sha256": "0c482b23c42c893dae4a027a786117ff2ad4b5686e3fc29de0a117d7e4958a49",
|
|
197
232
|
"source": "skills/cabloy-spec-generation/references/repo-aware-discovery.md",
|
|
198
233
|
"target": ".agents/skills/cabloy-spec-generation/references/repo-aware-discovery.md"
|
|
199
234
|
},
|
|
200
235
|
{
|
|
201
236
|
"adapter": "codex",
|
|
202
237
|
"category": "skill",
|
|
203
|
-
"sha256": "
|
|
238
|
+
"sha256": "772e83aea0d7a3ad3d5a91d4ecedd09f6cd24ae9eb146399f0834ded3f074185",
|
|
204
239
|
"source": "skills/cabloy-spec-generation/references/repo-specs-document-set.md",
|
|
205
240
|
"target": ".agents/skills/cabloy-spec-generation/references/repo-specs-document-set.md"
|
|
206
241
|
},
|
|
207
242
|
{
|
|
208
243
|
"adapter": "codex",
|
|
209
244
|
"category": "skill",
|
|
210
|
-
"sha256": "
|
|
245
|
+
"sha256": "242d3b7dd6f9266fa836918443c06add6bf9d2308d7f4288112412ee3a6224f5",
|
|
211
246
|
"source": "skills/cabloy-spec-generation/references/traceability-and-status-rules.md",
|
|
212
247
|
"target": ".agents/skills/cabloy-spec-generation/references/traceability-and-status-rules.md"
|
|
213
248
|
},
|
|
214
249
|
{
|
|
215
250
|
"adapter": "codex",
|
|
216
251
|
"category": "skill",
|
|
217
|
-
"sha256": "
|
|
252
|
+
"sha256": "7b66c1f77130d14e44bea6f6f09e0de53fe4ae251ad888e78195dab48246301d",
|
|
218
253
|
"source": "skills/cabloy-spec-generation/SKILL.md",
|
|
219
254
|
"target": ".agents/skills/cabloy-spec-generation/SKILL.md"
|
|
220
255
|
},
|
|
@@ -319,7 +354,7 @@
|
|
|
319
354
|
{
|
|
320
355
|
"adapter": "claude",
|
|
321
356
|
"category": "skill",
|
|
322
|
-
"sha256": "
|
|
357
|
+
"sha256": "88e6ca8c60d8caeb68ab932f2a7e22810a31911400b4428fd0756d076dbc78e8",
|
|
323
358
|
"source": "skills/cabloy-backend-scaffold/references/follow-up-checklist.md",
|
|
324
359
|
"target": ".claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md"
|
|
325
360
|
},
|
|
@@ -368,7 +403,7 @@
|
|
|
368
403
|
{
|
|
369
404
|
"adapter": "claude",
|
|
370
405
|
"category": "skill",
|
|
371
|
-
"sha256": "
|
|
406
|
+
"sha256": "aceca7a587634f574301cafad267b9a2d620db1c5a5c1dd8cec9483870fc0400",
|
|
372
407
|
"source": "skills/cabloy-domain-planning/SKILL.md",
|
|
373
408
|
"target": ".claude/skills/cabloy-domain-planning/SKILL.md"
|
|
374
409
|
},
|
|
@@ -459,63 +494,98 @@
|
|
|
459
494
|
{
|
|
460
495
|
"adapter": "claude",
|
|
461
496
|
"category": "skill",
|
|
462
|
-
"sha256": "
|
|
497
|
+
"sha256": "1d5a93d8285e85778e281c1a82d141f44d6f74112a295fc1d8ad977e2af2b3c3",
|
|
463
498
|
"source": "skills/cabloy-spec-execution/evals/evals.json",
|
|
464
499
|
"target": ".claude/skills/cabloy-spec-execution/evals/evals.json"
|
|
465
500
|
},
|
|
466
501
|
{
|
|
467
502
|
"adapter": "claude",
|
|
468
503
|
"category": "skill",
|
|
469
|
-
"sha256": "
|
|
504
|
+
"sha256": "187c45fea775846326bcdea17b20a465850e563cd98a9c189725ca5aac5fdee5",
|
|
505
|
+
"source": "skills/cabloy-spec-execution/evals/files/scenarios.json",
|
|
506
|
+
"target": ".claude/skills/cabloy-spec-execution/evals/files/scenarios.json"
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
"adapter": "claude",
|
|
510
|
+
"category": "skill",
|
|
511
|
+
"sha256": "4272ada10c6802a70c3fd926aab858724a65e975a716775ac716d6f0ba85c25a",
|
|
512
|
+
"source": "skills/cabloy-spec-execution/evals/protocol.md",
|
|
513
|
+
"target": ".claude/skills/cabloy-spec-execution/evals/protocol.md"
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"adapter": "claude",
|
|
517
|
+
"category": "skill",
|
|
518
|
+
"sha256": "788f9c94a93753f2ad16d0a1f772fe61785514ab69e2564a2a2454f4efb46086",
|
|
470
519
|
"source": "skills/cabloy-spec-execution/references/execution-protocol.md",
|
|
471
520
|
"target": ".claude/skills/cabloy-spec-execution/references/execution-protocol.md"
|
|
472
521
|
},
|
|
473
522
|
{
|
|
474
523
|
"adapter": "claude",
|
|
475
524
|
"category": "skill",
|
|
476
|
-
"sha256": "
|
|
525
|
+
"sha256": "ec93b6999fcf87f35f8f1f18eed54bb08ee2753862b34f6c474480f2c88ee7e0",
|
|
477
526
|
"source": "skills/cabloy-spec-execution/references/status-and-evidence.md",
|
|
478
527
|
"target": ".claude/skills/cabloy-spec-execution/references/status-and-evidence.md"
|
|
479
528
|
},
|
|
480
529
|
{
|
|
481
530
|
"adapter": "claude",
|
|
482
531
|
"category": "skill",
|
|
483
|
-
"sha256": "
|
|
532
|
+
"sha256": "52a1a0ae16f72345a761d657130fd65b681535c20937a86d1d6f279772c9bb31",
|
|
484
533
|
"source": "skills/cabloy-spec-execution/SKILL.md",
|
|
485
534
|
"target": ".claude/skills/cabloy-spec-execution/SKILL.md"
|
|
486
535
|
},
|
|
487
536
|
{
|
|
488
537
|
"adapter": "claude",
|
|
489
538
|
"category": "skill",
|
|
490
|
-
"sha256": "
|
|
539
|
+
"sha256": "4ef681f7bb98e605514e770bfa129d171f915e8562025d6195de0f8dfecaa80a",
|
|
491
540
|
"source": "skills/cabloy-spec-generation/evals/evals.json",
|
|
492
541
|
"target": ".claude/skills/cabloy-spec-generation/evals/evals.json"
|
|
493
542
|
},
|
|
494
543
|
{
|
|
495
544
|
"adapter": "claude",
|
|
496
545
|
"category": "skill",
|
|
497
|
-
"sha256": "
|
|
546
|
+
"sha256": "c5a1923be3cf387d3d31535af816e8ecadd52762ebb847a1be0d7cd1fe7c3d61",
|
|
547
|
+
"source": "skills/cabloy-spec-generation/evals/files/scenarios.json",
|
|
548
|
+
"target": ".claude/skills/cabloy-spec-generation/evals/files/scenarios.json"
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"adapter": "claude",
|
|
552
|
+
"category": "skill",
|
|
553
|
+
"sha256": "4fa0405277092948d79cbde3d5b9b0f2e258dac58bf7e462dffea56da5fdd45f",
|
|
554
|
+
"source": "skills/cabloy-spec-generation/evals/protocol.md",
|
|
555
|
+
"target": ".claude/skills/cabloy-spec-generation/evals/protocol.md"
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"adapter": "claude",
|
|
559
|
+
"category": "skill",
|
|
560
|
+
"sha256": "85b5a174c20111d31e50071a826f555c1e9b810e52078305af2850f3593f3603",
|
|
561
|
+
"source": "skills/cabloy-spec-generation/references/canonical-spec-input.md",
|
|
562
|
+
"target": ".claude/skills/cabloy-spec-generation/references/canonical-spec-input.md"
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"adapter": "claude",
|
|
566
|
+
"category": "skill",
|
|
567
|
+
"sha256": "0c482b23c42c893dae4a027a786117ff2ad4b5686e3fc29de0a117d7e4958a49",
|
|
498
568
|
"source": "skills/cabloy-spec-generation/references/repo-aware-discovery.md",
|
|
499
569
|
"target": ".claude/skills/cabloy-spec-generation/references/repo-aware-discovery.md"
|
|
500
570
|
},
|
|
501
571
|
{
|
|
502
572
|
"adapter": "claude",
|
|
503
573
|
"category": "skill",
|
|
504
|
-
"sha256": "
|
|
574
|
+
"sha256": "772e83aea0d7a3ad3d5a91d4ecedd09f6cd24ae9eb146399f0834ded3f074185",
|
|
505
575
|
"source": "skills/cabloy-spec-generation/references/repo-specs-document-set.md",
|
|
506
576
|
"target": ".claude/skills/cabloy-spec-generation/references/repo-specs-document-set.md"
|
|
507
577
|
},
|
|
508
578
|
{
|
|
509
579
|
"adapter": "claude",
|
|
510
580
|
"category": "skill",
|
|
511
|
-
"sha256": "
|
|
581
|
+
"sha256": "242d3b7dd6f9266fa836918443c06add6bf9d2308d7f4288112412ee3a6224f5",
|
|
512
582
|
"source": "skills/cabloy-spec-generation/references/traceability-and-status-rules.md",
|
|
513
583
|
"target": ".claude/skills/cabloy-spec-generation/references/traceability-and-status-rules.md"
|
|
514
584
|
},
|
|
515
585
|
{
|
|
516
586
|
"adapter": "claude",
|
|
517
587
|
"category": "skill",
|
|
518
|
-
"sha256": "
|
|
588
|
+
"sha256": "7b66c1f77130d14e44bea6f6f09e0de53fe4ae251ad888e78195dab48246301d",
|
|
519
589
|
"source": "skills/cabloy-spec-generation/SKILL.md",
|
|
520
590
|
"target": ".claude/skills/cabloy-spec-generation/SKILL.md"
|
|
521
591
|
},
|
|
@@ -634,7 +704,7 @@
|
|
|
634
704
|
{
|
|
635
705
|
"adapter": "cursor",
|
|
636
706
|
"category": "skill",
|
|
637
|
-
"sha256": "
|
|
707
|
+
"sha256": "88e6ca8c60d8caeb68ab932f2a7e22810a31911400b4428fd0756d076dbc78e8",
|
|
638
708
|
"source": "skills/cabloy-backend-scaffold/references/follow-up-checklist.md",
|
|
639
709
|
"target": ".cursor/skills/cabloy-backend-scaffold/references/follow-up-checklist.md"
|
|
640
710
|
},
|
|
@@ -683,7 +753,7 @@
|
|
|
683
753
|
{
|
|
684
754
|
"adapter": "cursor",
|
|
685
755
|
"category": "skill",
|
|
686
|
-
"sha256": "
|
|
756
|
+
"sha256": "aceca7a587634f574301cafad267b9a2d620db1c5a5c1dd8cec9483870fc0400",
|
|
687
757
|
"source": "skills/cabloy-domain-planning/SKILL.md",
|
|
688
758
|
"target": ".cursor/skills/cabloy-domain-planning/SKILL.md"
|
|
689
759
|
},
|
|
@@ -774,63 +844,98 @@
|
|
|
774
844
|
{
|
|
775
845
|
"adapter": "cursor",
|
|
776
846
|
"category": "skill",
|
|
777
|
-
"sha256": "
|
|
847
|
+
"sha256": "1d5a93d8285e85778e281c1a82d141f44d6f74112a295fc1d8ad977e2af2b3c3",
|
|
778
848
|
"source": "skills/cabloy-spec-execution/evals/evals.json",
|
|
779
849
|
"target": ".cursor/skills/cabloy-spec-execution/evals/evals.json"
|
|
780
850
|
},
|
|
781
851
|
{
|
|
782
852
|
"adapter": "cursor",
|
|
783
853
|
"category": "skill",
|
|
784
|
-
"sha256": "
|
|
854
|
+
"sha256": "187c45fea775846326bcdea17b20a465850e563cd98a9c189725ca5aac5fdee5",
|
|
855
|
+
"source": "skills/cabloy-spec-execution/evals/files/scenarios.json",
|
|
856
|
+
"target": ".cursor/skills/cabloy-spec-execution/evals/files/scenarios.json"
|
|
857
|
+
},
|
|
858
|
+
{
|
|
859
|
+
"adapter": "cursor",
|
|
860
|
+
"category": "skill",
|
|
861
|
+
"sha256": "4272ada10c6802a70c3fd926aab858724a65e975a716775ac716d6f0ba85c25a",
|
|
862
|
+
"source": "skills/cabloy-spec-execution/evals/protocol.md",
|
|
863
|
+
"target": ".cursor/skills/cabloy-spec-execution/evals/protocol.md"
|
|
864
|
+
},
|
|
865
|
+
{
|
|
866
|
+
"adapter": "cursor",
|
|
867
|
+
"category": "skill",
|
|
868
|
+
"sha256": "788f9c94a93753f2ad16d0a1f772fe61785514ab69e2564a2a2454f4efb46086",
|
|
785
869
|
"source": "skills/cabloy-spec-execution/references/execution-protocol.md",
|
|
786
870
|
"target": ".cursor/skills/cabloy-spec-execution/references/execution-protocol.md"
|
|
787
871
|
},
|
|
788
872
|
{
|
|
789
873
|
"adapter": "cursor",
|
|
790
874
|
"category": "skill",
|
|
791
|
-
"sha256": "
|
|
875
|
+
"sha256": "ec93b6999fcf87f35f8f1f18eed54bb08ee2753862b34f6c474480f2c88ee7e0",
|
|
792
876
|
"source": "skills/cabloy-spec-execution/references/status-and-evidence.md",
|
|
793
877
|
"target": ".cursor/skills/cabloy-spec-execution/references/status-and-evidence.md"
|
|
794
878
|
},
|
|
795
879
|
{
|
|
796
880
|
"adapter": "cursor",
|
|
797
881
|
"category": "skill",
|
|
798
|
-
"sha256": "
|
|
882
|
+
"sha256": "52a1a0ae16f72345a761d657130fd65b681535c20937a86d1d6f279772c9bb31",
|
|
799
883
|
"source": "skills/cabloy-spec-execution/SKILL.md",
|
|
800
884
|
"target": ".cursor/skills/cabloy-spec-execution/SKILL.md"
|
|
801
885
|
},
|
|
802
886
|
{
|
|
803
887
|
"adapter": "cursor",
|
|
804
888
|
"category": "skill",
|
|
805
|
-
"sha256": "
|
|
889
|
+
"sha256": "4ef681f7bb98e605514e770bfa129d171f915e8562025d6195de0f8dfecaa80a",
|
|
806
890
|
"source": "skills/cabloy-spec-generation/evals/evals.json",
|
|
807
891
|
"target": ".cursor/skills/cabloy-spec-generation/evals/evals.json"
|
|
808
892
|
},
|
|
809
893
|
{
|
|
810
894
|
"adapter": "cursor",
|
|
811
895
|
"category": "skill",
|
|
812
|
-
"sha256": "
|
|
896
|
+
"sha256": "c5a1923be3cf387d3d31535af816e8ecadd52762ebb847a1be0d7cd1fe7c3d61",
|
|
897
|
+
"source": "skills/cabloy-spec-generation/evals/files/scenarios.json",
|
|
898
|
+
"target": ".cursor/skills/cabloy-spec-generation/evals/files/scenarios.json"
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
"adapter": "cursor",
|
|
902
|
+
"category": "skill",
|
|
903
|
+
"sha256": "4fa0405277092948d79cbde3d5b9b0f2e258dac58bf7e462dffea56da5fdd45f",
|
|
904
|
+
"source": "skills/cabloy-spec-generation/evals/protocol.md",
|
|
905
|
+
"target": ".cursor/skills/cabloy-spec-generation/evals/protocol.md"
|
|
906
|
+
},
|
|
907
|
+
{
|
|
908
|
+
"adapter": "cursor",
|
|
909
|
+
"category": "skill",
|
|
910
|
+
"sha256": "85b5a174c20111d31e50071a826f555c1e9b810e52078305af2850f3593f3603",
|
|
911
|
+
"source": "skills/cabloy-spec-generation/references/canonical-spec-input.md",
|
|
912
|
+
"target": ".cursor/skills/cabloy-spec-generation/references/canonical-spec-input.md"
|
|
913
|
+
},
|
|
914
|
+
{
|
|
915
|
+
"adapter": "cursor",
|
|
916
|
+
"category": "skill",
|
|
917
|
+
"sha256": "0c482b23c42c893dae4a027a786117ff2ad4b5686e3fc29de0a117d7e4958a49",
|
|
813
918
|
"source": "skills/cabloy-spec-generation/references/repo-aware-discovery.md",
|
|
814
919
|
"target": ".cursor/skills/cabloy-spec-generation/references/repo-aware-discovery.md"
|
|
815
920
|
},
|
|
816
921
|
{
|
|
817
922
|
"adapter": "cursor",
|
|
818
923
|
"category": "skill",
|
|
819
|
-
"sha256": "
|
|
924
|
+
"sha256": "772e83aea0d7a3ad3d5a91d4ecedd09f6cd24ae9eb146399f0834ded3f074185",
|
|
820
925
|
"source": "skills/cabloy-spec-generation/references/repo-specs-document-set.md",
|
|
821
926
|
"target": ".cursor/skills/cabloy-spec-generation/references/repo-specs-document-set.md"
|
|
822
927
|
},
|
|
823
928
|
{
|
|
824
929
|
"adapter": "cursor",
|
|
825
930
|
"category": "skill",
|
|
826
|
-
"sha256": "
|
|
931
|
+
"sha256": "242d3b7dd6f9266fa836918443c06add6bf9d2308d7f4288112412ee3a6224f5",
|
|
827
932
|
"source": "skills/cabloy-spec-generation/references/traceability-and-status-rules.md",
|
|
828
933
|
"target": ".cursor/skills/cabloy-spec-generation/references/traceability-and-status-rules.md"
|
|
829
934
|
},
|
|
830
935
|
{
|
|
831
936
|
"adapter": "cursor",
|
|
832
937
|
"category": "skill",
|
|
833
|
-
"sha256": "
|
|
938
|
+
"sha256": "7b66c1f77130d14e44bea6f6f09e0de53fe4ae251ad888e78195dab48246301d",
|
|
834
939
|
"source": "skills/cabloy-spec-generation/SKILL.md",
|
|
835
940
|
"target": ".cursor/skills/cabloy-spec-generation/SKILL.md"
|
|
836
941
|
},
|
|
@@ -17,6 +17,18 @@ const required = [
|
|
|
17
17
|
'repo-agent-governance/scripts/governance.mjs',
|
|
18
18
|
'repo-agent-governance/tools/contract-loop/core.mjs',
|
|
19
19
|
'repo-agent-governance/tools/contract-loop/hook-runtime.mjs',
|
|
20
|
+
'repo-agent-governance/tools/spec-audit/audit.mjs',
|
|
21
|
+
'repo-agent-governance/tools/spec-charts/spec-parser.mjs',
|
|
22
|
+
'repo-agent-governance/tools/spec-charts/generate-implementation-charts.mjs',
|
|
23
|
+
'repo-agent-governance/skills/cabloy-spec-generation/SKILL.md',
|
|
24
|
+
'repo-agent-governance/skills/cabloy-spec-generation/references/canonical-spec-input.md',
|
|
25
|
+
'repo-agent-governance/skills/cabloy-spec-generation/evals/evals.json',
|
|
26
|
+
'repo-agent-governance/skills/cabloy-spec-generation/evals/protocol.md',
|
|
27
|
+
'repo-agent-governance/skills/cabloy-spec-generation/evals/files/scenarios.json',
|
|
28
|
+
'repo-agent-governance/skills/cabloy-spec-execution/SKILL.md',
|
|
29
|
+
'repo-agent-governance/skills/cabloy-spec-generation/references/repo-aware-discovery.md',
|
|
30
|
+
'repo-agent-governance/skills/cabloy-spec-generation/references/repo-specs-document-set.md',
|
|
31
|
+
'repo-agent-governance/skills/cabloy-spec-generation/references/traceability-and-status-rules.md',
|
|
20
32
|
'repo-agent-governance/adapters/cursor/hooks.json',
|
|
21
33
|
'repo-agent-governance/adapters/cursor/contract-loop-gate.mjs',
|
|
22
34
|
'repo-agent-governance/adapters/codex/hooks.json',
|
|
@@ -42,6 +54,11 @@ for (const path of forbidden) {
|
|
|
42
54
|
if (files.has(path))
|
|
43
55
|
throw new Error(`npm package must not contain local governance state: ${path}`);
|
|
44
56
|
}
|
|
57
|
+
for (const path of files) {
|
|
58
|
+
if (path.startsWith('repo-specs/') || path.startsWith('repo-docs-internal/')) {
|
|
59
|
+
throw new Error(`npm package must not contain project planning or internal records: ${path}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
45
62
|
// eslint-disable-next-line no-console
|
|
46
63
|
console.log(
|
|
47
64
|
`Governance package surface is valid (${required.length} canonical assets; ${managedAdapters.length} transition adapters excluded).`,
|
package/repo-agent-governance/skills/cabloy-backend-scaffold/references/follow-up-checklist.md
CHANGED
|
@@ -43,6 +43,7 @@ When the active edition and installed modules provide `@Passport.rbac(...)` and
|
|
|
43
43
|
- migration/version changes
|
|
44
44
|
- `meta.version`
|
|
45
45
|
- field indexes; in shared-database multitenancy, preserve ordinary lookup indexes and enforce business uniqueness in tenant-aware business logic rather than with `table.unique(...)`
|
|
46
|
+
- when editing or generating `meta.index`, consolidate each table's specifications into one declaration instead of adding another same-table `$tableColumns` spread; check for leading-column name collisions, effective metadata, and physical index definitions using the [Field Indexes guide](../../../../repo-docs/backend/field-indexes.md)
|
|
46
47
|
- relations
|
|
47
48
|
- datasource choice
|
|
48
49
|
- cache behavior
|
|
@@ -143,9 +143,11 @@ Use examples such as:
|
|
|
143
143
|
|
|
144
144
|
When helpful, explain why the recommendation is better than obvious alternatives.
|
|
145
145
|
|
|
146
|
-
## Step 7:
|
|
146
|
+
## Step 7: Confirm naming and preserve the caller's workflow
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
If invoked by `cabloy-spec-generation` because naming was unresolved, this is a **naming-only** detour. Return the validated identity, capability names, proposed ownership, edition, and remaining naming questions to generation. Do not run scaffold commands or treat naming confirmation as generation, ADR, or execution approval. Generation resumes its selected complete/incremental/lightweight mode and confirmation gate.
|
|
149
|
+
|
|
150
|
+
For a direct scaffolding request, before suggesting execution, explicitly confirm:
|
|
149
151
|
|
|
150
152
|
- `providerId`
|
|
151
153
|
- suite short name
|
|
@@ -160,7 +162,7 @@ Always leave a custom path available, for example:
|
|
|
160
162
|
|
|
161
163
|
## Step 8: Hand off to CLI-first scaffolding only after confirmation
|
|
162
164
|
|
|
163
|
-
|
|
165
|
+
For a naming-only detour, return to `cabloy-spec-generation` without source generation. Only a direct, explicitly confirmed scaffolding request routes to the real generators rather than hand-authoring structure. A completed spec baseline instead hands one bounded WBS candidate to `cabloy-spec-execution` for its own dossier approval.
|
|
164
166
|
|
|
165
167
|
Typical commands are:
|
|
166
168
|
|
|
@@ -31,9 +31,10 @@ From the active repository root, inspect:
|
|
|
31
31
|
|
|
32
32
|
Interpret the markers as follows:
|
|
33
33
|
|
|
34
|
-
- `__CABLOY_BASIC__
|
|
35
|
-
- `__CABLOY_START__
|
|
36
|
-
-
|
|
34
|
+
- exactly `__CABLOY_BASIC__`: use observed Basic source, scripts, flavors, UI, and SSR facts;
|
|
35
|
+
- exactly `__CABLOY_START__`: resolve those facts from the active Start repository;
|
|
36
|
+
- both markers: stop; the checkout is invalid or ambiguous;
|
|
37
|
+
- neither: inspect the owning package/structure and ask before edition-specific execution.
|
|
37
38
|
|
|
38
39
|
A PostToolUse hook or an automatic build is convenience assistance, not evidence that the task is synchronized or verified. The deterministic chart commands are `npm run spec:charts -- <suite>` and `npm run spec:charts:check -- <suite>`; they validate derived-view freshness, not implementation or ATP completion.
|
|
39
40
|
|
|
@@ -66,7 +67,9 @@ Read the suite records in this order:
|
|
|
66
67
|
4. `test-plan.md` for linked `ATP-*` procedures, fixture/cleanup rules, evidence requirements, and release gates;
|
|
67
68
|
5. `progress.md` for current derived state, blockers, waivers, prior evidence, superseded proof, and next action;
|
|
68
69
|
6. linked evidence, phase indexes, presentation contracts, rollout records, or provider runbooks when referenced;
|
|
69
|
-
7.
|
|
70
|
+
7. applicable implementation charts as derived views: check freshness only with complete supported README/WBS/ATP/progress inputs; otherwise report the legacy/lightweight input gap without inventing business definitions.
|
|
71
|
+
|
|
72
|
+
Keep planning authority audit (`npm run spec:check -- <suite>`, with `--lightweight` only for agreed limited scope), chart model/freshness, and human approval/evidence as three independent gates. Static passes do not clear controlling TODOs, accept ADRs, or prove ATP execution.
|
|
70
73
|
|
|
71
74
|
Do not trust the first status statement found in a historical record. Reconcile revision, chronology, supersession, and the authoritative current progress row before deciding readiness.
|
|
72
75
|
|
|
@@ -83,7 +86,9 @@ Before implementation, present a concise dossier containing:
|
|
|
83
86
|
- records permitted to change (`progress.md`, evidence/phase index, derived implementation charts, and only other records whose established convention requires it);
|
|
84
87
|
- remaining blockers, `TODO(confirm)` decisions, unsafe actions intentionally excluded, and one next action.
|
|
85
88
|
|
|
86
|
-
|
|
89
|
+
Classify targets as observed existing, proposed new, or explicitly approved new. An explicitly approved new site/flavor tuple may be created before target source exists when framework constraints and collisions were checked, the concrete design was explicitly approved, and its governing ADR is `Accepted`. Cite the design, planned paths/manifests, and creation prerequisites. A new wrapper remains a planned addition until created and observed; do not run it prematurely. Shared integration still needs an observed owner. Proposed/unchecked values and controlling TODOs remain gated.
|
|
90
|
+
|
|
91
|
+
Require explicit dossier approval before source changes, meaningful verification, or evidence/status updates. Generation approval, design/ADR acceptance, and this execution approval are separate; silence is not approval.
|
|
87
92
|
|
|
88
93
|
## Step 5: Apply readiness gates
|
|
89
94
|
|
|
@@ -115,7 +120,7 @@ Keep the specialist’s CLI-first and follow-up rules. Never hand-edit generated
|
|
|
115
120
|
|
|
116
121
|
## Step 7: Verify narrowly, then expand as required
|
|
117
122
|
|
|
118
|
-
Start with the narrowest meaningful check
|
|
123
|
+
Start with the narrowest meaningful check, then follow linked ATP/release gates. Run only commands observed in the active repository and approved by the dossier. An approved task may first add a planned wrapper to its durable manifest; inspect the resulting command and paired outputs before running it. Do not substitute an existing Basic wrapper for a new/Start tuple.
|
|
119
124
|
|
|
120
125
|
For contract-sensitive work:
|
|
121
126
|
|
|
@@ -129,7 +134,7 @@ A planned command, successful generation, code reading, manual walkthrough, scre
|
|
|
129
134
|
|
|
130
135
|
## Step 8: Record evidence and derived status
|
|
131
136
|
|
|
132
|
-
Record
|
|
137
|
+
Record proof under `references/status-and-evidence.md`, preserving the established evidence convention. Update evidence, then progress, then applicable charts. With complete supported inputs, run `npm run spec:charts -- <suite>` and `npm run spec:charts:check -- <suite>`; README title/language changes also require regeneration. Otherwise report chart-input omissions and route needed authority repair to generation; do not invent definitions or force a full baseline. Charts cannot repair an authority conflict.
|
|
133
138
|
|
|
134
139
|
Set status accurately:
|
|
135
140
|
|
|
@@ -150,7 +155,7 @@ Report:
|
|
|
150
155
|
4. resulting status and the precise reason for it;
|
|
151
156
|
5. blockers, decisions, or evidence still outstanding;
|
|
152
157
|
6. one next proof/action only;
|
|
153
|
-
7.
|
|
158
|
+
7. separate authority-audit, chart-model/freshness, and human approval/evidence results; applicable refreshed charts and README language, or the precise incomplete-input omission.
|
|
154
159
|
|
|
155
160
|
Do not automatically modify the next WBS item or claim release closure from feature-level verification.
|
|
156
161
|
|