From HanzheLee-skills
Test-first development where the first goal is human understanding of an artifact's input/output contract. Use when building data pipelines, parsers, indexers, or schema-shaped systems, or when the user says "artifact-driven", "contract test", or "understand the data first".
How this skill is triggered — by the user, by Claude, or both
Slash command
/HanzheLee-skills:artifact-driven-tddThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The first goal is **human understanding**, not code quality. You are building a system whose correctness depends on the shape of an artifact — a parsed file, an indexed dataset, a transformed table. Before any of that is worth writing, the input/output contract has to be legible to a person.
The first goal is human understanding, not code quality. You are building a system whose correctness depends on the shape of an artifact — a parsed file, an indexed dataset, a transformed table. Before any of that is worth writing, the input/output contract has to be legible to a person.
Tests here do double duty: they verify behaviour and they emit readable samples (small tables, short JSON) that make the contract concrete. A good test in this mode reads like a worked example of the contract. It runs on tiny fixtures so a human can eyeball every row.
Do not point the pipeline at the full dataset before the contract is settled. This is horizontal slicing under another name — you're committing to a parser shape before you understand the data. The fix is the same as in /tdd: one vertical slice (one small fixture → one assertion → one understood row) at a time. Run the full dataset only once the small fixtures all pass and a human has read the samples.
When a stage produces a data artifact, deliver three things together — not just the code:
The audit summary is the human's control surface over a stage they can't hold in their head. If a stage isn't worth an audit summary, it probably isn't worth treating as artifact-driven.
When the artifact supports a research claim (a paper, a report, a thesis chapter), the three pieces above are necessary but not sufficient. A research artifact also carries the profile context that decides who may cite it and under what discipline. Record these metadata fields for the artifact (from the project's Profiles config and Active Profile Block — see /research-output-profiles):
active_profile — the profile this stage is working under.producer_profile — the profile that owns the artifact (exactly one).intended_consumer_profiles — which profiles may read it.allowed_use / forbidden_use — what this artifact may and may not be used for.source_partition — per source (canonical / metadata-only / bridge-lookup / provenance-only).paper_evidence_eligible — whether it may appear as paper evidence.claim_support_level — none / preliminary / evidence_linked / strong / runtime_only / background_only.target_claim_ids — the claims (from the claim matrix) this artifact is meant to support.promotion_required_before_reuse — whether a stricter profile needs /artifact-promotion-audit first.Then extend the audit summary with four research-specific outputs:
allowed | forbidden | deferred. State explicitly whether this artifact may be cited as paper evidence, and if forbidden, one line on what it must NOT be cited to support.allowed_use, forbidden_use, and paper_evidence_eligible. A source that is allowed for pipeline plumbing but not for paper claims must be marked as such./notebook-audit reads to issue its verdict.The audit summary must state, in plain language: what this artifact can support, what it cannot, which Claim IDs are affected, and which profiles may consume it. These do not replace the audit summary — they extend it.
Before a stage that produces or transforms a data artifact is allowed to move on, the user should be able to answer all six:
If the user cannot answer after the notebook and audit summary, do not proceed to the next stage — produce a smaller fixture or a clearer notebook first. This gate composes with /notebook-audit (which formalizes it as a verdict) and with the Active Profile Block's Human understanding gate flag (see /research-output-profiles).
npx claudepluginhub hanzhelee/skillsGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Implements work from a spec or tickets using TDD at agreed seams, with regular typechecking and test runs, followed by code review.