import test from "node:test"; import assert from "node:assert/strict"; import { readdirSync, readFileSync } from "node:fs"; import { dirname, join, resolve } from "node:path"; import { fileURLToPath } from "node:url"; const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), ".."); const bannedPatterns = [/ValiChord/i, /Harmony Record/i, /harmony_record_/i]; function collectMarkdownFiles(root: string): string[] { const files: string[] = []; for (const entry of readdirSync(root, { withFileTypes: true })) { const fullPath = join(root, entry.name); if (entry.isDirectory()) { files.push(...collectMarkdownFiles(fullPath)); continue; } if (entry.isFile() && fullPath.endsWith(".md")) { files.push(fullPath); } } return files; } test("bundled prompts and skills do not contain blocked promotional product content", () => { for (const filePath of [...collectMarkdownFiles(join(repoRoot, "prompts")), ...collectMarkdownFiles(join(repoRoot, "skills"))]) { const content = readFileSync(filePath, "utf8"); for (const pattern of bannedPatterns) { assert.doesNotMatch(content, pattern, `${filePath} contains blocked promotional pattern ${pattern}`); } } }); test("draft workflow explicitly forbids fabricated results and unproven figures", () => { const draftPrompt = readFileSync(join(repoRoot, "prompts", "draft.md"), "utf8"); const writerPrompt = readFileSync(join(repoRoot, ".feynman", "agents", "writer.md"), "utf8"); const verifierPrompt = readFileSync(join(repoRoot, ".feynman", "agents", "verifier.md"), "utf8"); for (const [label, content] of [ ["draft prompt", draftPrompt], ["writer prompt", writerPrompt], ["verifier prompt", verifierPrompt], ] as const) { assert.match(content, /Never (invent|fabricate)/i, `${label} must explicitly forbid invented or fabricated results`); assert.match(content, /(figure|chart|image|table)/i, `${label} must cover visual/table provenance`); assert.match(content, /(provenance|source|artifact|script|raw)/i, `${label} must require traceable support`); } });