Run this before proposing or committing a change: it encodes the review knowledge that otherwise
lives in the maintainer's head, so review catches issues automatically (see AGENTS.md and
.githooks/README.md for the why and the escape hatches).
- No credentials committed — the pre-commit regex scan and CI gitleaks flag tokens/keys
(
ghp_/github_pat_/sk-ant-/AKIA/xox/BEGIN ... PRIVATE KEY) and hard-coded*_TOKEN=/*_API_KEY=assignments. Mark a known-safe linepragma: allowlist secret. - No force-added gitignored content — raw sources, generated
wiki/pages,projects/*,.claude/settings.local.json, local access/model preferences, and native authentication or runtime state stay local (nevergit add -f). - No blob > 1 MiB staged (pre-commit blocks; override only with
ALLOW_LARGE_FILES=1).
- Layer boundary intact:
raw/is the immutable source of truth,wiki/is agent-owned,projects/never write towiki/orraw/(a project's write surface isprojects/<slug>/). - Edited wiki pages keep required frontmatter (
title/type/status/created/updated/summary) and bumpupdated;python3 tools/wiki.py lintis clean. - Wikilinks written as bare
[[path/to/page]], thenpython3 tools/wiki.py links --fix --writeadds the dual-link mirrors — never hand-edit mirrors or the generated_index.mdfiles. - Tooling stays stdlib-only — no third-party imports under
tools/(CI has no dependency install step; the hooks assumegit+python3only).
-
ruff check tools/clean (configtools/ruff.toml, pinnedruff==0.15.17in CI). -
basedpyright --project tools/pyrightconfig.jsonreports 0 findings (allmode, no baseline, pinnedbasedpyright==1.40.2in CI). Fix findings; do not suppress them. -
python3 -m compileall -q toolspasses (syntax gate). - Tooling tests pass — run each
python3 tools/tests/test_*.pywith Python 3.12 as in CI (CI discovers every suite; the git hooks run onlytest_wiki.py+test_schedule.py). - Context baseline matches (
python3 tools/context_evaluation.py --check; CI runs it); no model-quality claim is inferred from fixture character counts. - Generated provider adapters match (
python3 tools/agents/generate-adapters.py --check; CI runs it). A provider directory that cannot be read is unverified, not evidence of drift. - Preview commands leave source files and scheduler state unchanged. Recovery tests restore edited projects and defer writes when a snapshot cannot be created.
- CI (the
CIworkflow, required checkCI Complete: secrets-scan + lint + typing + test) expected green on every tracked path; weeklycodeql.ymlPython and Actions scan also runs.
- Conventional Commit subject (
type(scope): summary, ≤ 72 chars) — thecommit-msghook enforcesfeat|fix|docs|style|refactor|perf|test|build|ci|chore|revert. - Commit is signed (Secure Enclave ssh key;
commit.gpgsign+tag.gpgsignaretrue). - Message says what + why; update
AGENTS.md,README.md, or.githooks/README.mdif behavior or a documented gate changed. - Hooks are installed (
.githooks/install.sh); don't land a change by leaning on--no-verify.