Artifact Eval
The last thing that runs. Checks the deliverable against the failures its type is prone to, and refuses to hand over work that is quietly incomplete.
When to use
- Before handing over any audit, model, spec, or plan produced by this repo
- Before any number reaches a slide
- When somebody asks whether a deliverable is ready
Inputs
- Reads: the artifact, plus its source skill's rules section
- Needs from user: who the audience is, and whether any number in it is going to a board
Workflow
1. Run the universal gates
Any trip is a fail, regardless of how good the rest is.
GATE 1 An unsourced number. Every figure has a provenance or is marked [unverified]
GATE 2 A borrowed benchmark presented as this company's own data
GATE 3 A recommendation with no stated cost, owner, or date
GATE 4 A customer-specific metric or logo with no clearance marker
GATE 5 A conclusion the stated evidence does not support
GATE 6 Prose that has not passed writing-quality
Gate 2 is the one that slips most. A benchmark table copied into a client deliverable becomes their number by the second reading, and nobody can find where it came from by the third.
2. Run the type-specific check
| Artifact | The failure it is prone to |
|---|---|
| Systems audit | Eight problems and no single constraint. Interviews with no diagnostics run |
| Object model | No named decision maker on the four definitions |
| Scoring model | Thresholds set before the distribution was seen. No discrimination test |
| Waterfall spec | Paid columns not structurally downstream of the free gate |
| Signal taxonomy | A signal with no decay window, or a play that says "notify" |
| Agent brief | Blank kill criterion. No named accountable user |
| Guardrails | Every guardrail is advisory. Nothing placed where persuasion cannot reach |
| Eval spec | Anchors missing. No frozen calibration set |
| Stack audit | Savings claimed with no capability lost named |
| Attribution model | Sourced and influenced summed. Window chosen after results |
| Lifecycle | Stages defined as entries. No max time in stage |
| Metrics dictionary | Missing object counted, date field, filters, or exclusions |
| Cost forecast | No actual-against-forecast comparison after the run |
3. Check completeness against the source skill
Open the source skill's Output section. Every file it says it writes must exist, and every item it says it prints must be present.
A deliverable missing a section its own skill promised is the most common quiet failure, and it is trivially checkable.
4. Check the assumptions are surfaced
Every borrowed rate, estimate, and benchmark is labeled as such, inline, where it is used rather than in a footnote. A reader must be able to tell at the point of reading which numbers are theirs and which are borrowed.
5. Check that the unwelcome part is present
Most skills in this repo require something the audience will not enjoy: a do-not-do list, a named capability loss, a refusal, a kill criterion, a stated constraint. If the deliverable has none, it was probably softened during writing.
An audit with no bad news is not an audit.
6. Return the receipt
artifact-eval: <type>, gates <pass | GATE n tripped>,
completeness <n/n sections>, assumptions labeled <yes | no>
writing-quality: <receipt from that skill>
Output
- Returns the artifact, or a list of what must be fixed before it can be handed over
- Prints the receipt
Rules & quality bar
- A gate trip blocks handover. No score absorbs a gate
- Every number is sourced or marked [unverified]
- Borrowed benchmarks are labeled at the point of use, not in a footnote
- Completeness is checked against the source skill's own Output section
- The unwelcome part must be present. No do-not-do list means it was softened
- Both receipts appear, or the gates did not run
- Never pass work with a promised section missing. Name it and send it back
Related skills
- Runs:
writing-qualityas its first gate - Applies to: every deliverable in this repo