ctxr-cli 0.3.0 → 0.4.1
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/dist/adapters/harness/claude-code.d.ts +0 -6
- package/dist/adapters/harness/claude-code.d.ts.map +1 -1
- package/dist/adapters/harness/claude-code.js +44 -25
- package/dist/adapters/harness/claude-code.js.map +1 -1
- package/dist/adapters/types.d.ts +28 -9
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/commands/adapters-generate.d.ts.map +1 -1
- package/dist/commands/adapters-generate.js +16 -7
- package/dist/commands/adapters-generate.js.map +1 -1
- package/dist/commands/adapters-write-gate.d.ts +20 -0
- package/dist/commands/adapters-write-gate.d.ts.map +1 -0
- package/dist/commands/adapters-write-gate.js +77 -0
- package/dist/commands/adapters-write-gate.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +7 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/rollup-stale.d.ts.map +1 -1
- package/dist/commands/rollup-stale.js +1 -1
- package/dist/commands/rollup-stale.js.map +1 -1
- package/dist/commands/session-land.d.ts.map +1 -1
- package/dist/commands/session-land.js +55 -24
- package/dist/commands/session-land.js.map +1 -1
- package/dist/commands/session-reap.d.ts.map +1 -1
- package/dist/commands/session-reap.js +4 -0
- package/dist/commands/session-reap.js.map +1 -1
- package/dist/commands/verify.js +17 -17
- package/dist/commands/verify.js.map +1 -1
- package/dist/config/defaults.d.ts +4 -2
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +4 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.d.ts +20 -4
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +53 -4
- package/dist/config/schema.js.map +1 -1
- package/dist/core/agents-doc.d.ts +13 -9
- package/dist/core/agents-doc.d.ts.map +1 -1
- package/dist/core/agents-doc.js +69 -107
- package/dist/core/agents-doc.js.map +1 -1
- package/dist/core/checks/integrity-checks.d.ts +14 -0
- package/dist/core/checks/integrity-checks.d.ts.map +1 -1
- package/dist/core/checks/integrity-checks.js +77 -1
- package/dist/core/checks/integrity-checks.js.map +1 -1
- package/dist/core/conventions.d.ts +1 -1
- package/dist/core/errors.d.ts +9 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +18 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/git/repo.d.ts +10 -0
- package/dist/core/git/repo.d.ts.map +1 -1
- package/dist/core/git/repo.js +28 -0
- package/dist/core/git/repo.js.map +1 -1
- package/dist/core/git/worktree.d.ts +8 -0
- package/dist/core/git/worktree.d.ts.map +1 -1
- package/dist/core/git/worktree.js +11 -0
- package/dist/core/git/worktree.js.map +1 -1
- package/dist/core/hooks.d.ts +10 -0
- package/dist/core/hooks.d.ts.map +1 -1
- package/dist/core/hooks.js +37 -10
- package/dist/core/hooks.js.map +1 -1
- package/dist/core/json-config-merge.d.ts +26 -2
- package/dist/core/json-config-merge.d.ts.map +1 -1
- package/dist/core/json-config-merge.js +61 -7
- package/dist/core/json-config-merge.js.map +1 -1
- package/dist/core/markers.d.ts +7 -0
- package/dist/core/markers.d.ts.map +1 -1
- package/dist/core/markers.js +9 -0
- package/dist/core/markers.js.map +1 -1
- package/dist/core/migrations/registry.d.ts.map +1 -1
- package/dist/core/migrations/registry.js +2 -1
- package/dist/core/migrations/registry.js.map +1 -1
- package/dist/core/migrations/rename-procedures-path.d.ts +17 -0
- package/dist/core/migrations/rename-procedures-path.d.ts.map +1 -0
- package/dist/core/migrations/rename-procedures-path.js +45 -0
- package/dist/core/migrations/rename-procedures-path.js.map +1 -0
- package/dist/core/notes/list.d.ts.map +1 -1
- package/dist/core/notes/list.js +9 -5
- package/dist/core/notes/list.js.map +1 -1
- package/dist/core/reconcile.js +2 -2
- package/dist/core/reconcile.js.map +1 -1
- package/dist/core/rollup.d.ts +25 -2
- package/dist/core/rollup.d.ts.map +1 -1
- package/dist/core/rollup.js +51 -5
- package/dist/core/rollup.js.map +1 -1
- package/dist/core/{procedures.d.ts → skills.d.ts} +12 -12
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/{procedures.js → skills.js} +55 -41
- package/dist/core/skills.js.map +1 -0
- package/dist/core/templates.d.ts +20 -0
- package/dist/core/templates.d.ts.map +1 -0
- package/dist/core/templates.js +68 -0
- package/dist/core/templates.js.map +1 -0
- package/dist/core/write-lifecycle/path-gate.d.ts +28 -0
- package/dist/core/write-lifecycle/path-gate.d.ts.map +1 -1
- package/dist/core/write-lifecycle/path-gate.js +78 -22
- package/dist/core/write-lifecycle/path-gate.js.map +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +12 -1
- package/dist/run.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/templates/agents/canonical.md +26 -0
- package/templates/agents/capture-and-ingest.md +17 -0
- package/templates/agents/placement-no-layers.md +5 -0
- package/templates/agents/placement.md +7 -0
- package/templates/agents/retrieval-leg-routing.md +14 -0
- package/templates/agents/store-conventions-empty.md +7 -0
- package/templates/agents/store-conventions.md +7 -0
- package/templates/hooks/claude-code-write-gate.sh +15 -0
- package/templates/skills/ctxr-connection-finding.md +1 -1
- package/templates/skills/ctxr-ingest-orchestration.md +1 -1
- package/templates/skills/ctxr-land.md +11 -6
- package/templates/skills/ctxr-mission.md +36 -0
- package/templates/skills/ctxr-session-lifecycle.md +1 -2
- package/dist/core/procedures.d.ts.map +0 -1
- package/dist/core/procedures.js.map +0 -1
|
@@ -5,7 +5,7 @@ import { isInteractive } from '../core/env.js';
|
|
|
5
5
|
import { MergeNotConfirmedError, NoForgeConfiguredError, PullRequestClosedError, PullRequestHeadMismatchError, PullRequestNotMergeableError, SessionLandConsentRequiredError, SessionLandOnDefaultBranchError, } from '../core/errors.js';
|
|
6
6
|
import { ExitCode } from '../core/exit-codes.js';
|
|
7
7
|
import { currentBranch } from '../core/git/repo.js';
|
|
8
|
-
import { fetchOrigin, listWorktrees, removeWorktree, deleteBranch, hasRemote } from '../core/git/worktree.js';
|
|
8
|
+
import { fetchOrigin, listWorktrees, mainWorktreePath, removeWorktree, deleteBranch, hasRemote } from '../core/git/worktree.js';
|
|
9
9
|
import { isWorkingTreeClean } from '../core/git/repo.js';
|
|
10
10
|
import { isSessionBranch, isSessionWorktreePath } from '../core/session.js';
|
|
11
11
|
export const requires = { store: 'required' };
|
|
@@ -23,19 +23,31 @@ export async function execute(env, store, flags, registry = BUILTIN_ADAPTERS) {
|
|
|
23
23
|
throw new SessionLandConsentRequiredError();
|
|
24
24
|
}
|
|
25
25
|
const defaultBranch = store.config.git.default_branch;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
// The target comes from exactly one source: --branch names it outright,
|
|
27
|
+
// --pr defers to the pull request's head branch, and with neither it is the
|
|
28
|
+
// branch checked out where the command was invoked. Only the first two are
|
|
29
|
+
// knowable without the forge, so only they can be refused before contacting it.
|
|
30
|
+
const requested = flags.branch ?? (flags.pr === undefined ? await currentBranch(env.git, store.root) : undefined);
|
|
31
|
+
if (requested === defaultBranch) {
|
|
32
|
+
throw new SessionLandOnDefaultBranchError(requested);
|
|
29
33
|
}
|
|
30
34
|
const [forgeAdapter] = configuredAdapters(store.config, 'forge', registry);
|
|
31
35
|
if (!forgeAdapter || !(await forgeAdapter.isAvailable(store.root))) {
|
|
32
36
|
throw new NoForgeConfiguredError();
|
|
33
37
|
}
|
|
34
|
-
const ref = flags.pr !== undefined ? String(flags.pr) :
|
|
38
|
+
const ref = flags.pr !== undefined ? String(flags.pr) : requested;
|
|
35
39
|
let pr = await forgeAdapter.pullRequest(store.root, ref);
|
|
36
|
-
if (
|
|
37
|
-
|
|
40
|
+
if (requested === undefined) {
|
|
41
|
+
// The target IS the head branch, so there is nothing to mismatch — but the
|
|
42
|
+
// default branch is still refused, now on the branch the forge reported.
|
|
43
|
+
if (pr.headBranch === defaultBranch) {
|
|
44
|
+
throw new SessionLandOnDefaultBranchError(pr.headBranch);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (pr.headBranch !== requested) {
|
|
48
|
+
throw new PullRequestHeadMismatchError(requested, pr.headBranch);
|
|
38
49
|
}
|
|
50
|
+
const branch = requested ?? pr.headBranch;
|
|
39
51
|
let merged = pr.state === 'merged';
|
|
40
52
|
let gate = 'not_required';
|
|
41
53
|
if (pr.state === 'closed') {
|
|
@@ -62,38 +74,43 @@ export async function execute(env, store, flags, registry = BUILTIN_ADAPTERS) {
|
|
|
62
74
|
pr = after;
|
|
63
75
|
merged = true;
|
|
64
76
|
}
|
|
65
|
-
const
|
|
66
|
-
const
|
|
77
|
+
const clone = await mainWorktreePath(env.git, store.root);
|
|
78
|
+
const sync = await syncCanonicalClone(env, clone, defaultBranch);
|
|
79
|
+
const reap = await reapWorktree(env, store, clone, branch, flags.reap ?? false);
|
|
67
80
|
return outcome(store, branch, pr, gate, merged, sync, reap);
|
|
68
81
|
}
|
|
69
82
|
function gateMessage(pr) {
|
|
70
83
|
return `PR #${pr.number} "${pr.title}" (${pr.url}) — OPEN, MERGEABLE. Merge?`;
|
|
71
84
|
}
|
|
72
|
-
/**
|
|
73
|
-
|
|
74
|
-
|
|
85
|
+
/**
|
|
86
|
+
* D2: fast-forward only, in the store's canonical clone — the checkout the
|
|
87
|
+
* default branch lives in, whichever checkout the command was invoked from
|
|
88
|
+
* (a session worktree, most often). Never checked out, reset, or discarded.
|
|
89
|
+
*/
|
|
90
|
+
async function syncCanonicalClone(env, clone, defaultBranch) {
|
|
91
|
+
const branch = await currentBranch(env.git, clone);
|
|
75
92
|
if (branch !== defaultBranch) {
|
|
76
|
-
return { attempted: false, synced: false, reason:
|
|
93
|
+
return { attempted: false, synced: false, reason: `the canonical clone (${clone}) is not on the default branch` };
|
|
77
94
|
}
|
|
78
|
-
if (!(await hasRemote(env.git,
|
|
95
|
+
if (!(await hasRemote(env.git, clone))) {
|
|
79
96
|
return { attempted: false, synced: false, reason: 'no remote configured' };
|
|
80
97
|
}
|
|
81
|
-
const fetched = await fetchOrigin(env.git,
|
|
98
|
+
const fetched = await fetchOrigin(env.git, clone, defaultBranch);
|
|
82
99
|
if (!fetched) {
|
|
83
100
|
return { attempted: true, synced: false, reason: 'fetch failed' };
|
|
84
101
|
}
|
|
85
|
-
const merge = await env.git.run(['merge', '--ff-only', `origin/${defaultBranch}`], { cwd:
|
|
102
|
+
const merge = await env.git.run(['merge', '--ff-only', `origin/${defaultBranch}`], { cwd: clone, allowFailure: true });
|
|
86
103
|
if (merge.exitCode !== 0) {
|
|
87
104
|
return { attempted: true, synced: false, reason: 'cannot fast-forward (diverged from origin)' };
|
|
88
105
|
}
|
|
89
106
|
return { attempted: true, synced: true };
|
|
90
107
|
}
|
|
91
108
|
/** D3: opt-in, and scoped to a worktree `session start` made — never the one this command is currently running from. */
|
|
92
|
-
async function reapWorktree(env, store, branch, requested) {
|
|
109
|
+
async function reapWorktree(env, store, clone, branch, requested) {
|
|
93
110
|
if (!requested) {
|
|
94
111
|
return { attempted: false, reaped: false, reason: 'pass --reap, or run `ctxr session reap`' };
|
|
95
112
|
}
|
|
96
|
-
const worktrees = await listWorktrees(env.git,
|
|
113
|
+
const worktrees = await listWorktrees(env.git, clone);
|
|
97
114
|
const target = worktrees.find((w) => w.branch === branch);
|
|
98
115
|
if (!target) {
|
|
99
116
|
return { attempted: true, reaped: false, reason: 'no worktree found for this branch' };
|
|
@@ -101,26 +118,40 @@ async function reapWorktree(env, store, branch, requested) {
|
|
|
101
118
|
if (!isSessionBranch(store.config, branch) && !isSessionWorktreePath(store.config, target.path)) {
|
|
102
119
|
return { attempted: true, reaped: false, reason: 'not a session worktree' };
|
|
103
120
|
}
|
|
104
|
-
|
|
121
|
+
// The hazard is the INVOKING directory, not the resolved store root: removing
|
|
122
|
+
// the worktree this process stands in pulls the caller's cwd out from under it.
|
|
123
|
+
if (isInside(env.cwd, target.path)) {
|
|
105
124
|
return {
|
|
106
125
|
attempted: true,
|
|
107
126
|
reaped: false,
|
|
108
|
-
reason:
|
|
127
|
+
reason: `cannot remove the worktree this command is running from; re-run from the canonical clone (${clone}), or run \`ctxr session reap\` there`,
|
|
109
128
|
};
|
|
110
129
|
}
|
|
111
130
|
if (!(await isWorkingTreeClean(env.git, target.path))) {
|
|
112
131
|
return { attempted: true, reaped: false, reason: 'worktree has uncommitted changes' };
|
|
113
132
|
}
|
|
114
|
-
await removeWorktree(env.git,
|
|
115
|
-
await deleteBranch(env.git,
|
|
133
|
+
await removeWorktree(env.git, clone, target.path);
|
|
134
|
+
await deleteBranch(env.git, clone, branch);
|
|
116
135
|
return { attempted: true, reaped: true };
|
|
117
136
|
}
|
|
137
|
+
/** True when `dir` IS `parent` or lies anywhere beneath it. */
|
|
138
|
+
function isInside(dir, parent) {
|
|
139
|
+
const resolved = path.resolve(dir);
|
|
140
|
+
const root = path.resolve(parent);
|
|
141
|
+
return resolved === root || resolved.startsWith(root + path.sep);
|
|
142
|
+
}
|
|
143
|
+
/** A step that did not happen names why, whether or not it was attempted — `attempted` stays on the JSON outcome for callers that distinguish the two. */
|
|
144
|
+
function stepSummary(done, reason) {
|
|
145
|
+
if (done)
|
|
146
|
+
return 'ok';
|
|
147
|
+
return reason ? `skipped: ${reason}` : 'not attempted';
|
|
148
|
+
}
|
|
118
149
|
function outcome(store, branch, pr, gate, merged, sync, reap) {
|
|
119
150
|
const summary = gate === 'declined'
|
|
120
151
|
? `Merge declined for PR #${pr.number}; nothing landed.`
|
|
121
152
|
: `PR #${pr.number} ${merged ? 'merged' : 'not merged'}` +
|
|
122
|
-
`; sync ${sync.synced
|
|
123
|
-
`; reap ${reap.reaped
|
|
153
|
+
`; sync ${stepSummary(sync.synced, sync.reason)}` +
|
|
154
|
+
`; reap ${stepSummary(reap.reaped, reap.reason)}.`;
|
|
124
155
|
return {
|
|
125
156
|
exitCode: ExitCode.Ok,
|
|
126
157
|
data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-land.js","sourceRoot":"","sources":["../../src/commands/session-land.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAe,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-land.js","sourceRoot":"","sources":["../../src/commands/session-land.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-reap.d.ts","sourceRoot":"","sources":["../../src/commands/session-reap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-reap.d.ts","sourceRoot":"","sources":["../../src/commands/session-reap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAM7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAiDjG"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SessionReapWorkspacesExternalError } from '../core/errors.js';
|
|
1
2
|
import { ExitCode } from '../core/exit-codes.js';
|
|
2
3
|
import { isWorkingTreeClean } from '../core/git/repo.js';
|
|
3
4
|
import { deleteBranch, listWorktrees, removeWorktree } from '../core/git/worktree.js';
|
|
@@ -11,6 +12,9 @@ export const requires = { store: 'required' };
|
|
|
11
12
|
* conservative reap that only ever touches provably-safe sessions.
|
|
12
13
|
*/
|
|
13
14
|
export async function execute(env, store) {
|
|
15
|
+
if (store.config.session.workspaces_external) {
|
|
16
|
+
throw new SessionReapWorkspacesExternalError();
|
|
17
|
+
}
|
|
14
18
|
const worktrees = await listWorktrees(env.git, store.root);
|
|
15
19
|
const sessions = worktrees.filter((w) => w.branch !== null &&
|
|
16
20
|
(isSessionBranch(store.config, w.branch) || isSessionWorktreePath(store.config, w.path)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-reap.js","sourceRoot":"","sources":["../../src/commands/session-reap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-reap.js","sourceRoot":"","sources":["../../src/commands/session-reap.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/verify.js
CHANGED
|
@@ -7,9 +7,9 @@ import { ExitCode } from '../core/exit-codes.js';
|
|
|
7
7
|
import { buildGraphFromNotes, graphBuildOptions } from '../core/graph/model.js';
|
|
8
8
|
import { writeGraph } from '../core/graph/persist.js';
|
|
9
9
|
import { listNotes } from '../core/notes/list.js';
|
|
10
|
-
import {
|
|
10
|
+
import { scanSkills } from '../core/skills.js';
|
|
11
11
|
export const requires = { store: 'required' };
|
|
12
|
-
function
|
|
12
|
+
function skillIndexEntry(name, relativePath) {
|
|
13
13
|
return `[${name}](${relativePath})`;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
@@ -51,49 +51,49 @@ export async function execute(store, _flags = {}) {
|
|
|
51
51
|
});
|
|
52
52
|
return finish(store, steps);
|
|
53
53
|
}
|
|
54
|
-
// 3. Follow one
|
|
55
|
-
//
|
|
54
|
+
// 3. Follow one skill via the AGENTS.md index: every canonical skill
|
|
55
|
+
// must have an index entry, and at least one must be readable.
|
|
56
56
|
let agentsMdContent;
|
|
57
57
|
try {
|
|
58
58
|
agentsMdContent = await readFile(agentsMdPath(store.root), 'utf8');
|
|
59
59
|
}
|
|
60
60
|
catch (err) {
|
|
61
61
|
steps.push({
|
|
62
|
-
operation: '
|
|
62
|
+
operation: 'skill index (AGENTS.md)',
|
|
63
63
|
status: 'fail',
|
|
64
64
|
detail: err instanceof Error ? err.message : String(err),
|
|
65
65
|
});
|
|
66
66
|
return finish(store, steps);
|
|
67
67
|
}
|
|
68
|
-
// entry-doc-generation spec: the index must cover every
|
|
69
|
-
//
|
|
70
|
-
const
|
|
71
|
-
for (const
|
|
72
|
-
if (!agentsMdContent.includes(
|
|
68
|
+
// entry-doc-generation spec: the index must cover every skill actually on
|
|
69
|
+
// disk — shipped seeds and operator-added files alike.
|
|
70
|
+
const skills = await scanSkills(store.root, store.config);
|
|
71
|
+
for (const skill of skills) {
|
|
72
|
+
if (!agentsMdContent.includes(skillIndexEntry(skill.title, skill.path))) {
|
|
73
73
|
steps.push({
|
|
74
|
-
operation: `
|
|
74
|
+
operation: `skill index entry for "${skill.title}"`,
|
|
75
75
|
status: 'fail',
|
|
76
|
-
detail: `AGENTS.md's
|
|
76
|
+
detail: `AGENTS.md's skill index has no entry for "${skill.title}".`,
|
|
77
77
|
});
|
|
78
78
|
return finish(store, steps);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
-
const first =
|
|
81
|
+
const first = skills[0];
|
|
82
82
|
if (!first) {
|
|
83
83
|
steps.push({
|
|
84
|
-
operation: 'follow a
|
|
84
|
+
operation: 'follow a skill',
|
|
85
85
|
status: 'fail',
|
|
86
|
-
detail: `No
|
|
86
|
+
detail: `No skill files exist at "${store.config.harness.skills_path}".`,
|
|
87
87
|
});
|
|
88
88
|
return finish(store, steps);
|
|
89
89
|
}
|
|
90
90
|
try {
|
|
91
91
|
await readFile(path.join(store.root, first.path), 'utf8');
|
|
92
|
-
steps.push({ operation: `follow
|
|
92
|
+
steps.push({ operation: `follow skill "${first.title}"`, status: 'pass' });
|
|
93
93
|
}
|
|
94
94
|
catch (err) {
|
|
95
95
|
steps.push({
|
|
96
|
-
operation: `follow
|
|
96
|
+
operation: `follow skill "${first.title}"`,
|
|
97
97
|
status: 'fail',
|
|
98
98
|
detail: err instanceof Error ? err.message : String(err),
|
|
99
99
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export declare const DEFAULT_VISIBILITY_CONTEXT = "private";
|
|
|
25
25
|
/**
|
|
26
26
|
* context-store spec (contexture-home-layout): `.contexture/` is the tool's
|
|
27
27
|
* home directory. Only its cache subpath is derived/gitignored — the
|
|
28
|
-
* catalog and
|
|
28
|
+
* catalog and skill subdirectories are authored-but-tool-owned and stay
|
|
29
29
|
* tracked.
|
|
30
30
|
*/
|
|
31
31
|
export declare const DEFAULT_DERIVED_PATHS: readonly ['.contexture/cache/'];
|
|
@@ -35,7 +35,7 @@ export declare const DEFAULT_DERIVED_PATHS: readonly ['.contexture/cache/'];
|
|
|
35
35
|
* harnesses with skill auto-discovery read — one file, one hop. A store
|
|
36
36
|
* driven by another harness points this at that harness's skills directory.
|
|
37
37
|
*/
|
|
38
|
-
export declare const
|
|
38
|
+
export declare const DEFAULT_SKILLS_PATH = ".claude/skills/";
|
|
39
39
|
/** harness-portability spec (entry-doc-generation): operator-authored convention docs, indexed by AGENTS.md. */
|
|
40
40
|
export declare const DEFAULT_CONVENTIONS_PATH = ".contexture/conventions/";
|
|
41
41
|
/** Paths excluded from every retrieval leg by default. */
|
|
@@ -53,6 +53,8 @@ export declare const DEFAULT_GRAPH_SETTINGS: {
|
|
|
53
53
|
export declare const DEFAULT_WORKTREES_PATH = ".worktrees/";
|
|
54
54
|
/** Branch names for session worktrees are prefixed so they're recognizable and sweep-safe. */
|
|
55
55
|
export declare const DEFAULT_SESSION_BRANCH_PREFIX = "session/";
|
|
56
|
+
/** write-lifecycle spec: worktrees are ctxr-owned (not externally provided) unless a store opts in. */
|
|
57
|
+
export declare const DEFAULT_WORKSPACES_EXTERNAL = false;
|
|
56
58
|
/** write-lifecycle spec: pre-commit's diff-size ceiling, in total changed lines. */
|
|
57
59
|
export declare const DEFAULT_DIFF_SIZE_CEILING_LINES = 2000;
|
|
58
60
|
/** context-catalog spec: where per-section catalog files live — tracked (never gitignored), since glosses are authored. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,SAAS,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,UAAU,CAAC;AAEtD,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,YAAY,CAAC;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,YAAI,oBAAoB,CAAU,CAAC;AAErE;;;;;GAKG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,SAAS,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,UAAU,CAAC;AAEtD,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,YAAY,CAAC;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,YAAI,oBAAoB,CAAU,CAAC;AAErE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD,gHAAgH;AAChH,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,YAAI,cAAc,CAAU,CAAC;AAE/D,oHAAoH;AACpH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAO,CAAC;AAEvD,8HAA8H;AAC9H,eAAO,MAAM,sBAAsB;IACjC,aAAa;IACb,OAAO;IACP,UAAU;IACV,sBAAsB,EAAQ,MAAM,EAAE;CACvC,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AAEpD,8FAA8F;AAC9F,eAAO,MAAM,6BAA6B,aAAa,CAAC;AAExD,uGAAuG;AACvG,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD,oFAAoF;AACpF,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAEpD,2HAA2H;AAC3H,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,6GAA6G;AAC7G,eAAO,MAAM,iCAAiC,QAAY,CAAC;AAE3D,8JAA8J;AAC9J,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAAO,CAAC;AAChE,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAAO,CAAC;AAEhE,uGAAuG;AACvG,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,gJAAgJ;AAChJ,eAAO,MAAM,uBAAuB,UAA6F,CAAC;AAElI,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C,iHAAiH;AACjH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,kBAAkB,EAGzD,CAAC"}
|
package/dist/config/defaults.js
CHANGED
|
@@ -24,7 +24,7 @@ export const DEFAULT_VISIBILITY_CONTEXT = 'private';
|
|
|
24
24
|
/**
|
|
25
25
|
* context-store spec (contexture-home-layout): `.contexture/` is the tool's
|
|
26
26
|
* home directory. Only its cache subpath is derived/gitignored — the
|
|
27
|
-
* catalog and
|
|
27
|
+
* catalog and skill subdirectories are authored-but-tool-owned and stay
|
|
28
28
|
* tracked.
|
|
29
29
|
*/
|
|
30
30
|
export const DEFAULT_DERIVED_PATHS = ['.contexture/cache/'];
|
|
@@ -34,7 +34,7 @@ export const DEFAULT_DERIVED_PATHS = ['.contexture/cache/'];
|
|
|
34
34
|
* harnesses with skill auto-discovery read — one file, one hop. A store
|
|
35
35
|
* driven by another harness points this at that harness's skills directory.
|
|
36
36
|
*/
|
|
37
|
-
export const
|
|
37
|
+
export const DEFAULT_SKILLS_PATH = '.claude/skills/';
|
|
38
38
|
/** harness-portability spec (entry-doc-generation): operator-authored convention docs, indexed by AGENTS.md. */
|
|
39
39
|
export const DEFAULT_CONVENTIONS_PATH = '.contexture/conventions/';
|
|
40
40
|
/** Paths excluded from every retrieval leg by default. */
|
|
@@ -52,6 +52,8 @@ export const DEFAULT_GRAPH_SETTINGS = {
|
|
|
52
52
|
export const DEFAULT_WORKTREES_PATH = '.worktrees/';
|
|
53
53
|
/** Branch names for session worktrees are prefixed so they're recognizable and sweep-safe. */
|
|
54
54
|
export const DEFAULT_SESSION_BRANCH_PREFIX = 'session/';
|
|
55
|
+
/** write-lifecycle spec: worktrees are ctxr-owned (not externally provided) unless a store opts in. */
|
|
56
|
+
export const DEFAULT_WORKSPACES_EXTERNAL = false;
|
|
55
57
|
/** write-lifecycle spec: pre-commit's diff-size ceiling, in total changed lines. */
|
|
56
58
|
export const DEFAULT_DIFF_SIZE_CEILING_LINES = 2000;
|
|
57
59
|
/** context-catalog spec: where per-section catalog files live — tracked (never gitignored), since glosses are authored. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,OAAO,CAAC;AAEtD,gFAAgF;AAChF,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,oBAAoB,CAAU,CAAC;AAErE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,OAAO,CAAC;AAEtD,gFAAgF;AAChF,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,oBAAoB,CAAU,CAAC;AAErE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAErD,gHAAgH;AAChH,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAEnE,0DAA0D;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,cAAc,CAAU,CAAC;AAE/D,oHAAoH;AACpH,MAAM,CAAC,MAAM,iBAAiB,GAAsB,EAAE,CAAC;AAEvD,8HAA8H;AAC9H,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,EAAE;IACd,sBAAsB,EAAE,EAAc;CACvC,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC;AAEpD,8FAA8F;AAC9F,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;AAExD,uGAAuG;AACvG,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAEjD,oFAAoF;AACpF,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAEpD,2HAA2H;AAC3H,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D,6GAA6G;AAC7G,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3D,8JAA8J;AAC9J,MAAM,CAAC,MAAM,0BAA0B,GAAsB,EAAE,CAAC;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAA8B,EAAE,CAAC;AAEhE,uGAAuG;AACvG,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C,gJAAgJ;AAChJ,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAElI,4FAA4F;AAC5F,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE/C,iHAAiH;AACjH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAkC;IAC7D,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/B,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE;CAClD,CAAC"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -10,8 +10,14 @@ import { z } from 'zod';
|
|
|
10
10
|
* is "a config-default change plus a migration, never a spec or code
|
|
11
11
|
* rewrite" (design.md D7): every consumer already reads
|
|
12
12
|
* config.fields.visibility, never a literal key, so nothing else changed.
|
|
13
|
+
*
|
|
14
|
+
* Bumped to 3 by the procedures-to-skills key rename migration
|
|
15
|
+
* (rename-procedures-to-skills, 0003-rename-procedures-path-to-skills):
|
|
16
|
+
* `harness.procedures_path` -> `harness.skills_path`. HarnessSchema's
|
|
17
|
+
* transform accepts the old key through this version so an unmigrated
|
|
18
|
+
* store still loads (see schema.ts's HarnessSchema comment).
|
|
13
19
|
*/
|
|
14
|
-
export declare const SUPPORTED_SCHEMA_VERSION =
|
|
20
|
+
export declare const SUPPORTED_SCHEMA_VERSION = 3;
|
|
15
21
|
export declare const TaxonomyLayerSchema: z.ZodObject<{
|
|
16
22
|
name: z.ZodString;
|
|
17
23
|
path: z.ZodString;
|
|
@@ -91,6 +97,7 @@ export declare const StoreConfigSchema: z.ZodObject<{
|
|
|
91
97
|
session: z.ZodObject<{
|
|
92
98
|
branch_prefix: z.ZodString;
|
|
93
99
|
worktrees_path: z.ZodString;
|
|
100
|
+
workspaces_external: z.ZodDefault<z.ZodBoolean>;
|
|
94
101
|
}, z.core.$strip>;
|
|
95
102
|
write_lifecycle: z.ZodObject<{
|
|
96
103
|
diff_size_ceiling_lines: z.ZodNumber;
|
|
@@ -121,11 +128,20 @@ export declare const StoreConfigSchema: z.ZodObject<{
|
|
|
121
128
|
organize: z.ZodObject<{
|
|
122
129
|
archive_path: z.ZodString;
|
|
123
130
|
rollup_stale_days: z.ZodDefault<z.ZodNumber>;
|
|
131
|
+
mission_path: z.ZodOptional<z.ZodString>;
|
|
124
132
|
}, z.core.$strip>;
|
|
125
|
-
harness: z.ZodObject<{
|
|
126
|
-
|
|
133
|
+
harness: z.ZodPipe<z.ZodObject<{
|
|
134
|
+
skills_path: z.ZodOptional<z.ZodString>;
|
|
135
|
+
procedures_path: z.ZodOptional<z.ZodString>;
|
|
127
136
|
conventions_path: z.ZodDefault<z.ZodString>;
|
|
128
|
-
}, z.core.$strip
|
|
137
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
138
|
+
skills_path: string;
|
|
139
|
+
conventions_path: string;
|
|
140
|
+
}, {
|
|
141
|
+
skills_path?: string | undefined;
|
|
142
|
+
procedures_path?: string | undefined;
|
|
143
|
+
conventions_path: string;
|
|
144
|
+
}>>;
|
|
129
145
|
adapters: z.ZodArray<z.ZodObject<{
|
|
130
146
|
id: z.ZodString;
|
|
131
147
|
kind: z.ZodEnum<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAqCH;;;;;;GAMG;AACH,QAAA,MAAM,mBAAmB;;;;;iBAKvB,CAAC;AA2CH;;;;;GAKG;AACH,QAAA,MAAM,cAAc;;;;;;;;;iBAQlB,CAAC;AA0EH,QAAA,MAAM,wBAAwB;;;;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBd,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACtE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
package/dist/config/schema.js
CHANGED
|
@@ -10,8 +10,14 @@ import { z } from 'zod';
|
|
|
10
10
|
* is "a config-default change plus a migration, never a spec or code
|
|
11
11
|
* rewrite" (design.md D7): every consumer already reads
|
|
12
12
|
* config.fields.visibility, never a literal key, so nothing else changed.
|
|
13
|
+
*
|
|
14
|
+
* Bumped to 3 by the procedures-to-skills key rename migration
|
|
15
|
+
* (rename-procedures-to-skills, 0003-rename-procedures-path-to-skills):
|
|
16
|
+
* `harness.procedures_path` -> `harness.skills_path`. HarnessSchema's
|
|
17
|
+
* transform accepts the old key through this version so an unmigrated
|
|
18
|
+
* store still loads (see schema.ts's HarnessSchema comment).
|
|
13
19
|
*/
|
|
14
|
-
export const SUPPORTED_SCHEMA_VERSION =
|
|
20
|
+
export const SUPPORTED_SCHEMA_VERSION = 3;
|
|
15
21
|
export const TaxonomyLayerSchema = z.object({
|
|
16
22
|
name: z.string().min(1),
|
|
17
23
|
path: z.string().min(1),
|
|
@@ -76,9 +82,17 @@ const RetrievalSchema = z.object({
|
|
|
76
82
|
const GitSchema = z.object({
|
|
77
83
|
default_branch: z.string().min(1),
|
|
78
84
|
});
|
|
85
|
+
/**
|
|
86
|
+
* write-lifecycle spec: `workspaces_external: true` marks a store whose
|
|
87
|
+
* session worktrees are created/removed by a process outside `ctxr` (e.g. an
|
|
88
|
+
* external agent-runtime WebUI) — `ctxr session reap` refuses to run rather
|
|
89
|
+
* than touch a worktree it does not own. Defaults to `false`, the prior
|
|
90
|
+
* behavior, for every store that does not set it.
|
|
91
|
+
*/
|
|
79
92
|
const SessionSchema = z.object({
|
|
80
93
|
branch_prefix: z.string().min(1),
|
|
81
94
|
worktrees_path: z.string().min(1),
|
|
95
|
+
workspaces_external: z.boolean().default(false),
|
|
82
96
|
});
|
|
83
97
|
/** session-capture-command spec (D5): declaring any path here turns the sanctioned-location gate on; empty (the default) leaves every in-store path accepted. */
|
|
84
98
|
const WriteLifecycleSchema = z.object({
|
|
@@ -123,11 +137,46 @@ const OrganizeSchema = z.object({
|
|
|
123
137
|
archive_path: z.string().min(1),
|
|
124
138
|
/** store-primitives-from-migration-audit spec (D4): the grace period, in days, before a stale rollup is reported — bounds noise from a backlink edited moments ago. */
|
|
125
139
|
rollup_stale_days: z.number().int().nonnegative().default(7),
|
|
140
|
+
/**
|
|
141
|
+
* context-organize spec: the store's standing current-state document
|
|
142
|
+
* (priorities, active builds, back burner, sunset candidates, debt).
|
|
143
|
+
* Unset by default — no mission mechanism until an operator opts in.
|
|
144
|
+
* Content is written via `ctxr rollup write` exactly like an entity
|
|
145
|
+
* rollup; `ctxr rollup stale` reports this one path stale on elapsed
|
|
146
|
+
* time rather than backlinks (see `checkMissionStaleness`).
|
|
147
|
+
*/
|
|
148
|
+
mission_path: z.string().min(1).optional(),
|
|
126
149
|
});
|
|
127
|
-
/**
|
|
128
|
-
|
|
129
|
-
|
|
150
|
+
/**
|
|
151
|
+
* harness-portability spec: the portable skill pack and operator convention
|
|
152
|
+
* docs AGENTS.md's indexes point into.
|
|
153
|
+
*
|
|
154
|
+
* rename-procedures-to-skills migration (0003): `skills_path` is the
|
|
155
|
+
* current key; `procedures_path` is its pre-migration name, accepted here
|
|
156
|
+
* so a store on schema 2 still loads (with a message pointing at `ctxr
|
|
157
|
+
* migrate`, not a raw shape-validation error) rather than failing the
|
|
158
|
+
* moment this schema starts requiring the new key. The transform below is
|
|
159
|
+
* the ONLY place either spelling is read — every other consumer in the
|
|
160
|
+
* codebase sees `config.harness.skills_path` and nothing else, so the old
|
|
161
|
+
* key never leaks past config loading.
|
|
162
|
+
*/
|
|
163
|
+
const HarnessSchema = z
|
|
164
|
+
.object({
|
|
165
|
+
skills_path: z.string().min(1).optional(),
|
|
166
|
+
procedures_path: z.string().min(1).optional(),
|
|
130
167
|
conventions_path: z.string().min(1).default('.contexture/conventions/'),
|
|
168
|
+
})
|
|
169
|
+
.transform((value, ctx) => {
|
|
170
|
+
const skillsPath = value.skills_path ?? value.procedures_path;
|
|
171
|
+
if (skillsPath === undefined) {
|
|
172
|
+
ctx.addIssue({
|
|
173
|
+
code: z.ZodIssueCode.custom,
|
|
174
|
+
path: ['skills_path'],
|
|
175
|
+
message: 'harness.skills_path is missing. If this store predates the skills-path rename, run `ctxr migrate`.',
|
|
176
|
+
});
|
|
177
|
+
return z.NEVER;
|
|
178
|
+
}
|
|
179
|
+
return { skills_path: skillsPath, conventions_path: value.conventions_path };
|
|
131
180
|
});
|
|
132
181
|
/**
|
|
133
182
|
* adapters spec: the one declared-registration mechanism shared by every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|