This skill prepares a consumer project (not this upstream repo) to use the data-lifecycle skills: it writes a thin ## Data skills index block into the project's CLAUDE.md/AGENTS.md and creates the docs/<stage-area>/ directories where each stage's artefact will land. It is a setup ritual the user runs once — a sibling to the advisor (meta) skills under skills/meta/ (ADR-0002): it has no lifecycle position, writes no durable lifecycle artefact, and has no linter, so it lives outside the numbered 00-…05- spine. It is prompt-driven, not a script — explore, present what you found, confirm with the user, then write.
This skill is self-contained: the vocabulary it leans on is inlined just below, and it ships with no references/ contract and no scripts/ linter — there is nothing to read or run beside it. It writes into the consumer's repo at runtime, which is the point.
Vocabulary this skill assumes (the minimum it needs; the full worldview is optional deeper reading, linked at the end):
- Lifecycle spine. The ordered chain of stages each skill serves: Requirements (Stage 0) → Generation (1) → Ingestion (2) → Storage (3) → Transformation (4) → Serving (5), closing back to Requirements. Each stage produces one durable, version-controlled markdown artefact under a stable
docs/<stage-area>/directory. - Stage-area directory. The plural-noun directory a stage's artefacts live in, in the consumer project:
docs/requirements/,docs/adr/,docs/sources-of-record/,docs/ingestion-plans/,docs/storage-plans/,docs/model-plans/,docs/serving-surfaces/(ADR-0001). This skill creates them; the stage skills fill them. - Kill-switch. The named condition under which a stage refuses to produce its artefact — no consumer DGQ → no Source Profile; no upstream Source Profile → no Ingestion Plan; and so on down the chain. The
## Data skillsblock this skill writes names each one, so the consumer internalises the chain rather than treating the skills as form-fillers.
Optional deeper reading — not required to run this skill: the full repo worldview in CONTEXT.md and the lifecycle reference in docs/data-engineering-101.md.
What this skill is — and is not
- It is a one-time, idempotent scaffolding pass. It explores, confirms three decisions, then writes an index block and creates directories. Re-running it updates the block in place and adds any newly-chosen stage dirs — it never duplicates the block and never overwrites an existing directory or its contents.
- It authors no lifecycle artefact and has no linter. Like the advisor skills under
skills/meta/, it is exempt from ADR-0001's one-skill/one-artefact/one-lint pattern. The durable, lint-gated artefacts are produced downstream by the stage skills it scaffolds for. - It stays in its lane. It configures only the data-lifecycle skills. If the project also uses the engineering skills (
to-issues,triage,to-prd, …), their setup is a separate concern — leave any## Agent skillsblock from/setup-matt-pocock-skillsuntouched; the two blocks coexist.
Soul of the skill: scaffold only what will hold content
The repo's load-bearing opinion is decisions, not templates — refuse to build an artefact for a decision nobody will act on. The setup analogue is the soul of this skill:
Scaffold only the stage directories the project will actually populate. An empty
docs/<stage-area>/that never receives an artefact is the same dead weight the lifecycle refuses upstream — do not litter the consumer with folders nobody will fill.
So this skill does not blindly mkdir all seven directories. It asks which stages are in play (Decision B below) and scaffolds only those — and it teaches the chain in the block it writes, so a consumer who skips Stage 1 understands they cannot honestly accept a Stage 2 Ingestion Plan later. Refuse, explicitly, to create the full set "just in case."
Process
1. Explore
Read the consumer repo's starting state; don't assume:
git remote -v— is there a remote, and where (GitHub / GitLab / none)?CLAUDE.mdandAGENTS.mdat the repo root — does either exist? Is there already a## Data skillssection? A## Agent skillssection (leave it alone)?CONTEXT.mdandCONTEXT-MAP.mdat the root — single-context or multi-context layout?docs/— whichdocs/<stage-area>/directories already exist? (docs/adr/is often already present.)
2. Present findings and ask — one decision at a time
Summarise what's present and missing. Then walk the user through three decisions one at a time — present, get the answer, move on. Assume the user may not know the lifecycle; each decision opens with a one-line explainer.
Decision A — Which file gets the index block.
The
## Data skillsblock is a short pointer the stage skills (and you) read to know where each artefact lands and which/verbwrites it.
- If
CLAUDE.mdexists, propose it. Else ifAGENTS.mdexists, propose it. If neither exists, ask which to create — don't pick for them. Never createAGENTS.mdwhenCLAUDE.mdexists, or vice versa.
Decision B — Which lifecycle stages this project uses (this is the soul — do not skip it).
The lifecycle runs Requirements → Generation → Ingestion → Storage → Transformation → Serving, each chaining back to the one before. A project that only models data already in a warehouse may skip Generation/Ingestion; a raw-ingestion project may skip Transformation/Serving.
Present the seven stage-areas with their one-line jobs and let the user pick which are in play. Default is all, but make them choose honestly — name the kill-switch chain so they see that scaffolding Stage 3 without Stage 2 leaves a dir that can never hold a passing artefact. Scaffold only the chosen stages' directories.
Decision C — Output layout.
Where the
docs/<stage-area>/directories live.
- Single-context —
docs/<stage-area>/at the repo root. Most projects (ADR-0001). - Multi-context — a
CONTEXT-MAP.mdat the root points to per-context roots, each with its owndocs/subtree (typically a monorepo). IfCONTEXT-MAP.mdexists, scaffold per context root and label the index block accordingly.
3. Confirm the draft
Show the user, and let them edit before writing:
- the
## Data skillsblock (only rows for the stages chosen in Decision B); - the list of directories to create, each with the one-line seed
README.mdit will carry.
4. Write
-
Pick the file per Decision A's rule. If a
## Data skillsblock already exists, update it in place — never append a duplicate, never disturb the surrounding sections or a sibling## Agent skillsblock. -
Insert the block (rows only for chosen stages):
## Data skills Data-lifecycle skills that interrogate each artefact before any pipeline is written, and refuse to produce a downstream artefact that does not chain back to its upstream one. Order: DGQ → Source Profile → Ingestion Plan → Storage Plan → Model Plan → Serving Surface → (back to a DGQ). | Stage | Skill | Writes to | Kill-switch | | --- | --- | --- | --- | | 0 · Requirements | `/gather-requirements` | `docs/requirements/` | if nothing changes when the answer flips, the ask is rejected — not built | | 0 · Decisions | `/write-adr` | `docs/adr/` | refuses single-option decisions | | 1 · Generation | `/profile-source` | `docs/sources-of-record/` | no consumer DGQ → no profile | | 2 · Ingestion | `/plan-ingestion` | `docs/ingestion-plans/` | no upstream Source Profile → no plan | | 3 · Storage | `/plan-storage` | `docs/storage-plans/` | no upstream Ingestion Plan → no plan | | 4 · Transformation | `/model-data` | `docs/model-plans/` | no upstream Storage Plan → no model | | 5 · Serving | `/serve-data` | `docs/serving-surfaces/` | needs BOTH an upstream Model Plan AND a DGQ it informs | Cross-cutting: `/triage-lineage` reads the whole graph and tells you where to start; it writes nothing. Worldview: <https://github.com/sleeplessv/relentless-data-skills/blob/main/CONTEXT.md> · Lifecycle reference: <https://github.com/sleeplessv/relentless-data-skills/blob/main/docs/data-engineering-101.md> -
Create each chosen directory with a one-line seed
README.mdso it survives in git and signposts itself — e.g. fordocs/sources-of-record/:# Source Profiles— Per-source Source Profile artefacts (<system>-<entity>.md) written by/profile-source. Kill-switch: an accepted profile must name at least one consumer DGQ — no consumer, no profile.Skip any directory that already exists; do not touch its contents.
5. Done
Tell the user setup is complete: which /verb writes into each scaffolded directory, the order to use them in, and that /triage-lineage will tell them where to start once artefacts exist. Mention they can re-run this skill to add stages later, and point them at the worldview and lifecycle reference (absolute URLs above) for the full picture.