feat(hldp): review causal note quality

This commit is contained in:
冰朔 2026-08-15 22:18:49 +08:00
commit 090fe333d4
3 changed files with 69 additions and 2 deletions

View file

@ -4,7 +4,7 @@ import fs from "node:fs";
import path from "node:path";
import test from "node:test";
import { fileURLToPath } from "node:url";
import { BOOTSTRAP_LIMIT_BYTES, bootstrap, readNode, route, verifyTree } from "./hldp-memory.mjs";
import { BOOTSTRAP_LIMIT_BYTES, bootstrap, readNode, reviewTree, route, verifyTree } from "./hldp-memory.mjs";
function validTree() {
return {
@ -29,6 +29,20 @@ function validTree() {
test("validates a bounded causal tree", () => assert.deepEqual(verifyTree(validTree()), []));
test("reviews whether a leaf preserves causal transitions instead of becoming a diary entry", () => {
const reviewed = reviewTree(validTree(), "root/decision");
assert.equal(reviewed.ok, true);
assert.equal(reviewed.reviewed, 1);
const diary = validTree();
diary.nodes["root/decision"].emergence = "上午讨论方案,下午继续工作,晚上保存文件";
diary.nodes["root/decision"].why = "记一下";
const rejected = reviewTree(diary, "root/decision");
assert.equal(rejected.ok, false);
assert(rejected.errors.some((error) => error.includes("transition chain")));
assert(rejected.errors.some((error) => error.includes("why is too generic")));
});
test("rejects more than ten siblings and missing why", () => {
const tree = validTree();
tree.nodes.root.children = Array.from({ length: 11 }, (_, i) => `child-${i}`);