Prune stale docs and update .hermes content

Delete a large set of outdated documentation (many files under docs/ and .hermes/plans/, including audits, design, prd, technical, planning, assets, and todos). Update and consolidate .hermes content: refresh shared-memory pages (decision-log, development-workflow, document-map, pitfalls, project-overview, team-conventions) and several skills/references under .hermes/skills. Also modify AGENTS.md, README.md, UI_CODING_STANDARD.md, docs/README.md and .encoding-check-ignore. Purpose: clean up stale planning/audit material and keep current hermes documentation and related top-level docs in sync.
This commit is contained in:
2026-05-15 06:24:07 +08:00
parent 2eded08bc7
commit 3cb3efb4d0
708 changed files with 4033 additions and 142328 deletions

View File

@@ -8,8 +8,7 @@ const spacetimeMigrationPath = join(spacetimeModuleSrcDir, 'migration.rs');
const spacetimeTableCatalogPath = join(
repoRoot,
'docs',
'technical',
'SPACETIMEDB_TABLE_CATALOG.md',
'【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md',
);
const migrationExcludedTables = new Set([
'database_migration_operator',
@@ -180,7 +179,7 @@ function checkSpacetimeTableCatalogAndMigration() {
if (!catalogTables.has(table.accessor)) {
failures.push(
`${table.path}: SpacetimeDB 表 ${table.accessor} 缺少 SPACETIMEDB_TABLE_CATALOG.md 目录项`,
`${table.path}: SpacetimeDB 表 ${table.accessor} 缺少后端架构文档表目录项`,
);
}
}
@@ -193,7 +192,7 @@ function checkSpacetimeTableCatalogAndMigration() {
for (const tableName of catalogTables) {
if (!tableNames.has(tableName)) {
failures.push(`SPACETIMEDB_TABLE_CATALOG.md 包含不存在的 SpacetimeDB 表 ${tableName}`);
failures.push(`后端架构文档表目录包含不存在的 SpacetimeDB 表 ${tableName}`);
}
}
}

View File

@@ -7,7 +7,7 @@ const scriptDir = dirname(fileURLToPath(import.meta.url));
const repoRoot = join(scriptDir, '..');
const moduleSrcRoot = 'server-rs/crates/spacetime-module/src';
const migrationPath = `${moduleSrcRoot}/migration.rs`;
const tableCatalogPath = 'docs/technical/SPACETIMEDB_TABLE_CATALOG.md';
const tableCatalogPath = 'docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md';
const bindingsRoot = 'server-rs/crates/spacetime-client/src/module_bindings/';
const allowBreaking = process.env.SPACETIME_SCHEMA_GUARD_ALLOW_BREAKING === '1';

View File

@@ -3,13 +3,7 @@ import { basename, extname, join, relative } from 'node:path';
const repoRoot = process.cwd();
const writeReport = process.argv.includes('--write-report');
const reportPath = join(repoRoot, 'docs', 'audits', 'VN11_NEGATIVE_SCAN_REPORT_2026-05-07.md');
const codeTargets = [
'src',
'packages/shared/src',
'server-rs/crates',
];
const reportPath = join(repoRoot, '.tmp', 'VN11_NEGATIVE_SCAN_REPORT_2026-05-07.md');
const documentTargets = [
'docs',
@@ -190,11 +184,10 @@ function formatHits(hits) {
return hits.map((hit) => ` - ${hit.file}:${hit.lineNumber} ${hit.text}`);
}
const codeFiles = collectFiles(codeTargets);
const documentFiles = collectFiles(documentTargets);
const visualNovelFiles = collectFiles(visualNovelImplementationTargets);
const codePlaybackHits = collectLineHits(codeFiles, hasLegacyPlaybackMarker);
const codePlaybackHits = collectLineHits(visualNovelFiles, hasLegacyPlaybackMarker);
const documentPlaybackHits = collectLineHits(documentFiles, hasLegacyPlaybackMarker);
const externalPlatformHits = collectLineHits(
visualNovelFiles,
@@ -208,7 +201,7 @@ const reportLines = [
'',
'## 扫描范围',
'',
'- 工程代码:`src/`、`packages/shared/src/`、`server-rs/crates/`',
'- 视觉小说工程代码:视觉小说前端、service、shared contracts、Rust contracts、module、api-server、SpacetimeDB schema 与 facade 路径',
'- 文档与共享记忆:`docs/`、`.hermes/shared-memory/`',
'- 外部平台误入复核视觉小说前端、service、shared contracts、Rust contracts、module、api-server、SpacetimeDB schema 与 facade 路径',
'',

View File

@@ -5,14 +5,12 @@ const repoRoot = process.cwd();
const writeReport = process.argv.includes('--write-report');
const reportPath = join(
repoRoot,
'docs',
'audits',
'.tmp',
'VN12_FULL_CHAIN_ACCEPTANCE_REPORT_2026-05-07.md',
);
const requiredFiles = [
'docs/prd/AI_NATIVE_VISUAL_NOVEL_TEMPLATE_PRD_2026-05-05.md',
'docs/audits/VN11_NEGATIVE_SCAN_REPORT_2026-05-07.md',
'docs/【玩法创作】平台入口与玩法链路-2026-05-15.md',
'src/components/visual-novel-creation/VisualNovelAgentWorkspace.test.tsx',
'src/components/visual-novel-result/VisualNovelResultView.test.tsx',
'src/components/visual-novel-runtime/VisualNovelRuntimeShell.test.tsx',
@@ -81,9 +79,10 @@ const contentChecks = [
{
path: 'src/components/visual-novel-creation/VisualNovelAgentWorkspace.test.tsx',
needles: [
'visual novel workspace renders mock creation shell without forbidden entry',
'visual novel workspace opens editable blank draft from blank source',
'visual novel workspace uploads document asset and passes asset id to session',
'visual novel workspace only exposes one-line input and visual style entry',
'visual novel workspace submits idea and selected visual style as seed text',
'visual novel workspace restores idea text from existing session',
'visual novel generation helpers build process page data',
],
label: 'visual novel creation tests',
},
@@ -188,8 +187,8 @@ function buildReport({
'',
'## 桌面 / 移动端检查',
'',
'- 桌面端:已用 Edge headless 截取 `/creation/visual-novel/agent`文件为 `docs/audits/VN12_VISUAL_NOVEL_DESKTOP_2026-05-07.png`。',
'- 移动端:已用 Edge headless 截取 `/creation/visual-novel/agent`文件为 `docs/audits/VN12_VISUAL_NOVEL_MOBILE_2026-05-07.png`。',
'- 桌面端:已用 Edge headless 截取 `/creation/visual-novel/agent`截图作为临时验收产物保存到 `.tmp/`。',
'- 移动端:已用 Edge headless 截取 `/creation/visual-novel/agent`截图作为临时验收产物保存到 `.tmp/`。',
'- in-app browser 插件本次未发现可用 IAB backend截图使用本机 Edge headless 兜底完成。',
'',
'## 校验摘要',