@aacombarro89/praxis 0.1.11 → 0.1.13
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 +28 -0
- package/dist/anchors.d.ts +17 -1
- package/dist/anchors.js +65 -4
- package/dist/anchors.js.map +1 -1
- package/dist/emit.js +5 -1
- package/dist/emit.js.map +1 -1
- package/dist/init.d.ts +11 -3
- package/dist/init.js +55 -4
- package/dist/init.js.map +1 -1
- package/dist/manifest.d.ts +48 -0
- package/dist/manifest.js +139 -0
- package/dist/manifest.js.map +1 -1
- package/dist/packages.d.ts +1 -0
- package/dist/packages.js +14 -1
- package/dist/packages.js.map +1 -1
- package/dist/program.d.ts +18 -0
- package/dist/program.js +129 -34
- package/dist/program.js.map +1 -1
- package/package.json +1 -1
- package/packages/layer2/workspace/commands/workspace-upkeep.md +56 -0
- package/packages/layer2/workspace/package.yaml +14 -0
- package/packages/layer2/workspace/rules.md +17 -0
package/dist/manifest.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
|
+
import { basename, isAbsolute, join } from "node:path";
|
|
2
3
|
import { parse as parseYaml } from "yaml";
|
|
3
4
|
import { z } from "zod";
|
|
4
5
|
/**
|
|
@@ -16,7 +17,111 @@ export const METHODOLOGY_VERSION = "0.1.0";
|
|
|
16
17
|
// Emit targets with an implemented emitter. Grows as emitters are added.
|
|
17
18
|
export const TARGETS = ["claude-code", "codex", "agents-md"];
|
|
18
19
|
// Stacks Praxis knows. Grows as Layer 2 stacks are added.
|
|
20
|
+
// NOTE: "workspace" (D53) is deliberately NOT a member of this enum — it is a
|
|
21
|
+
// repo trait *derived* from the manifest's `workspace:` section below, never
|
|
22
|
+
// something a user declares in `stacks:`. See the package-side vocabulary in
|
|
23
|
+
// src/packages.ts, which does add it (packages may target it; manifests may not).
|
|
19
24
|
export const STACKS = ["python-backend", "node", "react"];
|
|
25
|
+
/** A repo-relative directory (no leading "/", no ".." segment) — the same
|
|
26
|
+
* sandbox rule as `safeRepoTarget` in src/anchors.ts, duplicated here because
|
|
27
|
+
* manifest validation has no `cwd` to resolve against (shape check only). */
|
|
28
|
+
function isSafeRelativePath(target) {
|
|
29
|
+
if (isAbsolute(target))
|
|
30
|
+
return false;
|
|
31
|
+
return !target.split(/[\\/]+/).includes("..");
|
|
32
|
+
}
|
|
33
|
+
/** True when member path `a`'s segments are a prefix of (or equal to) `b`'s —
|
|
34
|
+
* i.e. `b` lives inside (or is) `a`'s directory. Used to reject overlapping
|
|
35
|
+
* workspace members ("a" and "a/b" can't both be cloned independently). */
|
|
36
|
+
function pathsOverlap(a, b) {
|
|
37
|
+
const segsA = a.split(/[\\/]+/).filter(Boolean);
|
|
38
|
+
const segsB = b.split(/[\\/]+/).filter(Boolean);
|
|
39
|
+
const [shorter, longer] = segsA.length <= segsB.length ? [segsA, segsB] : [segsB, segsA];
|
|
40
|
+
return shorter.every((seg, i) => seg === longer[i]);
|
|
41
|
+
}
|
|
42
|
+
const memberSchema = z.strictObject({
|
|
43
|
+
// Repo-relative dir under the hub root where this member is cloned.
|
|
44
|
+
path: z.string().min(1),
|
|
45
|
+
// Defaults to basename(path) — see `memberName` below.
|
|
46
|
+
name: z.string().min(1).optional(),
|
|
47
|
+
});
|
|
48
|
+
const edgeSchema = z.strictObject({
|
|
49
|
+
from: z.string().min(1),
|
|
50
|
+
to: z.string().min(1),
|
|
51
|
+
// Optional hub-wiki page describing the producer/consumer contract. Shape
|
|
52
|
+
// only is validated here; existence is advisory in `check`, never a hard
|
|
53
|
+
// failure — an edge can be declared before its page is written.
|
|
54
|
+
contract: z.string().min(1).optional(),
|
|
55
|
+
});
|
|
56
|
+
export const workspaceSchema = z
|
|
57
|
+
.strictObject({
|
|
58
|
+
members: z.array(memberSchema).min(1),
|
|
59
|
+
edges: z.array(edgeSchema).default([]),
|
|
60
|
+
})
|
|
61
|
+
.superRefine((workspace, ctx) => {
|
|
62
|
+
const seenNames = new Map();
|
|
63
|
+
workspace.members.forEach((member, i) => {
|
|
64
|
+
if (!isSafeRelativePath(member.path)) {
|
|
65
|
+
ctx.addIssue({
|
|
66
|
+
code: z.ZodIssueCode.custom,
|
|
67
|
+
path: ["members", i, "path"],
|
|
68
|
+
message: `member path "${member.path}" must be repo-relative, without a leading "/" or a ".." segment`,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
const name = memberName(member);
|
|
72
|
+
const seenAt = seenNames.get(name);
|
|
73
|
+
if (seenAt !== undefined) {
|
|
74
|
+
ctx.addIssue({
|
|
75
|
+
code: z.ZodIssueCode.custom,
|
|
76
|
+
path: ["members", i, "name"],
|
|
77
|
+
message: `duplicate member name "${name}" (also used by members[${seenAt}]) — member names must be unique`,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
seenNames.set(name, i);
|
|
82
|
+
}
|
|
83
|
+
for (let j = 0; j < i; j++) {
|
|
84
|
+
const earlier = workspace.members[j];
|
|
85
|
+
if (earlier && pathsOverlap(earlier.path, member.path)) {
|
|
86
|
+
ctx.addIssue({
|
|
87
|
+
code: z.ZodIssueCode.custom,
|
|
88
|
+
path: ["members", i, "path"],
|
|
89
|
+
message: `member path "${member.path}" overlaps with member path "${earlier.path}" — member paths must not nest or overlap`,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
const declaredNames = new Set(workspace.members.map((m) => memberName(m)));
|
|
95
|
+
workspace.edges.forEach((edge, i) => {
|
|
96
|
+
if (!declaredNames.has(edge.from)) {
|
|
97
|
+
ctx.addIssue({
|
|
98
|
+
code: z.ZodIssueCode.custom,
|
|
99
|
+
path: ["edges", i, "from"],
|
|
100
|
+
message: `edge names undeclared member "${edge.from}"`,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
if (!declaredNames.has(edge.to)) {
|
|
104
|
+
ctx.addIssue({
|
|
105
|
+
code: z.ZodIssueCode.custom,
|
|
106
|
+
path: ["edges", i, "to"],
|
|
107
|
+
message: `edge names undeclared member "${edge.to}"`,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (edge.contract !== undefined && !isSafeRelativePath(edge.contract)) {
|
|
111
|
+
ctx.addIssue({
|
|
112
|
+
code: z.ZodIssueCode.custom,
|
|
113
|
+
path: ["edges", i, "contract"],
|
|
114
|
+
message: `contract path "${edge.contract}" must be repo-relative, without a leading "/" or a ".." segment`,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
/** A member's effective name: the declared `name`, else the path's basename.
|
|
120
|
+
* Single source of truth shared by manifest validation, anchor member
|
|
121
|
+
* resolution (src/anchors.ts), and the workspace status line (src/program.ts). */
|
|
122
|
+
export function memberName(member) {
|
|
123
|
+
return member.name ?? basename(member.path);
|
|
124
|
+
}
|
|
20
125
|
export const manifestSchema = z.strictObject({
|
|
21
126
|
version: z.literal(1),
|
|
22
127
|
methodology: z.string().min(1),
|
|
@@ -29,6 +134,12 @@ export const manifestSchema = z.strictObject({
|
|
|
29
134
|
// Package names are free strings until a package registry exists to validate
|
|
30
135
|
// them against; the loader (a later phase) resolves requires/conflicts.
|
|
31
136
|
packages: z.array(z.string().min(1)).min(1),
|
|
137
|
+
// Optional hub-sovereign workspace tier (D53): N independent git repos
|
|
138
|
+
// cloned (gitignored) inside this meta-repo. Absent for an ordinary repo.
|
|
139
|
+
// Hand-added by users, or scaffolded by the init wizard when it detects
|
|
140
|
+
// nested sibling repos and the user opts in (D53 WS4) — `edges` are always
|
|
141
|
+
// left to the human either way.
|
|
142
|
+
workspace: workspaceSchema.optional(),
|
|
32
143
|
});
|
|
33
144
|
/** Parse + validate manifest text. Throws an Error with a readable, multi-line
|
|
34
145
|
* message naming each problem and where it is — written to be acted on. */
|
|
@@ -60,4 +171,32 @@ export function loadManifest(path) {
|
|
|
60
171
|
}
|
|
61
172
|
return parseManifest(text);
|
|
62
173
|
}
|
|
174
|
+
/** Lenient `workspace:` reader: used by `reconcile()` (src/program.ts) **only**
|
|
175
|
+
* as a fallback when the full manifest load throws (D40) — the knowledge-anchor
|
|
176
|
+
* tripwire needs member info to resolve `member:` anchors even when
|
|
177
|
+
* `praxis.yaml` is otherwise unresolvable (e.g. an old npx-cached CLI). When
|
|
178
|
+
* `loadManifest` succeeds, callers must use `manifest.workspace` directly
|
|
179
|
+
* instead — one file, one parse. Never throws: returns `undefined` on a
|
|
180
|
+
* missing file, broken YAML, an absent `workspace:` section, or one that
|
|
181
|
+
* fails validation. */
|
|
182
|
+
export function loadWorkspaceConfig(cwd) {
|
|
183
|
+
let text;
|
|
184
|
+
try {
|
|
185
|
+
text = readFileSync(join(cwd, "praxis.yaml"), "utf8");
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return undefined;
|
|
189
|
+
}
|
|
190
|
+
let raw;
|
|
191
|
+
try {
|
|
192
|
+
raw = parseYaml(text);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
if (typeof raw !== "object" || raw === null || !("workspace" in raw))
|
|
198
|
+
return undefined;
|
|
199
|
+
const result = workspaceSchema.safeParse(raw.workspace);
|
|
200
|
+
return result.success ? result.data : undefined;
|
|
201
|
+
}
|
|
63
202
|
//# sourceMappingURL=manifest.js.map
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;GAQG;AAEH,+EAA+E;AAC/E,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAE3C,yEAAyE;AACzE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAU,CAAC;AAEtE,0DAA0D;AAC1D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAEnE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,YAAY,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,yEAAyE;IACzE,iFAAiF;IACjF,6EAA6E;IAC7E,wDAAwD;IACxD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,6EAA6E;IAC7E,wEAAwE;IACxE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/packages.d.ts
CHANGED
package/dist/packages.js
CHANGED
|
@@ -32,7 +32,11 @@ export const packageManifestSchema = z.strictObject({
|
|
|
32
32
|
conflicts: z.array(z.string().min(1)).default([]),
|
|
33
33
|
// Layer 2 packages declare the stack they target; a repo only gets them when it
|
|
34
34
|
// declares that stack in praxis.yaml `stacks`. Layer 1 / external packages omit it.
|
|
35
|
-
|
|
35
|
+
// Package-side vocabulary is STACKS *plus* "workspace" (D53): "workspace" is a
|
|
36
|
+
// repo trait *derived* from the manifest's `workspace:` section, never
|
|
37
|
+
// declarable in `stacks:` itself (see the manifest-side STACKS enum comment in
|
|
38
|
+
// src/manifest.ts) — a package can still target it, gated the same way.
|
|
39
|
+
stack: z.enum([...STACKS, "workspace"]).optional(),
|
|
36
40
|
// A package may declare a first-run bootstrap action. planEmit splices this into
|
|
37
41
|
// any command source that contains the <!-- praxis:bootstrap-delegations --> marker,
|
|
38
42
|
// so the target repo's emitted onboard command lists the delegations without the
|
|
@@ -105,6 +109,15 @@ export function resolve(selected, available, declaredStacks = []) {
|
|
|
105
109
|
const stackSet = new Set(declaredStacks);
|
|
106
110
|
for (const pkg of resolved) {
|
|
107
111
|
if (pkg.stack && !stackSet.has(pkg.stack)) {
|
|
112
|
+
// "workspace" is derived (D53), never declarable in `stacks:` — the
|
|
113
|
+
// manifest's STACKS enum rejects it, so the generic "add X to `stacks`"
|
|
114
|
+
// advice below would send the agent down a dead end. One workspace-specific
|
|
115
|
+
// branch in an otherwise-generic error is an accepted wart (see the brief).
|
|
116
|
+
if (pkg.stack === "workspace") {
|
|
117
|
+
throw new Error(`Package "${pkg.name}" targets the "workspace" stack, which this repo does not have.\n` +
|
|
118
|
+
`Add a \`workspace:\` section to praxis.yaml, or remove the package — "workspace" is ` +
|
|
119
|
+
`derived from that section and cannot be added to \`stacks\` directly (D53).`);
|
|
120
|
+
}
|
|
108
121
|
throw new Error(`Package "${pkg.name}" targets the "${pkg.stack}" stack, which praxis.yaml does not declare.\n` +
|
|
109
122
|
`Add "${pkg.stack}" to \`stacks\` in praxis.yaml, or remove the package — a Layer 2 ` +
|
|
110
123
|
`recipe applies only when its stack is wanted (D15).`);
|
package/dist/packages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../src/packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;;;;;;;;;GAUG;AAEH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE9D,kFAAkF;AAClF,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAG3E,+EAA+E;AAC/E,iFAAiF;AACjF,gFAAgF;AAChF,gFAAgF;AAChF,6EAA6E;AAC7E,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAE9E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,YAAY,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,gFAAgF;IAChF,oFAAoF;IACpF,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../src/packages.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts
CHANGED
|
@@ -7,6 +7,20 @@ type WizardMode = "quick" | "customize";
|
|
|
7
7
|
export type WizardStep = "mode" | "stacks" | "packages" | "targets" | "preview";
|
|
8
8
|
/** The interactive install wizard is reversible until its final apply action. */
|
|
9
9
|
export declare function previousWizardStep(step: Exclude<WizardStep, "mode">, mode: WizardMode): WizardStep;
|
|
10
|
+
/** Advisory `check` report for a hub's `workspace:` section (D53). Purely
|
|
11
|
+
* informational — never affects exit code (Tier-3 posture, D45): a member not
|
|
12
|
+
* yet cloned, or not yet Praxis-onboarded, or a contract page not yet written
|
|
13
|
+
* are all bootstrap-order facts, not repo defects. */
|
|
14
|
+
export interface WorkspaceReport {
|
|
15
|
+
totalMembers: number;
|
|
16
|
+
clonedMembers: string[];
|
|
17
|
+
unclonedMembers: string[];
|
|
18
|
+
/** Cloned members whose own directory has a praxis.yaml (self-reported,
|
|
19
|
+
* hub-observed only — the hub never installs into a member). */
|
|
20
|
+
onboardedMembers: string[];
|
|
21
|
+
/** Declared edge `contract` pages that don't exist yet, hub-relative. */
|
|
22
|
+
missingContracts: string[];
|
|
23
|
+
}
|
|
10
24
|
/** This CLI's own version, read from its shipped package.json (falls back to "unknown"). */
|
|
11
25
|
export declare function praxisVersion(): string;
|
|
12
26
|
export interface ReconcileResult {
|
|
@@ -22,6 +36,10 @@ export interface ReconcileResult {
|
|
|
22
36
|
methodologySize?: MethodologySize;
|
|
23
37
|
/** Present in check mode when the manifest resolves. */
|
|
24
38
|
sharedInstructionReport?: SharedInstructionReport;
|
|
39
|
+
/** Present in check mode when a `workspace:` section is available — either
|
|
40
|
+
* from a resolved manifest, or (D40 fallback) `loadWorkspaceConfig`'s lenient
|
|
41
|
+
* read when the full manifest can't resolve. Advisory only. */
|
|
42
|
+
workspaceReport?: WorkspaceReport;
|
|
25
43
|
exitCode: number;
|
|
26
44
|
}
|
|
27
45
|
/**
|
package/dist/program.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { dirname, join } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { cancel, intro, isCancel, multiselect, note, outro, select } from "@clack/prompts";
|
|
4
|
+
import { cancel, confirm, intro, isCancel, multiselect, note, outro, select, updateSettings } from "@clack/prompts";
|
|
5
5
|
import { Command } from "commander";
|
|
6
6
|
import { checkAnchors } from "./anchors.js";
|
|
7
7
|
import { computeMethodologySize } from "./emit.js";
|
|
8
8
|
import { applyInit, defaultManifest, detectContext, manifestFromSelections, needsSetupSentinel, renderManifestYaml, } from "./init.js";
|
|
9
|
-
import { loadManifest, STACKS, TARGETS } from "./manifest.js";
|
|
9
|
+
import { loadManifest, loadWorkspaceConfig, memberName, STACKS, TARGETS, } from "./manifest.js";
|
|
10
10
|
import { availablePackages } from "./packages.js";
|
|
11
11
|
import { checkSharedInstructions } from "./shared-instructions.js";
|
|
12
12
|
import { applyManifest, runSync } from "./sync.js";
|
|
@@ -21,7 +21,6 @@ const STATUS_SYMBOL = {
|
|
|
21
21
|
unchanged: " ",
|
|
22
22
|
deleted: "-",
|
|
23
23
|
};
|
|
24
|
-
const BACK = "__praxis_back__";
|
|
25
24
|
/** The interactive install wizard is reversible until its final apply action. */
|
|
26
25
|
export function previousWizardStep(step, mode) {
|
|
27
26
|
if (step === "stacks")
|
|
@@ -43,7 +42,12 @@ function formatPlan(report, mode) {
|
|
|
43
42
|
}
|
|
44
43
|
function formatAnchorReport(report) {
|
|
45
44
|
if (report.diagnostics.length === 0) {
|
|
46
|
-
|
|
45
|
+
// Skip clause only when nonzero (D53): a non-workspace repo never has
|
|
46
|
+
// member-anchor skips, so this line stays byte-identical to before.
|
|
47
|
+
const skipNote = report.skipped.length
|
|
48
|
+
? `, ${report.skipped.length} skipped (members not cloned: ${[...new Set(report.skipped.map((s) => s.member))].sort().join(", ")})`
|
|
49
|
+
: "";
|
|
50
|
+
return `\nKnowledge anchors: ${report.anchorsChecked} checked (${report.filesScanned} files scanned), 0 broken${skipNote}.`;
|
|
47
51
|
}
|
|
48
52
|
const diagnostics = report.diagnostics
|
|
49
53
|
.map((d) => {
|
|
@@ -64,6 +68,42 @@ function formatSharedInstructionReport(report) {
|
|
|
64
68
|
}
|
|
65
69
|
return `\nShared project instruction drift:\n${report.diagnostics.map((d) => ` - ${d}`).join("\n")}`;
|
|
66
70
|
}
|
|
71
|
+
function buildWorkspaceReport(cwd, workspace) {
|
|
72
|
+
const clonedMembers = [];
|
|
73
|
+
const unclonedMembers = [];
|
|
74
|
+
const onboardedMembers = [];
|
|
75
|
+
for (const member of workspace.members) {
|
|
76
|
+
const name = memberName(member);
|
|
77
|
+
const dir = join(cwd, member.path);
|
|
78
|
+
if (existsSync(dir) && existsSync(join(dir, ".git"))) {
|
|
79
|
+
clonedMembers.push(name);
|
|
80
|
+
if (existsSync(join(dir, "praxis.yaml")))
|
|
81
|
+
onboardedMembers.push(name);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
unclonedMembers.push(name);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const missingContracts = workspace.edges
|
|
88
|
+
.map((edge) => edge.contract)
|
|
89
|
+
.filter((contract) => contract !== undefined && !existsSync(join(cwd, contract)));
|
|
90
|
+
return {
|
|
91
|
+
totalMembers: workspace.members.length,
|
|
92
|
+
clonedMembers,
|
|
93
|
+
unclonedMembers,
|
|
94
|
+
onboardedMembers,
|
|
95
|
+
missingContracts,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
function formatWorkspaceReport(report) {
|
|
99
|
+
const unclonedNote = report.unclonedMembers.length ? ` (${report.unclonedMembers.join(", ")})` : "";
|
|
100
|
+
const line = `\nWorkspace: ${report.totalMembers} members — ${report.clonedMembers.length} cloned, ` +
|
|
101
|
+
`${report.unclonedMembers.length} not cloned${unclonedNote}; ${report.onboardedMembers.length} Praxis-onboarded.`;
|
|
102
|
+
const contractsNote = report.missingContracts.length
|
|
103
|
+
? `\nWorkspace contracts not yet written: ${report.missingContracts.join(", ")}.`
|
|
104
|
+
: "";
|
|
105
|
+
return line + contractsNote;
|
|
106
|
+
}
|
|
67
107
|
// --- sync / check ---------------------------------------------------------
|
|
68
108
|
/** This CLI's own version, read from its shipped package.json (falls back to "unknown"). */
|
|
69
109
|
export function praxisVersion() {
|
|
@@ -105,26 +145,56 @@ export function reconcile(cwd, write, mode) {
|
|
|
105
145
|
let anchorReport;
|
|
106
146
|
let methodologySize;
|
|
107
147
|
let sharedInstructionReport;
|
|
148
|
+
let workspaceReport;
|
|
108
149
|
if (mode === "check") {
|
|
109
|
-
|
|
150
|
+
// Load the manifest once, leniently. The anchor tripwire needs workspace
|
|
151
|
+
// member info (D53) to resolve `member:` anchors even when the full
|
|
152
|
+
// manifest can't resolve (D40) — same lenient posture as the tripwire
|
|
153
|
+
// itself — so this load happens up front and is reused below for
|
|
154
|
+
// methodologySize/sharedInstructionReport rather than parsing praxis.yaml
|
|
155
|
+
// a second time on the happy path.
|
|
156
|
+
let manifest;
|
|
157
|
+
try {
|
|
158
|
+
manifest = loadManifest(join(cwd, "praxis.yaml"));
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
manifest = undefined;
|
|
162
|
+
}
|
|
163
|
+
const workspace = manifest?.workspace ?? loadWorkspaceConfig(cwd);
|
|
164
|
+
anchorReport = checkAnchors(cwd, workspace);
|
|
110
165
|
if (!anchorReport.ok)
|
|
111
166
|
exitCode = 1;
|
|
167
|
+
// Advisory only, never affects exit code (Tier-3 posture, D45): a member
|
|
168
|
+
// not yet cloned, or a contract page not yet written, is bootstrap order,
|
|
169
|
+
// not a repo defect.
|
|
170
|
+
if (workspace)
|
|
171
|
+
workspaceReport = buildWorkspaceReport(cwd, workspace);
|
|
112
172
|
// Advisory only (2026-07 product review §3 gap 5): report the always-loaded
|
|
113
173
|
// methodology surface size. Manifest-dependent, unlike the anchor tripwire
|
|
114
174
|
// above — if it can't resolve (the D40 scenario), omit the line rather than
|
|
115
175
|
// let this computation throw or mask the sync error already reported.
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
176
|
+
if (manifest) {
|
|
177
|
+
try {
|
|
178
|
+
methodologySize = computeMethodologySize(manifest, cwd);
|
|
179
|
+
sharedInstructionReport = checkSharedInstructions(cwd, manifest);
|
|
180
|
+
if (!sharedInstructionReport.ok)
|
|
181
|
+
exitCode = 1;
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
// omitted — syncError (if any) already reports the unresolvable manifest.
|
|
185
|
+
}
|
|
125
186
|
}
|
|
126
187
|
}
|
|
127
|
-
return {
|
|
188
|
+
return {
|
|
189
|
+
version,
|
|
190
|
+
syncReport,
|
|
191
|
+
syncError,
|
|
192
|
+
anchorReport,
|
|
193
|
+
methodologySize,
|
|
194
|
+
sharedInstructionReport,
|
|
195
|
+
workspaceReport,
|
|
196
|
+
exitCode,
|
|
197
|
+
};
|
|
128
198
|
}
|
|
129
199
|
function runReconcile(write, mode) {
|
|
130
200
|
const result = reconcile(process.cwd(), write, mode);
|
|
@@ -162,6 +232,8 @@ function runReconcile(write, mode) {
|
|
|
162
232
|
const { totalLines, fileCount } = result.methodologySize;
|
|
163
233
|
console.log(`Methodology size: ${totalLines} lines across ${fileCount} always-loaded rule files.`);
|
|
164
234
|
}
|
|
235
|
+
if (result.workspaceReport)
|
|
236
|
+
console.log(formatWorkspaceReport(result.workspaceReport));
|
|
165
237
|
if (result.exitCode !== 0)
|
|
166
238
|
process.exitCode = result.exitCode;
|
|
167
239
|
}
|
|
@@ -206,6 +278,10 @@ async function runInit(opts) {
|
|
|
206
278
|
let chosenPkgs;
|
|
207
279
|
let chosenTargets = explicitTargets?.length ? explicitTargets :
|
|
208
280
|
ctx.detectedTargets.length > 0 ? ctx.detectedTargets : ["claude-code", "agents-md"];
|
|
281
|
+
// Backspace mirrors Escape/Ctrl+C (clack's `cancel` action) so it works as a
|
|
282
|
+
// "go back" key on the stacks/packages/targets multiselects below, where a
|
|
283
|
+
// checkbox item can't reliably capture plain Enter the way `select` does.
|
|
284
|
+
updateSettings({ aliases: { backspace: "cancel" } });
|
|
209
285
|
while (step !== "preview" || !previewConfirmed) {
|
|
210
286
|
if (step === "preview") {
|
|
211
287
|
if (manifest === undefined) {
|
|
@@ -254,16 +330,12 @@ async function runInit(opts) {
|
|
|
254
330
|
}
|
|
255
331
|
else if (step === "stacks") {
|
|
256
332
|
const selectedStacks = await multiselect({
|
|
257
|
-
message: "Which stacks does this repo use?",
|
|
258
|
-
options:
|
|
333
|
+
message: "Which stacks does this repo use? (Backspace to go back)",
|
|
334
|
+
options: STACKS.map((s) => ({ value: s, label: s })),
|
|
259
335
|
initialValues: chosenStacks,
|
|
260
336
|
required: false,
|
|
261
337
|
});
|
|
262
338
|
if (isCancel(selectedStacks)) {
|
|
263
|
-
cancel("No changes made.");
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
if (selectedStacks.includes(BACK)) {
|
|
267
339
|
step = previousWizardStep("stacks", mode);
|
|
268
340
|
}
|
|
269
341
|
else {
|
|
@@ -272,6 +344,9 @@ async function runInit(opts) {
|
|
|
272
344
|
}
|
|
273
345
|
}
|
|
274
346
|
else if (step === "packages") {
|
|
347
|
+
// Typed <string>, not <Stack>: see the matching comment in
|
|
348
|
+
// src/init.ts's defaultManifest (D53's derived "workspace" pseudo-stack
|
|
349
|
+
// widened PackageManifest["stack"]; no behavior change here).
|
|
275
350
|
const stackSet = new Set(chosenStacks);
|
|
276
351
|
const pkgOptions = [];
|
|
277
352
|
for (const [name, pkg] of availablePackages()) {
|
|
@@ -285,16 +360,12 @@ async function runInit(opts) {
|
|
|
285
360
|
pkgOptions.sort((a, b) => a.value.localeCompare(b.value));
|
|
286
361
|
const recommended = new Set(defaultManifest({ ...ctx, detectedStacks: chosenStacks }).packages);
|
|
287
362
|
const selectedPkgs = await multiselect({
|
|
288
|
-
message: "Which packages?",
|
|
289
|
-
options:
|
|
363
|
+
message: "Which packages? (Backspace to go back)",
|
|
364
|
+
options: pkgOptions,
|
|
290
365
|
initialValues: chosenPkgs ?? pkgOptions.map((o) => o.value).filter((name) => recommended.has(name)),
|
|
291
366
|
required: true,
|
|
292
367
|
});
|
|
293
368
|
if (isCancel(selectedPkgs)) {
|
|
294
|
-
cancel("No changes made.");
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
|
-
if (selectedPkgs.includes(BACK)) {
|
|
298
369
|
step = previousWizardStep("packages", mode);
|
|
299
370
|
}
|
|
300
371
|
else {
|
|
@@ -304,16 +375,12 @@ async function runInit(opts) {
|
|
|
304
375
|
}
|
|
305
376
|
else {
|
|
306
377
|
const selectedTargets = await multiselect({
|
|
307
|
-
message: "Which targets should Praxis support?",
|
|
308
|
-
options:
|
|
378
|
+
message: "Which targets should Praxis support? (Backspace to go back)",
|
|
379
|
+
options: TARGETS.map((target) => ({ value: target, label: target })),
|
|
309
380
|
initialValues: chosenTargets,
|
|
310
381
|
required: true,
|
|
311
382
|
});
|
|
312
383
|
if (isCancel(selectedTargets)) {
|
|
313
|
-
cancel("No changes made.");
|
|
314
|
-
return;
|
|
315
|
-
}
|
|
316
|
-
if (selectedTargets.includes(BACK)) {
|
|
317
384
|
step = previousWizardStep("targets", mode);
|
|
318
385
|
}
|
|
319
386
|
else {
|
|
@@ -322,6 +389,34 @@ async function runInit(opts) {
|
|
|
322
389
|
? defaultManifest(ctx)
|
|
323
390
|
: manifestFromSelections(chosenStacks, chosenPkgs ?? [], defaultManifest(ctx).targets);
|
|
324
391
|
manifest = { ...baseManifest, targets: chosenTargets };
|
|
392
|
+
// Workspace hub detection (D53 WS4): a dedicated confirm(), not a new
|
|
393
|
+
// WizardStep — gated on >=2 nested git repos to avoid a false positive
|
|
394
|
+
// on a single vendored/cloned directory. Declines (including Escape/
|
|
395
|
+
// Ctrl+C — a confirm() has no "back" target of its own to unwind to)
|
|
396
|
+
// simply leave the manifest as built above and fall through to preview,
|
|
397
|
+
// same as answering "no".
|
|
398
|
+
if (ctx.detectedMembers.length >= 2) {
|
|
399
|
+
const memberList = ctx.detectedMembers.join(", ");
|
|
400
|
+
const setUpWorkspace = await confirm({
|
|
401
|
+
message: `Detected ${ctx.detectedMembers.length} nested git repos (${memberList}). ` +
|
|
402
|
+
"Set this repo up as a Praxis workspace hub?",
|
|
403
|
+
});
|
|
404
|
+
if (!isCancel(setUpWorkspace) && setUpWorkspace) {
|
|
405
|
+
const workspace = {
|
|
406
|
+
members: ctx.detectedMembers.map((path) => ({ path })),
|
|
407
|
+
edges: [],
|
|
408
|
+
};
|
|
409
|
+
// Union in the workspace package + its requires (D21) — the user may
|
|
410
|
+
// have deselected one of them via Customize; the workspace gate
|
|
411
|
+
// requires all of them present.
|
|
412
|
+
const workspacePkg = availablePackages().get("workspace");
|
|
413
|
+
const packages = new Set(manifest.packages);
|
|
414
|
+
packages.add("workspace");
|
|
415
|
+
for (const req of workspacePkg?.requires ?? [])
|
|
416
|
+
packages.add(req);
|
|
417
|
+
manifest = { ...manifest, workspace, packages: [...packages] };
|
|
418
|
+
}
|
|
419
|
+
}
|
|
325
420
|
step = "preview";
|
|
326
421
|
}
|
|
327
422
|
}
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|