skills/architecture-planning/SKILL.md
Define component boundaries, interfaces, and structural decisions for a change
npx skillsauth add liza-mas/liza architecture-planningInstall 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.
Consolidate approved upstream deliverables into a cohesive architectural plan that downstream code-planners can implement independently.
Output: a git-tracked architecture document (specs/arch-plan/<goal-slug>/<timestamp>-<task-id>.md) plus
structured output[] entries, one per code-planning scope. Each output entry becomes a
code-planning child task — the code-planner reads the architecture document and its scope entry,
the goal spec, and referenced material. Write accordingly: the arch doc should be self-contained
for structural decisions, leaving behavioral detail to the spec.
The architect bridges what (spec) and how (code plan). Spec says what to build; the architect says where each piece goes and how pieces connect. Code-planners turn each scope into implementation steps.
Your task provides:
spec_ref) — what must be builtset-task-output for each code-planning scopeScope discipline:
Architecture Plan format at the task-specified path.
Read and synthesize all inputs before making any structural decisions.
If conflicts are unresolvable from the spec, surface as Open Questions.
Map the existing architecture before proposing changes.
Do not over-explore. Enough understanding for sound structural decisions, not a full architecture
review. For deeper analysis of a specific area, use software-architecture-review in
Code Review Supplement mode.
Define structural decisions. Each decision must have a rationale.
Decision altitude:
| Too low (code-planner territory) | Right level | Too high (spec territory) | |----------------------------------|-------------|---------------------------| | "Function X takes param Y: int" | "Component A exposes a query interface that B calls" | "The system should be reliable" | | "Use a map[string]Task" | "Tasks are indexed by ID for O(1) lookup" | "Store tasks" | | "Error wraps with fmt.Errorf" | "Errors propagate up with context; no silent swallowing" | "Handle errors" |
If a decision reads like code, it's too low. If it reads like a requirement, it's too high.
Map the architecture to code-planning scopes. Each scope becomes one code-planner task. Scopes correspond to domains or sub-domains — not to implementation steps. Sequencing work within a scope is code-planner territory.
depends_on only when scope B cannot be implemented without A's outputdepends_on or explicit interface contractsDecomposition heuristics:
done_when, the scope isn't well-boundedBefore submitting:
done_whendepends_on captures true ordering constraints onlyFix issues before submitting.
| Pattern | What goes wrong |
|---------|----------------|
| Architecture Astronautics | Over-abstraction for hypothetical flexibility. If an interface has one implementation and no planned second, it's a cost not an investment. |
| Scope Inflation | Components or interfaces not required by the spec. The plan should be minimal — just enough structure. |
| Interface Speculation | Defining detailed contracts before understanding data flow. Trace data first; interfaces emerge from what needs to cross boundaries. |
| Monolithic Scope | One giant scope spanning unrelated domain boundaries. Decompose when a scope covers multiple domains. |
| Task-Level Decomposition | Splitting within a domain by implementation steps (e.g., "scaffolding" then "logic", or "core" then "wiring"). Build config and stubs that serve one feature are not a separate domain. Implementation sequencing is code-planner territory; the architect decomposes by domain. |
| False Independence | Scopes sharing state or files without depends_on. Shared-file audit catches file overlap; also audit for shared-state overlap. |
| Invisible Decisions | Structural choices without rationale. Every boundary should answer "why here?" |
| Cathedral Planning | Pursuing perfect upfront design. Define boundaries and interfaces; implementation detail crystallizes during code-planning. |
| Pattern Imposition | Forcing design patterns onto the problem. Name the problem first; pattern is the solution, not the starting point. |
| Boundary Amnesia | Components without interface contracts. Every boundary needs a contract. |
| Skill | Relationship | |-------|-------------| | software-architecture-review | Complementary. This skill defines; that skill evaluates. | | detailed-spec-writing | Upstream. Goal spec is the primary input. | | systemic-thinking | Used by Architecture Reviewer to evaluate the plan. |
Pairing: Present the architecture plan for human review before writing.
Liza: Autonomous within task scope. Plan submitted for review; Architecture Reviewer validates.
| Pairing Prompt | Liza Behavior | |----------------|---------------| | "Parent deliverables conflict — resolve?" | Surface in Open Questions; document both options | | "Scope too broad — split?" | Decompose further; document split rationale | | "Existing pattern X — follow or deviate?" | State rationale; reviewer evaluates | | "Cross-cutting concern Y unaddressed" | Must be addressed before submission |
development
Coordinate Pairing-mode doer/reviewer sessions through a Markdown blackboard. Use when the user invokes /adversarial-pairing with role and blackboard-path arguments or asks multiple pairing agents to coordinate plan review, implementation, staged code review, and follow-up review rounds without Liza multi-agent mode.
data-ai
Analyze Liza agents logs
development
Code Review Protocol
tools
Analyze Liza `.liza/agent-prompts/` and `.liza/agent-outputs/` from a context-engineering perspective: prompt payload shape, context budget use, cacheability, duplicated or missing context, instruction hierarchy, tool-output pressure, role-specific context fit, and prompt-output feedback loops. Use when diagnosing agent context bloat, prompt drift, poor agent handoffs, repeated misunderstandings, excessive tool output, or whether Liza agents received the right information at the right time.