Skip to content
🚧 Early alpha — building the foundation. See the roadmap →

Knowledge operations gates

Updated

Knowledge operations (keeping project knowledge aligned with shipped behavior) combines mechanical gates with cross-document review. A checkable invariant belongs in CI; a contextual decision belongs in the contributor and agent checklists, following the workflow audit.

Status last verified: 2026-10-30 — verified against .github/workflows/static-checks.yml, package.json and the check scripts it invokes.

Run all 7 static checks (source: .github/workflows/static-checks.yml) before committing, not just the checks for the edited page. Each runs separately and does not need an Obsidian launch or a full docs build.

CommandContract enforcedSource
bun run check:personal-dataNo personal paths, emails, denylisted content or prohibited attribution in repository contentscripts/check-personal-data.mjs
bun run check:mdxDocumentation parses as MDXscripts/check-mdx.mjs
bun run check:frontmatterRequired page metadata and strict YAML are validscripts/check-frontmatter.mjs
bun run check:not-contentInline HTML/SVG diagrams are isolated from prose stylingscripts/check-not-content.mjs
bun run check:log-labelsDecision-log labels lead with the filename’s month and dayscripts/check-log-labels.mjs
bun run check:linksInternal links resolve, including generated route familiesscripts/check-links.mjs
bun run check:parityEvery plugin command and CLI verb is registered, missing sides have explicit gaps, and the generated parity table matchesscripts/check-parity.mjs, tools/parity/capabilities.ts

bun run parity:write regenerates the marked parity table, including its counts, after a registry change. It is a repair command, not a substitute for check:parity or behavior tests. Source parsing uses the existing root TypeScript dependency; frontmatter and MDX checks use docs dependencies.

A passing parity inventory does not mean all actions have both interfaces. Tracked gaps are allowed, with reasons and plans. Source command ids and verbs are checked mechanically; named wizard/settings surfaces and their behavior still need review. Review newly added buttons even when they do not register an Obsidian command. Add their outcomes to the same registry rather than invent a second table.

The same boundary applies to living-page freshness, roadmap updates, decision records, milestone completion and meaningful cross-links. Agent instructions and the pull request template cover those judgments; none can be replaced by a table drift check. This page describes the checks currently wired in Static Checks, not a claim that every proposed knowledge-operations gate has shipped.

Lint, focused unit tests, fixture drift, plugin builds and docs builds remain separate verification surfaces. See testing and development setup. On the shared development host, run heavy checks one at a time under containment; retain the existing worker limits. An exit caused by resource termination is an interrupted run, not a pass or a product failure.