2dabf8ef03
- memory/: cross-session project memory with decisions, lessons, failures, architecture, and sessions categories. Each has format templates and lifecycle documentation. - skills/: 12 reusable specialized methodologies (tdd, systematic-debugging, architecture-design, code-review, security-review, repository-analysis, failure-analysis, refactoring, test-analysis, incident-investigation, browser-automation, research). Each has frontmatter and methodology sections. - improvements/: proposal-based improvement system requiring human approval. - scripts/memory-lifecycle.sh: deterministic memory operations (recall, store, list, search, sessions, cleanup). - scripts/test-memory-system.sh: 12 structural tests for all new systems. - orchestrator.md: added Memory Recall stage, Learning and Memory Storage stage, Improvement Proposals workflow, memory/skills rules, and 3 new actions (A23-A27) to the action catalog. Updated behavioral acceptance test and state separation model. - All 12 subagents: added Memory & Skills Awareness sections with recall and store instructions. - docs/AGENT_ARCHITECTURE.md: documented memory, skills, and improvements systems (sections 12-14). Updated action count (27), state model, and remaining weaknesses. - README.md: documented new systems, updated repository layout, added test-memory-system.sh documentation. All 39 tests pass (16 architecture + 12 memory + 11 bootstrap).
79 lines
2.2 KiB
Markdown
79 lines
2.2 KiB
Markdown
---
|
|
name: architecture-design
|
|
description: Architecture decision process — structured approach to system design decisions
|
|
version: "1.0"
|
|
owner: Architect
|
|
prerequisites: requirements understood, constraints identified
|
|
---
|
|
|
|
# Architecture Design
|
|
|
|
## When to use this skill
|
|
|
|
- Deciding system boundaries, interfaces, or component ownership
|
|
- Evaluating architectural alternatives
|
|
- Establishing new patterns or constraints
|
|
|
|
## Core methodology
|
|
|
|
```text
|
|
UNDERSTAND → IDENTIFY DECISION → GENERATE OPTIONS → EVALUATE → DECIDE → RECORD
|
|
```
|
|
|
|
## Step-by-step procedure
|
|
|
|
### 1. Understand the context
|
|
- What problem are we solving?
|
|
- What are the constraints (technical, organizational, time)?
|
|
- What existing architecture does this interact with?
|
|
|
|
### 2. Identify the decision
|
|
- What exactly needs to be decided?
|
|
- What are the boundaries of this decision?
|
|
- Who are the stakeholders?
|
|
|
|
### 3. Generate options
|
|
- Aim for 2-4 concrete options
|
|
- Each option should be distinct (not variations of the same idea)
|
|
- For each: what does it optimize for? What does it sacrifice?
|
|
|
|
### 4. Evaluate options
|
|
For each option, assess:
|
|
- **Fit**: does it solve the stated problem?
|
|
- **Complexity**: how much does it add?
|
|
- **Reversibility**: how hard is it to change later?
|
|
- **Risk**: what could go wrong?
|
|
- **Evidence**: what supports this choice?
|
|
|
|
### 5. Decide
|
|
- Choose one option with clear rationale
|
|
- State what is explicitly out of scope
|
|
- Identify what would make you revisit this decision
|
|
|
|
### 6. Record
|
|
- Write an ADR in `memory/decisions/`
|
|
- Update `memory/architecture/` if boundaries change
|
|
- Link to related decisions
|
|
|
|
## Common pitfalls
|
|
|
|
- Deciding without evidence (opinion-driven design)
|
|
- Over-architecting for imagined future needs
|
|
- Not recording the decision (lost institutional knowledge)
|
|
- Ignoring existing patterns (inconsistency)
|
|
- Making reversible decisions with irreversible processes
|
|
|
|
## Evidence requirements
|
|
|
|
- Problem statement with constraints
|
|
- Options considered with trade-offs
|
|
- Decision rationale
|
|
- Recording in ADR format
|
|
|
|
## Exit criteria
|
|
|
|
- Decision made and recorded
|
|
- Alternatives documented with rationale
|
|
- Impact on existing architecture assessed
|
|
- Stakeholders can find the decision
|