cabloy 5.1.161 → 5.1.162

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 (52) hide show
  1. package/.cabloy-version +1 -1
  2. package/CHANGELOG.md +13 -0
  3. package/CLAUDE.md +1 -1
  4. package/CONTRIBUTING.md +1 -1
  5. package/README.md +34 -58
  6. package/package.json +1 -1
  7. package/repo-docs/.vitepress/config.mjs +58 -32
  8. package/repo-docs/ai/ai-spec-driven-development.md +99 -0
  9. package/repo-docs/ai/docs-skills-rules-mapping.md +25 -8
  10. package/repo-docs/ai/edition-consistency-checklist.md +2 -3
  11. package/repo-docs/ai/introduction.md +7 -4
  12. package/repo-docs/ai/playbook-spec-execution.md +19 -5
  13. package/repo-docs/ai/playbook-spec-generation.md +69 -101
  14. package/repo-docs/ai/repo-guidance.md +1 -1
  15. package/repo-docs/ai/skills.md +31 -10
  16. package/repo-docs/backend/dto-guide.md +1 -0
  17. package/repo-docs/backend/openapi-guide.md +1 -1
  18. package/repo-docs/editions/overview.md +51 -120
  19. package/repo-docs/frontend/environment-config-guide.md +1 -1
  20. package/repo-docs/frontend/form-layout-guide.md +4 -2
  21. package/repo-docs/frontend/introduction.md +2 -1
  22. package/repo-docs/frontend/quickstart.md +2 -8
  23. package/repo-docs/frontend/scripts.md +7 -3
  24. package/repo-docs/frontend/ssr-architecture-overview.md +1 -1
  25. package/repo-docs/frontend/ssr-build-deploy-guide.md +4 -2
  26. package/repo-docs/fullstack/comparison-with-other-frameworks.md +6 -2
  27. package/repo-docs/fullstack/contract-loop-playbook.md +4 -0
  28. package/repo-docs/fullstack/introduction.md +13 -4
  29. package/repo-docs/fullstack/parallel-worktree-environment.md +2 -0
  30. package/repo-docs/fullstack/quickstart.md +65 -74
  31. package/repo-docs/fullstack/semantic-presentation-contract.md +121 -0
  32. package/repo-docs/fullstack/ssr-site-and-flavor-setup.md +2 -2
  33. package/repo-docs/index.md +16 -11
  34. package/repo-docs/reference/glossary.md +30 -0
  35. package/repo-docs/reference/package-map.md +1 -1
  36. package/repo-docs/reference/repo-scripts.md +6 -4
  37. package/vona/pnpm-lock.yaml +10 -96
  38. package/zova/pnpm-lock.yaml +8 -0
  39. package/zova/src/suite/a-home/modules/home-base/src/.metadata/component/siteEntryTables.ts +12 -0
  40. package/zova/src/suite/a-home/modules/home-base/src/.metadata/index.ts +13 -0
  41. package/zova/src/suite/a-home/modules/home-base/src/component/siteEntryTables/controller.tsx +71 -0
  42. package/zova/src/suite/a-home/modules/home-base/src/config/locale/en-us.ts +8 -0
  43. package/zova/src/suite/a-home/modules/home-base/src/config/locale/zh-cn.ts +8 -0
  44. package/zova/src/suite/a-home/modules/home-indexadmin/package.json +3 -0
  45. package/zova/src/suite/a-home/modules/home-indexadmin/src/page/dashboard/controller.tsx +6 -13
  46. package/zova/src/suite/a-home/modules/home-indexweb/package.json +3 -1
  47. package/zova/src/suite/a-home/modules/home-indexweb/src/page/home/controller.tsx +6 -14
  48. package/repo-docs/ai/edition-detection.md +0 -30
  49. package/repo-docs/editions/cabloy-basic.md +0 -26
  50. package/repo-docs/editions/cabloy-start.md +0 -53
  51. package/repo-docs/editions/choosing-between-basic-and-start.md +0 -83
  52. package/repo-docs/editions/detection.md +0 -31
@@ -1,82 +1,56 @@
1
- # Playbook: Plan a Cabloy Suite Specification
1
+ # Generate a Cabloy Suite Specification
2
2
 
3
- Use this playbook to create or maintain the repository-native planning record for a long-lived Cabloy business suite. It explains the public workflow behind the `cabloy-spec-generation` skill without replacing the skill's detailed decision tree.
3
+ In Claude Code, describe the business capability you want to plan:
4
4
 
5
- A specification establishes product intent, technical contracts, delivery structure, acceptance procedures, and decision history. It does **not** prove that implementation, generated artifacts, tests, or acceptance evidence already exist.
6
-
7
- ## When to use this playbook
8
-
9
- Use `cabloy-spec-generation` when you need to:
10
-
11
- - establish a new suite's PRD, SRS, WBS, test plan, progress register, and initial ADR
12
- - extend an existing suite's authoritative planning records
13
- - turn product intent into traceable delivery and acceptance records
14
- - prepare an approved handoff for implementation
15
-
16
- Use a different workflow when:
17
-
18
- - provider, suite, or module identity is unresolved — use `cabloy-domain-planning`
19
- - the task is approved backend or frontend scaffolding — use `cabloy-backend-scaffold` or `cabloy-frontend-scaffold`
20
- - the task is Vona/Zova contract synchronization or generated-consumer drift — use `cabloy-contract-loop`
21
- - the task is one already approved, bounded WBS increment — use [Playbook: Execute an Approved Cabloy Specification Increment](/ai/playbook-spec-execution)
22
-
23
- ## Start with repository and edition discovery
24
-
25
- Before naming a suite, describing source topology, or recommending a site, flavor, UI, SSR, or command path:
26
-
27
- 1. inspect the active repository root and edition marker
28
- 2. inspect the root `package.json`, `CLAUDE.md`, relevant CLI entrypoints, and existing suite records
29
- 3. separate observed source facts from confirmed user inputs, proposed targets, and `TODO(confirm from active source)` items
30
-
31
- Cabloy Basic and Cabloy Start share the planning model, but their runtime details can differ. Do not carry a Basic command, site identifier, flavor, UI assumption, or generated-output path into Start without confirming it in the active Start source.
32
-
33
- Read [Edition Detection for AI Workflows](/ai/edition-detection), [Repo Guidance](/ai/repo-guidance), [Repo Scripts](/reference/repo-scripts), and [Package Map](/reference/package-map) before making repository-specific claims.
34
-
35
- ## Classify the planning request
5
+ ```text
6
+ /cabloy-spec-generation <business description>
7
+ ```
36
8
 
37
- ### New suite baseline
9
+ For example:
38
10
 
39
- A long-lived business domain normally receives the complete planning baseline under `repo-specs/<suite>/`. The specification should be suite-first, name capability modules by business responsibility, and avoid inventing a competing persistence, identity, or authorization owner.
11
+ ```text
12
+ /cabloy-spec-generation Plan a multi-tenant equipment-maintenance suite for technicians and operations managers, with work orders, asset history, role-based access, and an Admin dashboard.
13
+ ```
40
14
 
41
- ### Existing suite extension
15
+ You do not need to provide every product or technical decision in the first prompt. Cabloy AI inspects the active repository, asks focused questions, recommends boundaries where needed, and shows a confirmation summary. It generates or updates the suite specification set only after you explicitly approve that summary.
42
16
 
43
- Read the existing README and authority map first. Update the owning PRD, SRS, or ADR before downstream WBS, test-plan, progress, or evidence references. Preserve existing identifiers, accepted decisions, history, and evidence conventions rather than replacing them with a fresh parallel record.
17
+ A specification set establishes product intent, technical contracts, delivery structure, acceptance procedures, and decision history. It does **not** prove that application code, generated artifacts, tests, or acceptance evidence already exist.
44
18
 
45
- ### Proportionate planning
19
+ This guide is the planning half of [AI Spec-Driven Development](/ai/ai-spec-driven-development). It explains the visible workflow; the `cabloy-spec-generation` Skill retains the detailed procedural checks that operate it.
46
20
 
47
- A disposable demo, tutorial, or isolated utility can use a smaller record only when the requester explicitly selects that scope. Do not reduce the planning baseline for a domain expected to grow merely because its first increment is small.
21
+ ## When to use it
48
22
 
49
- ### Unresolved identity
23
+ Run `/cabloy-spec-generation <business description>` when you want to:
50
24
 
51
- Stop before creating a planning directory when the provider, suite, or capability boundary is unclear. Route the identity decision to `cabloy-domain-planning` rather than creating a competing suite hierarchy.
25
+ - establish a new long-lived business suite and its PRD, SRS, WBS, test plan, progress register, and initial ADR
26
+ - update an existing suite's requirements, contracts, scope, delivery plan, or acceptance planning
27
+ - turn confirmed product intent into traceable delivery and acceptance records before implementation
52
28
 
53
- ## Keep the authority chain explicit
29
+ Use a different path when the task is already an approved bounded WBS increment, direct backend or frontend implementation, or Vona/Zova contract synchronization. If the provider, suite, or capability identity is still unresolved, AI guides that decision before it creates a competing suite hierarchy.
54
30
 
55
- Repository-native traceability flows in one direction:
31
+ ## What happens after you invoke it
56
32
 
57
- ```text
58
- PRD requirement SRS contract PDP/WBS task ATP scenario observed evidence
59
- ```
33
+ 1. **AI checks the current repository.** It detects the active Cabloy edition, reads the relevant repository guidance and existing suite records, and distinguishes observed source facts from your confirmed decisions, proposals, and unresolved items.
34
+ 2. **AI identifies the planning scope.** It distinguishes a new suite, an update to an existing specification set, and a deliberately smaller planning request. Cabloy Basic and Cabloy Start share the planning model, but their runtime details can differ, so the active source remains authoritative for edition-specific facts.
35
+ 3. **AI asks focused questions.** You provide only the decisions that are needed to make the plan coherent. AI can recommend a boundary, but it identifies a recommendation as a proposal rather than treating it as confirmed input.
36
+ 4. **AI presents a confirmation summary.** The summary states what will be created or changed, what remains unresolved, and which decisions or WBS branches remain gated.
37
+ 5. **You approve or revise the summary.** No specification file is generated, replaced, or treated as approved merely because a question was asked or left unanswered. A confirmation to generate records also does not accept a durable ADR; a decision remains proposed until it is explicitly accepted.
38
+ 6. **AI generates or updates the set.** It links the planning records, preserves traceability and stable identifiers, refreshes applicable derived planning views, and reports the resulting files, unresolved decisions, and next workflow.
60
39
 
61
- Each record has a distinct role:
40
+ ## What you may be asked to confirm
62
41
 
63
- | Record | Authority |
64
- | ---------------------- | --------------------------------------------------------------------------------------------------------- |
65
- | `README.md` | Index, reading order, topology summary, and authority map |
66
- | `prd.md` | Product outcomes, personas, scope, journeys, business rules, and launch criteria |
67
- | `srs.md` | Technical contracts, ownership, data, tenant, authorization, lifecycle, API, and nonfunctional boundaries |
68
- | `pdp-wbs.md` | Dependency order, bounded delivery tasks, completion checks, and contract-loop checkpoints |
69
- | `test-plan.md` | Formal ATP scenarios, procedures, fixtures, expected proof, and release gates |
70
- | `decisions/*.md` | Durable suite decisions and their alternatives, consequences, and gates |
71
- | Evidence records | Observed, redacted proof only |
72
- | `progress.md` | Derived execution status, blockers, evidence links, and next proof |
73
- | `implementation-*.svg` | Deterministic derived views of planning and progress records |
42
+ The initial business description can be short. During the conversation, AI may ask you to confirm:
74
43
 
75
- Update the upstream owner before downstream records. For example, a product or technical change belongs in the PRD, SRS, or ADR first; it is then traced into WBS tasks, ATP procedures, progress implications, and derived charts.
44
+ - the business outcome, audiences, in-scope capabilities, exclusions, and deferred scope
45
+ - suite identity, capability ownership, and the target `repo-specs/<suite>/` directory
46
+ - the Web, Admin, or other site strategy that current source and confirmed requirements support
47
+ - persistence, ownership, tenant, authorization, privacy, lifecycle, migration, and integration constraints
48
+ - delivery, release, and verification expectations
49
+ - unresolved durable decisions, the WBS branches they block, justified optional records, and the initial delivery status
76
50
 
77
- A proposed ADR is not an accepted decision. Progress cannot introduce a new requirement, contract, or durable boundary, and a chart cannot repair an authority conflict.
51
+ This is a design confirmation, not a request to invent implementation details prematurely. When a fact must come from the active repository, AI verifies it rather than carrying assumptions across editions.
78
52
 
79
- ## Build the planning baseline after confirmation
53
+ ## What gets generated or updated
80
54
 
81
55
  For a new long-lived suite, the normal core set is:
82
56
 
@@ -94,62 +68,56 @@ repo-specs/<suite>/
94
68
  └── 0001-*.md
95
69
  ```
96
70
 
97
- Add presentation contracts, staged rollout records, runbooks, additional ADRs, or an `evidence/` directory only when their scope is justified. Do not create empty evidence records to imply that testing or delivery has begun.
98
-
99
- Before creating or replacing records, explicitly confirm at least:
71
+ | Record | What it provides |
72
+ | -------------------------- | ------------------------------------------------------------------------------------------------ |
73
+ | `README.md` | Index, reading order, topology summary, and authority map |
74
+ | `prd.md` | Product outcomes, audiences, scope, journeys, and business rules |
75
+ | `srs.md` and accepted ADRs | Technical contracts and durable decisions |
76
+ | `pdp-wbs.md` | Bounded delivery work, dependencies, completion checks, and applicable Contract Loop checkpoints |
77
+ | `test-plan.md` | Acceptance procedures, expected proof, and release gates |
78
+ | `progress.md` and charts | Derived delivery status and planning views, not upstream authority |
100
79
 
101
- - repository, edition, suite identity, and target directory
102
- - intended product outcome, audiences, in-scope capabilities, and deferred scope
103
- - confirmed and unresolved tenant, authorization, privacy, ownership, lifecycle, migration, and integration constraints
104
- - site strategy at the level actually supported by current source and confirmed inputs
105
- - required core documents and justified optional records
106
- - unresolved decision gates and which WBS branches they block
107
- - the initial delivery-status policy
80
+ AI adds presentation contracts, staged rollout records, runbooks, extra ADRs, or an `evidence/` directory only when the confirmed scope justifies them. It does not create empty evidence records to make testing or delivery appear to have started.
108
81
 
109
- Silence is not approval. Confirmation to generate records does not accept a durable ADR; retain an unaccepted decision as proposed. Initial delivery rows are normally `not-started`, `deferred`, or explicitly `blocked` unless actual prior evidence was intentionally carried forward.
82
+ For an existing suite, the workflow updates the owning upstream authority before dependent records. It preserves existing identifiers, accepted decisions, history, and evidence conventions rather than silently overwriting them or creating a parallel planning set.
110
83
 
111
- ## Preserve traceability and status integrity
84
+ ## Change or add requirements
112
85
 
113
- Use stable identifiers such as `PRD-*`, `SRS-*`, `WBS-*`, and `ATP-*`. Every referenced exact identifier must resolve to a formal definition in its owning document; a range, wildcard, or prose summary is not a substitute.
86
+ Use the same Skill whenever an existing suite needs a changed requirement or a new capability. Describe the requested change in Claude Code:
114
87
 
115
- The status vocabulary is:
88
+ ```text
89
+ /cabloy-spec-generation <changed or new business requirement>
90
+ ```
116
91
 
117
- - `not-started`
118
- - `in-progress`
119
- - `implementation-complete`
120
- - `verified`
121
- - `blocked`
122
- - `waived`
123
- - `deferred`
92
+ AI reads the existing specification set, identifies the product, contract, decision, WBS, acceptance, and progress records affected by the change, then asks you to confirm the revised scope and any new boundaries. It updates the upstream PRD, SRS, or proposed/accepted ADR before it updates dependent WBS, ATP, progress, and derived-chart records.
124
93
 
125
- `verified` requires retained, redacted, traceable observed proof. A planning record, a planned command, a generated scaffold, a screenshot, or an unrelated broad check does not automatically provide that proof.
94
+ If the change affects an approved or in-progress increment, return to planning first. Confirm the revised authority and delivery boundary before resuming execution; do not use an execution handoff or source workaround to redefine the requirement or contract.
126
95
 
127
- ## Generate and check derived charts
96
+ ## How traceability and evidence work
128
97
 
129
- For a new or substantially revised long-lived specification set whose authoritative Markdown follows the [chart input contract](/reference/repo-scripts#chart-input-contract), refresh the two derived views after changing the README title or language, WBS, test plan, or progress register:
98
+ Cabloy connects the specification set through **Traceable Spec Delivery**:
130
99
 
131
- ```bash
132
- npm run spec:charts -- <suite>
133
- # Use this non-mutating check when verifying an existing chart state:
134
- npm run spec:charts:check -- <suite>
100
+ ```text
101
+ PRD SRS WBS → ATP → Evidence
135
102
  ```
136
103
 
137
- The generator consumes the suite README, WBS, test plan, and progress register. It emits `implementation-gantt.svg` and `implementation-burndown.svg`; visible chart language follows the suite README. After refreshing charts, use the check when a separate freshness verification is needed, such as CI or a non-mutating review.
104
+ A product or technical change belongs in its PRD, SRS, or accepted ADR before its WBS, acceptance, progress, evidence, and chart implications are updated. A progress entry or chart cannot introduce a requirement, resolve a contract conflict, or accept an ADR.
138
105
 
139
- The check validates the supported chart input contract and generated-view freshness. It does **not** implement a WBS task, run an ATP, establish evidence, prove acceptance, or replace a review of traceability and status semantics. The charts are scope/order views, not schedule forecasts or a new status authority.
106
+ Planning records and derived charts do not establish `implementation-complete` or `verified`. `verified` requires the applicable acceptance procedure and retained, redacted observed evidence. A generated plan, planned command, scaffold, screenshot, or unrelated check is not automatically sufficient proof.
140
107
 
141
- This current baseline does not require unchanged legacy suite records to be migrated solely to add charts. A legacy record that does not follow the chart input contract must not be treated as chart-compatible until a deliberate record-format normalization aligns its authoritative Markdown. That normalization preserves existing planning authority and does not require an unrelated product or delivery change. Always confirm exact scripts and input expectations in the active repository before running or documenting them for another edition.
108
+ ## What happens next
142
109
 
143
- ## Hand off work without implying implementation
110
+ After the specification set is coherent and one bounded WBS increment is approved, execute that increment in Claude Code:
144
111
 
145
- Once the planning authority is coherent and implementation is approved, route the next task deliberately:
112
+ ```text
113
+ /cabloy-spec-execution <WBS-ID>
114
+ ```
146
115
 
147
- - unresolved domain identity or boundary `cabloy-domain-planning`
148
- - approved backend increment → `cabloy-backend-scaffold`
149
- - approved frontend increment → `cabloy-frontend-scaffold`
150
- - contract synchronization or generated-consumer drift → `cabloy-contract-loop`
151
- - an approved bounded WBS increment → [Playbook: Execute an Approved Cabloy Specification Increment](/ai/playbook-spec-execution)
116
+ Choose one named WBS item, or an explicitly approved finite phase with a closure boundary. Do not use execution to implement an entire suite automatically or to resolve an upstream product, contract, dependency, scope, or durable-decision conflict; return to planning when those records need to change.
152
117
 
153
- Do not make code changes, run initialization or database-reset workflows, deploy, operate a provider, or claim implementation or verification merely because planning records now exist.
118
+ ## Further reading
154
119
 
155
- For the division of responsibility between public docs, skills, repository specs, and internal rationale, read [Docs, Skills, Rules, and CLI Mapping](/ai/docs-skills-rules-mapping).
120
+ - [AI Spec-Driven Development](/ai/ai-spec-driven-development) for the authority and evidence model
121
+ - [Execute an Approved Cabloy Specification Increment](/ai/playbook-spec-execution) for bounded implementation, verification, evidence, and progress handoff
122
+ - [Docs, Skills, Rules, and CLI Mapping](/ai/docs-skills-rules-mapping) for the boundary between public guidance, skills, suite records, and internal rationale
123
+ - [Repo Scripts](/reference/repo-scripts#chart-input-contract) for the derived-chart input contract and manual chart commands
@@ -35,7 +35,7 @@ This is more reliable than copying old file structures from examples without und
35
35
  - use `repo-docs-internal/` for supporting maintainer rationale
36
36
  - continue from public docs, rules, skills, source, and tests when a specific internal record is unavailable or irrelevant; do not create a replacement document implicitly
37
37
 
38
- For planning work, read the suite README, PRD, SRS, WBS, test plan, and progress records in the order appropriate to the task. `cabloy-spec-generation` maintains planning authority; `cabloy-spec-execution` acts only on a confirmed, bounded WBS increment. Both require active-source and edition discovery before topology or command claims.
38
+ For planning work, read the suite README, PRD, SRS, WBS, test plan, and progress records in the order appropriate to the task. [AI Spec-Driven Development](/ai/ai-spec-driven-development) explains the public Traceable Spec Delivery method; the suite records retain product, technical, delivery, acceptance, and evidence authority. `cabloy-spec-generation` maintains planning authority; `cabloy-spec-execution` acts only on a confirmed, bounded WBS increment. Both require active-source and edition discovery before topology or command claims.
39
39
 
40
40
  ## 4. Treat edition detection as mandatory for UI-sensitive work
41
41
 
@@ -2,6 +2,16 @@
2
2
 
3
3
  Skills are the procedural layer of Cabloy’s AI development model.
4
4
 
5
+ ## Using a Skill in Claude Code
6
+
7
+ Invoke a Cabloy Skill by typing its slash name followed by the task input. For example, describe the business capability you want to plan:
8
+
9
+ ```text
10
+ /cabloy-spec-generation <business description>
11
+ ```
12
+
13
+ The AI guides you through the task-specific confirmation and next steps. See [Generate a Cabloy Suite Specification](/ai/playbook-spec-generation) for the complete planning experience.
14
+
5
15
  ## What a skill should do here
6
16
 
7
17
  A Cabloy skill should reduce repeated reasoning cost by encoding workflows such as:
@@ -34,20 +44,31 @@ A strong Cabloy skill usually includes:
34
44
 
35
45
  When a skill needs to apply an architectural rule such as backend class placement, prefer a branching decision tree that points back to durable docs instead of embedding the full architecture rationale inside the skill itself.
36
46
 
37
- For edition-aware skills, use [Edition Detection for AI Workflows](/ai/edition-detection) and [Edition Consistency Checklist](/ai/edition-consistency-checklist) as the durable review surfaces before expanding edition-specific branches.
47
+ For edition-aware skills, use [Cabloy Editions: For AI Development](/editions/overview#for-ai-development) and [Edition Consistency Checklist](/ai/edition-consistency-checklist) as the durable review surfaces before expanding edition-specific branches.
38
48
 
39
- ## Example workflow skills in this repo
49
+ ## Current root workflow skills
40
50
 
41
- Current examples include:
51
+ The repository currently provides these cross-stack and monorepo-wide workflows in root `.claude/skills/`:
42
52
 
43
53
  - `cabloy-workflow` for choosing the correct Cabloy work path before implementation
44
54
  - `cabloy-domain-planning` for proposing and confirming providerId, suite, and initial module names before scaffolding a new business domain
45
- - `cabloy-spec-generation` for creating or maintaining suite-local planning authority, traceability, and derived planning views before implementation
46
- - `cabloy-spec-execution` for coordinating one confirmed WBS increment through specialist implementation, evidence, and derived progress updates
47
- - `cabloy-contract-loop` for backend/frontend contract regeneration and drift diagnosis
48
- - `cabloy-resource-field-update` for updating an existing backend resource field thread
49
- - `cabloy-module-removal` for removing a backend, frontend, or fullstack module cleanly, including generated-runtime cleanup, stale-residue recovery, and verification
50
-
51
- The specification workflows show the same boundary: [Playbook: Plan a Cabloy Suite Specification](/ai/playbook-spec-generation) and [Playbook: Execute an Approved Cabloy Specification Increment](/ai/playbook-spec-execution) explain the durable public workflow, while the skills retain the branching, confirmation gates, specialist routing, and evidence protocol.
55
+ - `cabloy-spec-generation` for creating or maintaining suite-local planning authority, traceability, and derived planning views before implementation; see [Generate a Cabloy Suite Specification](/ai/playbook-spec-generation)
56
+ - `cabloy-spec-execution` for coordinating one confirmed WBS increment through specialist implementation, evidence, and derived progress updates; see [Execute an Approved Cabloy Specification Increment](/ai/playbook-spec-execution)
57
+ - `cabloy-contract-loop` for backend/frontend contract regeneration and drift diagnosis; see [Contract Loop Playbook](/fullstack/contract-loop-playbook)
58
+ - `cabloy-resource-field-update` for updating an existing backend resource field thread; see [Existing Resource Field Update](/backend/resource-field-update)
59
+ - `cabloy-module-removal` for removing a backend, frontend, or fullstack module cleanly, including generated-runtime cleanup, stale-residue recovery, and verification; see [Module Removal](/ai/playbook-module-removal)
60
+ - `cabloy-backend-scaffold` for selecting the CLI-first Vona path to create or extend backend modules, beans, CRUD resources, DTOs, persistence, and tests, then checking contract, migration, metadata, and verification follow-up; see [Backend CLI](/backend/cli) and [CRUD Workflow](/backend/crud-workflow)
61
+ - `cabloy-frontend-scaffold` for selecting the Zova CLI create, refactor, metadata, or OpenAPI path for pages, components, APIs, models, routes, and SSR-aware frontend work, then checking routing, state/contracts, hydration, UI, and verification follow-up; see [Frontend CLI](/frontend/cli) and [Page Guide](/frontend/page-guide)
62
+ - `cabloy-master-detail` for generator-first parent-owned detail and recursive nested-detail scaffolding, including aggregate-versus-standalone choices and nested `detail*` DTO naming and placement rules; see [Master-Detail Workflow](/backend/master-detail-workflow) and [Master-Detail Source Reading Map](/backend/master-detail-source-reading-map)
63
+ - `cabloy-worktree-environment` for explicitly invoked, confirmation-gated setup of deterministic, secret-safe Vona and Zova local environment overrides for an existing linked worktree. It does not allocate ports or isolate every external service; see [Parallel Worktree Environment](/fullstack/parallel-worktree-environment)
64
+ - `cabloy-zova-source-reading` for Zova-native source reading and runtime tracing through controllers, beans, IoC, reactivity, routing, and SSR before offering approximate Vue comparisons; see [Reading Zova for Vue Developers](/frontend/reading-zova-for-vue-developers) and [Zova Source Reading Map](/frontend/zova-source-reading-map)
65
+
66
+ The specification workflows show the same boundary: [AI Spec-Driven Development](/ai/ai-spec-driven-development) explains the public Traceable Spec Delivery method, while [Generate a Cabloy Suite Specification](/ai/playbook-spec-generation) and [Execute an Approved Cabloy Specification Increment](/ai/playbook-spec-execution) explain its operational paths. The skills retain branching, confirmation gates, specialist routing, and evidence protocol; suite-local records remain the authority for a specific increment.
52
67
 
53
68
  The module-removal workflow is a good example of why skills belong in `.claude/skills/` instead of `CLAUDE.md`: the task needs branching, cleanup order, recovery guidance for generated runtime directories such as `vona/.vona` and `zova/.zova`, and a verification checklist that would be too large for a short repo-wide rule.
69
+
70
+ ## Advanced subtree-local diagnostics
71
+
72
+ `detect-ssr-leak` is an advanced Skill local to the Vona workspace for investigating suspected Node.js SSR memory growth. See [Framework Performance](/fullstack/framework-performance#how-to-read-this-example) for the relevant diagnostic context.
73
+
74
+ Use its instrumentation and snapshot stages only in a controlled local or nonproduction environment. Some stages create temporary diagnostic access or artifacts; remove them and restore the diagnostic environment when finished. Heap snapshots can contain sensitive in-memory application or request data, so keep them access-controlled, never commit or share them, and delete them promptly.
@@ -47,6 +47,7 @@ Read this guide together with:
47
47
  - [DTO Infer and Generation](/backend/dto-infer-generation)
48
48
  - [Validation Guide](/backend/validation-guide)
49
49
  - [OpenAPI Guide](/backend/openapi-guide)
50
+ - [Semantic Presentation Contract](/fullstack/semantic-presentation-contract) for the boundary between an operation DTO and its presentation translation
50
51
 
51
52
  ## `@Api.field`
52
53
 
@@ -74,7 +74,7 @@ The same emitted metadata has coordinated but distinct consumers:
74
74
 
75
75
  For the form-derived scenes `form-view`, `form-create`, and `filter`, a field's base `rest` metadata is followed by the shared `rest.form` overlay and then the exact scene overlay. This lets one contract describe common form behavior while still declaring a create- or filter-specific exception.
76
76
 
77
- The end-to-end rule is therefore not “the frontend hides a field.” Vona uses the DTO contract to sanitize read-only request input, while Zova uses compatible metadata to render the relevant scene. See [DTO Guide](/backend/dto-guide) for declaring a DTO scene, [Validation Guide](/backend/validation-guide) for server-side readonly handling, [OpenAPI Runtime Under the Hood](/frontend/a-openapi-under-the-hood) for Zova schema loading, and [Form Scene to Page Meta Guide](/frontend/form-scene-to-page-meta-guide) for frontend form-scene flow.
77
+ The end-to-end rule is therefore not “the frontend hides a field.” Vona uses the DTO contract to sanitize read-only request input, while Zova uses compatible metadata to render the relevant scene. See [DTO Guide](/backend/dto-guide) for declaring a DTO scene, [Semantic Presentation Contract](/fullstack/semantic-presentation-contract) for the authority boundary behind presentation translation, [Validation Guide](/backend/validation-guide) for server-side readonly handling, [OpenAPI Runtime Under the Hood](/frontend/a-openapi-under-the-hood) for Zova schema loading, and [Form Scene to Page Meta Guide](/frontend/form-scene-to-page-meta-guide) for frontend form-scene flow.
78
78
 
79
79
  ## Controllers, DTOs, entities, and examples all contribute
80
80
 
@@ -1,150 +1,81 @@
1
- # Editions Overview
1
+ # Cabloy Editions
2
2
 
3
- This page is the editions hub for deciding which Cabloy baseline you are working with and which assumptions should follow from that choice.
3
+ Cabloy is available through two complete project baselines: Cabloy Basic and Cabloy Start. Both use the same Cabloy fullstack direction—Vona for the backend framework and runtime layer, Zova for the frontend framework and application layer—but intentionally provide different default application baselines.
4
4
 
5
- Cabloy currently supports two related but distinct editions:
5
+ ## At a glance
6
6
 
7
- - **Cabloy Basic**
8
- - **Cabloy Start**
7
+ | Edition | Repository | License | Default path | UI layer |
8
+ | ------------ | ------------------------------------------------------------------------ | --------------------------------------------------------------- | --------------------------------------------- | ---------------------- |
9
+ | Cabloy Basic | [github.com/cabloy/cabloy](https://github.com/cabloy/cabloy) | [MIT](https://github.com/cabloy/cabloy/blob/main/LICENSE) | `npm create cabloy` | DaisyUI + Tailwind CSS |
10
+ | Cabloy Start | [github.com/cabloy/cabloy-start](https://github.com/cabloy/cabloy-start) | [MIT](https://github.com/cabloy/cabloy-start/blob/main/LICENSE) | Clone the repository, then run `npm run init` | Vuetify |
9
11
 
10
- They share one Cabloy fullstack architecture, but they are composed and optimized differently.
12
+ Both editions share Vona + Zova, suite-based modular delivery, CLI-first workflows, bidirectional type synchronization, and coordinated SSR application delivery. Their UI layer, frontend flavors, suites and modules, SSR site baselines, project assets, generated outputs, root scripts, and onboarding paths can differ.
11
13
 
12
- ## How the names fit together
14
+ ## Comparison
13
15
 
14
- | Name | Functional role |
15
- | ------------ | --------------------------------------------------------------------------------- |
16
- | Cabloy | The coordinated Node.js fullstack system. |
17
- | Vona | Cabloy's backend framework and runtime layer. |
18
- | Zova | Cabloy's frontend framework and application layer. |
19
- | Cabloy Basic | The public reference and community edition baseline. |
20
- | Cabloy Start | The public MIT-licensed business-system edition baseline in a sibling repository. |
16
+ **Legend:** Included in the default edition baseline · — Not included in the default edition baseline
21
17
 
22
- Vona and Zova answer the architectural-layer question. Cabloy Basic and Cabloy Start answer the complete-edition-baseline question: both use the shared Cabloy architecture, but their UI, frontend flavors, modules, SSR baselines, project assets, generated outputs, root scripts, and onboarding paths can differ.
18
+ ### Included core capabilities
23
19
 
24
- If you need a recommendation path, start with [Choosing Between Cabloy Basic and Cabloy Start](/editions/choosing-between-basic-and-start).
20
+ | Capability | Description | Cabloy Basic | Cabloy Start |
21
+ | -------------------- | --------------------------------------------------------------------------------- | ------------ | ------------ |
22
+ | Master–detail forms | Supports nested master–detail forms, including multiple levels of detail records. | ✅ | ✅ |
23
+ | Image uploads | Supports local storage and Cloudflare storage backends. | ✅ | ✅ |
24
+ | File uploads | Supports local storage and Cloudflare storage backends. | ✅ | ✅ |
25
+ | Payment integrations | Demonstrates simulated payments, PayPal, and Stripe integrations. | ✅ | ✅ |
26
+ | Markdown editor | Includes image uploads and syntax highlighting. | ✅ | ✅ |
25
27
 
26
- ## How to approach editions work
28
+ ### Included demonstration suites
27
29
 
28
- For contributor and automation workflows in this repository, prefer this order:
30
+ | Suite | What it demonstrates | Cabloy Basic | Cabloy Start |
31
+ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------ | ------------ |
32
+ | Student Training Management | Master–detail forms, nested detail records, image uploads, and file uploads. Cabloy Start additionally demonstrates data-scope-based RBAC. | ✅ | ✅ |
33
+ | E-commerce | A complete Admin site, Web site, personal center, payment flows, Markdown editing, and related capabilities. | ✅ | — |
34
+ | System Management | User management, role management, department management, RBAC authorization, and menu authorization. | — | ✅ |
29
35
 
30
- 1. identify the active edition before making UI-sensitive, flavor-sensitive, module-sensitive, or asset-sensitive assumptions
31
- 2. explain the shared Cabloy architecture once before branching into edition-specific notes
32
- 3. split documentation or workflow guidance only where the editions intentionally diverge
33
- 4. use explicit edition markers and flavor names instead of treating the editions as interchangeable
36
+ > “Not included” means that the suite is not part of the default edition baseline. It does not limit what can be built with Cabloy.
34
37
 
35
- ## Editions reading paths
38
+ ## Choosing an edition
36
39
 
37
- Use this page as the main editions hub, then choose the path that matches your task.
40
+ Choose **Cabloy Basic** when you want the public framework and reference edition, the default `npm create cabloy` path, and the examples and workflows provided by this repository.
38
41
 
39
- ### Selection path
42
+ Choose **Cabloy Start** when you want the public MIT-licensed sibling repository and its business-system-oriented baseline with Start-specific assets, SSR sites, and a Vuetify UI layer.
40
43
 
41
- Start here when the task is about choosing the right edition baseline or understanding their differences:
44
+ This is a choice of default baseline, not a general capability limit. Both editions follow the same Cabloy fullstack architecture.
42
45
 
43
- - [Choosing Basic vs Start](/editions/choosing-between-basic-and-start)
44
- - [Cabloy Basic](/editions/cabloy-basic)
45
- - [Cabloy Start](/editions/cabloy-start)
46
+ ## Cabloy Basic
46
47
 
47
- ### Detection and workflow path
48
+ Cabloy Basic is the public framework and reference edition. Projects created with `npm create cabloy` follow the Basic route, and the public examples and root scripts in this repository use it as their default baseline.
48
49
 
49
- Use this path when the task is about repo-aware automation, flavor assumptions, or edition-safe workflow choices:
50
+ Use the [Fullstack Quickstart](/fullstack/quickstart) to create a new Basic project. When working in this repository, verify its current scripts before choosing a flavor or implementation workflow.
50
51
 
51
- - [Edition Detection](/editions/detection)
52
- - [Fullstack Introduction](/fullstack/introduction)
53
- - [AI Development Introduction](/ai/introduction)
52
+ ## Cabloy Start
54
53
 
55
- ## Shared fullstack core
54
+ Cabloy Start is a public MIT-licensed edition maintained in its own repository. Clone [github.com/cabloy/cabloy-start](https://github.com/cabloy/cabloy-start), then run `npm run init` in that checkout.
56
55
 
57
- Both editions are built around the same core direction:
56
+ Start has its own frontend flavors, suite and module composition, SSR site baselines, project assets, scripts, and generated outputs. Inspect the active Start repository before naming or relying on any of those edition-specific surfaces.
58
57
 
59
- - **Vona** as the backend framework and runtime layer
60
- - **Zova** as the frontend framework and application layer
61
- - suite-based modules across the stack
62
- - root-level `npm run vona` and `npm run zova` entrypoints
63
- - CLI-backed workflows for generation, refactoring, metadata, and verification
58
+ ## Working in an existing checkout
64
59
 
65
- This means the editions are related fullstack baselines, not unrelated products or alternatives to Vona and Zova.
60
+ Detect the active edition before making UI-sensitive, flavor-sensitive, module-sensitive, SSR-sensitive, or asset-sensitive assumptions:
66
61
 
67
- ## What "Basic" means
62
+ | Repository-root markers | Result |
63
+ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------- |
64
+ | Only `__CABLOY_BASIC__` | Cabloy Basic |
65
+ | Only `__CABLOY_START__` | Cabloy Start |
66
+ | Both markers | Invalid or ambiguous checkout; stop before making edition-specific assumptions. |
67
+ | Neither marker | Inspect the owning `package.json` and nearby repository structure, then ask before making an edition-specific assumption. |
68
68
 
69
- Cabloy Basic is the public reference and community edition of Cabloy.
69
+ ## For AI Development
70
70
 
71
- - this public repository is marked with `__CABLOY_BASIC__`
72
- - projects created with `npm create cabloy` follow the Cabloy Basic route
73
- - the public docs and examples in this repo use Cabloy Basic as the default baseline
71
+ AI-assisted work benefits from edition awareness whenever it depends on the UI library, frontend flavors, module availability, SSR sites, project assets, generated-output locations, or root scripts.
74
72
 
75
- Cabloy Basic is the open-source community edition and is optimized for public reference, learning, and fast development workflows.
73
+ Before recommending an implementation path:
76
74
 
77
- ## What "Start" means
75
+ 1. detect the active edition from the repository marker
76
+ 2. verify the relevant current scripts or CLI entry points
77
+ 3. branch guidance only where the editions genuinely diverge
78
78
 
79
- Cabloy Start is the public MIT-licensed edition maintained in its own repository.
79
+ Keep shared Cabloy and contract-loop guidance shared. Do not project Basic-specific examples, flavors, UI assumptions, or `npm create cabloy` onboarding onto a Start checkout, or the reverse.
80
80
 
81
- - the public repository is marked with `__CABLOY_START__`
82
- - users clone the public repository source directly, then run `npm run init`
83
- - Start uses its own edition-specific flavors, SSR site baselines, and project assets
84
-
85
- Cabloy Start is optimized as a business-system baseline for more complex systems while staying on the same Cabloy fullstack direction.
86
-
87
- ## Architecture layering
88
-
89
- Most of the frontend engineering layer is shared, while the edition-specific UI layer differs.
90
-
91
- ### Shared frontend engineering layer
92
-
93
- Across editions, Zova uses the same frontend framework direction and engineering tooling, including:
94
-
95
- - Vue
96
- - Vite
97
- - Quasar tooling such as `quasar dev` and `quasar build`
98
- - TanStack libraries where applicable
99
-
100
- Here, Quasar is used for engineering tooling rather than as the edition UI component library.
101
-
102
- ### Edition-specific UI layer
103
-
104
- The UI component strategy diverges by edition:
105
-
106
- - **Cabloy Basic**: DaisyUI + Tailwind CSS
107
- - **Cabloy Start**: Vuetify
108
-
109
- This difference affects not only UI code, but also module composition, frontend flavor assumptions, SSR site baselines, examples, and AI workflow guidance.
110
-
111
- ## Edition-specific assets
112
-
113
- The editions intentionally diverge in several surfaces:
114
-
115
- - UI layer assumptions
116
- - frontend flavor names
117
- - suite and module composition
118
- - admin/web SSR site baselines
119
- - separate-repository structure and edition-specific project assets
120
- - generated outputs and root scripts
121
- - rules, skills, and docs used for AI vibe coding
122
-
123
- For example:
124
-
125
- - **Cabloy Basic** provides the `cabloy-basic` suites and the `cabloyBasicAdmin` / `cabloyBasicWeb` Zova flavors
126
- - **Cabloy Start** uses public flavors such as `cabloyStartAdmin` and `cabloyStartWeb`
127
-
128
- ## Why the repo markers matter
129
-
130
- The edition markers are not just labels for humans.
131
-
132
- `__CABLOY_BASIC__` and `__CABLOY_START__` help tools, docs, and AI workflows choose the correct assumptions for:
133
-
134
- - UI component usage
135
- - flavor selection
136
- - module availability
137
- - SSR site expectations
138
- - rules, skills, and verification guidance
139
-
140
- This is why the two editions should be identified explicitly instead of being treated as interchangeable.
141
-
142
- ## Documentation rule
143
-
144
- Write shared explanations once. Split or annotate only when a workflow changes because of:
145
-
146
- - UI library assumptions
147
- - frontend flavor names
148
- - different modules or assets
149
- - repository and initialization model
150
- - edition-specific scripts, generated outputs, or AI workflow guidance
81
+ For the shared architecture and delivery model, see [Fullstack Introduction](/fullstack/introduction) and [AI Development Introduction](/ai/introduction). For front-end command selection, see [Frontend Scripts](/frontend/scripts).
@@ -124,7 +124,7 @@ For the theme-side contract and edition-aware checklist, see [Theme Guide](/fron
124
124
 
125
125
  ## Scripts and runtime variants
126
126
 
127
- Frontend scripts map directly onto the same runtime dimensions.
127
+ Frontend scripts map directly onto the same runtime dimensions. In the Cabloy Basic default environment, `dev:ssr:*` commands use the Zova standalone SSR development listener (`DEV_SERVER_PORT=9000`), while Vona integrated SSR uses Vona's `SERVER_LISTEN_PORT=7102`. These are separate listeners; `API_BASE_URL` still points from Zova to the Vona server.
128
128
 
129
129
  Representative commands include variants such as:
130
130
 
@@ -9,6 +9,8 @@ This guide covers the **structural** layout contract authored in DTO metadata an
9
9
 
10
10
  ## Choose the layout from the business form
11
11
 
12
+ Before selecting Form Layout nodes or renderers, define the scene's audience, task, meaningful information areas, and operation-specific contract boundary. See [Semantic Presentation Contract](/fullstack/semantic-presentation-contract).
13
+
12
14
  Start with the user's task, information hierarchy, and audience—not with the available layout node types or the number of fields. The generated CRUD layout is a valid baseline to review and refine, not a requirement to preserve unchanged.
13
15
 
14
16
  Choose the smallest structure that communicates the business form:
@@ -30,7 +32,7 @@ When the business grouping is unknown, keep the simpler layout or clarify the gr
30
32
 
31
33
  ## The layout layers are different
32
34
 
33
- Several APIs contain the word “layout,” but they own different concerns:
35
+ Several APIs contain the word “layout,” but they own different concerns. Presentation metadata translates an already authorized scene contract; it does not define API membership, persistence, validation, authorization, page/state ownership, or SSR privacy:
34
36
 
35
37
  | Surface | Owns | Does not own |
36
38
  | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
@@ -377,7 +379,7 @@ Here `formFieldLayout.inline: true` controls how each field wrapper is presented
377
379
 
378
380
  ## Authoring checklist
379
381
 
380
- 1. Identify the audience, task, and meaningful field groupings for the operation-specific DTO before choosing a structural tree.
382
+ 1. Use the [Semantic Presentation Contract](/fullstack/semantic-presentation-contract) to identify the audience, task, scene, meaningful information areas, and operation-specific DTO boundary before choosing a structural tree.
381
383
  2. Start with DTO or resource metadata; do not hand-patch generated `.zova-rest` artifacts.
382
384
  3. Use no structural layout when schema order is sufficient. Otherwise use the smallest layout that communicates the business structure; reserve tabs for genuinely separate business domains or workflows.
383
385
  4. Use `formLayout` when the requirement is field placement, Grid or flow structure, groups, or tabs.
@@ -80,6 +80,7 @@ Use this path when the task is about UI composition, component contracts, form o
80
80
 
81
81
  - [Component Guide](/frontend/component-guide)
82
82
  - [Form Guide](/frontend/form-guide)
83
+ - [Semantic Presentation Contract](/fullstack/semantic-presentation-contract)
83
84
  - [Form Layout Guide](/frontend/form-layout-guide)
84
85
  - [Image Guide](/frontend/image-guide)
85
86
  - [Zova Form Under the Hood](/frontend/zova-form-under-the-hood)
@@ -121,7 +122,7 @@ Use this path when the task is about data loading, API contracts, generated SDKs
121
122
  - [SSR Init Data](/frontend/ssr-init-data)
122
123
  - [SSR ClientOnly](/frontend/ssr-client-only)
123
124
  - [SSR SEO Meta](/frontend/ssr-seo-meta)
124
- - [SSR Env](/frontend/ssr-env)
125
+ - [SSR Environment Variables](/frontend/ssr-env)
125
126
 
126
127
  ### Tooling support
127
128