cabloy 5.1.214 → 5.1.216
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 +19 -0
- package/CHANGELOG.md +16 -0
- package/package.json +3 -1
- package/repo-agent-governance/managed-assets.json +9 -9
- package/repo-agent-governance/policies/repository.md +1 -0
- package/repo-agent-governance/scripts/pack-check.mjs +1 -0
- package/repo-agent-governance/skills/cabloy-spec-execution/references/status-and-evidence.md +28 -1
- package/repo-agent-governance/skills/cabloy-spec-generation/references/traceability-and-status-rules.md +2 -0
- package/repo-agent-governance/tests/evidence-paths.test.mjs +736 -0
- package/repo-agent-governance/tests/governance.test.mjs +25 -0
- package/repo-agent-governance/tools/evidence-paths/sanitize.mjs +549 -0
- package/repo-docs/ai/playbook-spec-execution.md +20 -2
- package/repo-docs/reference/repo-scripts.md +66 -0
- package/scripts/bootstrapAgentGovernance.mjs +2 -0
- package/scripts/upgrade.ts +2 -0
- package/vona/packages-cli/cli/package.json +1 -1
- package/vona/packages-cli/cli-set-api/package.json +1 -1
- package/vona/packages-cli/cli-set-api/src/lib/bean/cli.tools.masterDetail.ts +4 -4
- /package/vona/packages-cli/cli-set-api/cli/templates/tools/masterDetail/boilerplate/dto/{<%=argv.detailDtoBaseName%>.tsx_ → {{detailDtoBaseName}}.tsx_} +0 -0
- /package/vona/packages-cli/cli-set-api/cli/templates/tools/masterDetail/boilerplate/dto/{<%=argv.detailDtoMutateName%>.tsx_ → {{detailDtoMutateName}}.tsx_} +0 -0
- /package/vona/packages-cli/cli-set-api/cli/templates/tools/masterDetail/boilerplate/dto/{<%=argv.detailDtoResItemName%>.tsx_ → {{detailDtoResItemName}}.tsx_} +0 -0
- /package/vona/packages-cli/cli-set-api/cli/templates/tools/masterDetail/boilerplate/dto/{<%=argv.detailDtoViewName%>.tsx_ → {{detailDtoViewName}}.tsx_} +0 -0
package/.cabloy-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.1.
|
|
1
|
+
5.1.216
|
|
@@ -38,3 +38,22 @@ jobs:
|
|
|
38
38
|
npm run spec:charts:check -- home-user
|
|
39
39
|
- name: build documentation
|
|
40
40
|
run: npm run docs:build
|
|
41
|
+
|
|
42
|
+
evidence-platforms:
|
|
43
|
+
name: evidence paths (${{ matrix.os }})
|
|
44
|
+
strategy:
|
|
45
|
+
fail-fast: false
|
|
46
|
+
matrix:
|
|
47
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
48
|
+
runs-on: ${{ matrix.os }}
|
|
49
|
+
steps:
|
|
50
|
+
- uses: actions/checkout@v6
|
|
51
|
+
- uses: actions/setup-node@v6
|
|
52
|
+
with:
|
|
53
|
+
node-version: 24
|
|
54
|
+
- name: verify native evidence tooling
|
|
55
|
+
run: node --test repo-agent-governance/tests/evidence-paths.test.mjs
|
|
56
|
+
- name: verify sanitizer command entrypoint
|
|
57
|
+
run: npm run --silent evidence:sanitize -- --help
|
|
58
|
+
- name: verify checker command entrypoint
|
|
59
|
+
run: npm run --silent evidence:check -- --help
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.1.216
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- Apply feature updates.
|
|
8
|
+
|
|
9
|
+
### Improvements
|
|
10
|
+
|
|
11
|
+
- Update the agent governance configuration.
|
|
12
|
+
|
|
13
|
+
## 5.1.215
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
- Add support for skills.
|
|
18
|
+
|
|
3
19
|
## 5.1.214
|
|
4
20
|
|
|
5
21
|
### Improvements
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cabloy",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.216",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "A Node.js fullstack framework",
|
|
6
6
|
"keywords": [
|
|
@@ -62,6 +62,8 @@
|
|
|
62
62
|
"spec:charts": "node ./repo-agent-governance/tools/spec-charts/generate-implementation-charts.mjs",
|
|
63
63
|
"spec:charts:check": "node ./repo-agent-governance/tools/spec-charts/generate-implementation-charts.mjs --check",
|
|
64
64
|
"spec:check": "node ./repo-agent-governance/tools/spec-audit/audit.mjs",
|
|
65
|
+
"evidence:sanitize": "node repo-agent-governance/tools/evidence-paths/sanitize.mjs sanitize",
|
|
66
|
+
"evidence:check": "node repo-agent-governance/tools/evidence-paths/sanitize.mjs check",
|
|
65
67
|
"docs:dev": "pnpm --dir repo-docs docs:dev",
|
|
66
68
|
"docs:build": "pnpm --dir repo-docs docs:build",
|
|
67
69
|
"docs:preview": "pnpm --dir repo-docs docs:preview",
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
{
|
|
187
187
|
"adapter": "codex",
|
|
188
188
|
"category": "skill",
|
|
189
|
-
"sha256": "
|
|
189
|
+
"sha256": "17fd93c93c94e5a5b36bcea2c70e779d031b8158b99d03556e8d358e80ad7893",
|
|
190
190
|
"source": "skills/cabloy-spec-execution/references/status-and-evidence.md",
|
|
191
191
|
"target": ".agents/skills/cabloy-spec-execution/references/status-and-evidence.md"
|
|
192
192
|
},
|
|
@@ -242,7 +242,7 @@
|
|
|
242
242
|
{
|
|
243
243
|
"adapter": "codex",
|
|
244
244
|
"category": "skill",
|
|
245
|
-
"sha256": "
|
|
245
|
+
"sha256": "6066944449f7072dbecfde7a79ceb16ebf75777b00c28ddc996b90d8dcdf2145",
|
|
246
246
|
"source": "skills/cabloy-spec-generation/references/traceability-and-status-rules.md",
|
|
247
247
|
"target": ".agents/skills/cabloy-spec-generation/references/traceability-and-status-rules.md"
|
|
248
248
|
},
|
|
@@ -522,7 +522,7 @@
|
|
|
522
522
|
{
|
|
523
523
|
"adapter": "claude",
|
|
524
524
|
"category": "skill",
|
|
525
|
-
"sha256": "
|
|
525
|
+
"sha256": "17fd93c93c94e5a5b36bcea2c70e779d031b8158b99d03556e8d358e80ad7893",
|
|
526
526
|
"source": "skills/cabloy-spec-execution/references/status-and-evidence.md",
|
|
527
527
|
"target": ".claude/skills/cabloy-spec-execution/references/status-and-evidence.md"
|
|
528
528
|
},
|
|
@@ -578,7 +578,7 @@
|
|
|
578
578
|
{
|
|
579
579
|
"adapter": "claude",
|
|
580
580
|
"category": "skill",
|
|
581
|
-
"sha256": "
|
|
581
|
+
"sha256": "6066944449f7072dbecfde7a79ceb16ebf75777b00c28ddc996b90d8dcdf2145",
|
|
582
582
|
"source": "skills/cabloy-spec-generation/references/traceability-and-status-rules.md",
|
|
583
583
|
"target": ".claude/skills/cabloy-spec-generation/references/traceability-and-status-rules.md"
|
|
584
584
|
},
|
|
@@ -683,7 +683,7 @@
|
|
|
683
683
|
{
|
|
684
684
|
"adapter": "cursor",
|
|
685
685
|
"category": "policy",
|
|
686
|
-
"sha256": "
|
|
686
|
+
"sha256": "050769a0c11ce7706b6dc0d526aad3ecd9d5a2ca1edd4d3eab699aac5eec9996",
|
|
687
687
|
"source": "policies/repository.md",
|
|
688
688
|
"target": ".cursor/rules/cabloy-governance.mdc"
|
|
689
689
|
},
|
|
@@ -872,7 +872,7 @@
|
|
|
872
872
|
{
|
|
873
873
|
"adapter": "cursor",
|
|
874
874
|
"category": "skill",
|
|
875
|
-
"sha256": "
|
|
875
|
+
"sha256": "17fd93c93c94e5a5b36bcea2c70e779d031b8158b99d03556e8d358e80ad7893",
|
|
876
876
|
"source": "skills/cabloy-spec-execution/references/status-and-evidence.md",
|
|
877
877
|
"target": ".cursor/skills/cabloy-spec-execution/references/status-and-evidence.md"
|
|
878
878
|
},
|
|
@@ -928,7 +928,7 @@
|
|
|
928
928
|
{
|
|
929
929
|
"adapter": "cursor",
|
|
930
930
|
"category": "skill",
|
|
931
|
-
"sha256": "
|
|
931
|
+
"sha256": "6066944449f7072dbecfde7a79ceb16ebf75777b00c28ddc996b90d8dcdf2145",
|
|
932
932
|
"source": "skills/cabloy-spec-generation/references/traceability-and-status-rules.md",
|
|
933
933
|
"target": ".cursor/skills/cabloy-spec-generation/references/traceability-and-status-rules.md"
|
|
934
934
|
},
|
|
@@ -1005,14 +1005,14 @@
|
|
|
1005
1005
|
{
|
|
1006
1006
|
"adapter": "codex",
|
|
1007
1007
|
"category": "policy",
|
|
1008
|
-
"sha256": "
|
|
1008
|
+
"sha256": "4056d436da610d0438fe8aa4c873cd23442613de800799b358b1c1a2483d7402",
|
|
1009
1009
|
"source": "policies/repository.md",
|
|
1010
1010
|
"target": "AGENTS.md"
|
|
1011
1011
|
},
|
|
1012
1012
|
{
|
|
1013
1013
|
"adapter": "claude",
|
|
1014
1014
|
"category": "policy",
|
|
1015
|
-
"sha256": "
|
|
1015
|
+
"sha256": "4056d436da610d0438fe8aa4c873cd23442613de800799b358b1c1a2483d7402",
|
|
1016
1016
|
"source": "policies/repository.md",
|
|
1017
1017
|
"target": "CLAUDE.md"
|
|
1018
1018
|
}
|
|
@@ -72,6 +72,7 @@ Before inventing a custom implementation path:
|
|
|
72
72
|
- Plan to resolve named blockers for a bounded increment, not every future detail. Define finite exit criteria, batch related decisions, and require new facts, decision value, or explicit blocker reduction for further planning; do not substitute repeated refinement for delivery.
|
|
73
73
|
- Scope blockers to their actual dependency branches and surface meaningful, independently verifiable implementation candidates elsewhere without executing them unapproved. Once the selected increment is ready, request missing execution approval or proceed within existing unchanged approval; do not repeatedly reconfirm the same scope. Preserve security gates and separate runtime evidence/release requirements; neither a planning-round quota nor empty scaffolding justifies bypass or completion.
|
|
74
74
|
- After implementation, do not launch broad reviews automatically; when review is needed, scope it to the current diff and report only high-confidence issues.
|
|
75
|
+
- Sanitize machine-local paths before retaining or sharing evidence: preserve useful repository-relative locations, failures, exit codes, and source hashes; check the tool's supported coverage and manually review remaining sensitive data. Path sanitization is not secret scanning or acceptance proof.
|
|
75
76
|
- 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.
|
|
76
77
|
- In Cabloy Basic and Cabloy Start, root `npm run test` and `npm run test:e2e` allocate an isolated same-checkout test run: disposable run-specific database and Redis namespaces, runtime/public paths, and listener. Ordinary same-checkout dev-process presence alone is not a blocker; do not require dev shutdown, another worktree, or environment changes solely to run these tests. Judge conflicts by actual overlap with effective test resources or shared preparation writes, not process names. Builds and dependency installation/generation remain shared prerequisites; coordinate overlapping writes, and check custom external resources separately. This guarantee does not cover raw test commands or authorize manual resets, process killing, or shared configuration changes. See `repo-docs/reference/repo-scripts.md`.
|
|
77
78
|
- For isolated E2E through Vona integrated SSR, do not edit Zova `API_BASE_URL` environment values or rebuild solely to match the test port: Vona supplies runtime server/browser API origins. On an origin mismatch, check explicit SSR Site and module-specific API URL overrides first; follow the active repository's scripts for changed SSR/REST artifacts and dependency synchronization. Do not generalize this handoff to Zova standalone SSR or SPA. See [Runtime API origins](repo-docs/fullstack/ssr-entry-modes.md#runtime-api-origins-in-vona-integrated-ssr).
|
|
@@ -18,6 +18,7 @@ const required = [
|
|
|
18
18
|
'repo-agent-governance/tools/contract-loop/core.mjs',
|
|
19
19
|
'repo-agent-governance/tools/contract-loop/hook-runtime.mjs',
|
|
20
20
|
'repo-agent-governance/tools/spec-audit/audit.mjs',
|
|
21
|
+
'repo-agent-governance/tools/evidence-paths/sanitize.mjs',
|
|
21
22
|
'repo-agent-governance/tools/spec-charts/spec-parser.mjs',
|
|
22
23
|
'repo-agent-governance/tools/spec-charts/generate-implementation-charts.mjs',
|
|
23
24
|
'repo-agent-governance/skills/cabloy-spec-generation/SKILL.md',
|
package/repo-agent-governance/skills/cabloy-spec-execution/references/status-and-evidence.md
CHANGED
|
@@ -8,7 +8,7 @@ The suite’s `test-plan.md` owns ATP definitions, procedures, expected outcomes
|
|
|
8
8
|
|
|
9
9
|
For ordinary execution that does not change authority:
|
|
10
10
|
|
|
11
|
-
1.
|
|
11
|
+
1. sanitize and review actual evidence before durable retention;
|
|
12
12
|
2. update a dedicated phase/ATP evidence record when the suite convention supports it;
|
|
13
13
|
3. update a rollout or operational handoff record when it is part of the established suite flow;
|
|
14
14
|
4. update `progress.md` with derived status, evidence pointers, blockers, and next proof;
|
|
@@ -52,6 +52,33 @@ Do not retain credentials, raw tokens, signed callback state, secrets, live prov
|
|
|
52
52
|
|
|
53
53
|
Do not create an empty `evidence/` directory, placeholder `EVD-*` record, or fabricated artifact merely to satisfy a traceability table. A command written in a test plan or dossier is prospective until it is actually executed and retained.
|
|
54
54
|
|
|
55
|
+
## Machine-local paths before retention
|
|
56
|
+
|
|
57
|
+
Sanitize compiler output, CLI banners, stderr, exception stacks, and path-bearing JSON/diffs before saving or sharing them. Paths inside the observed checkout should be repository-root-relative, not relative to the evidence file. Use stable aliases such as `<MAIN_CHECKOUT>` for other roots; do not collapse unrelated roots into the same identity. Avoid raw intermediate logs and `tee` before sanitization. This does not intercept tool/terminal output automatically; callers must route both producer streams through the sanitizer. Do not capture secret-bearing output merely because a path tool is present.
|
|
58
|
+
|
|
59
|
+
Verify the active root scripts first. The path-only commands are:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Bash; use a new output filename, never overwrite an existing record.
|
|
63
|
+
set -o pipefail
|
|
64
|
+
set -o noclobber
|
|
65
|
+
npm run --silent test:agent-governance 2>&1 | npm run --silent evidence:sanitize > evidence.pending.txt
|
|
66
|
+
stage_status=( "${PIPESTATUS[@]}" )
|
|
67
|
+
printf 'producer_exit=%s sanitizer_exit=%s\n' "${stage_status[0]}" "${stage_status[1]}"
|
|
68
|
+
# Only check/retain the artifact if sanitizer_exit is 0; preserve producer failure.
|
|
69
|
+
if [ "${stage_status[1]}" -eq 0 ]; then
|
|
70
|
+
npm run --silent evidence:check -- -- evidence.pending.txt
|
|
71
|
+
fi
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
The producer above is an example verification command, not authorization to run unrelated tests. Retain evidence only after evaluating **both** producer and sanitizer statuses and reviewing sensitive data. `pipefail` prevents a failed producer from appearing successful because sanitization succeeded; it does not preserve every stage's exact exit code. When exact codes matter, capture Bash's `PIPESTATUS` immediately after the pipeline (Zsh: `pipestatus`) before running another command, and record each result. Do not let `set -e` abort before capturing a known failing verification result. A failed sanitizer may already have emitted earlier sanitized lines: its partial output is not acceptable evidence.
|
|
75
|
+
|
|
76
|
+
The pipeline above is Bash-specific. For Windows/PowerShell, consult `repo-docs/reference/repo-scripts.md#windows-and-powershell`: preserve UTF-8 bytes and each native process's exit status; PowerShell's final `$LASTEXITCODE` alone does not record both stages. Do not reuse Bash/Zsh status syntax in PowerShell or retain a raw intermediate file to work around encoding.
|
|
77
|
+
|
|
78
|
+
The tool defaults to its owning checkout, not the shell's working directory. `--repo-root` changes that root; repeatable `--map 'ROOT=ALIAS'` declares other absolute roots without retaining their physical locations in output. Use the same mappings for sanitization and checking. Consult `repo-docs/reference/repo-scripts.md#evidence-path-sanitization` for supported path forms, scan limits and exit codes. Unknown roots/encodings and semantic paths need manual review; the checker must not be described as a universal privacy or secret scanner. Excluded or unsupported inputs mean incomplete coverage, not clean evidence. Keep checks explicitly scoped to the intended artifacts rather than a broad repository scan.
|
|
79
|
+
|
|
80
|
+
Preserve command flags, diagnostic codes, line/column information, failures, exit codes, and source-file hashes. Source hashes refer to original source bytes, not sanitized log bytes. A path-redacted historical patch is not byte-exact or apply-ready; label it accordingly. Redaction is presentation-only, not a rerun, new approval, ATP success, or status advancement. A passing path check proves only the declared path-recognition coverage and does not replace secret/customer-data review or the test plan's evidence gate.
|
|
81
|
+
|
|
55
82
|
## Status vocabulary
|
|
56
83
|
|
|
57
84
|
Use the suite’s canonical status meanings:
|
|
@@ -113,6 +113,8 @@ A retained evidence entry should include:
|
|
|
113
113
|
|
|
114
114
|
Evidence must be synthetic or redacted. Never retain credentials, raw tokens, signed callback state, secrets, live provider identifiers, or real customer/payment data merely to prove a scenario.
|
|
115
115
|
|
|
116
|
+
Plan machine-local path sanitization before durable retention, including compiler stderr and exception stacks. Preserve useful repository-relative locations, failures, exit codes, and original source hashes; use stable aliases for external roots. Follow `cabloy-spec-execution`'s `references/status-and-evidence.md` retention/check procedure and the public command reference at `repo-docs/reference/repo-scripts.md#evidence-path-sanitization`. Path checking covers declared patterns only; it is not secret scanning, producer success, or ATP proof.
|
|
117
|
+
|
|
116
118
|
A planned command is not a result. A code reading, design review, manual walkthrough, or single screenshot is not by itself sufficient for `verified` unless the applicable test plan explicitly defines it as adequate proof and the result is retained.
|
|
117
119
|
|
|
118
120
|
## Waivers
|