Primary system is machine-oriented. LLM Wiki Manager does not treat a human-facing encyclopedia as a product requirement. wiki/ here is optional machine-first material for LLMs (dense structure, low token waste). Human reader polish is out of scope for this checkout.
LLM Wiki Manager. This tree doubles as a coordination checkout for sibling domain wikis: register absolute paths via environment variables (schema/wiki-manager.md, ai/schema/wiki_manager_registry.v1.json, .env.example), then run make wiki-manager-list or make wiki-manager-fork-delta-full to produce per-child fork-delta bundles under ai/runtime/manager/<id>/ without overwriting the single-child make fork-delta-full CHILD='…' artifacts. Set WIKI_MANAGER_COMPARE_ROOT to a local LLM Wiki Base Model path when the diff left side should be that upstream instead of this checkout. Pytest entry points for those flows sit under ## Regression tests in schema/wiki-manager.md.
Governance. This repository is the canonical development home for shared LLM Wiki infrastructure (scripts/, tests/, Makefile, .github/, topic-neutral schema/, ai/schema/, .cursor/rules/). Land neutral improvements here first. Cherry-pick or port equivalent patches into LLM Wiki Base Model and into each domain child on the schedule your maintainers set (schema/fork-sync.md and the Canonical development hub section of schema/wiki-manager.md). Base Model is not an automatic downstream mirror of Manager.
Wiki scope (machine-first). wiki/ in LLM Wiki Manager is LLM-oriented knowledge, not a reader newspaper. It documents the four related checkouts (this repo, LLM Wiki Base Model, Shaolin Monastery Research System, Tai-Pan Wiki). Start at wiki/synthesis/llm-wiki-family-repositories.md. Prefer tables, short bullets, and stable headings over long prose. Shared schema/ prose and scripts/ stay topic-agnostic where they define portable gates. Any older placeholder examples in wiki/ stubs remain illustrative until replaced.
License. Original project expression is contributed under CC0 1.0 (see LICENSE). Human-facing disclaimers appear in wiki/synthesis/disclaimer-and-license.md. disclaimer_and_license.txt repeats the short dedication for packaging or mirrors. Security reporting is summarized in SECURITY.md.
Git remotes (two repositories). LLM Wiki Base Model (this neutral template checkout): https://github.com/tjr1974/LLM-Wiki-Base-Model.git. LLM Wiki Manager (coordination and canonical toolchain home): https://github.com/tjr1974/LLM-Wiki-Manager.git. On this Base Model checkout, keep origin → https://github.com/tjr1974/LLM-Wiki-Base-Model.git. Add manager → https://github.com/tjr1974/LLM-Wiki-Manager.git when you need fetch or cherry-picks from Manager. Maintainers who work primarily in LLM Wiki Manager use the opposite layout (origin → Manager, base-model → this URL). See wiki/synthesis/llm-wiki-family-repositories.md. If origin still uses a legacy llm-wiki-base-model path, run git remote set-url origin https://github.com/tjr1974/LLM-Wiki-Base-Model.git so fetch and push avoid redirect noise.
Karpathy LLM Wiki pattern. The compounding-wiki idea in this gist by Andrej Karpathy matches this repo's three-layer shape (immutable inputs, markdown projection, agent schema). This scaffold adds a compile-and-validate pipeline and evidence-first citations. Layer-by-layer mapping, ingest/query/lint as make targets, and index versus log conventions are spelled out in schema/karpathy-llm-wiki-bridge.md. Optional human chronicle: wiki/synthesis/activity-log.md. make wiki-log-tail prints the last five gist-style dated headings from that file.
Machine-first wiki/ (this checkout only). wiki/main.md is a compact agent index. wiki/entities/example-entity.md remains a validator fixture for citations and links when you touch gates. Contributor orientation sits in schema/wiki-quickstart.md. Karpathy gist vocabulary (ingest, query, lint, index versus log) maps in schema/karpathy-llm-wiki-bridge.md. schema/editorial-policy.md still describes human reader encyclopedia norms for domain child repos. On Manager treat it as reference for what not to mimic in wiki/ prose style. scripts/validate_human_text.py and schema/citation-spec.md still apply where MD_GLOBS covers paths (schema/AGENTS.md lists them). On Manager MD_GLOBS include wiki/main.md, wiki/_templates/, wiki/sources/, and wiki/synthesis/ only for wiki/ so encyclopedia stub subtrees are not typography-gated here. Markdown stays parser-safe and portable. scripts/lint_wiki.py flags long body lines starting with - that lack [[sources/...]]. On operator wiki/synthesis/ pages (paths, make, env), prefer markdown tables so logs/lint/ stays useful (schema/karpathy-llm-wiki-bridge.md, subsection Operator synthesis and lint_wiki.py claim bullets). That is not an invitation to write for human comfort here.
Upstream ↔ fork. When cherry-picking shared tooling into LLM Wiki Base Model, keep changes topic-neutral (no domain payloads, no bulky narrative under wiki/ on the Base Model side). LLM Wiki Manager wiki/ is exempt from that narrow rule because it is the family operator knowledge base (see wiki/synthesis/llm-wiki-family-repositories.md). Domain forks such as Shaolin Monastery Research System prototype expert QA loops, ops dashboards, and quality timers. scripts/check_deployed_site.py is a lightweight post-deploy smoke helper (--base-url) with optional --with-sitemap and --hub-index (WikiBaseDeploySmoke user-agent). The base repo intentionally does not ship a built human/site/ export, but does include the fork-derived topic-agnostic static-export gates: scripts/validate_human_accessibility.py, scripts/validate_human_performance.py, scripts/build_release_manifest.py, scripts/validate_release_artifacts.py (scripts skip when human/site/meta.json is absent unless --require-site-export). Raise human_readiness_policy.v1.json, tighten external_link_policy, fork human_performance_policy.v1.json, or extend source_authority rules as needed downstream. Merge defaults remain permissive for this empty scaffold.
Web ingest heuristic (neutral). Use scripts/source_admissibility.py with --path and optional --url when ranking download candidates. Policy is ai/schema/source_admissibility.v1.json. Forks add allow_if_contains entries there instead of branching new Python glue.
Compiled reader shell (aligned with Shaolin Monastery Research System layout). human/templates/base.html includes header-nav-toggle, slide-out global-nav-rail, header search, left toc-left-rail, toc-floating-toggle, site-footer Disclaimer and license link, and human/assets/js/app.js progressive enhancement (TOC header nav citation UI). CSS is theme-dark.css + content.css. Reader legal copy for exports lives at wiki/synthesis/disclaimer-and-license.md. Fork branding strings default through Jinja variables such as site_title rather than hard-coded Shaolin wording.
Optional bulk citation scaffolding (non-sources pages only): make wiki-fix-citations-dry then make wiki-fix-citations (scripts/fix_citation_metadata.py, review diffs like any prose change).
Corpus-first authoring. make wiki-topic-sources chains wiki-compile with heuristic wiki/sources rankings from scripts/find_sources_for_topic.py (configure flags with ARGS= using examples in schema/wiki-quickstart.md). Use make wiki-topic-sources-no-compile when ai/runtime/ backlink graphs are already current. schema/wiki-source-triage-protocol.md and prompts/wiki-corpus-authoring.txt encode the repeatable coverage workflow (schema/human-wiki-automation-boundary.md still bars unattended narrative generation).
- Run
make wiki-checkormake wiki-ciwhen you touched gated Markdown, templates, or assets. Runmake wiki-allto mirror.github/workflows/ci.ymllocally (wiki-testthenwiki-cithenwiki-quality-gate). pytestparity with CI..github/workflows/ci.ymlinstallsrequirements.txt, which pins a currentpytest. Ifpytest --versionon yourPATHis older, use a venv (python3 -m venv .venv, already.gitignore), run.venv/bin/pip install -r requirements.txt, thenPATH=".venv/bin:$PATH" make wiki-testormake wiki-allso the test leg matches Actions. Do not append extramakeflags aftermake wiki-test(for examplemake wiki-test -qtreats-qas a bogusmakegoal). Same cross-refs asschema/wiki-quickstart.mdPytest and CI,schema/karpathy-llm-wiki-bridge.mdPytest leg,proposed/README.md, andschema/AGENTS.md(githooks bullet). Runpytest -qfrom the venv when you wantpytestquiet mode directly.proposed/staging uses the samepytestandmake wiki-testrules (proposed/README.md).- Never commit
.env(see.gitignore). Extend.gitignorewhen new machine-local or secret-bearing artifacts appear. Keep.env.examplesafe and minimal. Optional root-levelllm_wiki_*.{png,jpg,jpeg}files (local screenshots or diagrams) are gitignored by default so clones stay small. Usegit add -fwhen a fork intentionally ships one. Before sharing pixels publicly, readSECURITY.md(Root screenshots). - If
git statusshows only timestamp churn underai/runtime/after tests or gates, usemake wiki-restore-runtimeunless you intend to refresh committed runtime snapshots. - For corpus-scale
wiki/work, use the Session contract checkboxes in.github/pull_request_template.mdand loadprompts/wiki-corpus-authoring.txtin the agent session instead of retyping long preambles. Cursor users: project rules under.cursor/rules/(for examplewiki-authoring.mdc) attach automatically when matching files are in scope. - Suspected CI,
Makefile, autopilot, or.cursor/rulesdrift without a PR-ready patch belongs in.github/ISSUE_TEMPLATE/wiki-toolchain.mdon GitHub..github/ISSUE_TEMPLATE/config.ymlkeeps blank GitHub issues enabled when you need a free-form report instead.
Long chat preambles ("think step by step until satisfied") are optional tone. Encode obligations with prompts, make targets, and CI instead of retyping them each session:
| Intent | Default substitute |
|---|---|
Pytest parity / local wiki-test leg |
PATH=".venv/bin:$PATH" make wiki-test or make wiki-all. Never make wiki-test -q (-q is a bogus make goal). Use pytest -q inside the venv. README.md (Pre-push and this table), proposed/README.md, top-of-Makefile comments, make help, schema/wiki-quickstart.md Pytest and CI, schema/karpathy-llm-wiki-bridge.md Pytest leg, schema/AGENTS.md (githooks bullet) |
| Wiki line-edit / QA / citations / typography | make wiki-check or make wiki-ci, and point agents at prompts/wiki-edit.txt |
| Corpus coverage / source inventory | prompts/wiki-corpus-authoring.txt, schema/wiki-source-triage-protocol.md, make wiki-topic-sources ARGS='…' |
| Rollups / gaps / contradictions / health signals | make wiki-analyze (metrics only). Still run wiki-check or wiki-ci before narrative handoff. |
| Multi-repo fork-delta (registry + env paths) | schema/wiki-manager.md (## Regression tests for pytest paths), make wiki-manager-list, make wiki-manager-report, make wiki-manager-fork-delta-full, .env.example (WIKI_MANAGER_*) |
| Pipeline "meta" correctness or drift | tests/test_pipeline_step_order.py, tests/test_karpathy_bridge_docs.py, tests/test_githooks_wiring.py, schema/human-wiki-automation-boundary.md, .github/ISSUE_TEMPLATE/wiki-toolchain.md |
Verify before git push |
make wiki-all locally. Optional scripts/githooks/ after git config core.hooksPath scripts/githooks (see scripts/githooks/README.md, WIKI_PRE_PUSH) |
Compare a sibling downstream checkout (for example Shaolin Monastery Research System) with this tree using schema/fork-sync.md ("Comparing this base to a known downstream locally"), then cherry-pick by subsystem.
For a local machine-readable delta summary, run make fork-delta CHILD='/absolute/path/to/child' (optional COMPARE='/absolute/path/to/LLM Wiki Base Model' when this checkout is the manager and the upstream diff left side is a sibling base-model tree). It writes ai/runtime/fork_delta_report.min.json and classifies/ranks paths using ai/schema/fork_delta_policy.v1.json (domain_specific_hints, ignore_path_globs, subsystem_weights, review_queue_max).
Run make fork-delta-scan CHILD='/absolute/path/to/child' to flag anti-patterns in ranked candidates and write ai/runtime/fork_delta_scan.min.json.
Scanner rules and suppressions live in ai/schema/fork_delta_scan_policy.v1.json.
When the diff left side should be a sibling LLM Wiki Base Model checkout while policy and JSON outputs stay in this tree, use scripts/fork_delta_report.py --compare-root (see schema/wiki-manager.md) or set WIKI_MANAGER_COMPARE_ROOT and run make wiki-manager-fork-delta-full.
Use make wiki-check before wiki-only edits (wiki-compile plus shared Markdown gates: validate_wiki_front_matter.py, validate_wiki.py, validate_sources_category_index.py, build_claims.py, build_coverage_matrix.py, lint_wiki.py, validate_human_text.py). make wiki-analyze runs wiki-compile plus the same claims and coverage rollup, then contradiction pass, extract_gaps, and build_health when you want machine metrics without wiki-ci. It skips validate_wiki_front_matter.py, validate_wiki.py, validate_sources_category_index.py, lint_wiki.py, validate_human_text.py, template and CSS gates, strict outbound URL checks, human_readiness, and ingest queue health (wiki-ci bundles those). make wiki-validate runs wiki-compile, validate_wiki_front_matter.py, and validate_wiki.py ( Makefile VALIDATE_WIKI_ARGS forwards here too ) without validate_sources_category_index.py, claims/coverage rollups (build_claims.py, build_coverage_matrix.py), lint_wiki, validate_human_text, human/templates gates, strict outbound URL probes, human_readiness, or ingest queue health. make wiki-ci is the main wiki merge gate (Makefile VALIDATE_WIKI_ARGS applies to validate_wiki.py on wiki-validate, wiki-check, and wiki-ci, for example --strict-citation-meta): wiki-compile, template and frontend validators, the same Markdown gate sequence as wiki-check, validate_external_links.py --strict, validate_human_readiness.py, then validate_ingest_queue_health.py (default: no st=error or st=queued rows). The human_readiness rollup excludes wiki/main.md. Scope is spelled out in ai/schema/human_readiness_policy.v1.json. Use make wiki-queue-health to run the queue gate alone. Forks with intentional backlogs may pass --max-queued-rows to the script. make wiki-all chains wiki-test ( pytest plus wiki-restore-runtime ), wiki-ci, and wiki-quality-gate, aligned with .github/workflows/ci.yml. On GitHub the same workflow can be started manually from the Actions tab (workflow_dispatch).
Optional export and nav targets. make wiki-sync-nav and wiki-sync-nav-all run apply_global_nav_to_human_site.py (refresh baked sidebar chrome from scripts/human_site_nav.py). make wiki-hub refreshes wiki/synthesis/hub-index.md. That path is .gitignored here so git status stays quiet unless you git add -f. See schema/wiki-quickstart.md (including the Operator note when a local hub-index.md affects wiki-compile and index/). make wiki-discovery runs build_human_site_discovery.py, regenerating human/site/url-paths.txt, meta.json, search index embed, scoped backlinks JSON, and recent.min.json. Run it after make wiki-compile when ingesting backlinks. make wiki-discovery-rebuild runs wiki-compile then discovery. make wiki-coverage prints Markdown versus static HTML coverage (scripts/report_wiki_human_site_coverage.py). make wiki-a11y and make wiki-perf check a built human/site/ bundle (they skip until human/site/meta.json appears). make wiki-wiki-rel checks human/site/url-paths.txt versus data-wiki-rel. make wiki-release-manifest records SHA-256 fingerprints for release hygiene. make wiki-quality-gate runs scripts/check_quality_gate.py for forks that emit quality_dashboard.min.json (this scaffold records skipped_no_dashboard and exits 0 when that file is absent). make wiki-static-export-check requires human/site/meta.json (exits 2 until it exists), then runs wiki-ci, build_release_manifest.py, validate_human_accessibility.py and validate_human_performance.py with --require-site-export, validate_release_artifacts.py with --standalone --require-site-export, build_human_site_discovery.py --check (inventory drift), and wiki-wiki-rel. See make help and the Makefile target for ordering. schema/fork-sync.md explains upstreaming conventions.
ai/schema/*.jsoncompact contractsnormalized/<sid>/manifest.json+normalized/<sid>/chunks.ndjsonai/runtime/*.json|*.ndjsoncompiled retrieval statewiki/*.mdderived presentation layer
Use make wiki-validate or make wiki-check when touching wiki/**/*.md so dedupe_runtime.py and validate_wiki_front_matter.py stay aligned with make (see schema/wiki-quickstart.md). Run wiki-check or wiki-ci so scripts/validate_human_text.py executes when you touched other MD_GLOBS paths too (schema/AGENTS.md catalogs targets. On Manager wiki/ typography is wiki/main.md, wiki/_templates/, wiki/sources/, and wiki/synthesis/ plus README.md, SECURITY.md, schema/, proposed/, prompts, and human/ templates or human/site HTML).
python3 scripts/normalize_source.py --raw <file> --source-id <sid> --out normalized/<sid> --lang-hint mixed
# optional: scaffold a sources page from extracted.txt → python3 scripts/generate_source_wiki.py --normalized normalized/<sid> --title "Your title"
python3 scripts/wiki_compiler.py
python3 scripts/dedupe_runtime.py
python3 scripts/validate_wiki_front_matter.py
python3 scripts/validate_wiki.py
python3 scripts/validate_sources_category_index.py
python3 scripts/build_claims.py
python3 scripts/build_coverage_matrix.py
python3 scripts/lint_wiki.py
python3 scripts/validate_human_text.py
# optional rollup (same tail as ``make wiki-analyze`` without re-running the Markdown gates above):
python3 scripts/detect_contradictions.py
python3 scripts/extract_gaps.py
python3 scripts/build_health.py
python3 scripts/query_helper.py --json "question text"
make wiki-query Q="question text"scripts/query_helper.py scores ai/runtime/chunk.min.ndjson rows and merges src.min.json source metadata (wiki_compiler). JSON output includes chunks_present plus a stderr hint when the chunk file is missing.
python3 scripts/autopilot.py
python3 scripts/autopilot.py --with-queue
python3 scripts/autopilot.py --ci-parityAutopilot versus CI. autopilot.py mirrors make wiki-ci through the shared Markdown gates (wiki_compiler, dedupe_runtime, validate_templates.py, validate_frontend_style.py, validate_wiki_front_matter.py, validate_wiki.py, validate_sources_category_index.py, build_claims.py, build_coverage_matrix.py, lint_wiki.py, validate_human_text.py, outbound links under validate_external_links.py --strict, validate_human_readiness, validate_ingest_queue_health), then contradiction extraction (detect_contradictions.py prefers claims.min.ndjson when present), gap rollup, health, and check_quality_gate.py ( make wiki-quality-gate is the same helper when run alone). Export VALIDATE_WIKI_ARGS before autopilot.py or daemon.py when you want the same validate_wiki flags as make wiki-validate / wiki-check / wiki-ci with VALIDATE_WIKI_ARGS=.... autopilot.py --ci-parity (and daemon.py --ci-parity) treat lint_wiki.py, validate_human_text.py, and validate_external_links.py like make wiki-ci: non-zero exits set ok false with no soft_failures row for those scripts. Tail lengths use wiki_paths.autopilot_log_tail_chars() in scripts/wiki_paths.py (AUTOPILOT_LOG_TAIL_CHARS overrides defaults, 2000 on success and 16000 when a step fails). daemon.py invokes autopilot.py each cycle and inherits VALIDATE_WIKI_ARGS the same way a direct autopilot.py run would. Use WIKI_EXTERNAL_LINKS_SKIP_PROBE=1 or --skip-probe on validate_external_links.py to list URLs without HTTP. autopilot.py --strict stops the outer step loop on the first non-zero subprocess. strict_stopped_early in autopilot.status.json marks that ok can stay true after a soft-fail script halted the list early. Without --ci-parity, lint_wiki.py, validate_human_text.py, and validate_external_links.py non-zero exits populate soft_failures without flipping ok false. In that case autopilot.py also prints a one-line stderr notice (script names plus --ci-parity / make wiki-ci guidance) so the stdout ok=… summary is not misread alone. make wiki-ci stays the authoritative hard gate for wiki-compile plus Markdown ingest checks. wiki-quality-gate runs afterward only from make wiki-all or .github/workflows/ci.yml, consistent with schema/fork-sync.md.
Policy artifacts:
ai/runtime/policy.min.json- queue rows include
prand learnedpr_eff
Additional runtime artifacts:
ai/runtime/backlinks.min.json(canonical inverted link map mirroringindex/links.json)ai/runtime/source-cite-labels.min.json(wiki/sources/**cite labels keyed bysource_id)ai/runtime/dedupe_runtime.min.json(whendedupe_runtimedrops overlapping ingest manifests)ai/runtime/citation_meta_report.min.json(confidence metadata scan fromvalidate_wiki.py)ai/runtime/external_link_lint.ndjsonandai/runtime/external_link_report.min.json(whenvalidate_external_links.pyruns)ai/runtime/human_readiness.min.json(validate_human_readiness.pyrollup)ai/runtime/ingest_queue_health.min.json(validate_ingest_queue_health.py. Used bymake wiki-ciandautopilot.py.)ai/runtime/quality_gate.min.json(check_quality_gate.py. Ships a canonicalskipped_no_dashboardrow until forks addquality_dashboard.min.json.)ai/runtime/claims.min.ndjsonandai/runtime/claims.min.json(build_claims.py)ai/runtime/coverage_matrix.min.jsonandai/artifacts/coverage/coverage_matrix.ndjson(build_coverage_matrix.pyrolls latestdomain_targets.vN.jsonby version number)ai/schema/health_structural_penalties.v1.json(forks flipapply_penaltiessobuild_health.pyweights thin graphs)ai/runtime/contradictions.ndjsonandai/runtime/contradictions.min.json(detect_contradictions.py)ai/runtime/gaps.min.jsonandai/artifacts/gaps/gaps.ndjson(extract_gaps.py)- projected source pages under
wiki/sources/*.mdfrom normalized bundles ai/runtime/human_text_lint.ndjson(human-facing punctuation policy checks)ai/runtime/template_lint.ndjson(required template and dark theme checks)ai/runtime/frontend_style_lint.ndjson(CSS specificity/token/nesting checks)
Human-facing template system:
human/template-registry.v1.json(required template contract)human/css-rules.v1.json(frontend style governance policy)human/templates/*.htmlhuman/assets/css/theme-dark.csshuman/assets/css/content.cssscripts/search_index_contract.py(must matchhuman/assets/js/app.jsSEARCH_TOKENIZE_CONTRACTwhen emittingsearch-index.json)
Research policy:
- Source discrepancies, inconsistencies, and contradictions are preserved.
- Contradictions are surfaced as evidence signals, not auto-resolved or hidden.
Writes machine state to:
ai/runtime/autopilot.status.json(autopilot.py)ai/runtime/health.min.json(build_health.py.trust_scoreplus link and citation densities whenwiki-compilegraphs exist)
Queue files:
ai/runtime/ingest.queue.ndjsonai/runtime/ingest.ops.ndjson
Lint reports under logs/ are generated artifacts and listed in .gitignore. Older checkouts might still carry tracked logs/ files you can drop with git rm -r --cached logs/.
Some tracked ai/runtime/*.min.json (and related NDJSON) files record wall-clock ts fields. After make wiki-ci or make wiki-all, or after pytest (several tests invoke wiki_compiler.py against this tree), git status may show diffs that are only refreshed timestamps and reports, not content changes. If you are not intentionally updating the committed snapshot, restore with git checkout -- ai/runtime/ or make wiki-restore-runtime. Prefer make wiki-test instead of bare pytest when you only need unit tests and want ai/runtime/ to match HEAD (or commit the refresh if you want the tree to match the last local gate run). For reproducible ts values in several wiki-ci rollups (claims, coverage matrix, dedupe summary, external-link and readiness reports, ingest queue health), export SOURCE_DATE_EPOCH as Unix seconds before make wiki-ci. The helper utc_now_iso() in scripts/wiki_paths.py reads that environment variable.
python3 scripts/daemon.py --cycles 1 --interval 1
# run forever:
# python3 scripts/daemon.py --interval 60Heartbeat:
ai/runtime/daemon.heartbeat.json(recordsci_paritywhendaemon.py --ci-parityforwarded that flag intoautopilot.pyfor the cycle). Storedouttails usescripts/wiki_paths.pyautopilot_log_tail_chars()(AUTOPILOT_LOG_TAIL_CHARS, same defaults asautopilot.py). Storederrtails useautopilot_daemon_stderr_tail_chars()(floors atAUTOPILOT_DAEMON_STDERR_TAIL_MINinscripts/wiki_paths.py) so a tinyAUTOPILOT_LOG_TAIL_CHARScap cannot truncate away theAUTOPILOT_SOFT_FAILURE_STDERR_NOTICEsubstring (schema/AGENTS.md).
Each cycle runs scripts/autopilot.py --with-queue (queue ingest prep, then the same wiki-compile prelude and gate sequence as bare autopilot.py, documented under Autopilot versus CI above). Pass daemon.py --ci-parity when each cycle should treat lint_wiki, Typography, and outbound links like make wiki-ci. Use bare autopilot.py when you do not want the queue prefix. When rc is 0 but autopilot still printed its soft-failure stderr line, daemon.py prints another short stderr hint pointing at the heartbeat err tail so console-only operators notice soft_failures.
python3 scripts/writeback_artifact.py \
--qid q001 \
--question "..." \
--answer "..." \
--evidence sid1:3 sid2:8 \
--confidence mOutputs ai/artifacts/query/<qid>.json. When you promote the same exploration into prose, add cited pages under wiki/ and follow schema/karpathy-llm-wiki-bridge.md.