@aacombarro89/praxis 0.1.7 → 0.1.9
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 +34 -20
- package/dist/codex-marketplace.d.ts +19 -0
- package/dist/codex-marketplace.js +113 -0
- package/dist/codex-marketplace.js.map +1 -0
- package/dist/codex-security.d.ts +11 -0
- package/dist/codex-security.js +144 -0
- package/dist/codex-security.js.map +1 -0
- package/dist/emit.d.ts +38 -2
- package/dist/emit.js +167 -13
- package/dist/emit.js.map +1 -1
- package/dist/init.d.ts +16 -6
- package/dist/init.js +47 -10
- package/dist/init.js.map +1 -1
- package/dist/manifest.d.ts +2 -2
- package/dist/manifest.js +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/packages.d.ts +1 -1
- package/dist/plugins.d.ts +14 -0
- package/dist/plugins.js +9 -0
- package/dist/plugins.js.map +1 -1
- package/dist/program.d.ts +8 -0
- package/dist/program.js +93 -30
- package/dist/program.js.map +1 -1
- package/dist/shared-instructions.d.ts +21 -0
- package/dist/shared-instructions.js +63 -0
- package/dist/shared-instructions.js.map +1 -0
- package/dist/sync.d.ts +8 -1
- package/dist/sync.js +210 -7
- package/dist/sync.js.map +1 -1
- package/package.json +1 -1
- package/packages/external/ponytail/plugins.yaml +4 -1
- package/packages/layer1/instruction-upkeep/commands/instructions.md +14 -5
- package/packages/layer1/instruction-upkeep/rules.md +11 -23
- package/packages/layer1/onboarding/commands/onboard.md +42 -24
- package/packages/layer1/onboarding/rules.md +6 -10
- package/packages/layer1/safe-permissions/permissions.yaml +2 -2
- package/packages/layer1/session-handoff/commands/handoff.md +5 -5
- package/packages/layer1/session-handoff/rules.md +10 -57
- package/packages/layer1/upkeep/commands/upkeep.md +8 -5
- package/packages/layer1/upkeep/rules.md +12 -15
- package/packages/layer1/wiki-memory/commands/wiki.md +6 -6
- package/packages/layer1/wiki-memory/rules.md +11 -49
- package/packages/layer2/node-recipes/rules.md +4 -3
- package/packages/layer2/node-testing/rules.md +4 -0
- package/packages/layer2/python-backend-recipes/rules.md +4 -4
- package/packages/layer2/python-testing/rules.md +4 -0
- package/packages/layer2/react-components/rules.md +4 -0
- package/packages/layer2/react-testing/rules.md +4 -0
package/dist/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,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;AAExB;;;;;;;;;;;;GAYG;AAEH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE9D,+EAA+E;AAC/E,6EAA6E;AAC7E,uDAAuD;AACvD,MAAM,uBAAuB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,6EAA6E;IAC7E,6EAA6E;IAC7E,uCAAuC;IACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,uBAAuB;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC/C,8EAA8E;IAC9E,iFAAiF;IACjF,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,WAAW,EAAE,iBAAiB;IAC9B,4EAA4E;IAC5E,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { type AnchorCheckReport } from "./anchors.js";
|
|
3
|
+
import { type MethodologySize } from "./emit.js";
|
|
4
|
+
import { type SharedInstructionReport } from "./shared-instructions.js";
|
|
3
5
|
import { type SyncReport } from "./sync.js";
|
|
4
6
|
/** This CLI's own version, read from its shipped package.json (falls back to "unknown"). */
|
|
5
7
|
export declare function praxisVersion(): string;
|
|
@@ -10,6 +12,12 @@ export interface ReconcileResult {
|
|
|
10
12
|
syncError?: string;
|
|
11
13
|
/** Present only in check mode. */
|
|
12
14
|
anchorReport?: AnchorCheckReport;
|
|
15
|
+
/** Present only in check mode, and only when the manifest resolves (D40's
|
|
16
|
+
* degrade-by-omission model — this line is manifest-dependent, unlike the
|
|
17
|
+
* anchor tripwire). */
|
|
18
|
+
methodologySize?: MethodologySize;
|
|
19
|
+
/** Present in check mode when the manifest resolves. */
|
|
20
|
+
sharedInstructionReport?: SharedInstructionReport;
|
|
13
21
|
exitCode: number;
|
|
14
22
|
}
|
|
15
23
|
/**
|
package/dist/program.js
CHANGED
|
@@ -4,9 +4,11 @@ import { fileURLToPath } from "node:url";
|
|
|
4
4
|
import { cancel, confirm, intro, isCancel, multiselect, note, outro, select } from "@clack/prompts";
|
|
5
5
|
import { Command } from "commander";
|
|
6
6
|
import { checkAnchors } from "./anchors.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { computeMethodologySize } from "./emit.js";
|
|
8
|
+
import { applyInit, defaultManifest, detectContext, manifestFromSelections, needsSetupSentinel, renderManifestYaml, } from "./init.js";
|
|
9
|
+
import { loadManifest, STACKS, TARGETS } from "./manifest.js";
|
|
9
10
|
import { availablePackages } from "./packages.js";
|
|
11
|
+
import { checkSharedInstructions } from "./shared-instructions.js";
|
|
10
12
|
import { applyManifest, runSync } from "./sync.js";
|
|
11
13
|
/**
|
|
12
14
|
* The CLI surface (docs/wiki/interaction-model.md). `init` is the minimal first-run
|
|
@@ -17,6 +19,7 @@ const STATUS_SYMBOL = {
|
|
|
17
19
|
created: "+",
|
|
18
20
|
updated: "~",
|
|
19
21
|
unchanged: " ",
|
|
22
|
+
deleted: "-",
|
|
20
23
|
};
|
|
21
24
|
function formatPlan(report, mode) {
|
|
22
25
|
return report.files
|
|
@@ -39,6 +42,17 @@ function formatAnchorReport(report) {
|
|
|
39
42
|
.join("\n");
|
|
40
43
|
return `\nBroken knowledge anchors:\n${diagnostics}`;
|
|
41
44
|
}
|
|
45
|
+
function formatSharedInstructionReport(report) {
|
|
46
|
+
if (report.status === "not-required")
|
|
47
|
+
return undefined;
|
|
48
|
+
if (report.status === "pending-onboarding") {
|
|
49
|
+
return "\nShared project instructions: onboarding pending; parity check deferred.";
|
|
50
|
+
}
|
|
51
|
+
if (report.status === "synchronized") {
|
|
52
|
+
return "\nShared project instructions: CLAUDE.md and AGENTS.md synchronized.";
|
|
53
|
+
}
|
|
54
|
+
return `\nShared project instruction drift:\n${report.diagnostics.map((d) => ` - ${d}`).join("\n")}`;
|
|
55
|
+
}
|
|
42
56
|
// --- sync / check ---------------------------------------------------------
|
|
43
57
|
/** This CLI's own version, read from its shipped package.json (falls back to "unknown"). */
|
|
44
58
|
export function praxisVersion() {
|
|
@@ -78,12 +92,28 @@ export function reconcile(cwd, write, mode) {
|
|
|
78
92
|
exitCode = 1;
|
|
79
93
|
}
|
|
80
94
|
let anchorReport;
|
|
95
|
+
let methodologySize;
|
|
96
|
+
let sharedInstructionReport;
|
|
81
97
|
if (mode === "check") {
|
|
82
98
|
anchorReport = checkAnchors(cwd);
|
|
83
99
|
if (!anchorReport.ok)
|
|
84
100
|
exitCode = 1;
|
|
101
|
+
// Advisory only (2026-07 product review §3 gap 5): report the always-loaded
|
|
102
|
+
// methodology surface size. Manifest-dependent, unlike the anchor tripwire
|
|
103
|
+
// above — if it can't resolve (the D40 scenario), omit the line rather than
|
|
104
|
+
// let this computation throw or mask the sync error already reported.
|
|
105
|
+
try {
|
|
106
|
+
const manifest = loadManifest(join(cwd, "praxis.yaml"));
|
|
107
|
+
methodologySize = computeMethodologySize(manifest);
|
|
108
|
+
sharedInstructionReport = checkSharedInstructions(cwd, manifest);
|
|
109
|
+
if (!sharedInstructionReport.ok)
|
|
110
|
+
exitCode = 1;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// omitted — syncError (if any) already reports the unresolvable manifest.
|
|
114
|
+
}
|
|
85
115
|
}
|
|
86
|
-
return { version, syncReport, syncError, anchorReport, exitCode };
|
|
116
|
+
return { version, syncReport, syncError, anchorReport, methodologySize, sharedInstructionReport, exitCode };
|
|
87
117
|
}
|
|
88
118
|
function runReconcile(write, mode) {
|
|
89
119
|
const result = reconcile(process.cwd(), write, mode);
|
|
@@ -108,6 +138,19 @@ function runReconcile(write, mode) {
|
|
|
108
138
|
else
|
|
109
139
|
console.error(output);
|
|
110
140
|
}
|
|
141
|
+
if (result.sharedInstructionReport) {
|
|
142
|
+
const output = formatSharedInstructionReport(result.sharedInstructionReport);
|
|
143
|
+
if (output) {
|
|
144
|
+
if (result.sharedInstructionReport.ok)
|
|
145
|
+
console.log(output);
|
|
146
|
+
else
|
|
147
|
+
console.error(output);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (result.methodologySize) {
|
|
151
|
+
const { totalLines, fileCount } = result.methodologySize;
|
|
152
|
+
console.log(`Methodology size: ${totalLines} lines across ${fileCount} always-loaded rule files.`);
|
|
153
|
+
}
|
|
111
154
|
if (result.exitCode !== 0)
|
|
112
155
|
process.exitCode = result.exitCode;
|
|
113
156
|
}
|
|
@@ -122,17 +165,27 @@ async function runInit(opts) {
|
|
|
122
165
|
outro("Nothing to do.");
|
|
123
166
|
return;
|
|
124
167
|
}
|
|
168
|
+
// Validated once and honored by both paths below: --yes uses it as the
|
|
169
|
+
// manifest's targets directly, interactive mode seeds the target prompt
|
|
170
|
+
// with it instead of silently discarding an explicit flag.
|
|
171
|
+
const explicitTargets = opts.target?.map((target) => {
|
|
172
|
+
if (!TARGETS.includes(target)) {
|
|
173
|
+
throw new Error(`Unknown target "${target}". Expected one of: ${TARGETS.join(", ")}.`);
|
|
174
|
+
}
|
|
175
|
+
return target;
|
|
176
|
+
});
|
|
125
177
|
const detected = [
|
|
126
178
|
ctx.hasGit ? "git" : null,
|
|
127
179
|
ctx.hasClaudeMd ? "CLAUDE.md" : null,
|
|
128
180
|
ctx.hasAgentsMd ? "AGENTS.md" : null,
|
|
181
|
+
ctx.detectedTargets.length ? `targets: ${ctx.detectedTargets.join(", ")}` : null,
|
|
129
182
|
ctx.detectedStacks.length ? `stack: ${ctx.detectedStacks.join(", ")}` : null,
|
|
130
183
|
].filter(Boolean);
|
|
131
184
|
note(detected.length ? detected.join(" · ") : "fresh repo", "Detected");
|
|
132
185
|
let manifest;
|
|
133
186
|
if (opts.yes) {
|
|
134
187
|
// Non-interactive: Quick start, no prompts
|
|
135
|
-
manifest = defaultManifest(ctx);
|
|
188
|
+
manifest = defaultManifest(ctx, explicitTargets?.length ? explicitTargets : undefined);
|
|
136
189
|
}
|
|
137
190
|
else {
|
|
138
191
|
// Ask Quick start vs Customize
|
|
@@ -186,29 +239,30 @@ async function runInit(opts) {
|
|
|
186
239
|
cancel("No changes made.");
|
|
187
240
|
return;
|
|
188
241
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
242
|
+
manifest = manifestFromSelections(chosenStacks, chosenPkgs, defaultManifest(ctx).targets);
|
|
243
|
+
}
|
|
244
|
+
// Target selection is always explicit in interactive mode, including Quick
|
|
245
|
+
// start — an explicit --target flag seeds the prompt rather than being
|
|
246
|
+
// dropped; the user still confirms (or changes) the final selection.
|
|
247
|
+
const chosenTargets = await multiselect({
|
|
248
|
+
message: "Which targets should Praxis support?",
|
|
249
|
+
options: TARGETS.map((target) => ({ value: target, label: target })),
|
|
250
|
+
initialValues: explicitTargets?.length ? explicitTargets
|
|
251
|
+
: ctx.detectedTargets.length > 0 ? ctx.detectedTargets
|
|
252
|
+
: ["claude-code", "agents-md"],
|
|
253
|
+
required: true,
|
|
254
|
+
});
|
|
255
|
+
if (isCancel(chosenTargets)) {
|
|
256
|
+
cancel("No changes made.");
|
|
257
|
+
return;
|
|
205
258
|
}
|
|
259
|
+
manifest = { ...manifest, targets: chosenTargets };
|
|
206
260
|
}
|
|
207
261
|
// Preview + confirm (interactive) / apply immediately (--yes)
|
|
208
262
|
const manifestYaml = renderManifestYaml(manifest);
|
|
209
263
|
const report = applyManifest(manifest, cwd, false);
|
|
210
264
|
note(manifestYaml.trimEnd(), "praxis.yaml (proposed)");
|
|
211
|
-
const freshHarness =
|
|
265
|
+
const freshHarness = needsSetupSentinel(ctx, manifest);
|
|
212
266
|
const willWritePlan = formatPlan(report, "init");
|
|
213
267
|
const sentinelLine = freshHarness ? "\n + .praxis-setup-pending (onboarding sentinel)" : "";
|
|
214
268
|
note(willWritePlan + sentinelLine, "Will write");
|
|
@@ -220,27 +274,32 @@ async function runInit(opts) {
|
|
|
220
274
|
}
|
|
221
275
|
}
|
|
222
276
|
applyInit(cwd, manifest, ctx);
|
|
223
|
-
const
|
|
277
|
+
const installedWorkflows = [
|
|
278
|
+
manifest.targets.includes("claude-code")
|
|
279
|
+
? "/praxis-instructions /praxis-wiki /praxis-handoff\n /praxis-upkeep /praxis-onboard"
|
|
280
|
+
: null,
|
|
281
|
+
manifest.targets.includes("codex")
|
|
282
|
+
? "$praxis-instructions $praxis-wiki $praxis-handoff\n $praxis-upkeep $praxis-onboard"
|
|
283
|
+
: null,
|
|
284
|
+
].filter((line) => line !== null).join("\n ");
|
|
224
285
|
if (freshHarness) {
|
|
225
286
|
note([
|
|
226
|
-
"Open
|
|
227
|
-
"It will offer
|
|
228
|
-
"Or run /init then /praxis-onboard yourself to author project facts.",
|
|
287
|
+
"Open one of the selected coding agents in this repo.",
|
|
288
|
+
"It will offer the Praxis onboarding workflow (one-shot bootstrap).",
|
|
229
289
|
"",
|
|
230
290
|
"Installed skills:",
|
|
231
|
-
` ${
|
|
291
|
+
` ${installedWorkflows}`,
|
|
232
292
|
"",
|
|
233
293
|
"Run `praxis check` anytime to verify the repo is in sync (good for CI).",
|
|
234
294
|
].join("\n"), "Next steps");
|
|
235
|
-
outro("Methodology layer installed. Open
|
|
295
|
+
outro("Methodology layer installed. Open a selected agent to complete onboarding.");
|
|
236
296
|
}
|
|
237
297
|
else {
|
|
238
298
|
note([
|
|
239
|
-
"
|
|
240
|
-
".claude/rules load automatically — no edits needed.",
|
|
299
|
+
"Existing project instruction surfaces were preserved.",
|
|
241
300
|
"",
|
|
242
301
|
"Installed skills:",
|
|
243
|
-
` ${
|
|
302
|
+
` ${installedWorkflows}`,
|
|
244
303
|
"",
|
|
245
304
|
"To tune: edit `praxis.yaml`, then run `praxis sync`.",
|
|
246
305
|
"Run `praxis check` anytime to verify the repo is in sync (good for CI).",
|
|
@@ -263,6 +322,10 @@ export function buildProgram() {
|
|
|
263
322
|
.command("init", { isDefault: true })
|
|
264
323
|
.description("Install the methodology layer (detect, preview, confirm, write).")
|
|
265
324
|
.option("-y, --yes", "skip prompts; accept the defaults (non-interactive)")
|
|
325
|
+
.option("--target <target>", "emit target; repeat for multiple targets", (value, previous) => [
|
|
326
|
+
...previous,
|
|
327
|
+
value,
|
|
328
|
+
], [])
|
|
266
329
|
.action((opts) => runInit(opts));
|
|
267
330
|
program
|
|
268
331
|
.command("sync")
|
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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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Manifest } from "./manifest.js";
|
|
2
|
+
/**
|
|
3
|
+
* Project-owned instructions shared by Claude Code and Codex. Unlike managed
|
|
4
|
+
* methodology blocks, these blocks carry no hash and have no generated source:
|
|
5
|
+
* both native files remain complete and editable if Praxis is removed.
|
|
6
|
+
*/
|
|
7
|
+
export declare const SHARED_PROJECT_BEGIN = "<!-- praxis:shared-project begin -->";
|
|
8
|
+
export declare const SHARED_PROJECT_END = "<!-- praxis:shared-project end -->";
|
|
9
|
+
export type SharedInstructionStatus = "not-required" | "pending-onboarding" | "missing" | "mismatch" | "synchronized";
|
|
10
|
+
export interface SharedInstructionReport {
|
|
11
|
+
status: SharedInstructionStatus;
|
|
12
|
+
ok: boolean;
|
|
13
|
+
diagnostics: string[];
|
|
14
|
+
}
|
|
15
|
+
export declare function hasSharedProjectBlock(text: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Check the peer-native project instruction contract. Only a dual first-class
|
|
18
|
+
* Claude+Codex install requires parity. The onboarding sentinel temporarily
|
|
19
|
+
* suspends the requirement while the agent is authoring both native surfaces.
|
|
20
|
+
*/
|
|
21
|
+
export declare function checkSharedInstructions(cwd: string, manifest: Manifest): SharedInstructionReport;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* Project-owned instructions shared by Claude Code and Codex. Unlike managed
|
|
5
|
+
* methodology blocks, these blocks carry no hash and have no generated source:
|
|
6
|
+
* both native files remain complete and editable if Praxis is removed.
|
|
7
|
+
*/
|
|
8
|
+
export const SHARED_PROJECT_BEGIN = "<!-- praxis:shared-project begin -->";
|
|
9
|
+
export const SHARED_PROJECT_END = "<!-- praxis:shared-project end -->";
|
|
10
|
+
const SHARED_PROJECT_RE = /<!--\s*praxis:shared-project\s+begin\s*-->[^\n]*\r?\n([\s\S]*?)\r?\n?<!--\s*praxis:shared-project\s+end\s*-->/g;
|
|
11
|
+
function blockContents(text) {
|
|
12
|
+
const contents = [];
|
|
13
|
+
SHARED_PROJECT_RE.lastIndex = 0;
|
|
14
|
+
let match;
|
|
15
|
+
while ((match = SHARED_PROJECT_RE.exec(text)) !== null) {
|
|
16
|
+
contents.push((match[1] ?? "").replaceAll("\r\n", "\n"));
|
|
17
|
+
}
|
|
18
|
+
return contents;
|
|
19
|
+
}
|
|
20
|
+
export function hasSharedProjectBlock(text) {
|
|
21
|
+
return blockContents(text).length === 1;
|
|
22
|
+
}
|
|
23
|
+
function readIfExists(path) {
|
|
24
|
+
return existsSync(path) ? readFileSync(path, "utf8") : "";
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Check the peer-native project instruction contract. Only a dual first-class
|
|
28
|
+
* Claude+Codex install requires parity. The onboarding sentinel temporarily
|
|
29
|
+
* suspends the requirement while the agent is authoring both native surfaces.
|
|
30
|
+
*/
|
|
31
|
+
export function checkSharedInstructions(cwd, manifest) {
|
|
32
|
+
if (!(manifest.targets.includes("claude-code") && manifest.targets.includes("codex"))) {
|
|
33
|
+
return { status: "not-required", ok: true, diagnostics: [] };
|
|
34
|
+
}
|
|
35
|
+
if (existsSync(join(cwd, ".praxis-setup-pending"))) {
|
|
36
|
+
return { status: "pending-onboarding", ok: true, diagnostics: [] };
|
|
37
|
+
}
|
|
38
|
+
const files = ["CLAUDE.md", "AGENTS.md"];
|
|
39
|
+
const blocks = new Map(files.map((file) => [file, blockContents(readIfExists(join(cwd, file)))]));
|
|
40
|
+
const diagnostics = [];
|
|
41
|
+
for (const file of files) {
|
|
42
|
+
const count = blocks.get(file)?.length ?? 0;
|
|
43
|
+
if (count === 0)
|
|
44
|
+
diagnostics.push(`${file}: missing project-owned praxis:shared-project block`);
|
|
45
|
+
if (count > 1)
|
|
46
|
+
diagnostics.push(`${file}: expected one praxis:shared-project block, found ${count}`);
|
|
47
|
+
}
|
|
48
|
+
if (diagnostics.length > 0)
|
|
49
|
+
return { status: "missing", ok: false, diagnostics };
|
|
50
|
+
const claude = blocks.get("CLAUDE.md")?.[0] ?? "";
|
|
51
|
+
const agents = blocks.get("AGENTS.md")?.[0] ?? "";
|
|
52
|
+
if (claude !== agents) {
|
|
53
|
+
return {
|
|
54
|
+
status: "mismatch",
|
|
55
|
+
ok: false,
|
|
56
|
+
diagnostics: [
|
|
57
|
+
"CLAUDE.md and AGENTS.md shared project blocks differ; run the Praxis upkeep workflow to reconcile project-owned facts",
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return { status: "synchronized", ok: true, diagnostics: [] };
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=shared-instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-instructions.js","sourceRoot":"","sources":["../src/shared-instructions.ts"],"names":[],"mappings":"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"}
|
package/dist/sync.d.ts
CHANGED
|
@@ -5,8 +5,15 @@ import { type Manifest } from "./manifest.js";
|
|
|
5
5
|
* apply each op against the destination file, and (in write mode) persist safe
|
|
6
6
|
* changes. Never clobbers a user-edited managed block (D10) — conflicts are
|
|
7
7
|
* surfaced, not overwritten.
|
|
8
|
+
*
|
|
9
|
+
* **Prune (D46):** the manifest expresses absence too — a package removed from
|
|
10
|
+
* `praxis.yaml` orphans the files/blocks it used to emit. No separate ownership
|
|
11
|
+
* ledger is needed: ownership is already legible on disk (the `praxis-` file
|
|
12
|
+
* prefix; the `<!-- praxis:begin <id> -->` block markers), so prune is simply
|
|
13
|
+
* (on-disk Praxis-owned set) − (manifest-implied set), previewed the same way as
|
|
14
|
+
* any other change and applied only in write mode.
|
|
8
15
|
*/
|
|
9
|
-
export type FileStatus = "created" | "updated" | "unchanged";
|
|
16
|
+
export type FileStatus = "created" | "updated" | "unchanged" | "deleted";
|
|
10
17
|
export interface FileReport {
|
|
11
18
|
path: string;
|
|
12
19
|
status: FileStatus;
|