13 lines
1.1 KiB
JavaScript
13 lines
1.1 KiB
JavaScript
import { readFileSync } from 'node:fs';
|
|
const read = (path) => readFileSync(new URL(`../${path}`, import.meta.url), 'utf8');
|
|
const html = read('index.html');
|
|
const js = read('app.js');
|
|
const refs = read('docs/references/README.md');
|
|
for (const url of ['https://code.claude.com/docs/en/sub-agents','https://code.claude.com/docs/en/skills','https://code.claude.com/docs/en/worktrees','https://git-scm.com/docs/git-worktree.html','https://developers.openai.com/codex/skills']) if (!refs.includes(url)) throw new Error(`missing reference ${url}`);
|
|
console.log('content verification passed');
|
|
for (const token of ['data-phase="plan"','data-phase="build"','data-phase="review"','docs/references/','role="tablist"','<table']) if (!html.includes(token)) throw new Error(`missing content ${token}`);
|
|
for (const token of ['const phases','addEventListener','render(\'plan\')']) if (!js.includes(token)) throw new Error(`missing interaction ${token}`);
|
|
console.log('interaction verification passed');
|
|
if (html.includes('src="http') || html.includes('href="http')) throw new Error('external runtime dependency found');
|
|
console.log('standalone verification passed');
|