Designing With Artifacts
This is an artifact-aware design conversation. It keeps the useful parts of grilling a plan against documentation and code, without requiring project-specific glossary files.
Read First
Read only relevant sources:
README.md, CONTRIBUTING.md
docs/adr/ if present
docs/specs/ or specs/ if present
- linked GitHub or Linear issues
- code that can answer the current design question
Boundary
Use framing-problems first when the problem is unclear. Use reviewing-architecture when module boundaries, interfaces, or testability are the main question.
Conversation Rules
- Ask one question at a time.
- For each question, include your recommended answer when you have one.
- If code or docs can answer the question, inspect them instead of asking.
- Do not recommend a direction without evidence; if evidence is missing, ask, research, or propose a small prototype.
- Challenge fuzzy or overloaded language.
- Use concrete scenarios to test boundaries and edge cases.
- Surface contradictions between the user's description, existing docs, and code.
- Cite the artifact or code observation that supports each major challenge.
- Compare 2-3 plausible alternatives when there is a real trade-off, and name why rejected options lose.
- Separate product decisions, technical decisions, and implementation details.
Process
- State the design question being stress-tested.
- Inspect only artifacts needed for that question.
- Test the design against 2-3 concrete scenarios: happy path, edge case, and failure or rollback.
- Classify impact: product behavior, data/API contract, technical design, implementation detail, or artifact update.
- Ask the smallest blocking question, or state the recommended decision if evidence is enough.
- Stop when decisions, open questions, and the next artifact are clear.
ADR Discipline
Offer an ADR only when all are true:
- The decision is hard or costly to reverse.
- Future readers would find it surprising without context.
- There was a real trade-off between plausible alternatives.
If any condition is missing, keep the decision in a spec, issue, task note, or final summary instead.
Output
End with this shape:
## Decisions
- <decision and rationale>
## Open Questions
- <question, owner, and why it blocks or does not block>
## Alternatives
- <option considered, trade-off, and why accepted/rejected>
## Impact
- <what changes in product behavior, technical design, implementation, or artifacts>
## Risks
- <risk or trade-off>
## Evidence
- <artifact path, issue, ADR, or code observation>
## Next Artifact
<issue | spec | ADR | research | prototype | implementation | no action>
1---2name: designing-with-artifacts3description: Use when stress-testing, sanity-checking, or choosing a plan/design against existing code, issues, specs, ADRs, README/CONTRIBUTING, or project instructions before implementation.4license: MIT5---67# Designing With Artifacts89This is an artifact-aware design conversation. It keeps the useful parts of grilling a plan against documentation and code, without requiring project-specific glossary files.1011## Read First1213Read only relevant sources:1415- `README.md`, `CONTRIBUTING.md`16- `docs/adr/` if present17- `docs/specs/` or `specs/` if present18- linked GitHub or Linear issues19- code that can answer the current design question2021## Boundary2223Use `framing-problems` first when the problem is unclear. Use `reviewing-architecture` when module boundaries, interfaces, or testability are the main question.2425## Conversation Rules2627- Ask one question at a time.28- For each question, include your recommended answer when you have one.29- If code or docs can answer the question, inspect them instead of asking.30- Do not recommend a direction without evidence; if evidence is missing, ask, research, or propose a small prototype.31- Challenge fuzzy or overloaded language.32- Use concrete scenarios to test boundaries and edge cases.33- Surface contradictions between the user's description, existing docs, and code.34- Cite the artifact or code observation that supports each major challenge.35- Compare 2-3 plausible alternatives when there is a real trade-off, and name why rejected options lose.36- Separate product decisions, technical decisions, and implementation details.3738## Process39401. State the design question being stress-tested.412. Inspect only artifacts needed for that question.423. Test the design against 2-3 concrete scenarios: happy path, edge case, and failure or rollback.434. Classify impact: product behavior, data/API contract, technical design, implementation detail, or artifact update.445. Ask the smallest blocking question, or state the recommended decision if evidence is enough.456. Stop when decisions, open questions, and the next artifact are clear.4647## ADR Discipline4849Offer an ADR only when all are true:50511. The decision is hard or costly to reverse.522. Future readers would find it surprising without context.533. There was a real trade-off between plausible alternatives.5455If any condition is missing, keep the decision in a spec, issue, task note, or final summary instead.5657## Output5859End with this shape:6061```markdown62## Decisions63- <decision and rationale>6465## Open Questions66- <question, owner, and why it blocks or does not block>6768## Alternatives69- <option considered, trade-off, and why accepted/rejected>7071## Impact72- <what changes in product behavior, technical design, implementation, or artifacts>7374## Risks75- <risk or trade-off>7677## Evidence78- <artifact path, issue, ADR, or code observation>7980## Next Artifact81<issue | spec | ADR | research | prototype | implementation | no action>82```