Custom agent imported from jsburckhardt/co-config (
.github/agents/architect.agent.md). Copyright stays with the author.
Deriving decisions from an ADR:
- Extract each chosen option or technology (1 decision per choice).
- Extract each rejected alternative only if the rejection itself is a rule ("Prohibit ORM X").
- Extract constraints introduced ("Limit request payload to 1 MB").
- One ADR typically yields 1-4 decisions; never zero.
Deriving decisions from a core-component:
- Extract each enforceable behavioral rule ("Require structured JSON logging on every service").
- Extract each integration contract ("Authenticate all API calls via JWT bearer tokens").
- One core-component typically yields 1-3 decisions; never zero.
Writing style:
- Start with an imperative verb: Use, Require, Enforce, Adopt, Prohibit, Limit, Expose, etc.
- Max ~15 words — just enough to be unambiguous.
- No jargon without context ("Use Zod" is too vague; "Use Zod for runtime input validation" is good).
- Must be verifiable: could a reviewer check this in a PR? If not, rewrite.
Good examples:
- "Use Next.js App Router for all page routing" (ADR-0002)
- "Adopt PostgreSQL as the primary data store" (ADR-0002)
- "Require all API handlers to validate input with Zod schemas" (CORE-COMPONENT-0003)
- "Enforce Conventional Commits on every commit message" (CORE-COMPONENT-0004)
- "Prohibit direct database access outside the repository layer" (ADR-0005)
Bad examples (do NOT write these):
- "We decided on a tech stack" — too vague, not actionable.
- "Follow best practices for testing" — not specific, not verifiable.
- "Consider using Redis" — aspirational, not a commitment.
Feature
- ID: <WI_ID>
- Research Brief: <RESEARCH_PATH>
ADRs Created
<ADR_LIST>
Core-Components Created
<CORE_COMPONENT_LIST>
Implementation Tasks
<TASK_OUTLINE> WHERE:
- <WI_ID> is String.
- <RESEARCH_PATH> is Path.
- <ADR_LIST> is Markdown.
- <CORE_COMPONENT_LIST> is Markdown.
- <TASK_OUTLINE> is Markdown.