source-preflight
Skill2 starsChanged 8 days agoMITView on GitHub
Run the deterministic preprocessing chain on a new external source and accept its staging artifacts, without writing any semantic wiki pages. Use when the user says "preprocess this PDF first / run source-preflight / build the source profile first / see if it can be ingested". Only the zero-LLM acceptance gate for add-source, profile, source-convert, source-audit, windows, workorder — no book-splitting, summarizing, semantic unit planning, or vault writes.
In this repository23 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- ingestSkill
- kb-postmortemSkill
- kb-qaSkill
- kb-querySkill
- kb-reviewSkill
- kb-saveSkill
- pipeline-doctorSkill
- skill-evolveSkill
- source-preflightSkill
- source-xraySkill
- wiki-lint-semanticSkill
- ingestSkill
- kb-postmortemSkill
- kb-qaSkill
- kb-querySkill
- kb-reviewSkill
- kb-saveSkill
- pipeline-doctorSkill
- skill-evolveSkill
- source-xraySkill
- wiki-lint-semanticSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Run the deterministic CLI preprocessing chain on a candidate source and decide whether its staging artifacts are good enough to enter …
- Very specific: line 21
Read: the zero-LLM preprocessing constraint in CLAUDE.md / AGENTS.md, and docs/skill-runtime/schema.md (to understand the workorder write …
- Very specific: line 28
No semantic wiki content pages, no status: proposed pages, no concept-page updates.
- Very specific: line 86
No semantic wiki pages written, no status: proposed content pages.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
source-preflight — source preprocessing acceptance gate (zero semantic LLM)
Run the deterministic CLI preprocessing chain on a candidate source and decide whether its staging
artifacts are good enough to enter ingest. This skill is a thin wrapper: it only orchestrates
scripts/pipeline.py and does no LLM semantic splitting / unit planning / page writing. Project truth:
CLAUDE.md / AGENTS.md. Engineering format: docs/skill-runtime/skill-standard.md.
1. Triggers / Non-triggers
- Triggers: "preprocess this PDF first", "run source-preflight", "build the source profile first", "see if it can be ingested", "just run up to workorder".
- Non-triggers: "add to the KB / index it" with page writing (use
ingest); "summarize/split this book" without ingesting (usesource-xray, published content only); "query the wiki" (usekb-query); "translate/explain" (a normal answer).
2. Inputs
- The user gives: file path
<path>, domain<domain>;<fmt>inferred from the extension (pdf/md/docx/pptx);<src>derived from the filename. Confirm<src>and<domain>once. - Read: the zero-LLM preprocessing constraint in
CLAUDE.md/AGENTS.md, anddocs/skill-runtime/schema.md(to understand the workorder write boundary).
3. Outputs
pipeline-workspace/staging/<src>/{source.md, blocks.jsonl, chapters.json, parse_report.json, reconciliation.json, windows.jsonl, workorder.yaml, preflight_eval.json}+ hard-page PNGs / figure assets.- An optional deterministic report
pipeline-workspace/reports/source-preflight/<src>.md: fromparse_report.json+reconciliation.jsonshow backend, dual-audit status (dual_audited / degraded / disagreements), OCR, table/equation/image counts, discarded (header/footer) count, warnings, and an ingest recommendation; plus CLI status, page count, needs_vision pages, degraded warnings, window coverage, workorderwrite_scope. No semantic summary. preflight-eval's deterministic JSON (preflight_eval.json): page coverage, window monotonicity, table/image/chart asset + source_ref traceability, the dual-audit gate (check_dual_audit), scan/OCR & low-confidence pages, orphan blocks — reads existing artifacts only, no LLM;--strictreturns non-zero on a high/fail (CI-able).- No semantic wiki content pages, no
status: proposedpages, no concept-page updates.
4. Dependencies
- CLI:
init-vault,add-source,profile,source-convert,source-audit,windows,workorder,preflight-eval,status. - The actual ingest is handed to
ingest; this skill does not inline ingest phases B/C/D/E/F. - Protocols:
docs/skill-runtime/skill-standard.mdanddocs/skill-runtime/schema.md.
5. Persisted artifacts
pipeline-workspace/staging/<src>/source.md,reconciliation.json,windows.jsonl,workorder.yaml.pipeline-workspace/staging/<src>/assets/pXXXX.png(needs_vision pages).pipeline-workspace/reports/source-preflight/<src>.md(if written, deterministic facts only).
6. CLI commands
python scripts/pipeline.py init-vault
python scripts/pipeline.py add-source --source <src> --domain <domain> --path <path> --fmt <fmt>
python scripts/pipeline.py profile --source <src>
python scripts/pipeline.py source-convert --source <src>
python scripts/pipeline.py source-audit --source <src> [--strict] # PDF dual-audit → reconciliation.json + evidence.json + arbitration/queue.json
python scripts/pipeline.py arbitration-status --source <src> # if pending: agent auto-arbitrates the queue → arbitration-apply (protocol: ingest/references/arbitrate.md), before windows
python scripts/pipeline.py arbitration-resolve --source <src> --page <n> --decision render|ignore --reason "..." # optional: close a needs_human page, then re-apply
python scripts/pipeline.py windows --source <src>
python scripts/pipeline.py workorder --source <src>
python scripts/pipeline.py preflight-eval --source <src> [--strict]
python scripts/pipeline.py statusEach step is idempotent; on any error, stop — do not skip. For a PDF, windows is fail-closed: it
refuses to build unless source-audit has produced reconciliation.json + evidence.json +
arbitration/queue.json AND every disagreement is closed (PyMuPDF thresholds are deliberately broad and are
not a single source of truth). The only way to build a PDF's windows without a completed source-audit is the
explicit dev escape hatch windows --dev-bypass, whose output is degraded / not for strict acceptance.
Strict acceptance still requires the dual-audit to pass, and MinerU unavailable in strict mode is fail-closed.
preflight-eval reads existing staging only, zero LLM; --strict exits non-zero on a high/fail (a hard gate before switching to ingest).
7. Workflow
| Sub-unit | Input | Output | Acceptance | Persisted | Failure stop |
| P1 confirm source | path/domain/src/fmt | confirmed 4-tuple | src/domain clear | — | user not confirmed |
| P2 run the chain | 4-tuple | source/profile/convert/audit/windows/workorder | each step succeeds or idempotent-skips | staging + SQLite | any step errors |
| P3 accept artifacts | staging | ingest-ready judgement | workorder.yaml exists, windows cover source.md, reconciliation.json present, preflight-eval no high/fail | report draft | workorder missing / preflight-eval high |
| P4 dual-audit + formula check | source-audit + source-convert output | dual_audit + needs_vision/PNG record | PDF dual-audited (or degraded recorded); formula pages have a full-page PNG (route B) | report | not dual-audited in strict / formula page unrendered |
| P5 handoff | workorder + report | next-step suggestion | a clear "ingest-ready" or a blocker list | report | user asks to write pages → switch to ingest |
8. Failure stops / recovery
Path missing; unsupported fmt; any CLI step fails; source-convert missing backend; PDF dual-audit
fail-closed in strict (MinerU unavailable); windows.jsonl does not cover the full text; workorder.yaml
not generated; a formula risk page has no PNG; preflight-eval --strict high/fail (non-zero exit); the user
asks for LLM unit planning or semantic splitting. Recovery: every step is idempotent — fix the cause and
re-run from the failed step; pipeline status shows where it stopped.
9. Acceptance criteria
- No semantic wiki pages written, no
status: proposedcontent pages. source.md,reconciliation.json,windows.jsonl,workorder.yamlexist.workorder.yamlcontainswrite_scopeand the registry hash.- PDF dual-audit recorded (
reconciliation.jsondual_audited=true, or a degraded/blocker recorded). - PDF dual-audit disagreements arbitrated + materialized:
preflight-eval'scheck_evidence_bundleis green (no un-arbitrated / un-materialized / pendingneeds_human), or a blocker recorded. - needs_vision pages have a PNG, or a blocker is recorded.
preflight-evalchecks have no high/fail (--strictexit 0), or a blocker is recorded.- The report contains deterministic facts only — no semantic summary / chapter interpretation.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

