agentleFS
khuynh22khuynh22/agent-dev-team/skills/architecture-decision/SKILL.md

architecture-decision

Skill9 starsChanged 2 months agoMITView on GitHub

Records a non-obvious technical choice as an ADR with context, options, the decision, consequences, and the condition that should reopen it. Use when choosing between technologies or designs, when a decision is expensive to reverse, or when someone will ask in six months why it was done this way. Also use to review a proposed design.

32 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use team-level, team-narrative and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • CoralGameSkill

    team-level

    Orchestrate level design team: level-designer + narrative-director + world-builder + art-director + systems-designer + qa-tester for complete area/level creation.

    Also in 10 projects that use this

  • CoralGameSkill

    team-narrative

    Orchestrate the narrative team: coordinates narrative-director, writer, world-builder, and level-designer to create cohesive story content, world lore, and narrative-driven level design.

    Also in 10 projects that use this

  • lilangMaxSkill

    create-stories

    Break a single epic into implementable story files. Reads the epic, its GDD, governing ADRs, and control manifest. Each story embeds its GDD requirement TR-ID, ADR guidance, acceptance criteria, story type, and test evidence path. Run after /create-epics for each epic.

    Also in 9 projects that use this

  • lilangMaxSkill

    story-done

    End-of-story completion review. Reads the story file, verifies each acceptance criterion against the implementation, checks for GDD/ADR deviations, prompts code review, updates story status to Complete, and surfaces the next ready story from the sprint.

    Also in 9 projects that use this

  • Microsoft AzureSkill

    component-release

    Prepares a verifiable Agent Landing Zone UI release. Use for release branches, VERSION, changelog entries, tags, release notes, and compatibility evidence; never publish without explicit human approval.

    Also in 4 projects that use this

  • +7 more from lilangMax

The file

We split this skill into the rules it gives an agent

3 rules. 0 are common, 3 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 30 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Write an ADR when the choice is not obvious, is expensive to reverse, or will be questioned later.

    line 13
  2. Distinctive:

    If you cannot name a tension, there is no decision here, only a default.

    line 34
  3. Distinctive:

    Compare on the axes that distinguish them: Not a feature matrix. Two options that score the same on nine axes and differ on the tenth are …

    line 43

“Common” is measured: kept by at least 6 in 10 of the 30 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Architecture Decision

Write an ADR when the choice is not obvious, is expensive to reverse, or will be questioned later. Do not write one for a choice with an obvious default; that is paperwork, and it dilutes the record.

Decide whether it needs one

Write an ADRSkip it
Two defensible options with different consequencesOne option, obvious default
Expensive or slow to reverseCheap to change next week
Constrains future workLocal to one function
Deviates from a convention in this repositoryFollows the existing pattern
Someone will ask why in six monthsNobody will ever ask

Process

  1. State the decision as a question. "Which queue?" is a question. "Use Kafka" is an answer looking for justification, and it will find one.
  2. Establish the forces. What is actually in tension: throughput against operational cost, consistency against latency, today's simplicity against tomorrow's migration. If you cannot name a tension, there is no decision here, only a default.
  3. Constrain by what is true here. Team size and operational capacity, existing infrastructure, real data volume, latency and durability requirements, cost, compliance. Most technology debates dissolve once the actual numbers are on the table.
  4. List real options, including "do nothing" and "use what we already run". Options nobody would choose do not belong; a straw man makes the record worthless.
  5. Compare on the axes that distinguish them. Not a feature matrix. Two options that score the same on nine axes and differ on the tenth are decided by the tenth.
  6. Decide. Then write the rejected option's strongest argument fairly, because that is the argument someone will make again later.
  7. Write the consequences, including what becomes hard.
  8. Write the revisit condition as an observable trigger, not a date.

Format

# ADR <n>: <the decision>

- **Status:** proposed | accepted | superseded by ADR <n>
- **Date:** <YYYY-MM-DD>
- **Deciders:** <who>

## Context
<the forces; what is true here that makes this a decision rather than a default>

## Constraints
<the numbers and limits that actually narrow the field>

## Options
### A. <name>
<what it is; the trade-off that distinguishes it>
### B. <name>

## Decision
<what will be done, stated as a decision>

## Rejected
<the losing option and its strongest argument>

## Consequences
- Becomes easy:
- Becomes hard:
- Becomes expensive to reverse:

## Revisit when
<observable condition>

Reviewing someone else's design

Ask, in order:

  1. What breaks first as this grows? At what number?
  2. What happens when each dependency is slow, then unavailable?
  3. Where is the state, and who owns it? Two owners is the bug.
  4. What is the migration path from what exists today?
  5. What is the simplest thing that would work, and what does this buy over it?
  6. How is it observed, and how is it rolled back?

Question five is the one that most often changes the design. Ask it even when the design is good.

Verification

  • The decision is stated as a decision, not a preference or a comparison.
  • Constraints include real numbers, not adjectives.
  • The rejected option's best argument is written down fairly.
  • Consequences include what becomes hard, not only what becomes easy.
  • The revisit condition is observable.

Red flags

ThoughtReality
"Everyone uses this, so it is right"For their constraints. Write yours down and check.
"We might need that scale later"Design for the scale you can measure, plus a migration path.
"I'll list the options and decide later"Later has less context and more pressure. Decide now.
"The trade-offs are obvious"Then the ADR takes five minutes. Write it; the reader in six months is not you.
"This is the modern approach"Modern is not a force. Name the tension it resolves.
"We can always change it"Then it may not need an ADR. If you cannot, that is exactly why it does.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.