architect/adr/SKILL.md
--- name: adr description: Use this skill whenever the architect subagent needs to document an architecture decision, record a technical choice, write an ADR (Architecture Decision Record), or capture why a specific technology, pattern, or approach was selected. Triggers on: "document this decision", "write an ADR", "record why we chose", "architecture decision", "decision record", "capture this trade-off". Always use this skill to produce ADRs — it ensures they are complete, traceable, and usef
npx skillsauth add achreftlili/deep-dev-skills architect/adrInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Produce clear, durable records of architecture decisions so future engineers understand not just what was decided, but why, and what was ruled out.
Always produce ADRs in this exact format:
Date: YYYY-MM-DD
Status: Proposed | Accepted | Deprecated | Superseded by ADR-XXX
Deciders: [roles or team names, not personal names]
Tags: [e.g., database, auth, messaging, infra]
What is the situation that forces this decision? Describe:
Write this section so that someone with no prior context understands why a decision was needed.
State the decision in one clear sentence:
We will [do X] using [Y] because [core reason].
Then elaborate in 2–3 paragraphs if needed.
For each rejected option:
(Include at least 2 alternatives. If no alternatives were seriously considered, state why.)
How will we know this decision was correct? Define measurable signals:
Deprecated or Superseded/docs/adr/ in the project repositoryBefore finalizing an ADR, verify:
testing
Set up Vitest 2.x with TypeScript for unit and component testing using test/describe/it, vi.fn/vi.mock/vi.spyOn, component testing with Testing Library, coverage (v8/istanbul), workspace config, and snapshot testing.
testing
Set up pytest 8.x with Python for unit and integration testing using fixtures (scope, autouse, parametrize), async tests (pytest-asyncio), mocking (unittest.mock, pytest-mock), coverage (pytest-cov), conftest.py patterns, and markers.
testing
Set up Playwright 1.49+ with TypeScript for E2E testing using page object model, fixtures, test.describe/test blocks, assertions, selectors, network mocking, CI configuration, and trace viewer.
testing
Set up Jest 30+ with TypeScript for unit tests, integration tests, mocking (jest.fn, jest.mock, jest.spyOn), coverage configuration, custom matchers, snapshot testing, and setup/teardown patterns.