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
|
@@ -1,227 +1,137 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cabloy-spec-generation
|
|
3
|
-
description:
|
|
3
|
+
description: Use this skill to create or maintain Cabloy suite specifications under repo-specs, including PRD, SRS, PDP/WBS, acceptance planning, progress, and suite ADRs. It supports a complete new baseline, incremental maintenance, and explicitly lightweight planning. Route unresolved naming through cabloy-domain-planning and return here; hand approved bounded implementation to cabloy-spec-execution, not directly to broad scaffolding.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Cabloy Repository Specs
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Create or maintain repository-native planning authority. Planning is not source implementation, acceptance evidence, ADR acceptance, or execution authorization.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Read before substantial generation or revision:
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
5. keep unresolved decisions and unverified work explicit rather than filling gaps with plausible fiction;
|
|
17
|
-
6. hand implementation and contract-loop work to the appropriate existing skill instead of starting it implicitly.
|
|
12
|
+
- `references/repo-aware-discovery.md`: edition, source discovery, and observed versus new target semantics;
|
|
13
|
+
- `references/repo-specs-document-set.md`: authority and proportionate document architecture;
|
|
14
|
+
- `references/canonical-spec-input.md`: canonical declarations, parser compatibility, and the three quality gates;
|
|
15
|
+
- `references/traceability-and-status-rules.md`: stable IDs, evidence, and authority-first updates.
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
## 1. Discover the active repository
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
- `references/repo-aware-discovery.md` for edition detection, repository discovery, and command rules;
|
|
23
|
-
- `references/traceability-and-status-rules.md` for identifiers, evidence, status, and update-order gates.
|
|
19
|
+
Inspect the root, working tree, edition markers, root `package.json`, existing `repo-specs/` indexes, relevant suite/module topology, and authored governance. Discover `npm run vona` / `npm run zova` command families when planning cites implementation commands.
|
|
24
20
|
|
|
25
|
-
|
|
21
|
+
- Exactly `__CABLOY_BASIC__`: use observed Basic scripts, UI, sites, flavors, and output paths.
|
|
22
|
+
- Exactly `__CABLOY_START__`: resolve those details from the active Start source; do not copy Basic examples.
|
|
23
|
+
- Both markers: stop; the checkout is invalid or ambiguous.
|
|
24
|
+
- Neither: inspect the owning package and nearby structure, then ask before edition-sensitive planning.
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
Cite inspected paths. Keep repository facts separate from user inputs, target design, and evidence. Never read or expose `.env*` contents to recommend worktree identity or ports.
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
2. `__CABLOY_BASIC__` and `__CABLOY_START__`;
|
|
31
|
-
3. the root `package.json` and `repo-agent-governance/` (or the active generated adapter);
|
|
32
|
-
4. existing `repo-specs/` indexes and related suite/module topology;
|
|
33
|
-
5. `npm run vona` and `npm run zova` when the records will cite implementation commands.
|
|
28
|
+
## 2. Choose one planning mode
|
|
34
29
|
|
|
35
|
-
|
|
30
|
+
| Mode | Scope and protection | Quality branch |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| Complete new baseline | New long-lived suite: six core Markdown records plus initial ADR; both charts after complete chart inputs exist. | Full `spec:check`, then chart generation/freshness, then human decision/status review. |
|
|
33
|
+
| Incremental maintenance | Read the existing README/authority map; update affected upstream authority and downstream links only. Preserve IDs, accepted decisions, evidence, and unrelated statuses. | Full audit when the authority set is complete; report legacy gaps separately. Charts only with complete supported inputs. |
|
|
34
|
+
| Lightweight planning | Explicitly approved small demo, utility, or limited planning scope. Agree on selected records, omitted owners, limits, and no implied full-suite closure. | `spec:check --lightweight` for available owners/references/links; manually review the limited chain. No forced full set or charts with incomplete inputs. |
|
|
36
35
|
|
|
37
|
-
|
|
38
|
-
- `__CABLOY_START__` present: use Cabloy Start source and resolve its own site, UI, flavor, and command details;
|
|
39
|
-
- neither present: do not make strong edition-specific assumptions; inspect the nearby project shape and ask the user to confirm the edition.
|
|
36
|
+
An existing directory is the normal incremental destination, not an automatic conflict. Ask about a conflict only for a genuine identity collision, parallel authority, or requested destructive replacement. Do not reset the directory or regenerate the whole baseline by default.
|
|
40
37
|
|
|
41
|
-
|
|
38
|
+
A growing business domain defaults to the complete baseline. Ask before choosing lightweight scope. Do not invent requirements to fill omitted documents.
|
|
42
39
|
|
|
43
|
-
##
|
|
40
|
+
## 3. Resolve identity without changing the workflow
|
|
44
41
|
|
|
45
|
-
|
|
42
|
+
For unresolved provider/suite/module naming, route to `cabloy-domain-planning` with a **naming-only return to generation**. Validate the returned names and resume this mode and its confirmation gate. Naming confirmation does not authorize source scaffolding.
|
|
46
43
|
|
|
47
|
-
|
|
44
|
+
For suite-first ownership, the short name is `{providerId}-{suiteName}`; `suiteName` uses lowercase English letters only, without another hyphen. Use capability names for modules. Reuse the stable existing suite/capability planning slug rather than creating a competing hierarchy.
|
|
48
45
|
|
|
49
|
-
|
|
46
|
+
## 4. Resolve only missing site strategy
|
|
50
47
|
|
|
51
|
-
|
|
48
|
+
First inspect active shared-site composition owners, extension points, independent-site conventions, and framework constraints. A capability module or an Admin audience alone does not require an independent site.
|
|
52
49
|
|
|
53
|
-
|
|
50
|
+
- If both Web and Admin strategies are unresolved, evaluate them separately, recommend contextually, and present one single-select decision: shared/shared, independent/shared, shared/independent, independent/independent. Keep Other for custom/no-site/deferred choices.
|
|
51
|
+
- If only one audience is in scope or unresolved, ask only about that audience.
|
|
52
|
+
- If an established strategy already governs the requested change, preserve it; do not repeat the four-way question absent a material change.
|
|
54
53
|
|
|
55
|
-
|
|
54
|
+
Choosing strategy confirms only that input. It does not accept an ADR or approve implementation.
|
|
56
55
|
|
|
57
|
-
|
|
56
|
+
Classify every target as **observed existing**, **proposed new**, or **explicitly approved new** under the discovery reference. Shared integration requires an observed owner. A proposed independent tuple may be designed before its source exists: validate framework constraints and collisions, obtain explicit design approval, and retain its governing ADR as `Proposed` until separately accepted. An explicitly approved new tuple with an `Accepted` ADR can be created by a bounded execution task; source pre-existence is not a prerequisite.
|
|
58
57
|
|
|
59
|
-
|
|
58
|
+
Unknown or unchecked values stay `TODO(confirm)` with the exact missing design/source/conflict check. Block only dependent site/frontend implementation; keep backend, unrelated audiences, and runnable discovery tasks actionable.
|
|
60
59
|
|
|
61
|
-
|
|
60
|
+
## 5. Collect the remaining inputs
|
|
62
61
|
|
|
63
|
-
|
|
62
|
+
Ask only for missing inputs in a compact clarification pass:
|
|
64
63
|
|
|
65
|
-
|
|
64
|
+
- identity/output path, outcomes, personas, journeys, scope, exclusions, and acceptance;
|
|
65
|
+
- modules and reused persistence/identity owners; audience strategy and target classification;
|
|
66
|
+
- tenant, server-authoritative identity/authorization, privacy, lifecycle, transactions, concurrency, idempotency, audit, integrations, and migration/version decisions where material;
|
|
67
|
+
- dependencies, release constraints, contract-loop checkpoints, test levels, fixture cleanup, proof/redaction, and optional records;
|
|
68
|
+
- durable decisions, ADR candidates, and unresolved gates.
|
|
66
69
|
|
|
67
|
-
|
|
70
|
+
Label recommendations as proposals. A request for comprehensiveness is not permission to invent security or business decisions.
|
|
68
71
|
|
|
69
|
-
|
|
70
|
-
2. independent Web + shared Admin;
|
|
71
|
-
3. shared Web + independent Admin;
|
|
72
|
-
4. independent Web + independent Admin.
|
|
72
|
+
## 6. Confirm generation scope
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
Before writing, present the edition/root, mode, identity/path, intended ownership, outcomes/scope, site strategy/target tuple classification, affected records, justified omissions/extensions, unresolved gates, and initial status/evidence policy. Include planned chart eligibility and README language.
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
Keep three approvals separate:
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
1. **Generation approval** authorizes the named planning edits only.
|
|
79
|
+
2. **Design/ADR approval** explicitly approves a durable decision; record `Accepted` only for the decision actually accepted. A tuple design approval is not source-existence proof.
|
|
80
|
+
3. **Execution approval** belongs to a bounded WBS dossier in `cabloy-spec-execution`.
|
|
79
81
|
|
|
80
|
-
|
|
82
|
+
Do not treat silence, strategy selection, naming confirmation, or generation approval as another approval. Drafts retain `Proposed` ADRs and controlling `TODO(confirm)` gates.
|
|
81
83
|
|
|
82
|
-
|
|
84
|
+
## 7. Write authority first
|
|
83
85
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
- **Identity:** business domain, `providerId`, `suiteName`, suite short name, stable planning slug, and whether the directory already exists;
|
|
87
|
-
- **Product:** problem, measurable outcomes, personas, primary journeys, and release goal;
|
|
88
|
-
- **Scope:** capabilities in scope, explicit exclusions/deferred work, business rules, and acceptance conditions;
|
|
89
|
-
- **Topology:** likely capability modules, existing module/persistence owners to reuse, audiences, selected shared/independent/deferred site strategy per audience, and any separate application boundary;
|
|
90
|
-
- **Technical constraints:** instance/tenant model, server-authoritative identity, authorization, data ownership, lifecycle/state, transactions, concurrency, idempotency, audit, privacy, integrations, and migration/version concerns where relevant;
|
|
91
|
-
- **Delivery:** dependency order, decision gates, implementation phases, release constraints, and contract-loop checkpoints;
|
|
92
|
-
- **Verification:** required test levels, database/flavor constraints, browser/SSR needs, evidence retention and redaction rules, and release gates;
|
|
93
|
-
- **Durable decisions:** selected site strategy and rationale, accepted boundaries, unresolved trade-offs, ADR candidates, and external-provider operations that may need runbooks.
|
|
94
|
-
|
|
95
|
-
Repository inspection may fill a fact only when the fact was actually observed. Label it as a confirmed current-source fact and cite its path. Keep observed facts separate from confirmed user inputs, proposed target contracts, and `TODO(confirm from active source)` identifiers.
|
|
96
|
-
|
|
97
|
-
## Step 5: Validate identity and protect existing records
|
|
98
|
-
|
|
99
|
-
For a suite-first domain, validate the existing naming convention before writing:
|
|
100
|
-
|
|
101
|
-
- short name is `{providerId}-{suiteName}`;
|
|
102
|
-
- `suiteName` uses lowercase English letters only and contains no additional hyphen;
|
|
103
|
-
- suite-owned source is intended to live under `vona/src/suite/<suite>/modules/` and `zova/src/suite/<suite>/modules/`;
|
|
104
|
-
- modules name business capabilities rather than vague technical placeholders.
|
|
105
|
-
|
|
106
|
-
Use the business suite short name as the planning directory when it is the natural scope. For a capability that belongs to an existing suite, use the existing stable suite/capability planning slug instead of creating a duplicate hierarchy.
|
|
107
|
-
|
|
108
|
-
If `repo-specs/<slug>/` exists, stop before writing and present the conflict. Offer to update the existing authority set, choose a new explicitly justified slug, or stop. Do not overwrite it merely because the user asked for a “fresh” version.
|
|
109
|
-
|
|
110
|
-
## Step 6: Present the confirmation gate
|
|
111
|
-
|
|
112
|
-
Before creating or replacing records, summarize and request explicit confirmation of:
|
|
113
|
-
|
|
114
|
-
- detected edition and source repository;
|
|
115
|
-
- `providerId`, `suiteName`, short name, and output path;
|
|
116
|
-
- intended suite-first Vona/Zova topology and module ownership;
|
|
117
|
-
- product outcome, personas, in-scope capabilities, and deferred scope;
|
|
118
|
-
- the Web/Admin/other-audience site strategy, recommendation/rationale, and every observed shared-site target;
|
|
119
|
-
- tenant, authorization, persistence, site/flavor, and privacy boundaries that are actually confirmed;
|
|
120
|
-
- exact independent-site identifiers that are observed and cited, plus identifiers retained as `TODO(confirm from active source)`;
|
|
121
|
-
- mandatory documents and any optional extensions, with a reason for each;
|
|
122
|
-
- unresolved decisions and explicit `TODO(confirm)` gates, including only the WBS branches blocked by a deferred site decision;
|
|
123
|
-
- the initial status policy: delivery is `not-started` unless implementation evidence already exists;
|
|
124
|
-
- the derived implementation charts: `implementation-gantt.svg` and `implementation-burndown.svg`, whose labels default to the language detected from `README.md`.
|
|
125
|
-
|
|
126
|
-
Do not treat silence as approval. Once confirmed, generate the records in authority order. Confirmation to generate records does not accept a durable ADR decision: retain its ADR as `Proposed` unless the user explicitly accepts that decision. A site-strategy selection confirms that one planning input only; it does not accept another durable boundary or convert a proposed site ADR into `Accepted`. If the user asks only for a draft, or has not explicitly accepted a durable boundary, retain unresolved decisions and do not imply acceptance.
|
|
127
|
-
|
|
128
|
-
## Step 7: Generate the mandatory document set
|
|
129
|
-
|
|
130
|
-
Create this baseline for a new long-lived suite:
|
|
86
|
+
For a complete new baseline, create:
|
|
131
87
|
|
|
132
88
|
```text
|
|
133
|
-
repo-specs/<suite
|
|
89
|
+
repo-specs/<suite>/
|
|
134
90
|
├── README.md
|
|
135
91
|
├── prd.md
|
|
136
92
|
├── srs.md
|
|
137
93
|
├── pdp-wbs.md
|
|
138
94
|
├── test-plan.md
|
|
139
95
|
├── progress.md
|
|
140
|
-
|
|
141
|
-
├── implementation-burndown.svg
|
|
142
|
-
└── decisions/
|
|
143
|
-
└── 0001-<suite-boundary-slug>.md
|
|
96
|
+
└── decisions/0001-<boundary>.md
|
|
144
97
|
```
|
|
145
98
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
- `README.md` is the maintainer-facing index, reading order, baseline/topology summary, authority map, and related-record index;
|
|
149
|
-
- `prd.md` owns outcomes, personas, scope, journeys, business rules, product requirements, launch criteria, and `PRD-*` traceability;
|
|
150
|
-
- `srs.md` owns capability/persistence boundaries, data and tenant rules, authorization, state machines, transaction/concurrency/idempotency, API/DTO/OpenAPI, frontend/SSR ownership, nonfunctional contracts, and technical acceptance;
|
|
151
|
-
- `pdp-wbs.md` owns dependency-ordered phases, WBS tasks, completion checks, contract-loop checkpoints, and delivery traceability;
|
|
152
|
-
- `test-plan.md` owns risk priorities, test levels, `ATP-*` scenarios, fixtures, evidence format/redaction, procedures, and release gates;
|
|
153
|
-
- `progress.md` owns derived status, WBS execution rows, blockers, open decisions, evidence pointers, and next proof only;
|
|
154
|
-
- `implementation-gantt.svg` and `implementation-burndown.svg` are deterministic derived views, not authority. They consume `pdp-wbs.md`, `test-plan.md`, and `progress.md`; they must not introduce scope, dependencies, dates, estimates, evidence, or status. Generate them with `npm run spec:charts -- <suite>` and validate them with `npm run spec:charts:check -- <suite>`;
|
|
155
|
-
- chart language defaults to the language detected from `README.md` and applies consistently to visible labels, accessibility text, and metadata;
|
|
156
|
-
- `decisions/0001-*.md` owns the durable initial boundary decision, alternatives, consequences, and decision gates.
|
|
157
|
-
|
|
158
|
-
Create records in a way that makes every sibling link resolvable from the final directory. Use stable prefixes consistently, such as `PRD-<DOMAIN>-*`, `SRS-<DOMAIN>-*`, `WBS-<DOMAIN>-<PHASE>-*`, and `ATP-<DOMAIN>-*`. Choose a concise domain prefix and use it consistently across all matrices. Define every exact SRS ID used in generated planning records as one formal contract in `srs.md`, and every exact ATP ID as one scenario with a procedure in `test-plan.md`, before any downstream record references it. Wildcards and ranges are compact summaries of already-defined IDs; they never substitute for a formal definition.
|
|
99
|
+
With complete supported chart inputs, generate `implementation-gantt.svg` and `implementation-burndown.svg` as derived views. Use canonical declarations in `references/canonical-spec-input.md` for new records. Each exact PRD/SRS/WBS/ATP ID has one definition in its owner, not merely a matrix, range, or evidence mention.
|
|
159
100
|
|
|
160
|
-
|
|
101
|
+
For updates, change PRD/SRS/ADR first, then mappings, WBS, ATP, evidence assumptions, and progress. Preserve stable IDs and history. Legacy catalogue tables remain compatible; missing formal definitions are a reported legacy gap, not permission to invent business meaning or rewrite legacy business records to satisfy a tool.
|
|
161
102
|
|
|
162
|
-
|
|
103
|
+
Add presentation contracts, rollout records, runbooks, extra ADRs, or evidence only when confirmed scope justifies them. Never create empty evidence or fabricate an `EVD-*` record.
|
|
163
104
|
|
|
164
|
-
|
|
165
|
-
- `semantic-presentation-rollout.md`: presentation or metadata work is staged, serial, resumable, and needs handoff gates;
|
|
166
|
-
- `runbooks/<provider-or-operation>.md`: a real external provider, webhook, sandbox/live procedure, reconciliation, cutover, or incident operation is in scope;
|
|
167
|
-
- additional ADRs: a separate durable security, tenancy, ownership, site/flavor, migration, integration, or scope decision exists;
|
|
168
|
-
- `evidence/`: create only when actual ATP execution produces retained redacted evidence, not as an empty completeness signal.
|
|
105
|
+
## 8. Preserve Cabloy boundaries
|
|
169
106
|
|
|
170
|
-
|
|
107
|
+
- Keep suite business planning in `repo-specs/`, public/agent guidance in `repo-docs/`, and supporting maintainer rationale in `repo-docs-internal/`.
|
|
108
|
+
- Reuse persistence and identity ownership. An independent site does not create a separate tenant, identity, authorization, persistence, or domain-rule authority.
|
|
109
|
+
- Treat the active Vona instance as tenant by default. Authorization and scope are server-authoritative, not menus or browser filters.
|
|
110
|
+
- Separate genuinely different Admin/Web API/DTO, server-scope, frontend state, and page contracts while retaining one domain/persistence boundary.
|
|
111
|
+
- Plan forward and reverse contract-loop checkpoints; actual regeneration belongs to the specialist invoked by execution. Never hand-edit generated consumers.
|
|
112
|
+
- Ask before choosing the persisted-field `vonaModule.fileVersion` strategy.
|
|
113
|
+
- A new wrapper is a **planned addition**, not a currently runnable command. Validate its durable manifest destination and paired SSR/REST design; execution must create and observe it before running it.
|
|
171
114
|
|
|
172
|
-
##
|
|
115
|
+
## 9. Apply three independent quality gates
|
|
173
116
|
|
|
174
|
-
|
|
117
|
+
Use the active root scripts, verified from `package.json`:
|
|
175
118
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
- for fullstack work, record the Vona-to-Zova forward chain and Zova-to-Vona reverse-chain checkpoint, but hand actual generation/synchronization to `cabloy-contract-loop`;
|
|
182
|
-
- when Admin Resource and Web self-service consume one resource with different authority or audience, separate API/DTO contracts, server scope, state owners, and pages while retaining one domain/persistence boundary;
|
|
183
|
-
- independent site composition does not create an independent persistence, tenant, identity, authorization, or domain-rule authority; shared composition does not make generic CRUD, client-side admission, or identical audience contracts sufficient;
|
|
184
|
-
- an Admin-facing module alone does not authorize an independent Admin site, `SsrSite` registration, flavor, environment/configuration file, bundle, or root command;
|
|
185
|
-
- ask before choosing whether a persisted-field change increments `vonaModule.fileVersion`; do not silently invent migration history;
|
|
186
|
-
- use `TODO(confirm from active source)` and neutral placeholders for unobserved runtime facts; never copy site/flavor details, example-suite entities, routes, tests, CI links, or evidence into a new domain.
|
|
187
|
-
|
|
188
|
-
## Step 10: Quality-check the document set
|
|
189
|
-
|
|
190
|
-
Before reporting completion, verify:
|
|
191
|
-
|
|
192
|
-
1. each applicable Web, Admin, or other site audience has a stated shared, independent, no-site, or `TODO(confirm)` strategy; every shared target is cited, and every unknown independent-site runtime identifier remains `TODO(confirm from active source)`;
|
|
193
|
-
2. deferred site strategy or identifiers block only the dependent frontend/site WBS branch, while unrelated backend and actionable audience work remains accurately statused;
|
|
194
|
-
3. every in-scope `PRD-*` requirement maps to an `SRS-*` contract, a `WBS-*` task, and an `ATP-*` scenario;
|
|
195
|
-
4. every SRS contract maps backward to a product requirement and forward to planned delivery/proof;
|
|
196
|
-
5. every WBS item has dependencies, a bounded task, completion checks, and expected ATP coverage;
|
|
197
|
-
6. every ATP has traceability, procedure/scope, minimum proof, and evidence-retention rules;
|
|
198
|
-
7. `progress.md` contains only derived status and never introduces requirements or contracts;
|
|
199
|
-
8. no downstream file silently changes an upstream product, technical, or ADR decision;
|
|
200
|
-
9. every `verified` claim has observed revision, environment, exact command/procedure, result, and redacted evidence location;
|
|
201
|
-
10. initial rows remain `not-started`, `deferred`, or explicitly `blocked` unless existing observed evidence was intentionally carried forward;
|
|
202
|
-
11. every exact `PRD-*`, `SRS-*`, `WBS-*`, and `ATP-*` reference in the planning authority set resolves to exactly one formal definition in its owning document; ranges and wildcards are aggregation notation only and cannot satisfy this check;
|
|
203
|
-
12. README language distinguishes observed facts, confirmed inputs, proposed targets, and `TODO(confirm)` decisions, and does not upgrade a `Proposed` ADR into a confirmed or accepted durable boundary;
|
|
204
|
-
13. `npm run spec:charts:check -- <suite>` passes, proving every WBS task has one progress row, statuses and dependencies reconcile, ATP references resolve, and both generated SVGs are current;
|
|
205
|
-
14. chart language and accessibility/metadata text follow the README language policy;
|
|
206
|
-
15. local Markdown links and referenced paths resolve;
|
|
207
|
-
16. prospective commands are real commands discovered in the active repository, or clearly marked as commands to confirm later.
|
|
208
|
-
|
|
209
|
-
If the exact-ID, status-consistency, or chart check fails, correct the authoritative planning records or regenerate the derived artifacts and rerun it before reporting generation complete. This is a static planning check, not ATP execution: do not create evidence or claim `verified` for it.
|
|
119
|
+
```bash
|
|
120
|
+
npm run spec:check -- <suite>
|
|
121
|
+
# Explicit lightweight branch:
|
|
122
|
+
npm run spec:check -- <suite> --lightweight
|
|
123
|
+
```
|
|
210
124
|
|
|
211
|
-
|
|
125
|
+
1. **Planning authority audit**: `spec:check` validates definition roles, exact references, PRD -> SRS -> WBS -> ATP associations, and local links. Explicit Traceability belongs in declaration bodies. Review gaps and decisions manually; a static pass is not design acceptance.
|
|
126
|
+
2. **Chart model/freshness**: only with complete supported README/WBS/ATP/progress inputs, run `npm run spec:charts -- <suite>` then `npm run spec:charts:check -- <suite>`. This proves supported model consistency and SVG freshness only. Regenerate after WBS, test-plan, progress, or README title/language changes. No complete input means an explicit chart omission/blocker, not invented definitions or status.
|
|
127
|
+
3. **Human approval/evidence**: review ADR status, controlling TODOs, scope, and evidence-backed status. Only retained applicable ATP proof can justify `verified`; neither audit nor charts can approve a design or implementation.
|
|
212
128
|
|
|
213
|
-
|
|
129
|
+
For incremental legacy gaps, report the missing definition/owner/link and affected chain without silently changing business meaning. If correction needs a new decision, request it and report the update as incomplete at that gate. Lightweight results must state skipped owners/chain coverage; never advertise a full-suite pass.
|
|
214
130
|
|
|
215
|
-
|
|
131
|
+
Planning creation alone initializes delivery as `not-started`, `deferred`, or specifically `blocked`. Preserve carried-forward observed evidence with its revision/authority limits. Do not run init, database reset, scaffolding, deployment/provider operations, or acceptance tests as an automatic consequence of planning.
|
|
216
132
|
|
|
217
|
-
|
|
133
|
+
## 10. Finish with a bounded execution handoff
|
|
218
134
|
|
|
219
|
-
|
|
220
|
-
- files created or updated;
|
|
221
|
-
- optional files intentionally omitted and why;
|
|
222
|
-
- unresolved decisions and the next confirmation needed;
|
|
223
|
-
- initial status and evidence limitations;
|
|
224
|
-
- recommended next workflow (`cabloy-domain-planning`, backend/frontend scaffold, or `cabloy-contract-loop`);
|
|
225
|
-
- generated or refreshed `implementation-gantt.svg` and `implementation-burndown.svg`, selected README language, and the result of `npm run spec:charts:check -- <suite>`.
|
|
135
|
+
Report edition/mode/path, files changed, omissions, unresolved decisions, approval domains, actual audit results, chart eligibility/freshness/language, and evidence limitations. Identify one candidate WBS increment or finite phase and its dependencies, acceptance proof, and controlling gates.
|
|
226
136
|
|
|
227
|
-
|
|
137
|
+
The next implementation entry is `cabloy-spec-execution`, which still requires explicit target/dossier approval. Do not jump directly from generation to broad backend/frontend scaffolding, execute an adjacent task, or claim release closure.
|
|
@@ -5,79 +5,227 @@
|
|
|
5
5
|
"id": 1,
|
|
6
6
|
"prompt": "I want to create the complete repo-specs set for a new CRM suite in this Cabloy repository. The suite name and provider prefix are not decided yet. Please guide me through the right process and tell me what you need before writing files.",
|
|
7
7
|
"expected_output": "Detects the edition and repository context, routes unresolved suite naming to cabloy-domain-planning, asks for grouped missing inputs, and does not invent CRM requirements or create a fictional document set.",
|
|
8
|
-
"files": [
|
|
8
|
+
"files": [
|
|
9
|
+
"files/scenarios.json"
|
|
10
|
+
],
|
|
11
|
+
"expectations": [
|
|
12
|
+
"Reads active edition and repository before assumptions.",
|
|
13
|
+
"Routes unresolved names through naming-only domain planning and returns to generation.",
|
|
14
|
+
"Asks grouped missing inputs without writing or scaffolding before approval."
|
|
15
|
+
]
|
|
9
16
|
},
|
|
10
17
|
{
|
|
11
18
|
"id": 2,
|
|
12
19
|
"prompt": "The Cabloy Basic repository is confirmed. Create a planning baseline for suite a-training (providerId a, suiteName training). It will include student, course, and attendance capabilities for authenticated Web users and tenant Admin operators. Define the initial scope as course browsing, enrollment, attendance recording, and operator management; defer payments and certificates. Produce the repository-native PRD, SRS, PDP/WBS, test plan, progress register, README authority map, and initial suite-boundary ADR, but do not claim implementation or test evidence.",
|
|
13
20
|
"expected_output": "Uses repo-specs/a-training with the seven mandatory core records, suite-first Vona/Zova topology, stable PRD/SRS/WBS/ATP identifiers and traceability, explicit deferred scope, server-side tenant/authorization and contract-loop boundaries, and not-started progress without fabricated evidence.",
|
|
14
|
-
"files": [
|
|
21
|
+
"files": [
|
|
22
|
+
"files/scenarios.json"
|
|
23
|
+
],
|
|
24
|
+
"expectations": [
|
|
25
|
+
"Confirms complete-baseline scope and generation separately from ADR acceptance.",
|
|
26
|
+
"Uses stable formally defined PRD/SRS/WBS/ATP IDs and exact declared associations.",
|
|
27
|
+
"Initial status is accurate; no invented execution evidence or source existence."
|
|
28
|
+
]
|
|
15
29
|
},
|
|
16
30
|
{
|
|
17
31
|
"id": 3,
|
|
18
32
|
"prompt": "Plan a new Cabloy Start business suite with an Admin application, several resource scenes that need different field groupings and renderers, and a real payment provider with sandbox/live webhooks and reconciliation. The suite identity and exact Start flavor/site names are confirmed in the active Start repo. Which spec files should be generated, and what must remain conditional or evidence-backed?",
|
|
19
33
|
"expected_output": "Keeps the shared core set, adds presentation-contracts and a provider runbook only because the supplied scope justifies them, uses Start-specific facts from the active repo rather than Basic assumptions, explains when a rollout record or additional ADR is warranted, and requires redacted observed evidence before verified status.",
|
|
20
|
-
"files": [
|
|
34
|
+
"files": [
|
|
35
|
+
"files/scenarios.json"
|
|
36
|
+
],
|
|
37
|
+
"expectations": [
|
|
38
|
+
"Reads active Start facts rather than borrowing Basic runtime identifiers.",
|
|
39
|
+
"Adds presentation/runbook records only for explicit scope.",
|
|
40
|
+
"Retains provider operation and proof gates; planned commands are not passing results."
|
|
41
|
+
]
|
|
21
42
|
},
|
|
22
43
|
{
|
|
23
44
|
"id": 4,
|
|
24
45
|
"prompt": "The design is complete, so write all suite specs and mark every WBS phase verified. There is no test run yet. Please make the progress document look release-ready.",
|
|
25
46
|
"expected_output": "Refuses to claim verified status without retained ATP evidence, initializes progress as not-started or otherwise accurate, explains the revision/environment/procedure/result/redaction requirements, and does not create empty evidence records.",
|
|
26
|
-
"files": [
|
|
47
|
+
"files": [
|
|
48
|
+
"files/scenarios.json"
|
|
49
|
+
],
|
|
50
|
+
"expectations": [
|
|
51
|
+
"Rejects verified status without actual retained ATP proof.",
|
|
52
|
+
"Does not fabricate artifacts or empty evidence records.",
|
|
53
|
+
"Keeps status and next proof accurate despite release-ready wording request."
|
|
54
|
+
]
|
|
27
55
|
},
|
|
28
56
|
{
|
|
29
57
|
"id": 5,
|
|
30
58
|
"prompt": "Our existing suite PRD says the first release is one tenant and no marketplace. I want to add an OpenSpec directory and update the WBS directly to support multiple merchants. How should the repository planning records change?",
|
|
31
59
|
"expected_output": "Treats the existing PRD and repository-native records as authoritative, rejects a parallel OpenSpec authority absent a new repository-level decision, requires the product/technical/ADR authority to change first, and then propagates updates to WBS, ATP, progress, and evidence assumptions.",
|
|
32
|
-
"files": [
|
|
60
|
+
"files": [
|
|
61
|
+
"files/scenarios.json"
|
|
62
|
+
],
|
|
63
|
+
"expectations": [
|
|
64
|
+
"Reads existing authority and preserves stable identity/history.",
|
|
65
|
+
"Requires upstream PRD/SRS/ADR approval before downstream merchant-scope changes.",
|
|
66
|
+
"Does not introduce parallel OpenSpec authority without repository-level decision."
|
|
67
|
+
]
|
|
33
68
|
},
|
|
34
69
|
{
|
|
35
70
|
"id": 6,
|
|
36
71
|
"prompt": "Create a complete planning baseline for a new inventory suite. In the WBS, refer to SRS-INV-STOCK-01 and ATP-INV-CON-01 even if the SRS and test plan only mention those IDs in a matrix or generic prose. Do not add implementation or evidence.",
|
|
37
72
|
"expected_output": "Defines every exact SRS ID used downstream as an explicit SRS contract and every exact ATP ID as a test-plan scenario with traceability, setup, procedure, expected result, and minimum proof. It treats wildcard/range/matrix mentions as aggregation notation rather than definitions, runs a static planning-authority ID audit before completion, and does not create evidence for that audit.",
|
|
38
|
-
"files": [
|
|
73
|
+
"files": [
|
|
74
|
+
"files/scenarios.json"
|
|
75
|
+
],
|
|
76
|
+
"expectations": [
|
|
77
|
+
"Defines exact SRS and ATP records in their owners rather than counting matrix/prose mentions.",
|
|
78
|
+
"ATP declaration has substantive Setup, Procedure, Expected result, Minimum proof, and Traceability.",
|
|
79
|
+
"Separates authority audit, chart gate, and human approval/evidence."
|
|
80
|
+
]
|
|
39
81
|
},
|
|
40
82
|
{
|
|
41
83
|
"id": 7,
|
|
42
84
|
"prompt": "Draft a new suite baseline with an unresolved tenancy boundary. Keep ADR 0001 Proposed, but title the README section Confirmed Product and Technical Baseline so it reads more decisively.",
|
|
43
85
|
"expected_output": "Keeps ADR 0001 Proposed absent explicit acceptance and uses neutral README baseline wording that distinguishes observed facts, confirmed inputs, proposed targets, and TODO(confirm) decisions. It refuses to let README language upgrade the proposed durable boundary, keeps delivery status accurate, and does not fabricate evidence.",
|
|
44
|
-
"files": [
|
|
86
|
+
"files": [
|
|
87
|
+
"files/scenarios.json"
|
|
88
|
+
],
|
|
89
|
+
"expectations": [
|
|
90
|
+
"Retains Proposed ADR and controlling tenancy TODO.",
|
|
91
|
+
"Uses neutral README wording without upgrading proposed durable decisions.",
|
|
92
|
+
"Generation approval does not count as ADR acceptance or execution approval."
|
|
93
|
+
]
|
|
45
94
|
},
|
|
46
95
|
{
|
|
47
96
|
"id": 8,
|
|
48
97
|
"prompt": "Generate a proposed suite baseline with an optional payment-provider runbook. The user confirms the planning inputs and output path but has not accepted the provider boundary ADR. The runbook traceability table names ATP-PAY-WEBHOOK-01, but the test plan does not define that scenario.",
|
|
49
98
|
"expected_output": "Treats confirmation to generate records as distinct from accepting the ADR, retains the provider boundary as Proposed, and uses neutral README wording. It scans the optional runbook as a generated non-evidence record, rejects the dangling ATP-PAY-WEBHOOK-01 reference until a formal test-plan scenario exists, and does not create execution evidence.",
|
|
50
|
-
"files": [
|
|
99
|
+
"files": [
|
|
100
|
+
"files/scenarios.json"
|
|
101
|
+
],
|
|
102
|
+
"expectations": [
|
|
103
|
+
"Audits optional non-evidence runbook references.",
|
|
104
|
+
"Reports missing ATP definition rather than using a matrix/evidence row as definition.",
|
|
105
|
+
"Keeps provider ADR Proposed without separate explicit acceptance."
|
|
106
|
+
]
|
|
51
107
|
},
|
|
52
108
|
{
|
|
53
109
|
"id": 9,
|
|
54
110
|
"prompt": "Create a new long-lived suite baseline and keep its README in Chinese. Generate the complete records without implementation evidence.",
|
|
55
|
-
"expected_output": "
|
|
56
|
-
"files": [
|
|
111
|
+
"expected_output": "With complete supported chart inputs, creates both implementation-gantt.svg and implementation-burndown.svg, initializes statuses accurately, uses the README language consistently in chart labels/accessibility/metadata, and does not fabricate dates, estimates, history, or verified evidence.",
|
|
112
|
+
"files": [
|
|
113
|
+
"files/scenarios.json"
|
|
114
|
+
],
|
|
115
|
+
"expectations": [
|
|
116
|
+
"With complete supported input, generates both derived views using README language.",
|
|
117
|
+
"Canonical declarations and progress header names match the new input contract.",
|
|
118
|
+
"No fabricated dates, estimates, history, or verified proof."
|
|
119
|
+
]
|
|
57
120
|
},
|
|
58
121
|
{
|
|
59
122
|
"id": 10,
|
|
60
123
|
"prompt": "A later WBS dependency, ATP reference, or progress status changes after the charts were generated. Update the affected authority/status record and finish without regenerating the SVGs.",
|
|
61
|
-
"expected_output": "
|
|
62
|
-
"files": [
|
|
124
|
+
"expected_output": "With complete supported chart inputs, regenerates both derived charts with npm run spec:charts -- <suite>, runs npm run spec:charts:check -- <suite>, and treats stale or dangling chart references as a static failure rather than changing authority to make the chart pass.",
|
|
125
|
+
"files": [
|
|
126
|
+
"files/scenarios.json"
|
|
127
|
+
],
|
|
128
|
+
"expectations": [
|
|
129
|
+
"Changes authority/status first, then regenerates/checks both eligible charts.",
|
|
130
|
+
"Reports chart model/freshness separately from authority audit and ATP proof.",
|
|
131
|
+
"Does not hand-edit SVGs or invent definitions to satisfy charts."
|
|
132
|
+
]
|
|
63
133
|
},
|
|
64
134
|
{
|
|
65
135
|
"id": 11,
|
|
66
136
|
"prompt": "Plan a new long-lived suite with a reader-facing Web experience and staff Admin operations. The active repository has not yet told us whether either audience should use a shared site or an independent suite-owned site. Do not guess flavor names or commands.",
|
|
67
|
-
"expected_output": "Performs edition-aware source discovery before choosing topology, evaluates Web and Admin independently, makes a contextual recommendation, and presents the four normal shared/independent Web/Admin combinations in one single-select decision with the ordinary Other path available for a custom strategy or deferral. It requires a cited observed shared target, keeps
|
|
68
|
-
"files": [
|
|
137
|
+
"expected_output": "Performs edition-aware source discovery before choosing topology, evaluates Web and Admin independently, makes a contextual recommendation, and presents the four normal shared/independent Web/Admin combinations in one single-select decision with the ordinary Other path available for a custom strategy or deferral. It requires a cited observed shared target, keeps unknown or unchecked tuple values as explicit TODO(confirm) design/discovery gates, and does not fabricate Basic or Start facts.",
|
|
138
|
+
"files": [
|
|
139
|
+
"files/scenarios.json"
|
|
140
|
+
],
|
|
141
|
+
"expectations": [
|
|
142
|
+
"When both audiences are unresolved, offers contextual four-way single-select plus Other.",
|
|
143
|
+
"Shared targets are inspected/cited; new designs are labeled proposed rather than observed.",
|
|
144
|
+
"Leaves unchecked values gated without assuming Basic/Start tuple details."
|
|
145
|
+
]
|
|
69
146
|
},
|
|
70
147
|
{
|
|
71
148
|
"id": 12,
|
|
72
149
|
"prompt": "For the confirmed Cabloy Basic suite strategy, choose an independent reader Web site and integration into an observed shared Admin site. The independent reader site is intended, but active source has not yet confirmed its site ID, public path, bundle, flavor, environment/configuration, SsrSite registration, or paired commands. Generate the planning records only.",
|
|
73
|
-
"expected_output": "Propagates the mixed strategy through the authority chain: PRD describes audience/channel scope, SRS owns topology and audience-specific contracts, ADR records the durable boundary subject to its status, WBS separates independent-Web delivery from shared-Admin integration, test-plan
|
|
74
|
-
"files": [
|
|
150
|
+
"expected_output": "Propagates the mixed strategy through the authority chain: PRD describes audience/channel scope, SRS owns topology and audience-specific contracts, ADR records the durable boundary subject to its status, WBS separates independent-Web delivery from shared-Admin integration, test-plan gates proof on observed commands or approved-new command creation, and progress remains derived. It retains unspecified or unchecked tuple values as explicit TODO(confirm) design/discovery gates, cites the shared Admin target, avoids creating source/config/scripts, and does not imply separate persistence, tenancy, identity, or authorization ownership.",
|
|
151
|
+
"files": [
|
|
152
|
+
"files/scenarios.json"
|
|
153
|
+
],
|
|
154
|
+
"expectations": [
|
|
155
|
+
"Keeps mixed strategy and separates independent-Web creation from shared-Admin integration.",
|
|
156
|
+
"Unspecified tuple values remain explicit design/discovery gates, not fabricated facts.",
|
|
157
|
+
"Allows a future validated explicitly approved new design without requiring pre-existing source; no implementation now."
|
|
158
|
+
]
|
|
75
159
|
},
|
|
76
160
|
{
|
|
77
161
|
"id": 13,
|
|
78
162
|
"prompt": "Create a suite baseline where the product needs backend catalogue work plus future Web and Admin experiences, but the user defers the Web/Admin site strategy and all site identifiers. Keep backend planning available.",
|
|
79
163
|
"expected_output": "Retains the site strategy as a governing ADR/SRS TODO(confirm), marks only dependent frontend/site implementation WBS work blocked, and keeps backend plus any runnable source-discovery work accurately not-started or unchanged. It does not globally block delivery, invent site/flavor/env/configuration/build facts, create implementation evidence, or mark planning/source discovery as verified.",
|
|
80
|
-
"files": [
|
|
164
|
+
"files": [
|
|
165
|
+
"files/scenarios.json"
|
|
166
|
+
],
|
|
167
|
+
"expectations": [
|
|
168
|
+
"Blocks only dependent site/frontend implementation branches.",
|
|
169
|
+
"Preserves actionable backend/discovery status without inventing site facts.",
|
|
170
|
+
"Deferred strategy remains controlling TODO/ADR gate rather than globally blocking every task."
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"id": 14,
|
|
175
|
+
"prompt": "Plan a new independent Web-only training site. Candidate tuple: flavor evalTrainingWeb, site ID evalTrainingReader, public path /eval-training, site module training-site, bundle derived from the inspected release rule, and root wrapper build:zova:eval:training:web as a planned addition. These are proposals, not current source facts. Inspect active framework constraints and collisions; then show the concrete design and generation gates. In follow-up I will separately approve the tuple, accept its ADR, and approve only one bounded execution dossier. Do not demand that future source already exists.",
|
|
176
|
+
"expected_output": "Validates the candidate tuple against active framework/source constraints and collisions, separates proposed from approved-new state, and permits later bounded creation only with explicit design approval, Accepted ADR, and execution dossier approval. The new wrapper remains a planned addition until created/observed.",
|
|
177
|
+
"expectations": [
|
|
178
|
+
"Inspects active constraints and collisions without treating fixture candidates as source truth.",
|
|
179
|
+
"Single Web audience does not trigger redundant Web/Admin four-way question.",
|
|
180
|
+
"Generation approval alone does not accept the ADR or authorize creation.",
|
|
181
|
+
"After separate design approval and Accepted ADR, future source absence alone is not a blocker; execution remains bounded.",
|
|
182
|
+
"New wrapper is never presented as currently runnable."
|
|
183
|
+
],
|
|
184
|
+
"files": [
|
|
185
|
+
"files/scenarios.json"
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"id": 15,
|
|
190
|
+
"prompt": "Update one approved requirement in an existing repo-specs suite. Read its authority map; keep existing IDs, evidence, accepted shared-site strategy, and unrelated progress. The directory already exists because this is an incremental change, not a request to reset or recreate it. Show the proposed diff and confirmation gate first.",
|
|
191
|
+
"expected_output": "Uses incremental maintenance, preserves established strategy and history, asks only for missing delta decisions, updates upstream authority before downstream associations, and reports legacy gaps without altering business definitions for tools.",
|
|
192
|
+
"expectations": [
|
|
193
|
+
"Existing directory is normal update destination, not automatic conflict.",
|
|
194
|
+
"No directory reset, baseline recreation, ID renumbering, or unrelated status change.",
|
|
195
|
+
"Established strategy skips redundant four-way choice.",
|
|
196
|
+
"Legacy audit/chart gaps are distinct and not repaired by invented business meaning."
|
|
197
|
+
],
|
|
198
|
+
"files": [
|
|
199
|
+
"files/scenarios.json"
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": 16,
|
|
204
|
+
"prompt": "This is an explicitly lightweight backend-only tutorial planning request, not a long-lived suite. Agree on README plus one PRD requirement only; omit SRS/WBS/ATP/progress/ADR and charts. Do not create placeholders for omitted owners. Confirm the limited output, then use the appropriate audit branch and report its limits.",
|
|
205
|
+
"expected_output": "Confirms explicitly lightweight scope, creates only approved records, runs positional spec:check with --lightweight, reports omitted full-chain coverage, and skips charts for incomplete input without fabricating owners or proof.",
|
|
206
|
+
"expectations": [
|
|
207
|
+
"Uses npm run spec:check -- <suite> --lightweight only after scope approval.",
|
|
208
|
+
"Omitted owners are stated; no dangling references or phantom declarations.",
|
|
209
|
+
"No forced full baseline, empty progress/evidence, or charts with incomplete input.",
|
|
210
|
+
"Static lightweight pass is not full-chain or behavioral/ATP success."
|
|
211
|
+
],
|
|
212
|
+
"files": [
|
|
213
|
+
"files/scenarios.json"
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"id": 17,
|
|
218
|
+
"prompt": "I invoked spec generation for a new CRM baseline, but provider/suite names need validation first. Use domain planning only to settle names. After I confirm the naming option, return to the baseline conversation; do not scaffold a suite/module or run contract generation.",
|
|
219
|
+
"expected_output": "Uses a naming-only domain-planning detour, returns validated identity to the original generation mode, and requires generation/ADR/execution approvals separately before any later implementation.",
|
|
220
|
+
"expectations": [
|
|
221
|
+
"Domain planning is explicitly naming-only and returns to generation.",
|
|
222
|
+
"Naming confirmation does not trigger scaffold or dependency commands.",
|
|
223
|
+
"Generation resumes mode/input collection and its own confirmation gate.",
|
|
224
|
+
"Final implementation handoff is one bounded spec-execution candidate, not broad direct scaffold."
|
|
225
|
+
],
|
|
226
|
+
"files": [
|
|
227
|
+
"files/scenarios.json"
|
|
228
|
+
]
|
|
81
229
|
}
|
|
82
230
|
]
|
|
83
231
|
}
|