diff --git a/docs/development.md b/docs/development.md index 1252157868..0defe20cec 100644 --- a/docs/development.md +++ b/docs/development.md @@ -57,7 +57,7 @@ DEEPSEEK_BASE_URL=https://... # optional lefthook is configured in `lefthook.yml` as an early local checkpoint before review: - `pre-commit` runs staged-file ESLint fixes, `pnpm run typecheck`, and the vendor manifest guard. -- `pre-push` runs `pnpm run test`, `pnpm run hygiene`, and `pnpm run doc-sync`. +- `pre-push` runs `pnpm run test`, `pnpm run hygiene`, `pnpm run doc-sync`, and `pnpm run verify-module-graph`. The vendor manifest guard checks that changes under `vendor/*/src` are staged with the matching `vendor/README.md` manifest update. See `vendor/README.md` before editing vendored code. @@ -72,6 +72,7 @@ The GitHub workflow runs these gates on each pull request: - `pnpm run typecheck` - `pnpm run lint` - `pnpm run doc-sync` +- `pnpm run verify-module-graph` - `pnpm run test:coverage` - `pnpm run build` - `pnpm run knip && pnpm run publint` @@ -93,6 +94,8 @@ pnpm run lint:fix # eslint . --fix pnpm run doc-typecheck # compile checked TypeScript snippets in Markdown docs pnpm run verify-event-taxonomy # compare docs/architecture.md event names with source pnpm run doc-sync # doc-typecheck plus event taxonomy verification +pnpm run gen-module-graph # regenerate docs/module-graph.md from package peerDeps +pnpm run verify-module-graph # fail if docs/module-graph.md is stale pnpm run build # build declarations and JS bundles pnpm run hygiene # knip, publint, and workspace constraints ``` diff --git a/docs/module-graph.md b/docs/module-graph.md index e488f61ea1..4e01fdd7d3 100644 --- a/docs/module-graph.md +++ b/docs/module-graph.md @@ -3,9 +3,7 @@ # Module dependency graph -Inter-package dependencies among the `@deepseek-ai/dsh-*` harness packages, derived from each -package's `peerDependencies` (the canonical runtime-dependency signal). An edge `a --> b` means -package `a` depends on package `b`. Names have the `@deepseek-ai/dsh-` prefix stripped. +Inter-package dependencies among the `@deepseek-ai/dsh-*` harness packages, derived from each package's `peerDependencies` (the canonical runtime-dependency signal). An edge `a --> b` means package `a` depends on package `b`. Names have the `@deepseek-ai/dsh-` prefix stripped. ```mermaid graph TD diff --git a/scripts/gen-module-graph.ts b/scripts/gen-module-graph.ts index 865211ccde..6314b39399 100644 --- a/scripts/gen-module-graph.ts +++ b/scripts/gen-module-graph.ts @@ -87,9 +87,7 @@ function render(pkgs: Pkg[]): string { '', '# Module dependency graph', '', - 'Inter-package dependencies among the `@deepseek-ai/dsh-*` harness packages, derived from each', - 'package\'s `peerDependencies` (the canonical runtime-dependency signal). An edge `a --> b` means', - 'package `a` depends on package `b`. Names have the `@deepseek-ai/dsh-` prefix stripped.', + 'Inter-package dependencies among the `@deepseek-ai/dsh-*` harness packages, derived from each package\'s `peerDependencies` (the canonical runtime-dependency signal). An edge `a --> b` means package `a` depends on package `b`. Names have the `@deepseek-ai/dsh-` prefix stripped.', '', '```mermaid', 'graph TD',