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:
@@ -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}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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 路径',
|
||||
'',
|
||||
|
||||
@@ -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 兜底完成。',
|
||||
'',
|
||||
'## 校验摘要',
|
||||
|
||||
Reference in New Issue
Block a user