@aacombarro89/praxis 0.1.9 → 0.1.10
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/emit.d.ts +10 -7
- package/dist/emit.js +30 -60
- package/dist/emit.js.map +1 -1
- package/dist/packages.d.ts +20 -2
- package/dist/packages.js +54 -5
- package/dist/packages.js.map +1 -1
- package/dist/permissions.d.ts +17 -2
- package/dist/permissions.js +5 -14
- package/dist/permissions.js.map +1 -1
- package/dist/plugins.d.ts +2 -2
- package/dist/plugins.js +6 -15
- package/dist/plugins.js.map +1 -1
- package/dist/program.js +1 -1
- package/dist/program.js.map +1 -1
- package/dist/sync.js +1 -1
- package/dist/sync.js.map +1 -1
- package/package.json +1 -1
- package/packages/layer1/capture-codebase-patterns/commands/capture-codebase-patterns.md +68 -0
- package/packages/layer1/capture-codebase-patterns/package.yaml +14 -0
- package/packages/layer2/node-recipes/rules.md +18 -19
- package/packages/layer2/node-testing/rules.md +21 -26
- package/packages/layer2/python-backend-recipes/rules.md +18 -22
- package/packages/layer2/python-testing/rules.md +20 -26
- package/packages/layer2/react-components/rules.md +31 -26
- package/packages/layer2/react-testing/rules.md +19 -28
package/dist/emit.d.ts
CHANGED
|
@@ -3,16 +3,18 @@ import { type PluginsDesired, type RuleSet } from "./merge-json.js";
|
|
|
3
3
|
import { CODEX_MARKETPLACE_PATH, CODEX_MARKETPLACE_STATE_PATH, type CodexPluginEntry } from "./codex-marketplace.js";
|
|
4
4
|
export declare const BLOCK_FILE: Partial<Record<Target, string>>;
|
|
5
5
|
/** The neutral methodology source for a content package, or undefined if the
|
|
6
|
-
* package has no rules.md (e.g. skills, Layer 2 recipes handled by other phases).
|
|
7
|
-
|
|
6
|
+
* package has no rules.md (e.g. skills, Layer 2 recipes handled by other phases).
|
|
7
|
+
* `dir` is the package's own directory (`ResolvedPackage.dir`) — shipped or
|
|
8
|
+
* project-local, resolved identically either way. */
|
|
9
|
+
export declare function loadPackageSource(dir: string): string | undefined;
|
|
8
10
|
/** A package's workflow sources: one file per workflow, named for its target-native invocation. */
|
|
9
11
|
export interface CommandSource {
|
|
10
12
|
name: string;
|
|
11
13
|
content: string;
|
|
12
14
|
}
|
|
13
15
|
/** A content package's commands, or [] if it has none. Scans
|
|
14
|
-
*
|
|
15
|
-
export declare function loadCommandSources(
|
|
16
|
+
* `<dir>/commands/*.md` — mirrors loadPackageSource. */
|
|
17
|
+
export declare function loadCommandSources(dir: string): CommandSource[];
|
|
16
18
|
/** A planned write. "owned" files are placed/replaced wholesale; "block" files
|
|
17
19
|
* have their managed blocks reconciled into existing text; "settings" carries
|
|
18
20
|
* whichever of permissions/plugins this target emits — always exactly one op
|
|
@@ -47,8 +49,9 @@ export type EmitOp = {
|
|
|
47
49
|
plugins: CodexPluginEntry[];
|
|
48
50
|
};
|
|
49
51
|
/** Build the emit plan from a manifest: the file operations needed to install
|
|
50
|
-
* the selected methodology for each target.
|
|
51
|
-
|
|
52
|
+
* the selected methodology for each target. `cwd` resolves any project-local
|
|
53
|
+
* (`./`-prefixed) packages the manifest names; defaults to process.cwd(). */
|
|
54
|
+
export declare function planEmit(manifest: Manifest, cwd?: string): EmitOp[];
|
|
52
55
|
export interface MethodologySize {
|
|
53
56
|
/** Total content lines across the counted rule artifacts. */
|
|
54
57
|
totalLines: number;
|
|
@@ -72,7 +75,7 @@ export interface MethodologySize {
|
|
|
72
75
|
* unknown package) — callers in check mode should catch and omit the line
|
|
73
76
|
* rather than let it mask the sync error (D40's degrade-by-omission model).
|
|
74
77
|
*/
|
|
75
|
-
export declare function computeMethodologySize(manifest: Manifest): MethodologySize;
|
|
78
|
+
export declare function computeMethodologySize(manifest: Manifest, cwd?: string): MethodologySize;
|
|
76
79
|
export interface ApplyResult {
|
|
77
80
|
text: string;
|
|
78
81
|
changed: boolean;
|
package/dist/emit.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
3
|
import { parse as parseYaml } from "yaml";
|
|
5
4
|
import { reconcile } from "./merge.js";
|
|
6
5
|
import { BUCKETS, reconcileSettings, } from "./merge-json.js";
|
|
@@ -9,25 +8,6 @@ import { loadPolicy } from "./permissions.js";
|
|
|
9
8
|
import { loadPluginsBlock } from "./plugins.js";
|
|
10
9
|
import { reconcileCodexConfig, renderCodexRules } from "./codex-security.js";
|
|
11
10
|
import { CODEX_MARKETPLACE_PATH, CODEX_MARKETPLACE_STATE_PATH, } from "./codex-marketplace.js";
|
|
12
|
-
/**
|
|
13
|
-
* Layer 1 emit (CLAUDE.md non-negotiable "tool-neutral by construction";
|
|
14
|
-
* docs/wiki/merge-engine.md / docs/wiki/emitters.md, decisions D7/D13). The methodology source is **singular
|
|
15
|
-
* and tool-neutral**; emitters *translate* it per target — they never fork the
|
|
16
|
-
* content.
|
|
17
|
-
*
|
|
18
|
-
* Two delivery shapes, per target:
|
|
19
|
-
* - "owned": Praxis owns whole files (place/replace, no merge). Claude Code
|
|
20
|
-
* methodology ships as `.claude/rules/praxis-*.md`, auto-loaded every
|
|
21
|
-
* session; Praxis never edits the user's CLAUDE.md (D13).
|
|
22
|
-
* - "block": content is inlined into a flat instruction file via a managed
|
|
23
|
-
* block (merge engine). Used for AGENTS.md, which has no include standard.
|
|
24
|
-
*
|
|
25
|
-
* Package layout (D16): packages/<layer>/<pkg>/rules.md. `../packages/` resolves
|
|
26
|
-
* the same from src/ (dev/vitest) and dist/ (built/installed) — both one level
|
|
27
|
-
* under repo root.
|
|
28
|
-
*/
|
|
29
|
-
// Root of the per-layer package tree. Resolves identically from src/ and dist/.
|
|
30
|
-
const PACKAGES_DIR = new URL("../packages/", import.meta.url);
|
|
31
11
|
// Where each target's methodology lives, and how it is delivered.
|
|
32
12
|
const TARGET_DELIVERY = {
|
|
33
13
|
"claude-code": "owned",
|
|
@@ -43,17 +23,12 @@ export const BLOCK_FILE = {
|
|
|
43
23
|
"agents-md": "AGENTS.md",
|
|
44
24
|
};
|
|
45
25
|
/** The neutral methodology source for a content package, or undefined if the
|
|
46
|
-
* package has no rules.md (e.g. skills, Layer 2 recipes handled by other phases).
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const candidate = join(root, entry.name, pkg, "rules.md");
|
|
53
|
-
if (existsSync(candidate))
|
|
54
|
-
return readFileSync(candidate, "utf8").trimEnd();
|
|
55
|
-
}
|
|
56
|
-
return undefined;
|
|
26
|
+
* package has no rules.md (e.g. skills, Layer 2 recipes handled by other phases).
|
|
27
|
+
* `dir` is the package's own directory (`ResolvedPackage.dir`) — shipped or
|
|
28
|
+
* project-local, resolved identically either way. */
|
|
29
|
+
export function loadPackageSource(dir) {
|
|
30
|
+
const candidate = join(dir, "rules.md");
|
|
31
|
+
return existsSync(candidate) ? readFileSync(candidate, "utf8").trimEnd() : undefined;
|
|
57
32
|
}
|
|
58
33
|
/** Translate neutral source for a specific target. The seam for per-tool
|
|
59
34
|
* framing; Layer 1 prose is identical across tools today. */
|
|
@@ -90,23 +65,17 @@ function renderCodexSkill(name, source) {
|
|
|
90
65
|
return `---\nname: praxis-${name}\ndescription: ${JSON.stringify(description)}\n---\n\n${body.trimEnd()}\n`;
|
|
91
66
|
}
|
|
92
67
|
/** A content package's commands, or [] if it has none. Scans
|
|
93
|
-
*
|
|
94
|
-
export function loadCommandSources(
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
.map((f) => ({
|
|
105
|
-
name: f.name.slice(0, -3),
|
|
106
|
-
content: readFileSync(join(dir, f.name), "utf8").trimEnd(),
|
|
107
|
-
}));
|
|
108
|
-
}
|
|
109
|
-
return [];
|
|
68
|
+
* `<dir>/commands/*.md` — mirrors loadPackageSource. */
|
|
69
|
+
export function loadCommandSources(dir) {
|
|
70
|
+
const commandsDir = join(dir, "commands");
|
|
71
|
+
if (!existsSync(commandsDir))
|
|
72
|
+
return [];
|
|
73
|
+
return readdirSync(commandsDir, { withFileTypes: true })
|
|
74
|
+
.filter((f) => f.isFile() && f.name.endsWith(".md"))
|
|
75
|
+
.map((f) => ({
|
|
76
|
+
name: f.name.slice(0, -3),
|
|
77
|
+
content: readFileSync(join(commandsDir, f.name), "utf8").trimEnd(),
|
|
78
|
+
}));
|
|
110
79
|
}
|
|
111
80
|
/** Targets that consume the source directly as slash-command markdown. Codex
|
|
112
81
|
* uses the separate SKILL.md renderer below. */
|
|
@@ -173,11 +142,12 @@ const PLUGIN_EMITTERS = {
|
|
|
173
142
|
"claude-code": { path: ".claude/settings.json" },
|
|
174
143
|
};
|
|
175
144
|
/** Build the emit plan from a manifest: the file operations needed to install
|
|
176
|
-
* the selected methodology for each target.
|
|
177
|
-
|
|
145
|
+
* the selected methodology for each target. `cwd` resolves any project-local
|
|
146
|
+
* (`./`-prefixed) packages the manifest names; defaults to process.cwd(). */
|
|
147
|
+
export function planEmit(manifest, cwd = process.cwd()) {
|
|
178
148
|
// Validate the package set and resolve requires/conflicts up front (D20/D21):
|
|
179
149
|
// an unknown package or unmet dependency fails loudly here, not silently later.
|
|
180
|
-
const packages = resolvePackages(manifest.packages, manifest.stacks ?? []);
|
|
150
|
+
const packages = resolvePackages(manifest.packages, manifest.stacks ?? [], cwd);
|
|
181
151
|
const rulesPackages = packages.filter((p) => p.provides.includes("rules"));
|
|
182
152
|
const permissionPackages = packages.filter((p) => p.provides.includes("permissions"));
|
|
183
153
|
const commandPackages = packages.filter((p) => p.provides.includes("commands"));
|
|
@@ -187,7 +157,7 @@ export function planEmit(manifest) {
|
|
|
187
157
|
for (const target of manifest.targets) {
|
|
188
158
|
// Prose rules — delivery (owned vs block) is the target's; `provides` decides
|
|
189
159
|
// which packages contribute. `loadPackageSource` is guaranteed by `provides`.
|
|
190
|
-
const sources = rulesPackages.map((p) => ({ pkg: p.name, source: loadPackageSource(p.
|
|
160
|
+
const sources = rulesPackages.map((p) => ({ pkg: p.name, source: loadPackageSource(p.dir) ?? "" }));
|
|
191
161
|
if (sources.length > 0 && !(target === "agents-md" && codexSelected)) {
|
|
192
162
|
if (TARGET_DELIVERY[target] === "owned") {
|
|
193
163
|
for (const { pkg, source } of sources) {
|
|
@@ -216,7 +186,7 @@ export function planEmit(manifest) {
|
|
|
216
186
|
if (permEmitter && permissionPackages.length > 0) {
|
|
217
187
|
rules = { allow: [], ask: [], deny: [] };
|
|
218
188
|
for (const p of permissionPackages) {
|
|
219
|
-
const policy = loadPolicy(p.
|
|
189
|
+
const policy = loadPolicy(p.dir);
|
|
220
190
|
if (!policy)
|
|
221
191
|
continue;
|
|
222
192
|
const r = permEmitter.render(policy);
|
|
@@ -233,7 +203,7 @@ export function planEmit(manifest) {
|
|
|
233
203
|
const marketplaces = [];
|
|
234
204
|
const enable = [];
|
|
235
205
|
for (const p of pluginPackages) {
|
|
236
|
-
const block = loadPluginsBlock(p.
|
|
206
|
+
const block = loadPluginsBlock(p.dir);
|
|
237
207
|
if (!block || !block.targets.includes(target))
|
|
238
208
|
continue;
|
|
239
209
|
if (!marketplaces.some((m) => m.name === block.marketplace.name)) {
|
|
@@ -251,7 +221,7 @@ export function planEmit(manifest) {
|
|
|
251
221
|
ops.push({ kind: "settings", target, path: settingsPath, rules, plugins });
|
|
252
222
|
}
|
|
253
223
|
if (target === "codex") {
|
|
254
|
-
const policies = permissionPackages.map((pkg) => loadPolicy(pkg.
|
|
224
|
+
const policies = permissionPackages.map((pkg) => loadPolicy(pkg.dir)).filter((p) => Boolean(p));
|
|
255
225
|
if (policies.length > 0) {
|
|
256
226
|
ops.push({ kind: "codex-config", target, path: ".codex/config.toml", enabled: true });
|
|
257
227
|
const combined = { allow: [], ask: [], deny: [] };
|
|
@@ -272,7 +242,7 @@ export function planEmit(manifest) {
|
|
|
272
242
|
}
|
|
273
243
|
const codexPlugins = [];
|
|
274
244
|
for (const pkg of pluginPackages) {
|
|
275
|
-
const block = loadPluginsBlock(pkg.
|
|
245
|
+
const block = loadPluginsBlock(pkg.dir);
|
|
276
246
|
if (!block?.codex)
|
|
277
247
|
continue;
|
|
278
248
|
const source = block.codex.subdir
|
|
@@ -324,7 +294,7 @@ export function planEmit(manifest) {
|
|
|
324
294
|
const commandDir = COMMAND_DIR[target];
|
|
325
295
|
if (commandDir) {
|
|
326
296
|
for (const pkg of commandPackages) {
|
|
327
|
-
for (const { name, content } of loadCommandSources(pkg.
|
|
297
|
+
for (const { name, content } of loadCommandSources(pkg.dir)) {
|
|
328
298
|
const emitted = content.includes(BOOTSTRAP_MARKER)
|
|
329
299
|
? content.replace(BOOTSTRAP_MARKER, onboardingDelegations)
|
|
330
300
|
: content;
|
|
@@ -339,7 +309,7 @@ export function planEmit(manifest) {
|
|
|
339
309
|
}
|
|
340
310
|
if (target === "codex") {
|
|
341
311
|
for (const pkg of commandPackages) {
|
|
342
|
-
for (const { name, content } of loadCommandSources(pkg.
|
|
312
|
+
for (const { name, content } of loadCommandSources(pkg.dir)) {
|
|
343
313
|
const emitted = content.includes(BOOTSTRAP_MARKER)
|
|
344
314
|
? content.replace(BOOTSTRAP_MARKER, onboardingDelegations)
|
|
345
315
|
: content;
|
|
@@ -378,8 +348,8 @@ function countLines(text) {
|
|
|
378
348
|
* unknown package) — callers in check mode should catch and omit the line
|
|
379
349
|
* rather than let it mask the sync error (D40's degrade-by-omission model).
|
|
380
350
|
*/
|
|
381
|
-
export function computeMethodologySize(manifest) {
|
|
382
|
-
const ops = planEmit(manifest);
|
|
351
|
+
export function computeMethodologySize(manifest, cwd = process.cwd()) {
|
|
352
|
+
const ops = planEmit(manifest, cwd);
|
|
383
353
|
const claudeRuleFiles = ops.filter((op) => op.kind === "owned" && op.target === "claude-code" && op.path.startsWith(".claude/rules/"));
|
|
384
354
|
if (claudeRuleFiles.length > 0) {
|
|
385
355
|
return {
|
package/dist/emit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"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"}
|
package/dist/packages.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare const packageManifestSchema: z.ZodObject<{
|
|
|
8
8
|
layer2: "layer2";
|
|
9
9
|
decision: "decision";
|
|
10
10
|
external: "external";
|
|
11
|
+
local: "local";
|
|
11
12
|
}>;
|
|
12
13
|
provides: z.ZodArray<z.ZodEnum<{
|
|
13
14
|
permissions: "permissions";
|
|
@@ -46,6 +47,23 @@ export declare function availablePackages(): Map<string, ResolvedPackage>;
|
|
|
46
47
|
* Throws an agent-actionable error on the first problem.
|
|
47
48
|
*/
|
|
48
49
|
export declare function resolve(selected: string[], available: Map<string, ResolvedPackage>, declaredStacks?: string[]): ResolvedPackage[];
|
|
49
|
-
/**
|
|
50
|
-
|
|
50
|
+
/** True for a `praxis.yaml` packages entry that names a project-local package
|
|
51
|
+
* path (relative to the target repo cwd) rather than a shipped package name. */
|
|
52
|
+
export declare function isLocalPackagePath(entry: string): boolean;
|
|
53
|
+
/** Load a project-local package from `entry` (a `./`- or `../`-prefixed path in
|
|
54
|
+
* `praxis.yaml`), resolved against `cwd`. Fails loud if there's no
|
|
55
|
+
* `package.yaml` at that path, or if it doesn't declare `layer: local` — a
|
|
56
|
+
* project-local package must say so itself so provenance stays legible
|
|
57
|
+
* (shipped vs. project-owned) without cross-referencing praxis.yaml. */
|
|
58
|
+
export declare function loadLocalPackage(entry: string, cwd: string): ResolvedPackage;
|
|
59
|
+
/**
|
|
60
|
+
* Resolve the selected packages against the installed set (filesystem-backed),
|
|
61
|
+
* plus any project-local packages the manifest names by path. A `./`- or
|
|
62
|
+
* `../`-prefixed entry is loaded from `cwd` via `loadLocalPackage`, checked for
|
|
63
|
+
* a name collision against every already-available package (shipped or an
|
|
64
|
+
* earlier local entry), and added to the available set under its declared
|
|
65
|
+
* name; non-path entries pass through unchanged. The actual composition rule
|
|
66
|
+
* (requires/conflicts/stack) still lives in the pure `resolve()` above.
|
|
67
|
+
*/
|
|
68
|
+
export declare function resolvePackages(selected: string[], declaredStacks?: string[], cwd?: string): ResolvedPackage[];
|
|
51
69
|
export {};
|
package/dist/packages.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
2
|
+
import { basename, join, resolve as resolvePath } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { parse as parseYaml } from "yaml";
|
|
5
5
|
import { z } from "zod";
|
|
@@ -20,7 +20,10 @@ const PACKAGES_DIR = new URL("../packages/", import.meta.url);
|
|
|
20
20
|
const ARTIFACTS = ["rules", "permissions", "commands", "plugins"];
|
|
21
21
|
// "external" holds thin packages that declare a Claude Code plugin marketplace
|
|
22
22
|
// (packages/external/<pkg>/) rather than authoring methodology content directly.
|
|
23
|
-
|
|
23
|
+
// "local" marks project-local packages: `./`- or `../`-prefixed path entries in
|
|
24
|
+
// the target repo's praxis.yaml `packages:` list, resolved from the target repo
|
|
25
|
+
// itself rather than the tree Praxis ships (docs/wiki/packages-and-emit.md).
|
|
26
|
+
const LAYERS = ["layer1", "layer2", "decision", "external", "local"];
|
|
24
27
|
export const packageManifestSchema = z.strictObject({
|
|
25
28
|
name: z.string().min(1),
|
|
26
29
|
layer: z.enum(LAYERS),
|
|
@@ -121,8 +124,54 @@ export function resolve(selected, available, declaredStacks = []) {
|
|
|
121
124
|
}
|
|
122
125
|
return resolved;
|
|
123
126
|
}
|
|
124
|
-
/**
|
|
125
|
-
|
|
126
|
-
|
|
127
|
+
/** True for a `praxis.yaml` packages entry that names a project-local package
|
|
128
|
+
* path (relative to the target repo cwd) rather than a shipped package name. */
|
|
129
|
+
export function isLocalPackagePath(entry) {
|
|
130
|
+
return entry.startsWith("./") || entry.startsWith("../");
|
|
131
|
+
}
|
|
132
|
+
/** Load a project-local package from `entry` (a `./`- or `../`-prefixed path in
|
|
133
|
+
* `praxis.yaml`), resolved against `cwd`. Fails loud if there's no
|
|
134
|
+
* `package.yaml` at that path, or if it doesn't declare `layer: local` — a
|
|
135
|
+
* project-local package must say so itself so provenance stays legible
|
|
136
|
+
* (shipped vs. project-owned) without cross-referencing praxis.yaml. */
|
|
137
|
+
export function loadLocalPackage(entry, cwd) {
|
|
138
|
+
const dir = resolvePath(cwd, entry);
|
|
139
|
+
const manifestPath = join(dir, "package.yaml");
|
|
140
|
+
if (!existsSync(manifestPath)) {
|
|
141
|
+
throw new Error(`praxis.yaml lists local package "${entry}" but no package.yaml exists at that path.`);
|
|
142
|
+
}
|
|
143
|
+
const manifest = parsePackageManifest(readFileSync(manifestPath, "utf8"), basename(dir));
|
|
144
|
+
if (manifest.layer !== "local") {
|
|
145
|
+
throw new Error(`Local package "${entry}" declares layer: ${manifest.layer}, but a project-local package ` +
|
|
146
|
+
`(a "./"-prefixed praxis.yaml entry) must declare \`layer: local\` — this keeps provenance ` +
|
|
147
|
+
`legible (shipped vs. project-owned) without cross-referencing praxis.yaml. Set \`layer: local\` ` +
|
|
148
|
+
`in ${entry}/package.yaml.`);
|
|
149
|
+
}
|
|
150
|
+
return { ...manifest, dir };
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Resolve the selected packages against the installed set (filesystem-backed),
|
|
154
|
+
* plus any project-local packages the manifest names by path. A `./`- or
|
|
155
|
+
* `../`-prefixed entry is loaded from `cwd` via `loadLocalPackage`, checked for
|
|
156
|
+
* a name collision against every already-available package (shipped or an
|
|
157
|
+
* earlier local entry), and added to the available set under its declared
|
|
158
|
+
* name; non-path entries pass through unchanged. The actual composition rule
|
|
159
|
+
* (requires/conflicts/stack) still lives in the pure `resolve()` above.
|
|
160
|
+
*/
|
|
161
|
+
export function resolvePackages(selected, declaredStacks = [], cwd = process.cwd()) {
|
|
162
|
+
const available = availablePackages();
|
|
163
|
+
const mapped = selected.map((entry) => {
|
|
164
|
+
if (!isLocalPackagePath(entry))
|
|
165
|
+
return entry;
|
|
166
|
+
const local = loadLocalPackage(entry, cwd);
|
|
167
|
+
const existing = available.get(local.name);
|
|
168
|
+
if (existing) {
|
|
169
|
+
throw new Error(`Local package "${entry}" collides with an already-installed package named "${local.name}".\n` +
|
|
170
|
+
`Rename its directory.`);
|
|
171
|
+
}
|
|
172
|
+
available.set(local.name, local);
|
|
173
|
+
return local.name;
|
|
174
|
+
});
|
|
175
|
+
return resolve(mapped, available, declaredStacks);
|
|
127
176
|
}
|
|
128
177
|
//# sourceMappingURL=packages.js.map
|
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,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../src/packages.ts"],"names":[],"mappings":"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"}
|
package/dist/permissions.d.ts
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* The neutral permission policy — a content package's *second artifact kind*
|
|
4
|
+
* (docs/wiki/packages-and-emit.md "provides", docs/wiki/emitters.md; decisions D18/D19). Where `rules.md` is
|
|
5
|
+
* tool-neutral prose, `permissions.yaml` is tool-neutral **structured intent**:
|
|
6
|
+
* it lists semantic *capabilities* in allow/ask/deny buckets. It is deliberately
|
|
7
|
+
* NOT a list of Claude Code rule strings — that would make the source tool-bound.
|
|
8
|
+
* Per-tool emitters translate each capability to concrete rules (or emit nothing
|
|
9
|
+
* where the tool has no permission model). This keeps "tool-neutral by
|
|
10
|
+
* construction" intact for the enforcement layer too.
|
|
11
|
+
*
|
|
12
|
+
* The capability vocabulary is closed (a zod enum): a policy may only reference
|
|
13
|
+
* capabilities every emitter knows how to translate, so a capability can never be
|
|
14
|
+
* silently dropped. Adding a capability is a deliberate edit here plus a mapping
|
|
15
|
+
* in each emitter — verified by conformance.
|
|
16
|
+
*/
|
|
2
17
|
declare const CAPABILITIES: readonly ["read-repo", "edit-repo", "run-dev-scripts", "read-only-git", "git-commit", "git-push", "install-deps", "destructive-delete", "force-push", "read-secrets", "global-install"];
|
|
3
18
|
export type Capability = (typeof CAPABILITIES)[number];
|
|
4
19
|
export declare const policySchema: z.ZodObject<{
|
|
@@ -47,8 +62,8 @@ export type Policy = z.infer<typeof policySchema>;
|
|
|
47
62
|
* error naming each problem — mirrors parseManifest in src/manifest.ts. */
|
|
48
63
|
export declare function parsePolicy(yamlText: string): Policy;
|
|
49
64
|
/** The neutral policy for a content package, or undefined if it provides none.
|
|
50
|
-
*
|
|
51
|
-
export declare function loadPolicy(
|
|
65
|
+
* Reads `<dir>/permissions.yaml` — mirrors loadPackageSource (src/emit.ts). */
|
|
66
|
+
export declare function loadPolicy(dir: string): Policy | undefined;
|
|
52
67
|
/** All capabilities referenced by a policy, across every bucket. */
|
|
53
68
|
export declare function policyCapabilities(policy: Policy): Capability[];
|
|
54
69
|
export {};
|
package/dist/permissions.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { existsSync,
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
3
|
import { parse as parseYaml } from "yaml";
|
|
5
4
|
import { z } from "zod";
|
|
6
5
|
import { BUCKETS } from "./merge-json.js";
|
|
@@ -19,7 +18,6 @@ import { BUCKETS } from "./merge-json.js";
|
|
|
19
18
|
* silently dropped. Adding a capability is a deliberate edit here plus a mapping
|
|
20
19
|
* in each emitter — verified by conformance.
|
|
21
20
|
*/
|
|
22
|
-
const PACKAGES_DIR = new URL("../packages/", import.meta.url);
|
|
23
21
|
// The closed capability vocabulary. Each is a durable, tool-agnostic intent;
|
|
24
22
|
// emitters own the concrete per-tool translation. Grows deliberately.
|
|
25
23
|
const CAPABILITIES = [
|
|
@@ -64,17 +62,10 @@ export function parsePolicy(yamlText) {
|
|
|
64
62
|
return result.data;
|
|
65
63
|
}
|
|
66
64
|
/** The neutral policy for a content package, or undefined if it provides none.
|
|
67
|
-
*
|
|
68
|
-
export function loadPolicy(
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
if (!entry.isDirectory())
|
|
72
|
-
continue;
|
|
73
|
-
const candidate = join(root, entry.name, pkg, "permissions.yaml");
|
|
74
|
-
if (existsSync(candidate))
|
|
75
|
-
return parsePolicy(readFileSync(candidate, "utf8"));
|
|
76
|
-
}
|
|
77
|
-
return undefined;
|
|
65
|
+
* Reads `<dir>/permissions.yaml` — mirrors loadPackageSource (src/emit.ts). */
|
|
66
|
+
export function loadPolicy(dir) {
|
|
67
|
+
const candidate = join(dir, "permissions.yaml");
|
|
68
|
+
return existsSync(candidate) ? parsePolicy(readFileSync(candidate, "utf8")) : undefined;
|
|
78
69
|
}
|
|
79
70
|
/** All capabilities referenced by a policy, across every bucket. */
|
|
80
71
|
export function policyCapabilities(policy) {
|
package/dist/permissions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AAEH,6EAA6E;AAC7E,sEAAsE;AACtE,MAAM,YAAY,GAAG;IACnB,WAAW,EAAE,+BAA+B;IAC5C,WAAW,EAAE,gDAAgD;IAC7D,iBAAiB,EAAE,gDAAgD;IACnE,eAAe,EAAE,0BAA0B;IAC3C,YAAY,EAAE,iBAAiB;IAC/B,UAAU,EAAE,mBAAmB;IAC/B,cAAc,EAAE,qCAAqC;IACrD,oBAAoB,EAAE,qCAAqC;IAC3D,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE,gCAAgC;IAChD,gBAAgB,EAAE,6CAA6C;CACvD,CAAC;AAIX,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAEjE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;IACzC,KAAK,EAAE,cAAc;IACrB,GAAG,EAAE,cAAc;IACnB,IAAI,EAAE,cAAc;CACrB,CAAC,CAAC;AAIH;4EAC4E;AAC5E,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uCAAwC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,IAAI;YACzC,gCAAgC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC3D,yEAAyE,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;gFACgF;AAChF,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAChD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1F,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC"}
|
package/dist/plugins.d.ts
CHANGED
|
@@ -31,5 +31,5 @@ export type PluginsBlock = z.infer<typeof pluginsBlockSchema>;
|
|
|
31
31
|
* agent-actionable error naming each problem — mirrors parsePolicy. */
|
|
32
32
|
export declare function parsePluginsBlock(yamlText: string, pkgName: string): PluginsBlock;
|
|
33
33
|
/** The neutral plugins declaration for a content package, or undefined if it
|
|
34
|
-
* provides none.
|
|
35
|
-
export declare function loadPluginsBlock(
|
|
34
|
+
* provides none. Reads `<dir>/plugins.yaml` — mirrors loadPolicy (src/permissions.ts). */
|
|
35
|
+
export declare function loadPluginsBlock(dir: string): PluginsBlock | undefined;
|
package/dist/plugins.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { existsSync,
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { basename, join } from "node:path";
|
|
4
3
|
import { parse as parseYaml } from "yaml";
|
|
5
4
|
import { z } from "zod";
|
|
6
5
|
/**
|
|
@@ -16,7 +15,6 @@ import { z } from "zod";
|
|
|
16
15
|
* Mirrors `src/permissions.ts`: a neutral, validated YAML source per package,
|
|
17
16
|
* loaded by scanning `packages/<layer>/<pkg>/plugins.yaml`.
|
|
18
17
|
*/
|
|
19
|
-
const PACKAGES_DIR = new URL("../packages/", import.meta.url);
|
|
20
18
|
// Marketplace source kinds Claude Code supports. Only "github" is verified and
|
|
21
19
|
// in use today; the schema is closed so an unverified source kind fails loud
|
|
22
20
|
// rather than being silently accepted and mis-emitted.
|
|
@@ -82,16 +80,9 @@ export function parsePluginsBlock(yamlText, pkgName) {
|
|
|
82
80
|
return result.data;
|
|
83
81
|
}
|
|
84
82
|
/** The neutral plugins declaration for a content package, or undefined if it
|
|
85
|
-
* provides none.
|
|
86
|
-
export function loadPluginsBlock(
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
if (!entry.isDirectory())
|
|
90
|
-
continue;
|
|
91
|
-
const candidate = join(root, entry.name, pkg, "plugins.yaml");
|
|
92
|
-
if (existsSync(candidate))
|
|
93
|
-
return parsePluginsBlock(readFileSync(candidate, "utf8"), pkg);
|
|
94
|
-
}
|
|
95
|
-
return undefined;
|
|
83
|
+
* provides none. Reads `<dir>/plugins.yaml` — mirrors loadPolicy (src/permissions.ts). */
|
|
84
|
+
export function loadPluginsBlock(dir) {
|
|
85
|
+
const candidate = join(dir, "plugins.yaml");
|
|
86
|
+
return existsSync(candidate) ? parsePluginsBlock(readFileSync(candidate, "utf8"), basename(dir)) : undefined;
|
|
96
87
|
}
|
|
97
88
|
//# sourceMappingURL=plugins.js.map
|
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,
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
|
package/dist/program.js
CHANGED
|
@@ -104,7 +104,7 @@ export function reconcile(cwd, write, mode) {
|
|
|
104
104
|
// let this computation throw or mask the sync error already reported.
|
|
105
105
|
try {
|
|
106
106
|
const manifest = loadManifest(join(cwd, "praxis.yaml"));
|
|
107
|
-
methodologySize = computeMethodologySize(manifest);
|
|
107
|
+
methodologySize = computeMethodologySize(manifest, cwd);
|
|
108
108
|
sharedInstructionReport = checkSharedInstructions(cwd, manifest);
|
|
109
109
|
if (!sharedInstructionReport.ok)
|
|
110
110
|
exitCode = 1;
|
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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"}
|
package/dist/sync.js
CHANGED
|
@@ -15,7 +15,7 @@ export function runSync(opts) {
|
|
|
15
15
|
* the emit before `praxis.yaml` exists.
|
|
16
16
|
*/
|
|
17
17
|
export function applyManifest(manifest, cwd, write) {
|
|
18
|
-
const ops = planEmit(manifest);
|
|
18
|
+
const ops = planEmit(manifest, cwd);
|
|
19
19
|
const files = [];
|
|
20
20
|
const handledPaths = new Set();
|
|
21
21
|
for (const op of ops) {
|
package/dist/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Capture this team's own coding patterns from an exemplar module into a project-local Praxis package that rides praxis sync.
|
|
3
|
+
argument-hint: [optional-exemplar-path]
|
|
4
|
+
allowed-tools: Read, Glob, Grep, Bash(git log:*), Bash(git diff:*), Bash(ls:*), Bash(mkdir:*), Write, Edit, Bash(npx @aacombarro89/praxis@latest sync:*), Bash(npx @aacombarro89/praxis@latest check:*), Bash(npx @aacombarro89/praxis sync:*), Bash(npx @aacombarro89/praxis check:*), Bash(praxis sync:*), Bash(praxis check:*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Exemplar: {{arguments}} — if empty, propose candidates in step 2 rather than
|
|
8
|
+
picking silently.
|
|
9
|
+
|
|
10
|
+
Praxis never calls an LLM (D12) or authors project facts directly (D13). The
|
|
11
|
+
**agent** — you — extracts and authors every pattern below *with the user*;
|
|
12
|
+
Praxis's own CLI only resolves, emits, and syncs the package once it exists.
|
|
13
|
+
|
|
14
|
+
1. **Preflight.** Read `praxis.yaml` (`targets`, `stacks`, `packages`). If a
|
|
15
|
+
`./`-prefixed entry already resolves to a local patterns package (its
|
|
16
|
+
`package.yaml` under `praxis/packages/<name>/`), this is a refinement run:
|
|
17
|
+
read its `rules.md` and offer to update or extend it rather than create a
|
|
18
|
+
new one. State the framing above up front so the user knows what's about to
|
|
19
|
+
happen.
|
|
20
|
+
|
|
21
|
+
2. **Exemplar interview.** Ask the user to point at one to three modules or
|
|
22
|
+
directories that best show how code in this repo *should* look. If they
|
|
23
|
+
can't choose, propose candidates — central, recently and frequently touched
|
|
24
|
+
directories — and confirm before proceeding, never pick silently:
|
|
25
|
+
|
|
26
|
+
- Recently touched: {{shell:git log --oneline -20 2>/dev/null}}
|
|
27
|
+
- Frequently touched: {{shell:git log --pretty=format: --name-only -50 2>/dev/null | sort | uniq -c | sort -rn | head -20}}
|
|
28
|
+
|
|
29
|
+
3. **Extract candidates.** Read the exemplar(s), their immediate neighbors,
|
|
30
|
+
and their tests. Derive candidate patterns across this checklist: module
|
|
31
|
+
structure & naming, import/dependency habits, error handling,
|
|
32
|
+
typing/validation, IO-vs-logic separation, test shape & location,
|
|
33
|
+
comment/doc style. Every candidate cites concrete evidence — the file and
|
|
34
|
+
the shape in it that shows the pattern. Never propose a pattern the code
|
|
35
|
+
does not actually exhibit.
|
|
36
|
+
|
|
37
|
+
4. **Iterate.** Present candidates in small groups; the user accepts, rejects,
|
|
38
|
+
or refines each. When a candidate is a recognized anti-pattern, push back
|
|
39
|
+
once with rationale — what breaks, and when — then let the user decide; if
|
|
40
|
+
they keep it, record it plainly rather than silently dropping the pushback.
|
|
41
|
+
A convention enters the package only if it's verifiable in the exemplar or
|
|
42
|
+
explicitly confirmed by the user.
|
|
43
|
+
|
|
44
|
+
5. **Scaffold the local package.** Default to
|
|
45
|
+
`praxis/packages/codebase-patterns/`; confirm the name with the user
|
|
46
|
+
(kebab-case — the declared `name` must equal the directory basename, same
|
|
47
|
+
rule as a shipped package). Write:
|
|
48
|
+
|
|
49
|
+
- `package.yaml` — `name`, `layer: local`, `provides: [rules]`.
|
|
50
|
+
- `rules.md` — compact imperative bullets, each with a one-line why and an
|
|
51
|
+
exemplar pointer (`path` — what it shows). Aim under ~60 lines; this file
|
|
52
|
+
is always-loaded once installed, so keep it to what earns that cost. Use
|
|
53
|
+
`paths:` frontmatter only if the conventions are scoped to a subtree.
|
|
54
|
+
|
|
55
|
+
6. **Register.** Add `./praxis/packages/codebase-patterns` (or the confirmed
|
|
56
|
+
path) to the `packages:` list in `praxis.yaml`. Editing the manifest and
|
|
57
|
+
syncing is the only customization path — never write emitted files by hand.
|
|
58
|
+
|
|
59
|
+
7. **Sync + verify.** Run `praxis sync` if the CLI is on PATH, otherwise fall
|
|
60
|
+
back to `npx @aacombarro89/praxis@latest sync` (pin `@latest` — a bare
|
|
61
|
+
`npx @aacombarro89/praxis` can silently reuse a stale cached build). Then
|
|
62
|
+
run `praxis check` (or the `npx` equivalent) and fix anything it reports
|
|
63
|
+
before finishing.
|
|
64
|
+
|
|
65
|
+
8. **Report.** Summarize the conventions captured (with their exemplar
|
|
66
|
+
pointers), any candidates the user rejected and why, and note that this
|
|
67
|
+
command is re-runnable anytime to refine or extend the package as the
|
|
68
|
+
codebase evolves.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Package manifest (docs/wiki/packages-and-emit.md, D49). Commands-only: no rules.md,
|
|
2
|
+
# so this package is zero-cost between runs (nothing always-loaded). Ships the
|
|
3
|
+
# /praxis-capture-codebase-patterns command (commands/capture-codebase-patterns.md):
|
|
4
|
+
# the agent interviews the developer, extracts this team's OWN coding patterns from an
|
|
5
|
+
# exemplar module with cited evidence, iterates on candidates, and generates a
|
|
6
|
+
# project-local `codebase-patterns` package (layer: local, D49) that then rides normal
|
|
7
|
+
# `praxis sync`. Praxis never calls an LLM or authors project facts directly (D12/D13) —
|
|
8
|
+
# the agent authors the generated package's content, guided by this command.
|
|
9
|
+
name: capture-codebase-patterns
|
|
10
|
+
layer: layer1
|
|
11
|
+
provides: [commands]
|
|
12
|
+
onboarding:
|
|
13
|
+
command: praxis-capture-codebase-patterns
|
|
14
|
+
summary: "Capture this team's own coding patterns from an exemplar module into a project-local Praxis package that rides praxis sync."
|
|
@@ -12,23 +12,22 @@ Layer 1 rules (think before coding, simplicity first, surgical changes,
|
|
|
12
12
|
goal-driven execution) apply unchanged — this file adds only what is
|
|
13
13
|
Node-specific.
|
|
14
14
|
|
|
15
|
-
- **
|
|
16
|
-
|
|
17
|
-
directory, an adjacent route/command/service). Copy its structure — imports,
|
|
18
|
-
exports, error handling, naming — rather than inventing a new shape. The
|
|
19
|
-
prior art is the template; matching it is verifiable, following prose is not.
|
|
20
|
-
- **One module, one responsibility.** A new `.ts` file exports the smallest
|
|
21
|
-
coherent unit. Keep pure logic separate from I/O (filesystem, network, process)
|
|
22
|
-
so the logic is testable without mocks — mirror how the existing modules here
|
|
23
|
-
already split the two.
|
|
24
|
-
- **Use the platform and installed deps before adding one.** Node stdlib (`node:fs`,
|
|
25
|
-
`node:path`, `node:crypto`, `fetch`) and a dependency already in
|
|
26
|
-
`package.json` cover most needs. A new dependency for what a few lines do is
|
|
27
|
-
debt; justify it against what is already imported in neighbouring files.
|
|
28
|
-
- **Types are the contract.** Type the inputs and outputs at module boundaries;
|
|
29
|
-
validate external/untrusted input where it enters (a schema validator if the
|
|
30
|
-
repo already uses one, e.g. zod). Don't re-validate data already typed and
|
|
31
|
-
checked upstream.
|
|
32
|
-
- **ESM vs CJS, follow the repo.** Match the module system, import extensions
|
|
33
|
-
(`.js` specifiers under `"type": "module"`), and `tsconfig` target already in
|
|
15
|
+
- **ESM vs CJS, follow the repo.** Match the module system, `.js` import
|
|
16
|
+
specifiers under `"type": "module"`, and the `tsconfig` target already in
|
|
34
17
|
use — don't introduce a second convention.
|
|
18
|
+
- **Every promise is handled.** `await` it, `return` it, or explicitly `void`
|
|
19
|
+
it with a comment explaining why. A floating promise swallows its rejection
|
|
20
|
+
and its ordering.
|
|
21
|
+
- **Never silence the type checker.** No `any`, no `as` cast, no non-null `!`
|
|
22
|
+
to make an error disappear. Fix the type; a suppressed error is a runtime
|
|
23
|
+
bug deferred.
|
|
24
|
+
- **Prefer the platform before a dependency.** `node:`-prefixed builtins
|
|
25
|
+
(`node:fs/promises`, `node:path`, `node:crypto`) and global `fetch` cover
|
|
26
|
+
most needs; justify a new dependency against what neighbouring files
|
|
27
|
+
already import.
|
|
28
|
+
- **Throw `Error` subclasses, never strings.** Attach `cause` when
|
|
29
|
+
re-throwing, and handle `error` events on child processes and streams — an
|
|
30
|
+
unhandled one crashes the process.
|
|
31
|
+
- **Validate untrusted input where it enters.** Use the repo's validator
|
|
32
|
+
(e.g. zod) with a non-throwing parse (`safeParse`-style) at the boundary;
|
|
33
|
+
don't re-validate data already typed and checked upstream.
|
|
@@ -4,34 +4,29 @@ paths: ["**/*.ts", "**/*.tsx", "**/*.test.ts", "**/*.spec.ts"]
|
|
|
4
4
|
|
|
5
5
|
## Node/TypeScript test-layer recipe (Layer 2)
|
|
6
6
|
|
|
7
|
-
Choosing *where* a test belongs matters as much as writing it
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
Choosing *where* a test belongs matters as much as writing it: pick unit,
|
|
8
|
+
integration, or conformance/end-to-end by what could actually break —
|
|
9
|
+
unit for a single module's logic, integration for real seams (filesystem, a
|
|
10
|
+
spawned process, a built artifact), conformance/e2e for rails the whole tool
|
|
11
|
+
must honour. Then mirror the nearest existing test of that same layer for its
|
|
12
|
+
runner, file location, naming, and fixtures rather than inventing a new shape.
|
|
10
13
|
|
|
11
14
|
Layer 1 rules (think before coding, simplicity first, surgical changes,
|
|
12
15
|
goal-driven execution) apply unchanged — this file adds only what is
|
|
13
16
|
Node-testing-specific.
|
|
14
17
|
|
|
15
|
-
- **
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
file location and naming convention, how it builds fixtures and asserts. Don't
|
|
31
|
-
introduce a second runner or a new fixture style.
|
|
32
|
-
- **Assert behaviour, not implementation.** Test observable inputs→outputs and
|
|
33
|
-
error cases at the boundary; avoid asserting private internals that refactors
|
|
34
|
-
will churn. One clear failing assertion beats five brittle ones.
|
|
35
|
-
- **No new framework for one test.** The repo's installed runner and plain
|
|
36
|
-
assertions cover almost everything. Reach for a new testing dependency only
|
|
37
|
-
when the existing one demonstrably cannot express the check.
|
|
18
|
+
- **One runner in `package.json`.** Use whichever of vitest or jest the repo
|
|
19
|
+
already has; don't add a second runner or a new assertion library for what
|
|
20
|
+
plain `expect` calls already cover.
|
|
21
|
+
- **Await the assertion chain.** `await` or `return` a promise-returning
|
|
22
|
+
assertion (e.g. `expect(promise).rejects...`) — a test whose promise
|
|
23
|
+
resolves after the test function returns asserts nothing and passes falsely.
|
|
24
|
+
- **Restore fake timers.** Pair `vi.useFakeTimers()`/`jest.useFakeTimers()`
|
|
25
|
+
with a restore in teardown, and never mix fake timers with a real
|
|
26
|
+
`setTimeout` await inside the same test.
|
|
27
|
+
- **Reset mocks between tests.** No shared mutable module state leaking across
|
|
28
|
+
cases; restore spies/mocks in `afterEach` so test order can't change the
|
|
29
|
+
outcome.
|
|
30
|
+
- **Temp dir for real-filesystem tests.** Use `fs.mkdtemp` (or the repo's tmp
|
|
31
|
+
helper) and clean up in teardown; never write into the repo tree or a fixed
|
|
32
|
+
path on disk.
|
|
@@ -12,26 +12,22 @@ Layer 1 rules (think before coding, simplicity first, surgical changes,
|
|
|
12
12
|
goal-driven execution) apply unchanged — this file adds only what is
|
|
13
13
|
Python-specific.
|
|
14
14
|
|
|
15
|
-
- **Mirror the nearest module.** Before adding a feature, open the closest
|
|
16
|
-
existing file that already does the same kind of thing (a sibling in the same
|
|
17
|
-
directory, an adjacent route/handler/service). Copy its structure — imports,
|
|
18
|
-
class/function layout, error handling, naming — rather than inventing a new
|
|
19
|
-
shape. The prior art is the template; matching it is verifiable, following
|
|
20
|
-
prose is not.
|
|
21
|
-
- **One module, one responsibility.** A new `.py` file exports the smallest
|
|
22
|
-
coherent unit. Keep pure logic separate from I/O (filesystem, network, database)
|
|
23
|
-
so the logic is testable without mocks — mirror how the existing modules here
|
|
24
|
-
already split the two.
|
|
25
|
-
- **Use the stdlib and installed deps before adding one.** Python stdlib
|
|
26
|
-
(`pathlib`, `dataclasses`, `typing`, `json`, `os`) and a dependency already in
|
|
27
|
-
`pyproject.toml` / `requirements*.txt` cover most needs. A new dependency for
|
|
28
|
-
what a few lines do is debt; justify it against what is already imported in
|
|
29
|
-
neighbouring files.
|
|
30
|
-
- **Type hints are the contract.** Annotate inputs and outputs at module
|
|
31
|
-
boundaries; validate external/untrusted input where it enters (a schema
|
|
32
|
-
validator if the repo already uses one, e.g. pydantic). Don't re-validate data
|
|
33
|
-
already typed and checked upstream.
|
|
34
15
|
- **Follow the repo's packaging conventions.** Match the module layout, import
|
|
35
|
-
style (absolute vs relative), and packaging already in use —
|
|
36
|
-
second convention.
|
|
37
|
-
|
|
16
|
+
style (absolute vs relative), and `src/` vs flat packaging already in use —
|
|
17
|
+
don't introduce a second convention.
|
|
18
|
+
- **No mutable default arguments.** A `[]` or `{}` default is shared across
|
|
19
|
+
every call; use a `None` sentinel and build the value inside the function
|
|
20
|
+
body.
|
|
21
|
+
- **Never swallow exceptions.** No bare `except:`; catch the narrowest
|
|
22
|
+
exception type and either handle it or re-raise with `raise ... from e` to
|
|
23
|
+
keep the chain.
|
|
24
|
+
- **Timezone-aware datetimes.** Use `datetime.now(timezone.utc)`, not naive
|
|
25
|
+
`datetime.now()` — a naive datetime is a latent bug at every boundary it
|
|
26
|
+
crosses.
|
|
27
|
+
- **No blocking calls inside `async def`.** `requests`, `time.sleep`, and sync
|
|
28
|
+
DB drivers stall the event loop; use the async equivalent or run it in an
|
|
29
|
+
executor.
|
|
30
|
+
- **Parameterized queries only.** Pass values as query parameters; never build
|
|
31
|
+
SQL with f-strings or `%` interpolation.
|
|
32
|
+
- **Context managers for resources.** Open files, connections, and locks with
|
|
33
|
+
`with` so they close on every path, including exceptions.
|
|
@@ -4,34 +4,28 @@ paths: ["**/*.py", "**/test_*.py", "**/*_test.py"]
|
|
|
4
4
|
|
|
5
5
|
## Python test-layer recipe (Layer 2)
|
|
6
6
|
|
|
7
|
-
Choosing *where* a test belongs matters as much as writing it
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
Choosing *where* a test belongs matters as much as writing it: pick unit,
|
|
8
|
+
integration, or end-to-end by what could actually break — unit for a single
|
|
9
|
+
module's logic, integration for real seams (filesystem, a spawned process, a
|
|
10
|
+
database), end-to-end for an invariant the whole application must honour.
|
|
11
|
+
Then mirror the nearest existing test of that same layer for its location
|
|
12
|
+
(`tests/` or alongside), `test_*.py` naming, and `conftest.py` fixtures rather
|
|
13
|
+
than inventing a new shape.
|
|
10
14
|
|
|
11
15
|
Layer 1 rules (think before coding, simplicity first, surgical changes,
|
|
12
16
|
goal-driven execution) apply unchanged — this file adds only what is
|
|
13
17
|
Python-testing-specific.
|
|
14
18
|
|
|
15
|
-
- **
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
its setup — `pytest` is the default, its file location (`tests/` or alongside
|
|
29
|
-
source), naming convention (`test_*.py`), how it builds fixtures (`conftest.py`,
|
|
30
|
-
`@pytest.fixture`) and asserts. Don't introduce a second runner or a new fixture
|
|
31
|
-
style.
|
|
32
|
-
- **Assert behaviour, not implementation.** Test observable inputs→outputs and
|
|
33
|
-
error cases at the boundary; avoid asserting private internals that refactors
|
|
34
|
-
will churn. One clear failing assertion beats five brittle ones.
|
|
35
|
-
- **No new framework for one test.** The repo's installed runner and plain
|
|
36
|
-
`assert` statements cover almost everything. Reach for a new testing dependency
|
|
37
|
-
only when the existing one demonstrably cannot express the check.
|
|
19
|
+
- **Plain `assert` with pytest.** Let pytest's assertion rewriting report the
|
|
20
|
+
values; don't wrap checks in `unittest` assert methods or add a second
|
|
21
|
+
runner.
|
|
22
|
+
- **Prefer builtin fixtures.** Reach for `tmp_path`, `monkeypatch`, `capsys`
|
|
23
|
+
over hand-rolled setup/teardown code — they clean up after themselves.
|
|
24
|
+
- **Parametrize instead of copy-paste.** Use `@pytest.mark.parametrize` for
|
|
25
|
+
the same body run over many inputs, not duplicated test functions.
|
|
26
|
+
- **Default fixtures to function scope.** Widen to `module`/`session` scope
|
|
27
|
+
only for an expensive read-only resource; a wider scope shares mutable
|
|
28
|
+
state across tests that expect isolation.
|
|
29
|
+
- **Assert error paths with `pytest.raises`.** Use
|
|
30
|
+
`with pytest.raises(Err, match=...)` and assert on the message so the wrong
|
|
31
|
+
error can't pass silently.
|
|
@@ -13,32 +13,37 @@ Layer 1 rules (think before coding, simplicity first, surgical changes,
|
|
|
13
13
|
goal-driven execution) apply unchanged — this file adds only what is
|
|
14
14
|
React-specific.
|
|
15
15
|
|
|
16
|
-
- **Mirror the nearest component.** Before adding a component, open the closest
|
|
17
|
-
existing one that does the same kind of thing (a sibling in the same directory
|
|
18
|
-
or feature folder). Copy its structure — file layout, how it exports, how it
|
|
19
|
-
receives and passes props, where state lives — rather than inventing a new
|
|
20
|
-
shape. The prior art is the template; matching it is verifiable, following
|
|
21
|
-
prose is not.
|
|
22
16
|
- **Props typed at the boundary.** Every component declares an explicit props
|
|
23
|
-
interface or type at the top of its file. Accept the minimum props needed;
|
|
24
|
-
catch-all `[key: string]: unknown`.
|
|
25
|
-
uses them.
|
|
17
|
+
interface or type at the top of its file. Accept the minimum props needed;
|
|
18
|
+
no catch-all `[key: string]: unknown`.
|
|
26
19
|
- **Composition over configuration.** Prefer a small focused component used in
|
|
27
20
|
multiple arrangements over a large one with a boolean-flag API. When a
|
|
28
|
-
component's props grow into a switch statement, split into two components
|
|
29
|
-
share a common primitive.
|
|
30
|
-
- **Native HTML elements before a component library.** A `<button>`,
|
|
31
|
-
or `<ul>` is always the first option. Reach for a library
|
|
32
|
-
the native element demonstrably cannot satisfy the
|
|
33
|
-
whichever library the repo already imports
|
|
34
|
-
- **Accessibility is non-negotiable.** Every interactive element is reachable
|
|
35
|
-
keyboard and has a visible focus style. Form inputs have associated
|
|
36
|
-
elements
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
21
|
+
component's props grow into a switch statement, split into two components
|
|
22
|
+
that share a common primitive.
|
|
23
|
+
- **Native HTML elements before a component library.** A `<button>`,
|
|
24
|
+
`<label>`, or `<ul>` is always the first option. Reach for a library
|
|
25
|
+
component only when the native element demonstrably cannot satisfy the
|
|
26
|
+
requirement — and then use whichever library the repo already imports.
|
|
27
|
+
- **Accessibility is non-negotiable.** Every interactive element is reachable
|
|
28
|
+
by keyboard and has a visible focus style. Form inputs have associated
|
|
29
|
+
`<label>` elements. Non-decorative images have descriptive `alt` text.
|
|
30
|
+
Custom interactive elements carry the correct ARIA `role` and `aria-*`
|
|
31
|
+
attributes.
|
|
32
|
+
- **Follow the repo's hooks and state conventions.** Use
|
|
33
|
+
`useState`/`useReducer` at the level state is first needed, and lift only
|
|
34
|
+
when a sibling needs it. Don't introduce a new global-state library for a
|
|
35
|
+
single component's needs.
|
|
36
|
+
- **You might not need an effect.** Derive values during render instead of
|
|
37
|
+
mirroring props/state into state; an effect is for synchronizing with an
|
|
38
|
+
external system, not for computing from existing state.
|
|
39
|
+
- **Name the effect callback.** `useEffect(function syncScrollPosition() { … },
|
|
40
|
+
[deps])` — a named function makes the effect's intent legible and gives it a
|
|
41
|
+
real name in stack traces and React DevTools instead of an anonymous arrow.
|
|
42
|
+
- **Every subscription effect returns its cleanup.** A listener, timer, or
|
|
43
|
+
subscription set up in an effect is torn down in the function the effect
|
|
44
|
+
returns.
|
|
45
|
+
- **`key` is stable identity, not the array index.** Keys must survive
|
|
46
|
+
reordering; index keys corrupt state on insert or remove.
|
|
47
|
+
- **No `memo`/`useMemo`/`useCallback` by default.** Add memoization only
|
|
48
|
+
against a measured problem; premature memoization is complexity with no
|
|
49
|
+
payoff.
|
|
@@ -4,36 +4,27 @@ paths: ["**/*.test.tsx", "**/*.test.jsx", "**/*.spec.tsx", "**/*.spec.jsx"]
|
|
|
4
4
|
|
|
5
5
|
## React test-layer recipe (Layer 2)
|
|
6
6
|
|
|
7
|
-
Choosing *where* a test belongs matters as much as writing it
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
Choosing *where* a test belongs matters as much as writing it: pick unit
|
|
8
|
+
render, integration, or end-to-end by what could actually break — a single
|
|
9
|
+
component in isolation, two or more components (or a component wired to a
|
|
10
|
+
real hook/context/store), or a full user journey in a real browser reserved
|
|
11
|
+
for critical paths. Then mirror the nearest existing test's RTL setup,
|
|
12
|
+
provider wrapping, runner, and naming rather than inventing a new shape.
|
|
10
13
|
|
|
11
14
|
Layer 1 rules (think before coding, simplicity first, surgical changes,
|
|
12
15
|
goal-driven execution) apply unchanged — this file adds only what is
|
|
13
16
|
React-testing-specific.
|
|
14
17
|
|
|
15
|
-
- **
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
critical paths that no unit or integration test can protect; reserve for the
|
|
29
|
-
rails, not for every feature.
|
|
30
|
-
- **Use React Testing Library.** The repo's RTL setup (`render`, `screen`,
|
|
31
|
-
`userEvent`, `fireEvent`) covers almost everything. Mirror the nearest
|
|
32
|
-
existing test file for setup, cleanup, and how it wraps providers. Don't
|
|
33
|
-
introduce a second render helper or a separate component-testing framework.
|
|
34
|
-
- **Mirror the existing suite.** Copy the nearest test file's structure —
|
|
35
|
-
runner, file naming, directory location, how it imports the component under
|
|
36
|
-
test, how it sets up providers or mocks. Consistency beats cleverness.
|
|
37
|
-
- **No new framework for one test.** RTL and the repo's installed runner (e.g.
|
|
38
|
-
vitest/jest) cover almost every component test need. Reach for a new dependency
|
|
39
|
-
only when the existing tooling demonstrably cannot express the check.
|
|
18
|
+
- **Query by role, label, or text.** Use `getByRole`, `getByLabelText`,
|
|
19
|
+
`getByText` — never CSS class, a test id where a role exists, or internal
|
|
20
|
+
component state. A test that breaks on a classname rename without catching
|
|
21
|
+
a regression is noise.
|
|
22
|
+
- **Interactions go through `userEvent`.** Await it
|
|
23
|
+
(`await userEvent.click(...)`); prefer it over `fireEvent`, which skips the
|
|
24
|
+
events real users trigger.
|
|
25
|
+
- **Await async UI with `findBy*`.** Use `findByRole`/`findByText` (or
|
|
26
|
+
`waitFor`) for content that appears after an effect; never put a
|
|
27
|
+
side-effecting call inside `waitFor`.
|
|
28
|
+
- **Wrap renders with the repo's provider helper.** Mirror how the nearest
|
|
29
|
+
test supplies context, store, or router rather than rendering the bare
|
|
30
|
+
component.
|