cabloy 5.1.151 → 5.1.153

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/.cabloy-version +1 -1
  2. package/.claude/skills/cabloy-module-removal/SKILL.md +1 -1
  3. package/.claude/skills/cabloy-resource-field-update/SKILL.md +1 -1
  4. package/.claude/skills/cabloy-spec-generation/SKILL.md +1 -1
  5. package/.claude/skills/cabloy-spec-generation/references/repo-aware-discovery.md +1 -1
  6. package/.claude/skills/cabloy-workflow/SKILL.md +13 -14
  7. package/.claude/skills/cabloy-workflow/evals/evals.json +4 -4
  8. package/CHANGELOG.md +20 -0
  9. package/CLAUDE.md +3 -3
  10. package/package.json +1 -1
  11. package/repo-docs/.vitepress/config.mjs +5 -0
  12. package/repo-docs/ai/cli-to-skill-map.md +19 -0
  13. package/repo-docs/ai/docs-skills-rules-mapping.md +21 -6
  14. package/repo-docs/ai/future-skill-roadmap.md +17 -72
  15. package/repo-docs/ai/introduction.md +15 -5
  16. package/repo-docs/ai/playbook-spec-execution.md +144 -0
  17. package/repo-docs/ai/playbook-spec-generation.md +155 -0
  18. package/repo-docs/ai/repo-guidance.md +9 -5
  19. package/repo-docs/ai/rules-and-config.md +2 -2
  20. package/repo-docs/ai/skills.md +4 -0
  21. package/repo-docs/ai/virtual-decorator-guidance.md +1 -1
  22. package/repo-docs/backend/introduction.md +1 -1
  23. package/repo-docs/frontend/model-resource-cookbook.md +38 -7
  24. package/repo-docs/frontend/model-resource-usage-guide.md +2 -1
  25. package/repo-docs/frontend/router-tabs-introduction.md +1 -1
  26. package/repo-docs/frontend/use-state-data-best-practices.md +39 -6
  27. package/repo-docs/reference/package-map.md +4 -1
  28. package/repo-docs/reference/repo-scripts.md +25 -0
  29. package/repo-e2e/specs/cabloy-basic.spec.ts +69 -20
  30. package/test-results/.last-run.json +4 -2
  31. package/test-results/cabloy-basic-ATP-BASIC-SUM-58d8a-ry-states-and-Markdown-HTML/error-context.md +195 -0
  32. package/vona/pnpm-lock.yaml +81 -145
  33. package/zova/src/suite/a-commerce/modules/commerce-trade/src/page/payment/controller.tsx +3 -2
  34. package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.actionSummary.tsx +29 -6
  35. package/zova/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +1 -0
  36. package/zova/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +1 -0
  37. package/zova/src/suite/a-training/modules/training-student/src/model/student.ts +1 -1
  38. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/package.json +1 -1
  39. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/lib/mutationSuccess.ts +11 -0
  40. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/model/resource.ts +12 -7
  41. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/test/lib/mutationSuccess.test.ts +95 -0
  42. package/zova/src/suite-vendor/a-cabloy/package.json +2 -2
package/.cabloy-version CHANGED
@@ -1 +1 @@
1
- 5.1.151
1
+ 5.1.153
@@ -129,7 +129,7 @@ Ask or confirm whether the task is:
129
129
  - code/runtime removal only
130
130
  - code/runtime removal plus docs/examples scrub
131
131
 
132
- If docs cleanup is in scope, update `repo-docs/` separately from the runtime cleanup. When an established `repo-docs-internal/` home exists, keep maintainer rationale there; otherwise do not create or require that path as part of module removal.
132
+ If docs cleanup is in scope, update `repo-docs/` separately from the runtime cleanup. Keep maintainer rationale in `repo-docs-internal/`; do not require a particular internal record as part of module removal.
133
133
 
134
134
  ## Response pattern
135
135
 
@@ -217,7 +217,7 @@ Use these portable references:
217
217
  - `references/custom-renderer-demo-checklist.md`
218
218
  - [Existing Resource Field Update](../../../repo-docs/backend/resource-field-update.md)
219
219
 
220
- When an active repository provides `repo-docs-internal/architecture/backend-resource-field-workflow.md`, it may be consulted as optional maintainer rationale. Its absence must not block or alter this shared workflow.
220
+ When relevant and available in the active edition, `repo-docs-internal/architecture/backend-resource-field-workflow.md` may be consulted as optional maintainer rationale. Its absence must not block or alter this shared workflow.
221
221
 
222
222
  Recommended shape:
223
223
 
@@ -173,7 +173,7 @@ Optional records remain subordinate to the PRD/SRS/WBS/test-plan authority appro
173
173
 
174
174
  While drafting, preserve these principles and tailor them to confirmed scope:
175
175
 
176
- - `repo-specs/` is the product/business planning home; `repo-docs/` is public and agent-facing framework guidance; an established `repo-docs-internal/` home may hold cross-suite maintainer rationale; `.claude/skills/` is workflow behavior; do not assume or create an internal-docs home in an edition that lacks one;
176
+ - `repo-specs/` is the product/business planning home; `repo-docs/` is public and agent-facing framework guidance; `repo-docs-internal/` holds supporting cross-suite maintainer rationale; `.claude/skills/` is workflow behavior; do not assume a particular internal record exists in every edition;
177
177
  - use suite-first ownership and distinguish new domain modules from reusable framework modules; do not duplicate an existing persistence or identity owner without a stated decision;
178
178
  - treat the active Vona instance as the tenant by default; do not introduce a store, organization, or merchant entity unless the confirmed domain contract requires it;
179
179
  - make identity, tenant scope, authorization, and ownership server-authoritative; menus, routes, browser filters, and UI visibility are not API authorization;
@@ -82,7 +82,7 @@ Hand actual implementation-time synchronization to `cabloy-contract-loop`.
82
82
  | --- | --- |
83
83
  | Product requirements, SRS contracts, WBS, ATPs, suite ADRs, delivery status | `repo-specs/<suite>/` |
84
84
  | Reusable user-facing or agent-facing framework guidance | `repo-docs/` |
85
- | Cross-suite maintainer architecture, rationale, and engineering ADRs | An established internal-documentation home, when present; do not create one implicitly |
85
+ | Cross-suite maintainer architecture, rationale, and engineering ADRs | `repo-docs-internal/`; individual records may vary by edition |
86
86
  | Short durable AI operating rules | `CLAUDE.md` |
87
87
  | Reusable Claude procedure | `.claude/skills/` |
88
88
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cabloy-workflow
3
- description: This skill should be used when the main Cabloy problem is workflow routing before implementation: deciding between Vona backend scaffolding, Zova frontend scaffolding, contract-loop work, or docs/AI-enablement homes such as repo-docs, an established internal-docs home when present, CLAUDE.md, commands, or skills, including cases where Cabloy Basic vs Cabloy Start assumptions affect that routing. Trigger on requests to route, classify, choose a workflow, choose an edition-specific path, or decide where Cabloy guidance should live. Do not use it once the task is already clearly a backend scaffold, frontend scaffold, or contract-loop job.
3
+ description: This skill should be used when the main Cabloy problem is workflow routing before implementation: deciding between Vona backend scaffolding, Zova frontend scaffolding, contract-loop work, or docs/AI-enablement homes such as repo-docs, repo-docs-internal, CLAUDE.md, commands, or skills, including cases where Cabloy Basic vs Cabloy Start assumptions affect that routing. Trigger on requests to route, classify, choose a workflow, choose an edition-specific path, or decide where Cabloy guidance should live. Do not use it once the task is already clearly a backend scaffold, frontend scaffold, or contract-loop job.
4
4
  ---
5
5
 
6
6
  # Cabloy Workflow
@@ -31,13 +31,12 @@ Interpretation:
31
31
 
32
32
  This matters most for frontend work, UI-layer assumptions, flavor names, suite/module availability, SSR site baselines, project assets, and edition-specific AI guidance.
33
33
 
34
- Repository-path availability is independent of edition detection:
34
+ Documentation-root policy is independent of edition detection:
35
35
 
36
- - inspect a documentation path before recommending or reading it
37
- - use `repo-docs-internal/` only when an established active-repository home exists
38
- - treat edition-local internal notes as optional maintainer material, never as a prerequisite for shared workflow routing
39
- - when an optional path is absent, continue from public docs, bundled skill references, active source, and tests
40
- - do not create a missing documentation home unless the user explicitly asks to establish one
36
+ - `repo-docs-internal/` is the internal documentation home in Cabloy Basic and Cabloy Start
37
+ - inspect a specific internal record before recommending or reading it
38
+ - treat relevant edition-local internal records as supporting maintainer material, never as a prerequisite for shared workflow routing
39
+ - when a specific record is unavailable or irrelevant, continue from public docs, bundled skill references, active source, and tests
41
40
 
42
41
  ## Step 2: Identify the task layer
43
42
 
@@ -79,7 +78,7 @@ Use the frontend path when the task is about:
79
78
  Use the docs/AI path when the task is about:
80
79
 
81
80
  - `repo-docs/`
82
- - an established `repo-docs-internal/` home when present
81
+ - `repo-docs-internal/`
83
82
  - `CLAUDE.md`
84
83
  - `.claude/commands/`
85
84
  - `.claude/skills/`
@@ -94,7 +93,7 @@ Before inventing a workflow, inspect these shared surfaces:
94
93
  - `npm run zova`
95
94
  - root `CLAUDE.md` if present
96
95
  - `repo-docs/` for public guidance
97
- - an established `repo-docs-internal/` home for optional maintainer rationale
96
+ - `repo-docs-internal/` for supporting maintainer rationale
98
97
 
99
98
  If the request spans backend and frontend, classify it as fullstack by default unless the user clearly wants only one side.
100
99
 
@@ -167,16 +166,16 @@ Use `repo-docs/` for:
167
166
  - reusable AI-facing workflow guidance
168
167
  - edition-aware public documentation
169
168
 
170
- ### Optional internal engineering docs
169
+ ### `repo-docs-internal/`
171
170
 
172
- When an established `repo-docs-internal/` home exists, it may be used for:
171
+ Use `repo-docs-internal/` for:
173
172
 
174
173
  - ADRs
175
174
  - architecture notes
176
175
  - maintainer rationale
177
176
  - invariants and design boundaries
178
177
 
179
- Its absence must not block routing or implementation, and it must not be assumed to exist in every checkout.
178
+ Relevant internal records support routing and implementation but do not block them: shared public guidance remains complete, and individual records may be unavailable or irrelevant in the active edition.
180
179
 
181
180
  ### Root rules and commands
182
181
 
@@ -208,7 +207,7 @@ When the request is about whether a backend base class belongs in `src/lib`, `sr
208
207
  For these requests:
209
208
 
210
209
  - put the durable operational explanation in `repo-docs/`
211
- - when an established internal-docs home exists, put rationale and invariants there; otherwise preserve the public operational explanation and ask before establishing a new maintainer-rationale home
210
+ - put supporting rationale and invariants in `repo-docs-internal/`; preserve the public operational explanation when a particular internal record is unavailable or irrelevant
212
211
  - keep `CLAUDE.md` short and behavioral
213
212
  - do not treat `@Service()` as a business-layer naming decision only; for B2 it is a runtime-anchor placement choice
214
213
 
@@ -287,7 +286,7 @@ Verify:
287
286
 
288
287
  - referenced paths exist
289
288
  - command names still exist
290
- - public docs, optional internal rationale, and rules tell a consistent story
289
+ - public docs, `repo-docs-internal/` rationale, and rules tell a consistent story
291
290
  - edition-specific notes point to the right repo assumptions
292
291
 
293
292
  ### For backend/frontend workflow changes
@@ -15,8 +15,8 @@
15
15
  },
16
16
  {
17
17
  "id": 3,
18
- "prompt": "Please help me decide whether this new AI guidance belongs in public docs, an internal-docs home when present, CLAUDE.md, or a skill. The guidance is about when to use npm run zova instead of hand-written scaffolding.",
19
- "expected_output": "Routes shared operational guidance to public docs and Claude rules/skills as appropriate, treats an internal-docs home as optional maintainer material rather than an assumed requirement, and reinforces the CLI-first principle.",
18
+ "prompt": "Please help me decide whether this new AI guidance belongs in public docs, repo-docs-internal, CLAUDE.md, or a skill. The guidance is about when to use npm run zova instead of hand-written scaffolding.",
19
+ "expected_output": "Routes shared operational guidance to public docs and Claude rules/skills as appropriate, routes supporting maintainer rationale to repo-docs-internal, and reinforces the CLI-first principle without making an individual internal record a requirement.",
20
20
  "files": []
21
21
  },
22
22
  {
@@ -51,8 +51,8 @@
51
51
  },
52
52
  {
53
53
  "id": 9,
54
- "prompt": "I am in a Cabloy checkout whose active repository currently has no repo-docs-internal directory. I need shared agent guidance and some maintainer rationale. Where should each part go?",
55
- "expected_output": "Inspects the active repository path rather than making an edition-wide assumption, routes shared operational guidance to existing public docs and Claude rules or skills, and asks which established maintainer-rationale home to use rather than putting rationale into public docs automatically.",
54
+ "prompt": "I am in a Cabloy checkout where repo-docs-internal exists, but the named architecture record I expected is not available in this edition. I need shared agent guidance and some maintainer rationale. Where should each part go?",
55
+ "expected_output": "Recognizes repo-docs-internal as the internal documentation home, routes shared operational guidance to public docs and Claude rules or skills, and treats the missing named record as non-blocking rather than inventing a replacement or moving rationale into public docs automatically.",
56
56
  "files": []
57
57
  }
58
58
  ]
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.1.153
4
+
5
+ ### Features
6
+
7
+ - Add an option to disable Suspense during initialization.
8
+ - Add support for bypassing the persister.
9
+
10
+ ### Improvements
11
+
12
+ - Update table cell action summary handling.
13
+ - Improve query summary Suspense documentation.
14
+ - Update state data best-practices documentation.
15
+ - Enhance internal repository documentation and specification-generation guidance.
16
+
17
+ ## 5.1.152
18
+
19
+ ### Improvements
20
+
21
+ - Update project guidance in `CLAUDE.md`.
22
+
3
23
  ## 5.1.151
4
24
 
5
25
  ### Features
package/CLAUDE.md CHANGED
@@ -17,7 +17,7 @@ Always perform this detection before making UI-sensitive assumptions, choosing f
17
17
  - `vona/` contains the backend framework, backend modules, and the Vona CLI.
18
18
  - `zova/` contains the frontend framework, frontend modules, and the Zova CLI.
19
19
  - `repo-docs/` contains the unified public documentation.
20
- - `repo-docs-internal/`, when present, contains edition-local maintainer notes and ADRs; treat it as optional supporting material, not as a shared-edition requirement.
20
+ - `repo-docs-internal/` contains edition-local maintainer notes and ADRs; treat relevant records as supporting material, not as a shared-edition requirement.
21
21
  - `repo-specs/` contains product and business specifications, delivery plans, and suite-local ADRs.
22
22
  - `repo-e2e/` contains the end-to-end test project.
23
23
  - `repo-observability/` contains local observability infrastructure.
@@ -38,8 +38,7 @@ Before inventing a custom implementation path:
38
38
  ## Documentation boundary
39
39
 
40
40
  - Put user-facing and agent-facing guidance in `repo-docs/`.
41
- - When an established `repo-docs-internal/` home exists, use it for maintainer rationale, architecture notes, and engineering ADRs. Do not infer or create that path from edition identity alone.
42
- - If the active repository has no established internal-documentation home, do not block the workflow or move internal rationale into public docs automatically; use existing documentation homes or ask before establishing one.
41
+ - Put maintainer rationale, architecture notes, and engineering ADRs in `repo-docs-internal/`. Treat relevant records as supporting material: shared workflows remain complete without any particular internal record, which may vary by edition.
43
42
  - Put product and business specifications, delivery plans, acceptance records, and suite-local ADRs in `repo-specs/` when that repository surface exists.
44
43
  - Do not mix internal rationale into public how-to pages unless a trimmed user-facing explanation is genuinely needed.
45
44
 
@@ -68,6 +67,7 @@ Before inventing a custom implementation path:
68
67
  - For render-driving async state, read the current query-owned reactive surface (`query.data` or a model-derived projection); an awaited `query.refetch()` result is valid only for one-shot interaction or orchestration and must not become a parallel ongoing controller/render state owner.
69
68
  - In SSR, keep server HTML and the client's hydration-time initial render equivalent. When server rendering intentionally omits private, cookie-unavailable, or browser-only state, keep the same neutral shell or placeholder through hydration and defer its query/load/render branch to an explicit post-hydration, admission, mounted, or interaction boundary.
70
69
  - Keep repo-wide AI rules in `CLAUDE.md` short and durable; put branching Zova analysis workflows in `.claude/skills/`.
70
+ - After implementation, do not launch broad reviews automatically; when review is needed, scope it to the current diff and report only high-confidence issues.
71
71
  - Do not modify shared environment identity or ports merely to bypass a busy resource. For intentional parallel worktree setup, follow `repo-docs/fullstack/parallel-worktree-environment.md`; otherwise wait for the shared resource or ask the user. Create or change worktree-local environment overrides only through the explicitly invoked `cabloy-worktree-environment` skill and its confirmation phase, and only in `vona/env/.env.local` and `zova/env/.env.local`; never modify flavor-, mode-, app-mode-, or runtime-specific `.env.*.local` files. The skill derives the standard `APP_NAME`, `SERVER_LISTEN_PORT`, `DEV_SERVER_PORT`, `DEV_SERVER_HMR_PORT`, and API-derived `API_BASE_URL` tuple only from Git worktree metadata and fixed port baselines; never read or expose `.env*` content while recommending values. Admin and Web are alternative commands using this shared tuple and must not run concurrently in one worktree; use another linked worktree for concurrent use. Detect the active edition before choosing scripts, and never run `npm run init` as an automatic follow-up.
72
72
  - For SSR theme-sensitive frontend work, detect the active edition marker and UI library before making assumptions. Cabloy Basic currently means DaisyUI + Tailwind CSS assumptions; Cabloy Start currently means Vuetify assumptions.
73
73
  - In Web SSR without cookie-backed theme resolution, do not treat server reads of `$theme.dark`, `$theme.darkMode`, or `$token` as final browser truth. Keep theme-sensitive SSR branching hydration-tolerant or defer final theme-sensitive decisions to the client.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cabloy",
3
- "version": "5.1.151",
3
+ "version": "5.1.153",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "A Node.js fullstack framework",
6
6
  "keywords": [
@@ -23,6 +23,11 @@ const aiItems = [
23
23
  { text: 'Playbook: Backend Module', link: '/ai/playbook-backend-module' },
24
24
  { text: 'Playbook: Frontend Page', link: '/ai/playbook-frontend-page' },
25
25
  { text: 'Playbook: Contract Regeneration', link: '/ai/playbook-contract-regeneration' },
26
+ { text: 'Playbook: Plan a Suite Specification', link: '/ai/playbook-spec-generation' },
27
+ {
28
+ text: 'Playbook: Execute an Approved Specification Increment',
29
+ link: '/ai/playbook-spec-execution',
30
+ },
26
31
  { text: 'Playbook: Module Removal', link: '/ai/playbook-module-removal' },
27
32
  { text: 'Playbook: Metadata Refresh', link: '/ai/playbook-metadata-refresh' },
28
33
  { text: 'Playbook: Technical Blog Authoring', link: '/ai/playbook-technical-blog-authoring' },
@@ -122,6 +122,25 @@ Typical skill role:
122
122
 
123
123
  - notice when route/component/icon changes require metadata regeneration
124
124
 
125
+ ## Repository planning and derived-chart scripts
126
+
127
+ Not every skill maps to a Vona or Zova generator. Repository-native suite specifications are authored under `repo-specs/`; no CLI generates the complete planning authority set.
128
+
129
+ In the current Cabloy Basic repository, these root scripts refresh and check derived planning views:
130
+
131
+ ```bash
132
+ npm run spec:charts -- <suite>
133
+ npm run spec:charts:check -- <suite>
134
+ ```
135
+
136
+ They generate or validate the Gantt and burndown SVGs from authoritative planning records. They do not replace PRD/SRS/WBS/ATP updates, implement a WBS task, execute an ATP, or create evidence. Confirm scripts in the active repository before using them for another edition.
137
+
138
+ Typical skill roles:
139
+
140
+ - `cabloy-spec-generation` creates or updates planning authority only after confirmation, then refreshes derived charts after relevant record changes
141
+ - `cabloy-spec-execution` coordinates one approved increment, records evidence before derived progress, then refreshes and checks charts
142
+ - source implementation remains routed to Vona, Zova, contract-loop, or other specialist workflows
143
+
125
144
  ## Example mappings
126
145
 
127
146
  ### Example: “Create a student CRUD backend thread”
@@ -38,11 +38,11 @@ Public docs answer questions like:
38
38
  - how does Zova page or model architecture work?
39
39
  - what is different between Cabloy Basic and Cabloy Start?
40
40
 
41
- ### 2. Optional internal engineering docs
41
+ ### 2. Internal engineering docs
42
42
 
43
43
  Location:
44
44
 
45
- - an established internal-documentation home, when the active repository provides one
45
+ - `repo-docs-internal/`
46
46
 
47
47
  Use internal docs for:
48
48
 
@@ -51,7 +51,7 @@ Use internal docs for:
51
51
  - maintenance boundaries
52
52
  - “why this design exists” notes that do not belong in public user docs
53
53
 
54
- When available, internal docs answer questions like:
54
+ Relevant internal records answer questions like:
55
55
 
56
56
  - why were docs and internal notes separated?
57
57
  - why is AI enablement structured this way?
@@ -105,7 +105,7 @@ Skills answer questions like:
105
105
  Use this quick rule:
106
106
 
107
107
  - if people and agents both need to read and understand it, put it in **public docs**
108
- - if it is maintainer rationale or long-lived design history, use an established internal-documentation home when one exists; otherwise ask before establishing one
108
+ - if it is maintainer rationale or long-lived design history, use `repo-docs-internal/`; shared guidance remains complete without any particular internal record
109
109
  - if it is short repo-wide behavioral guidance, put it in **CLAUDE.md**
110
110
  - if it is a named repeatable operator action, put it in a **command**
111
111
  - if it is a reusable procedural workflow with branching, put it in a **skill**
@@ -128,7 +128,7 @@ Use this quick rule:
128
128
  ### Example: “How should a backend base class be placed?”
129
129
 
130
130
  - public operational explanation → [Class Placement Rule](/ai/class-placement-rule)
131
- - maintainer rationale and invariants → an established internal-documentation home, when available
131
+ - maintainer rationale and invariants → `repo-docs-internal/`
132
132
  - default repo-wide behavior → `CLAUDE.md`
133
133
  - procedural decision workflow → `cabloy-workflow` skill
134
134
 
@@ -153,7 +153,7 @@ Use this quick rule:
153
153
  ### Example: “How should AI remove an existing module cleanly?”
154
154
 
155
155
  - public operational explanation → [Playbook: Module Removal](/ai/playbook-module-removal)
156
- - maintainer rationale and pitfalls → an established internal-documentation home, when available
156
+ - maintainer rationale and pitfalls → `repo-docs-internal/`
157
157
  - avoid putting the full workflow in `CLAUDE.md` because the task needs branching, cleanup order, generated-runtime recovery, and verification
158
158
  - procedural decision workflow → `cabloy-module-removal` skill
159
159
 
@@ -165,6 +165,21 @@ Use this quick rule:
165
165
  - avoid putting the full branching workflow in `CLAUDE.md` because the task needs proposal, validation, confirmation, and CLI handoff
166
166
  - procedural decision workflow → `cabloy-domain-planning` skill
167
167
 
168
+ ### Example: “How should AI create or maintain a repository-native suite specification?”
169
+
170
+ - public workflow explanation → [Playbook: Plan a Cabloy Suite Specification](/ai/playbook-spec-generation)
171
+ - procedural planning, confirmation, traceability, and chart-refresh behavior → `cabloy-spec-generation`
172
+ - suite-specific PRD, SRS, WBS, ATP, ADR, progress, and observed evidence authority → `repo-specs/<suite>/`
173
+ - maintainer rationale → `repo-docs-internal/`
174
+ - implementation is not implied by creating planning records
175
+
176
+ ### Example: “How should AI deliver an approved suite task?”
177
+
178
+ - public workflow explanation → [Playbook: Execute an Approved Cabloy Specification Increment](/ai/playbook-spec-execution)
179
+ - bounded-WBS coordination, readiness gates, evidence, and derived-status behavior → `cabloy-spec-execution`
180
+ - source implementation → the relevant backend, frontend, contract-loop, or shape-specific skill
181
+ - product, contract, dependency, scope, or durable-decision changes → return to specification or domain planning
182
+
168
183
  ### Example: “What `@Api.field(...)` ordering rule should AI preserve when mixing helpers and zod?”
169
184
 
170
185
  - full explanation → [Entity Guide](/backend/entity-guide) and [DTO Guide](/backend/dto-guide)
@@ -14,94 +14,39 @@ Current root skills include:
14
14
 
15
15
  - `cabloy-workflow`
16
16
  - `cabloy-domain-planning`
17
+ - `cabloy-spec-generation`
18
+ - `cabloy-spec-execution`
19
+ - `cabloy-backend-scaffold`
20
+ - `cabloy-frontend-scaffold`
17
21
  - `cabloy-contract-loop`
18
22
  - `cabloy-resource-field-update`
19
23
  - `cabloy-module-removal`
24
+ - `cabloy-master-detail`
25
+ - `cabloy-worktree-environment`
26
+ - `cabloy-zova-source-reading`
20
27
 
21
28
  Their current roles are:
22
29
 
23
30
  - `cabloy-workflow` → broad workflow selection, edition detection, CLI-first routing, and verification framing
24
31
  - `cabloy-domain-planning` → suite-first naming proposals, providerId confirmation, module-boundary suggestions, and scaffold handoff for new business domains
32
+ - `cabloy-spec-generation` → repository-native suite planning authority, traceability, confirmation, and derived planning views
33
+ - `cabloy-spec-execution` → one approved WBS increment through readiness gates, specialist routing, evidence, and derived status
34
+ - `cabloy-backend-scaffold` → Vona implementation routing and CLI-backed backend scaffolding
35
+ - `cabloy-frontend-scaffold` → Zova implementation routing and CLI-backed frontend scaffolding
25
36
  - `cabloy-contract-loop` → backend/frontend contract regeneration, reverse-chain handling, and drift diagnosis
26
37
  - `cabloy-resource-field-update` → existing backend resource-field changes with `fileVersion` and renderer-aware follow-up
27
38
  - `cabloy-module-removal` → backend/frontend/fullstack module deletion order, generated-runtime cleanup, and verification
39
+ - `cabloy-master-detail` → coordinated master-detail resource workflow
40
+ - `cabloy-worktree-environment` → confirmed worktree-local environment tuple setup for intentional parallel work
41
+ - `cabloy-zova-source-reading` → Zova-first source reading and Vue comparison workflow
28
42
 
29
43
  This is now a stronger foundation skill set, but it still leaves several useful workflow families for future specialization.
30
44
 
31
45
  ## Recommended next skill families
32
46
 
33
- ### 1. Backend scaffold skill
47
+ The backend scaffold, frontend scaffold, contract-loop, resource-field-update, and metadata-refresh workflow families already have implemented specialist coverage. Future work should refine those skills only when a new repository-wide branch or stable verification need emerges.
34
48
 
35
- Purpose:
36
-
37
- - scaffold Vona controller/service/model/entity/dto/CRUD threads
38
- - choose between bean creation and CRUD generation
39
- - verify migration/test implications
40
-
41
- Primary dependencies:
42
-
43
- - Vona `create:*`
44
- - Vona `tools:*`
45
- - backend docs in `repo-docs/backend/`
46
-
47
- ### 2. Frontend scaffold skill
48
-
49
- Purpose:
50
-
51
- - scaffold Zova pages/components/API/models
52
- - branch correctly between Basic and Start
53
- - use create/refactor commands before manual edits
54
-
55
- Primary dependencies:
56
-
57
- - Zova `create:*`
58
- - Zova `refactor:*`
59
- - frontend docs in `repo-docs/frontend/`
60
-
61
- ### 3. Fullstack contract loop skill
62
-
63
- Purpose:
64
-
65
- - detect backend contract changes
66
- - regenerate OpenAPI/SDK-related output
67
- - verify backend/frontend contract alignment
68
-
69
- Primary dependencies:
70
-
71
- - Vona OpenAPI and validation docs
72
- - Zova OpenAPI SDK and server-data docs
73
- - fullstack collaboration docs
74
-
75
- ### 4. Resource field update skill
76
-
77
- Purpose:
78
-
79
- - handle updates to fields on existing backend resources
80
- - force the right `fileVersion` decision for new persisted fields
81
- - branch correctly between shared renderer reuse and custom renderer demo follow-up
82
- - verify entity, locale, migration, test, metadata, build, and dependency-sync implications
83
-
84
- Primary dependencies:
85
-
86
- - Vona entity / migration / DTO workflow knowledge
87
- - Zova metadata/build flows when renderer follow-up is involved
88
- - [Existing Resource Field Update](/backend/resource-field-update)
89
-
90
- ### 5. Metadata refresh skill
91
-
92
- Purpose:
93
-
94
- - detect when route/component/icon or related changes require metadata regeneration
95
- - run the right metadata flow
96
- - verify generated artifacts belong to the active edition
97
-
98
- Primary dependencies:
99
-
100
- - Zova `tools:*`
101
- - CLI-to-skill mapping
102
- - edition detection docs
103
-
104
- ### 6. Distributed backend workflow skill
49
+ ### 1. Distributed backend workflow skill
105
50
 
106
51
  Purpose:
107
52
 
@@ -148,7 +93,7 @@ The purpose is to create a small number of high-leverage skills that directly re
148
93
 
149
94
  - `repo-docs/`
150
95
  - `CLAUDE.md`
151
- - an established internal-documentation home, when present
96
+ - `repo-docs-internal/`
152
97
  - `.claude/skills/`
153
98
  - the Vona and Zova CLIs
154
99
 
@@ -8,7 +8,7 @@ The Cabloy monorepo is a good fit for AI vibe coding because the source tree alr
8
8
  - Vona CLI source and command groups
9
9
  - Zova CLI source and command groups
10
10
  - archived docs that still capture valuable concepts
11
- - optional internal engineering docs for maintainers when the active repository provides them
11
+ - `repo-docs-internal/` engineering docs for maintainers
12
12
  - Claude commands and skills
13
13
 
14
14
  ## The main design goal
@@ -20,7 +20,7 @@ The goal is to make AI **reuse the repo’s existing conventions directly**, esp
20
20
  - CLI commands
21
21
  - root scripts
22
22
  - repo markers
23
- - optional internal architecture notes when the active repository provides them
23
+ - relevant `repo-docs-internal/` architecture notes
24
24
  - shared public documentation
25
25
 
26
26
  ## How to approach AI work
@@ -29,7 +29,7 @@ For contributor and automation workflows in this repository, prefer this order:
29
29
 
30
30
  1. inspect the active edition and repo markers before making UI-sensitive or workflow-sensitive assumptions
31
31
  2. inspect root scripts, Vona CLI, and Zova CLI before inventing manual scaffolding or custom workflow steps
32
- 3. use public docs for durable user-facing and agent-facing guidance; consult an established internal-documentation home only when the active repository provides one for maintainer rationale
32
+ 3. use public docs for durable user-facing and agent-facing guidance; consult relevant `repo-docs-internal/` records for supporting maintainer rationale
33
33
  4. encode repeatable behavior in Claude rules, commands, or skills instead of relying on unstated habits
34
34
 
35
35
  ## The knowledge layers
@@ -40,9 +40,9 @@ Use `repo-docs/` for user-facing and agent-facing guidance that should remain du
40
40
 
41
41
  For normal project usage, prefer the user-facing entry docs such as [Fullstack Quickstart](/fullstack/quickstart). This AI section focuses on repository workflows and AI vibe coding.
42
42
 
43
- ### Optional internal engineering docs
43
+ ### `repo-docs-internal/` engineering docs
44
44
 
45
- When an established internal-documentation home exists, use it for architecture notes, ADRs, and maintainer rationale that should not be mixed into public how-to documentation. Its absence must not block a shared workflow or cause internal rationale to be moved into public how-to documentation automatically.
45
+ Use `repo-docs-internal/` for architecture notes, ADRs, and maintainer rationale that should not be mixed into public how-to documentation. Relevant records support a shared workflow without being prerequisites; an unavailable or irrelevant individual record must not cause its rationale to be moved into public how-to documentation automatically.
46
46
 
47
47
  ### Claude rules and commands
48
48
 
@@ -66,6 +66,16 @@ Start here when the task is about choosing the right repo surface, docs location
66
66
  - [Skills](/ai/skills)
67
67
  - [Rules and Config](/ai/rules-and-config)
68
68
 
69
+ ### Specification planning and delivery path
70
+
71
+ Use this path to establish suite authority before implementation, then deliver one approved, bounded WBS increment with evidence-backed status:
72
+
73
+ - [Playbook: Plan a Cabloy Suite Specification](/ai/playbook-spec-generation)
74
+ - [Playbook: Execute an Approved Cabloy Specification Increment](/ai/playbook-spec-execution)
75
+ - [Skills](/ai/skills)
76
+ - [Repo Scripts](/reference/repo-scripts)
77
+ - [Verification](/ai/verification)
78
+
69
79
  ### Framework implementation path
70
80
 
71
81
  Use this path when the task is about implementing or reviewing Cabloy code with repo-aware rules: