Establishes one ignored subdirectory for ALL intermediate outputs of
LLM-driven tooling (chain proposals, gap detection, draft scorecards,
audit traces). Single gitignore rule: /_pipeline/.
Convention is documented in interviews/vault/README.md under "Pipeline
artifacts" — it's a real project layout convention, not AI-specific
config.
Path migration:
interviews/vault/chains.proposed*.json
→ _pipeline/chains.proposed*.json
interviews/vault/gaps.proposed*.json
→ _pipeline/gaps.proposed*.json
interviews/vault/draft-validation-scorecard.json
→ _pipeline/draft-validation-scorecard.json
interviews/vault/audit-runs/
→ _pipeline/runs/
8 scripts updated to define a PIPELINE_DIR constant and route default
outputs through it: build_chains_with_gemini.py,
apply_proposed_chains.py, merge_chain_passes.py, validate_drafts.py,
audit_chains_with_gemini.py, generate_question_for_gap.py,
summarize_proposed_chains.py, promote_drafts.py.
Forward-looking docs (README.md chain-pipeline section + CHAIN_ROADMAP.md
resume instructions + state snapshot) updated to reference the new
paths. Historical Progress Log entries left as-is — they accurately
describe what was committed at the time.
Drive-by .gitignore fixes (both used full repo-relative paths under
package-local .gitignore files, which never matched):
interviews/vault-cli/.gitignore: scripts/.calibration_cache/
interviews/vault/.gitignore: /embeddings.npz
Validation:
- vault check --strict: 10,705 loaded, 0 invariant failures
- pytest interviews/vault-cli/tests/: 74/74
- audit --dry-run: paths resolve correctly to _pipeline/runs/<ts>/
No durable corpus content moves. chains.json (live registry),
id-registry.yaml, questions/, etc. all stay where they were.
check-internal-links was failing on 4 dead refs that tipped book validate-dev
into red, blocking the navbar republish:
- interviews/vault/README.md, interviews/vault/TESTING.md
referenced ../vault-cli/docs/CUTOVER_QA.md, which was deleted in
c824ac6e (retire prod static-fallback). Both refs removed.
- mlsysim/docs/slides.qmd referenced tutorial_part{1,2}.pdf, which are
built from the .tex sources in mlsysim/tutorial/slides/ but are not
yet wired into mlsysim-build-pdfs.yml. Production was 404'ing on both.
Replaced the download buttons with a "build from source" placeholder
+ commented-out original markup + TODO note pointing at the missing
workflow step.
Also: book-format-python (Black at 70 chars) wanted PEP-8-style two blank
lines between top-level Python functions in three code blocks of
frameworks.qmd. Auto-applied.
interviews/vault/README.md (NEW)
Top-level tour of the vault directory tree, common commands, data-
flow diagram (YAML \u2192 paper / YAML \u2192 site), invariant summary,
review-round summary. Points at CC-BY-NC-4.0 license.
interviews/vault-cli/README.md — updated Quickstart
Full 22-subcommand reference replacing the Phase-0 placeholder,
organized by authoring / build-check / release-pipeline / local-dev.
release.py::_sql_quote
Docstring explains why SQLite single-quote escape is sufficient and
injection-safe for our callers (corpus content authored via
maintainer-approved flow, not external untrusted input). Warns
against reuse for other dialects.