@paths.design/caws-cli 11.1.1 → 11.1.3
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/README.md
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
# @paths.design/caws-cli
|
|
2
2
|
|
|
3
|
-
**CAWS CLI v11.
|
|
3
|
+
**CAWS CLI v11.1 — the governed core plus lifecycle for the Coding Agent
|
|
4
|
+
Working Standard.**
|
|
4
5
|
|
|
5
6
|
CAWS (Coding Agent Working Standard) gives coding agents a deterministic
|
|
6
7
|
substrate for project state, scope, claims, gates, waivers, and audit
|
|
7
|
-
evidence. v11
|
|
8
|
+
evidence. v11 is a ground-up rewrite around a pure kernel, an I/O
|
|
8
9
|
store, and a thin shell. It replaces v10.x.
|
|
9
10
|
|
|
10
11
|
## What v11 ships
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
### Governed core (v11.0)
|
|
13
14
|
|
|
14
15
|
| Command | What it does |
|
|
15
16
|
|---|---|
|
|
16
17
|
| `caws init` | Bootstrap the canonical `.caws/` project state. Idempotent. Refuses to overwrite legacy single-spec layout. |
|
|
17
18
|
| `caws doctor` | Drift detection over `.caws/` state. Exits 0 (clean) / 1 (findings or load errors) / 2 (composition failure). |
|
|
18
|
-
| `caws status` | Read-only dashboard: project, current context, claim, doctor findings. Always exits 0; never mutates
|
|
19
|
+
| `caws status` | Read-only dashboard: project, current context, claim, doctor findings. Always exits 0; never mutates governance state. |
|
|
19
20
|
| `caws scope show <path>` | Explain the scope decision for `<path>`. Always exits 0. |
|
|
20
21
|
| `caws scope check <path>` | Enforce the scope decision for `<path>`. Exits 0 on admit, 1 on refuse. |
|
|
21
22
|
| `caws claim [--takeover]` | Surface or take ownership of the current worktree. Writes a `prior_owners` audit on takeover. |
|
|
@@ -23,35 +24,39 @@ Exactly eight command groups. Nothing else.
|
|
|
23
24
|
| `caws evidence record --type <kind> --spec <id> --data <json>` | Append a typed evidence event (`test`/`gate`/`ac`) to `.caws/events.jsonl`. |
|
|
24
25
|
| `caws waiver create/list/show/revoke` | Manage waiver records that filter matching gate violations. Singular surface — no plural alias. |
|
|
25
26
|
|
|
27
|
+
### Lifecycle (v11.1)
|
|
28
|
+
|
|
29
|
+
| Command | What it does |
|
|
30
|
+
|---|---|
|
|
31
|
+
| `caws worktree create/list/bind/destroy/merge` | Worktree lifecycle on the vNext substrate. Canonical path for parallel agent work. |
|
|
32
|
+
| `caws specs` | vNext spec lifecycle. |
|
|
33
|
+
|
|
26
34
|
Run `caws <group> --help` for full options.
|
|
27
35
|
|
|
28
|
-
## Posture
|
|
29
|
-
|
|
30
|
-
v11
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
lifecycle commands. The two CLIs cannot coexist on the same project —
|
|
50
|
-
they write to overlapping state.
|
|
36
|
+
## Posture
|
|
37
|
+
|
|
38
|
+
v11 is structured as kernel + store + shell. The kernel has no `fs`,
|
|
39
|
+
`path`, or clock access; the store owns all I/O and the hash-chained
|
|
40
|
+
event log; the shell composes them into commands.
|
|
41
|
+
|
|
42
|
+
Commands that existed in v10.2.x and were **removed in v11.0** (no
|
|
43
|
+
replacement is planned in any current milestone): `scaffold`, `validate`,
|
|
44
|
+
`verify-acs`, `evaluate`, `iterate`, `diagnose`, `burnup`, `archive`,
|
|
45
|
+
`provenance` (superseded by `events.jsonl`), `sidecar`, `mode`,
|
|
46
|
+
`tutorial`, `plan`, `templates`, `workflow`, `quality-monitor`, `tool`,
|
|
47
|
+
`test-analysis`, legacy `hooks` install (users wire their own hooks
|
|
48
|
+
against `caws gates run`).
|
|
49
|
+
|
|
50
|
+
Currently absent from v11.1 and **planned for v11.2** (multi-agent
|
|
51
|
+
authority and observability): `caws agents list/show`, `caws claim
|
|
52
|
+
--spec <id>` (bridge claims), `caws worktree prune/repair/reconcile`.
|
|
53
|
+
|
|
54
|
+
Explicitly deferred to v11.3+: `caws session` and `caws parallel`. The
|
|
55
|
+
`caws worktree create` loop pattern replaces `parallel` for multi-agent
|
|
56
|
+
setup today.
|
|
51
57
|
|
|
52
58
|
See `docs/architecture/caws-vnext-command-surface.md` in the repo for
|
|
53
|
-
the complete
|
|
54
|
-
invariants.
|
|
59
|
+
the complete doctrine, command surface, and architectural invariants.
|
|
55
60
|
|
|
56
61
|
## Installation
|
|
57
62
|
|
package/dist/config/index.js
CHANGED
|
@@ -49,8 +49,11 @@ function initializeGlobalSetup() {
|
|
|
49
49
|
function loadProvenanceTools() {
|
|
50
50
|
if (provenanceTools) return provenanceTools; // Already loaded
|
|
51
51
|
|
|
52
|
-
//
|
|
53
|
-
//
|
|
52
|
+
// v10 had a `caws provenance` command that loaded these tools. That
|
|
53
|
+
// command was removed in v11.0.0; the hash-chained .caws/events.jsonl
|
|
54
|
+
// is now the canonical audit surface (write via the v11 events-store
|
|
55
|
+
// or `caws evidence record`). This loader remains for legacy installs
|
|
56
|
+
// that still drop a local provenance.js into the search paths below.
|
|
54
57
|
// Try multiple possible locations for provenance tools (legacy support)
|
|
55
58
|
const possiblePaths = [
|
|
56
59
|
// 1. New location (if someone manually adds it)
|
package/dist/error-handler.js
CHANGED
|
@@ -134,17 +134,30 @@ function safeSync(operation, context = '', includeTiming = false) {
|
|
|
134
134
|
/**
|
|
135
135
|
* Command-specific error suggestions
|
|
136
136
|
*/
|
|
137
|
+
// v11 command surface. Mirrors docs/architecture/caws-vnext-command-surface.md
|
|
138
|
+
// §2 — the eight v11.0 governed-core groups plus `specs` and `worktree`
|
|
139
|
+
// restored in v11.1. When v11.2 lands `agents` and bridge claims, extend
|
|
140
|
+
// this list in the same commit as the doctrine update.
|
|
141
|
+
const V11_COMMANDS = [
|
|
142
|
+
'init',
|
|
143
|
+
'doctor',
|
|
144
|
+
'status',
|
|
145
|
+
'scope',
|
|
146
|
+
'claim',
|
|
147
|
+
'gates',
|
|
148
|
+
'evidence',
|
|
149
|
+
'waiver',
|
|
150
|
+
'specs',
|
|
151
|
+
'worktree',
|
|
152
|
+
];
|
|
153
|
+
|
|
137
154
|
const COMMAND_SUGGESTIONS = {
|
|
138
155
|
'unknown option': (option, command) => {
|
|
139
156
|
const suggestions = [];
|
|
140
157
|
|
|
141
|
-
// Common typos and alternatives
|
|
142
158
|
const optionMap = {
|
|
143
|
-
'--suggestions': 'Validation includes suggestions by default. Try: caws validate',
|
|
144
|
-
'--suggest': 'Validation includes suggestions by default. Try: caws validate',
|
|
145
159
|
'--help': 'Try: caws --help or caws <command> --help',
|
|
146
|
-
'--json': '
|
|
147
|
-
'--dashboard': 'Try: caws provenance show --format=dashboard',
|
|
160
|
+
'--json': 'v11 commands accept --json for machine-readable output where supported',
|
|
148
161
|
};
|
|
149
162
|
|
|
150
163
|
if (optionMap[option]) {
|
|
@@ -157,60 +170,45 @@ const COMMAND_SUGGESTIONS = {
|
|
|
157
170
|
},
|
|
158
171
|
|
|
159
172
|
'unknown command': (command) => {
|
|
160
|
-
const
|
|
161
|
-
'init',
|
|
162
|
-
'validate',
|
|
163
|
-
'scaffold',
|
|
164
|
-
'status',
|
|
165
|
-
'diagnose',
|
|
166
|
-
'evaluate',
|
|
167
|
-
'iterate',
|
|
168
|
-
'waivers',
|
|
169
|
-
'templates',
|
|
170
|
-
'provenance',
|
|
171
|
-
'hooks',
|
|
172
|
-
'workflow',
|
|
173
|
-
'quality-monitor',
|
|
174
|
-
'test-analysis',
|
|
175
|
-
];
|
|
176
|
-
const similar = findSimilarCommand(command, validCommands);
|
|
173
|
+
const similar = findSimilarCommand(command, V11_COMMANDS);
|
|
177
174
|
|
|
178
175
|
const suggestions = [];
|
|
179
176
|
if (similar) {
|
|
180
177
|
suggestions.push(`Did you mean: caws ${similar}?`);
|
|
181
178
|
}
|
|
182
179
|
|
|
183
|
-
// Suggest category based on what user might be trying to do
|
|
184
|
-
|
|
180
|
+
// Suggest category based on what the user might be trying to do.
|
|
181
|
+
// Each branch points only at the v11 surface — no removed-command leakage.
|
|
182
|
+
if (command.includes('setup') || command.includes('start')) {
|
|
185
183
|
suggestions.push('For project setup: caws init');
|
|
184
|
+
} else if (command.includes('new') || command.includes('create')) {
|
|
185
|
+
suggestions.push('For a new spec: caws specs create <id>');
|
|
186
|
+
suggestions.push('For a new worktree: caws worktree create <name> --spec <id>');
|
|
186
187
|
} else if (
|
|
187
188
|
command.includes('check') ||
|
|
188
189
|
command.includes('verify') ||
|
|
189
|
-
command.includes('
|
|
190
|
+
command.includes('valid')
|
|
190
191
|
) {
|
|
191
|
-
suggestions.push('For
|
|
192
|
+
suggestions.push('For drift detection: caws doctor');
|
|
193
|
+
suggestions.push('For policy and quality gates: caws gates run --spec <id>');
|
|
194
|
+
suggestions.push('For path scope: caws scope check <path>');
|
|
192
195
|
} else if (command.includes('list') || command.includes('show') || command.includes('get')) {
|
|
193
|
-
suggestions.push('For status: caws status');
|
|
196
|
+
suggestions.push('For project status: caws status');
|
|
197
|
+
suggestions.push('For specs: caws specs list / caws specs show <id>');
|
|
198
|
+
suggestions.push('For worktrees: caws worktree list');
|
|
199
|
+
} else if (command.includes('evidence') || command.includes('record')) {
|
|
200
|
+
suggestions.push('To record test/gate/ac evidence: caws evidence record --type <kind> --spec <id> --data <json>');
|
|
194
201
|
}
|
|
195
202
|
|
|
196
|
-
suggestions.push(
|
|
197
|
-
'Available commands: init, validate, scaffold, status, diagnose, evaluate, iterate, waivers, templates, provenance, hooks, workflow, quality-monitor'
|
|
198
|
-
);
|
|
203
|
+
suggestions.push(`Available v11 commands: ${V11_COMMANDS.join(', ')}`);
|
|
199
204
|
suggestions.push('Try: caws --help for full command list with descriptions');
|
|
200
205
|
|
|
201
206
|
return suggestions;
|
|
202
207
|
},
|
|
203
208
|
|
|
204
|
-
'template not found': () => [
|
|
205
|
-
'Templates are bundled with CAWS CLI',
|
|
206
|
-
'Try: caws scaffold (should work automatically)',
|
|
207
|
-
'If issue persists: npm i -g @paths.design/caws-cli@latest',
|
|
208
|
-
],
|
|
209
|
-
|
|
210
209
|
'not a caws project': () => [
|
|
211
|
-
'Initialize CAWS first: caws init
|
|
212
|
-
'
|
|
213
|
-
'Check for .caws/working-spec.yaml file',
|
|
210
|
+
'Initialize CAWS first: caws init',
|
|
211
|
+
'Verify .caws/ exists in the current directory',
|
|
214
212
|
],
|
|
215
213
|
};
|
|
216
214
|
|
|
@@ -309,15 +307,15 @@ function getRecoverySuggestions(error, category, context = {}) {
|
|
|
309
307
|
break;
|
|
310
308
|
|
|
311
309
|
case ERROR_CATEGORIES.VALIDATION:
|
|
312
|
-
suggestions.push('Run: caws
|
|
313
|
-
suggestions.push('
|
|
314
|
-
suggestions.push('
|
|
310
|
+
suggestions.push('Run: caws doctor for spec and policy drift detection');
|
|
311
|
+
suggestions.push('Run: caws gates run --spec <id> for policy and quality gates');
|
|
312
|
+
suggestions.push('Check .caws/specs/<id>.yaml against the spec schema in packages/caws-kernel');
|
|
315
313
|
break;
|
|
316
314
|
|
|
317
315
|
case ERROR_CATEGORIES.CONFIGURATION:
|
|
318
|
-
suggestions.push('Run: caws init
|
|
319
|
-
suggestions.push('
|
|
320
|
-
suggestions.push('
|
|
316
|
+
suggestions.push('Run: caws init to bootstrap canonical .caws/ state (idempotent)');
|
|
317
|
+
suggestions.push('Run: caws doctor to surface configuration drift');
|
|
318
|
+
suggestions.push('Inspect .caws/ contents directly to confirm expected layout');
|
|
321
319
|
break;
|
|
322
320
|
|
|
323
321
|
case ERROR_CATEGORIES.NETWORK:
|
|
@@ -352,12 +350,20 @@ function getDocumentationLink(category, context = {}) {
|
|
|
352
350
|
};
|
|
353
351
|
|
|
354
352
|
if (context.command) {
|
|
353
|
+
// v11 doc anchors. Generic fallback to the architecture doctrine if a
|
|
354
|
+
// specific command page is not yet authored.
|
|
355
|
+
const doctrine = `${baseUrl}/docs/architecture/caws-vnext-command-surface.md`;
|
|
355
356
|
const commandLinks = {
|
|
356
|
-
init:
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
357
|
+
init: doctrine,
|
|
358
|
+
doctor: doctrine,
|
|
359
|
+
status: doctrine,
|
|
360
|
+
scope: doctrine,
|
|
361
|
+
claim: doctrine,
|
|
362
|
+
gates: doctrine,
|
|
363
|
+
evidence: doctrine,
|
|
364
|
+
waiver: doctrine,
|
|
365
|
+
specs: doctrine,
|
|
366
|
+
worktree: doctrine,
|
|
361
367
|
};
|
|
362
368
|
|
|
363
369
|
if (commandLinks[context.command]) {
|
|
@@ -522,29 +528,29 @@ const TROUBLESHOOTING_GUIDES = {
|
|
|
522
528
|
],
|
|
523
529
|
},
|
|
524
530
|
|
|
525
|
-
'
|
|
526
|
-
title: '
|
|
531
|
+
'spec-validation': {
|
|
532
|
+
title: 'Spec Validation Errors',
|
|
527
533
|
symptoms: [
|
|
528
|
-
'
|
|
529
|
-
'
|
|
530
|
-
'Invalid risk tier or
|
|
534
|
+
'A spec under .caws/specs/<id>.yaml fails to load',
|
|
535
|
+
'doctor reports spec.schema errors',
|
|
536
|
+
'Invalid risk tier, scope, or acceptance criteria',
|
|
531
537
|
],
|
|
532
538
|
rootCauses: [
|
|
533
539
|
'Invalid YAML syntax',
|
|
534
540
|
'Missing required fields',
|
|
535
541
|
'Incorrect schema structure',
|
|
536
|
-
'Invalid scope paths',
|
|
542
|
+
'Invalid scope paths (e.g., globs in scope.out)',
|
|
537
543
|
],
|
|
538
544
|
solutions: [
|
|
539
|
-
'Run
|
|
540
|
-
'
|
|
541
|
-
'
|
|
542
|
-
'
|
|
545
|
+
'Run: caws doctor — drift detection over .caws/ state',
|
|
546
|
+
'Inspect the failing spec at .caws/specs/<id>.yaml directly',
|
|
547
|
+
'Compare against existing specs in .caws/specs/ for shape',
|
|
548
|
+
'See packages/caws-kernel for the canonical spec schema',
|
|
543
549
|
],
|
|
544
550
|
commands: [
|
|
545
|
-
'caws
|
|
546
|
-
'caws
|
|
547
|
-
'caws
|
|
551
|
+
'caws doctor',
|
|
552
|
+
'caws specs show <id>',
|
|
553
|
+
'caws specs list',
|
|
548
554
|
],
|
|
549
555
|
},
|
|
550
556
|
|
|
@@ -570,7 +576,7 @@ const TROUBLESHOOTING_GUIDES = {
|
|
|
570
576
|
commands: [
|
|
571
577
|
'cat package.json | grep workspaces',
|
|
572
578
|
'find packages -name package.json',
|
|
573
|
-
'caws
|
|
579
|
+
'caws doctor',
|
|
574
580
|
'caws status',
|
|
575
581
|
],
|
|
576
582
|
},
|
|
@@ -607,8 +613,14 @@ function suggestTroubleshootingGuide(errorMessage) {
|
|
|
607
613
|
if (lowerMessage.includes('mutation') && lowerMessage.includes('not found')) {
|
|
608
614
|
return 'mutation-report-not-found';
|
|
609
615
|
}
|
|
610
|
-
|
|
611
|
-
|
|
616
|
+
// 'spec' (per-feature .caws/specs/<id>.yaml) replaces the v10 'working spec' term.
|
|
617
|
+
// Match either for compatibility with errors that quote either phrase.
|
|
618
|
+
if (
|
|
619
|
+
lowerMessage.includes('spec') ||
|
|
620
|
+
lowerMessage.includes('validation') ||
|
|
621
|
+
lowerMessage.includes('schema')
|
|
622
|
+
) {
|
|
623
|
+
return 'spec-validation';
|
|
612
624
|
}
|
|
613
625
|
if (lowerMessage.includes('workspace') || lowerMessage.includes('monorepo')) {
|
|
614
626
|
return 'monorepo-detection';
|
|
@@ -15,8 +15,7 @@ export interface WorktreeCreateOptions extends BaseCommandOptions {
|
|
|
15
15
|
readonly branch?: string;
|
|
16
16
|
}
|
|
17
17
|
export declare function runWorktreeCreateCommand(opts: WorktreeCreateOptions): number;
|
|
18
|
-
export
|
|
19
|
-
}
|
|
18
|
+
export type WorktreeListOptions = BaseCommandOptions;
|
|
20
19
|
export declare function runWorktreeListCommand(opts?: WorktreeListOptions): number;
|
|
21
20
|
export interface WorktreeBindOptions extends BaseCommandOptions {
|
|
22
21
|
readonly name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/shell/commands/worktree.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,SAAS,EAAQ,MAAM,2BAA2B,CAAC;AAcjE,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAkED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAuC5E;AAID,MAAM,
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/shell/commands/worktree.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,SAAS,EAAQ,MAAM,2BAA2B,CAAC;AAcjE,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAkED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAuC5E;AAID,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAErD,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAwB7E;AAID,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA+BxE;AAID,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAkC9E;AAID,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CA0C1E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paths.design/caws-cli",
|
|
3
|
-
"version": "11.1.
|
|
3
|
+
"version": "11.1.3",
|
|
4
4
|
"description": "CAWS CLI - the governed core for CAWS project state, scope, claims, gates, waivers, and evidence (v11.1). Restores canonical spec/worktree lifecycle on the vNext kernel/store/shell architecture.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -71,14 +71,14 @@ DENY_SEGMENT_PATTERNS: list[tuple[str, str]] = [
|
|
|
71
71
|
(r"\binit\s+[06]\b", "system runlevel change"),
|
|
72
72
|
# CAWS spec/policy/waiver protection (RC defect #8).
|
|
73
73
|
# Naked rm/mv on .caws/specs/, .caws/policy.yaml, or .caws/waivers/ bypasses
|
|
74
|
-
# the audit trail. Use `caws specs
|
|
74
|
+
# the audit trail. Use `caws specs close|archive`, `caws waiver revoke`,
|
|
75
75
|
# or edit policy.yaml in place via Edit (not Bash) instead.
|
|
76
76
|
(r"\b(rm|mv)\b[^\n]*\.caws/specs/[^\s'\"]*\.ya?ml\b",
|
|
77
|
-
"naked rm/mv on .caws/specs/*.yaml — use `caws specs
|
|
77
|
+
"naked rm/mv on .caws/specs/*.yaml — use `caws specs close|archive <id>`"),
|
|
78
78
|
(r"\b(rm|mv)\b[^\n]*\.caws/policy\.ya?ml\b",
|
|
79
79
|
"naked rm/mv on .caws/policy.yaml — policy is governed; use Edit and a CAWS waiver"),
|
|
80
80
|
(r"\b(rm|mv)\b[^\n]*\.caws/waivers/[^\s'\"]*\.ya?ml\b",
|
|
81
|
-
"naked rm/mv on .caws/waivers/*.yaml — use `caws
|
|
81
|
+
"naked rm/mv on .caws/waivers/*.yaml — use `caws waiver revoke <id>`"),
|
|
82
82
|
]
|
|
83
83
|
|
|
84
84
|
# Segment-level regex patterns that require user confirmation.
|