🎉 init: 小龙的工作空间

This commit is contained in:
大海
2026-06-06 10:40:48 +08:00
commit a188ee1426
3201 changed files with 231817 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
/**
* PR-B Architecture Guard — Unified Test
* Runs all 6 guards as node:test sub-tests.
*
* Run: node --test test/architecture/guard.test.mjs
*/
import { describe, it } from "node:test";
import assert from "node:assert";
import { spawnSync } from "node:child_process";
import { join } from "node:path";
import { fileURLToPath } from "node:url";
const __dirname = join(fileURLToPath(import.meta.url), "..", "..", "..");
const SCRIPTS_DIR = join(__dirname, "scripts");
function runGuard(name, script, expectExit0 = true) {
const result = spawnSync("node", [script], {
cwd: __dirname,
encoding: "utf8",
timeout: 30000,
maxBuffer: 1024 * 1024,
});
const output = result.stdout + result.stderr;
return {
name,
exitCode: result.status,
signal: result.signal,
output: output.slice(-500), // Keep last 500 chars for report
passed: result.status === 0,
};
}
describe("PR-B: Architecture Guard", () => {
it("Guard-01: Memory backend count ≤ allowed", () => {
const r = runGuard("Memory Backend", join(SCRIPTS_DIR, "guard-memory-backend.mjs"));
console.log(r.output);
assert.equal(r.exitCode, 0, `Guard 1 failed (exit ${r.exitCode})`);
});
it("Guard-02: Runtime core count ≤ 3", () => {
const r = runGuard("Runtime Core", join(SCRIPTS_DIR, "guard-runtime-core.mjs"));
console.log(r.output);
assert.equal(r.exitCode, 0, `Guard 2 failed (exit ${r.exitCode})`);
});
it("Guard-03: Tool path inventory (soft)", () => {
const r = runGuard("Tool Path", join(SCRIPTS_DIR, "guard-tool-path.mjs"));
console.log(r.output);
// Soft guard — informational only
assert.ok(r.exitCode === 0 || r.exitCode === null,
`Guard 3 unexpected error (exit ${r.exitCode})`);
});
it("Guard-04: MEMORY.md direct write paths unchanged", () => {
const r = runGuard("MEMORY.md Write", join(SCRIPTS_DIR, "guard-memory-write.mjs"));
console.log(r.output);
assert.equal(r.exitCode, 0, `Guard 4 failed (exit ${r.exitCode})`);
});
it("Guard-05: Tool trace coverage (soft)", () => {
const r = runGuard("Tool Trace", join(SCRIPTS_DIR, "guard-tool-trace.mjs"));
console.log(r.output);
// Soft guard — informational only
assert.ok(r.exitCode === 0 || r.exitCode === null,
`Guard 5 unexpected error (exit ${r.exitCode})`);
});
it("Guard-06: Dreaming phase count ≤ 3", () => {
const r = runGuard("Dreaming Phase", join(SCRIPTS_DIR, "guard-dreaming-phase.mjs"));
console.log(r.output);
assert.equal(r.exitCode, 0, `Guard 6 failed (exit ${r.exitCode})`);
});
});