plan-ingestion

Installation
SKILL.md

/plan-ingestion — Ingestion Plan interview

This skill runs a short, branching interview that converts a planned (or existing-but-undocumented) ingestion path into an Ingestion Plan markdown file at docs/ingestion-plans/<pipeline>.md in the consumer's project. It is an interview, not a template — every plan that lands has been pressure-tested against the Ingestion kill-switch (a named upstream Source Profile), the delivery-mode comparison against that profile, the streaming/batch neutrality rule, the honest-replay test, the honest-quarantine test, and the "is this actually an ADR moment?" routing test.

This skill is self-contained: the Ingestion Plan contract it writes against ships beside it at references/ingestion-plan.md, and the linter that enforces that contract ships at scripts/lint-ingestion-plan.sh. Read the contract for the frontmatter fields, enum domains, and body section order before running — do not duplicate that material into the interview; reference it.

Optional deeper reading — not required to run this skill (a per-skill install works without them): the full repo worldview (including the CONTEXT.md entries "Ingestion Plan" and "Ingestion kill-switch") in CONTEXT.md and the lifecycle reference in docs/data-engineering-101.md.

An Ingestion Plan is not a project-management plan — not a TODO list with owners and dates, not a delivery roadmap. It is the operational and contractual model of the ingestion path (idempotency, replay window, quarantine, schema evolution, pager), the structural analogue of the Source Profile one stage downstream, deliberately human-authored and never inferred from a code artefact (no dbt manifest scan, no Airflow DAG parse, no Terraform read).

Soul of the skill: the Ingestion kill-switch

The single load-bearing question this skill exists to force is:

Which Source Profile(s) under docs/sources-of-record/ does this ingestion consume?

If the user cannot point to at least one accepted-or-draft Source Profile in related_sources_of_record, the ingestion does not deserve a plan. An Ingestion Plan with no named upstream source is the structural twin of a Source Profile with no consumer DGQ, and of a DGQ with action_change: nothing — documentation that floats free of the lineage graph, the failure mode this stage exists to refuse. Surface that conclusion explicitly. Recommend the user run /profile-source first; come back to /plan-ingestion once the upstream is profiled.

Do not soften the kill-switch. Do not paper over the absence by inventing a plausible-sounding Source Profile path on the user's behalf. The kill-switch (Turn 1) is the one place in this skill where the user must speak first; a recommendation there would coach them past the very gap the skill exists to surface.

Installs
4
First Seen
May 23, 2026