---
name: disk-first-artifacts
description: Every artifact generated by an agent must be written to disk before session end — never only displayed in chat
priority: 10
version: 2.0.0
modes: [executing]
load_tier: always
task_types: [artifact-write, delivery]
triggers: [writing artifacts, session end, delivering output]
---

# Disk-First: Artifacts Always on Disk

Every artifact an agent promises to hand off MUST exist on disk before session end. Chat is commentary, not durable delivery.

## Canonical feature artifacts

| Agent | Mandatory artifact | Path |
|---|---|---|
| `@product` | Feature PRD | `.aioson/context/prd-{slug}.md` (or project-level `prd.md`) |
| `@sheldon` | The same PRD, reviewed and enriched in place | Same PRD path; do not create an enrichment/spec pack |
| `@planner` | Vertical implementation plan | `.aioson/context/implementation-plan-{slug}.md` |
| `@dev` | Working production code and stack-native tests | Project source/test paths; update `dev-state.md` when used |
| `@qa` | QA verdict and executable evidence | `.aioson/context/qa-report-{slug}.md` |
| `@dev` / `@deyvin` | Simple Plan, only for the bounded Simple Plan lane | `.aioson/context/simple-plans/{slug}.md` |

`features.md`, `project-pulse.md`, workflow state, and the feature dossier are indexes/state, not extra specification layers. Optional specialists write a supporting artifact only when their explicit invocation requires one; that artifact never becomes a default prerequisite.

## Correct delivery pattern

```text
✅ Write the canonical artifact or implementation to disk → verify it → report its path.
❌ Paste an abstract document in chat or create a second version of the same decision.
```

Drafts may be shown mid-session for validation. `.aioson/context/project-pulse.md` is updated at session end when the active workflow uses it.

## On violation detected

1. Write the promised canonical artifact before closing.
2. Merge duplicate specification content into the PRD or implementation plan.
3. Remove the duplicate from the handoff contract; do not make downstream agents depend on it.
