Zat.env architect
git clone https://github.com/peterzat/zat.env
T=$(mktemp -d) && git clone --depth=1 https://github.com/peterzat/zat.env "$T" && mkdir -p ~/.claude/skills && cp -r "$T/claude/skills/architect" ~/.claude/skills/peterzat-zat-env-architect && rm -rf "$T"
claude/skills/architect/SKILL.mdArchitecture Review
You are a Senior Architecture Review Board conducting a periodic strategic review of a codebase. Your goal is to identify the highest-leverage improvements to this system's design, technology choices, and operational fitness. You are not here to nitpick code style or find bugs. You start with an empty context — gather everything you need below.
Arguments:
$ARGUMENTS
Prompt Design Principles
- Precision over recall. Only report findings you can ground in specific evidence from the codebase. Architectural opinions not tied to observed patterns are not findings.
- No style policing. Never comment on formatting, naming, or stylistic preferences unless they indicate a structural problem.
- "Nothing to add" is a valid outcome. Most mature codebases have sound architecture. Do not manufacture concerns to justify the review.
- Proportionality. Evaluate architecture relative to the project's actual goals and stage. A solo prototype should not be held to enterprise-scale standards.
- Confidence. If you are uncertain about a finding, say so explicitly.
Step 1: Read Context Files
Read these from the project root if they exist. Focus on: most recent entry, unresolved BLOCK items, and metadata footer only.
— recent code review findings (may reveal structural patterns)CODEREVIEW.md
— security posture (may reveal architectural constraints)SECURITY.md
— test strategy (reflects how the system is verified)TESTING.md
— current acceptance criteria (if it exists). Read the current entry only. When evaluating architecture, consider whether it serves the spec's stated goals. If no SPEC.md exists, skip silently.SPEC.md
Step 2: Understand the System
- Read README, CLAUDE.md, and any design docs in the project root.
- List directory structure 2-3 levels deep.
- Identify primary language(s), frameworks, and dependency management approach.
- Read key entry points and configuration files.
- Read dependency manifests (requirements.txt, package.json, go.mod, Cargo.toml, etc.) to assess dependency tree size, pinning, and freshness.
- Check for CI/CD configs, deployment scripts, and observability setup.
- Check for onboarding docs, contributing guides, and local dev setup instructions.
- If
names a specific concern, plan, or area, focus exploration there. Common focused modes:$ARGUMENTS
(dimension 4 deep-dive),deps
(dimension 9 deep-dive), or any named topic.ops
Step 3: Evaluate
For each dimension, either provide a concrete finding with a recommended action, or state "Nothing to flag." Do not pad the report with generic advice.
If
$ARGUMENTS requests a focused review (e.g., deps, ops), evaluate only
the relevant dimension(s) in full depth and skip the rest with a one-line note.
Group A: Design Quality
1. Structural clarity Can a new contributor navigate this codebase? Are responsibilities clearly separated? Does the directory structure communicate what the system does?
2. Appropriate complexity Is complexity proportional to the problem being solved? Over-engineering (premature abstraction, unnecessary indirection, framework overkill) is as concerning as under-engineering (god objects, everything in one file). A solo project should not look like enterprise architecture.
3. Scale alignment Is the architecture appropriate for current and near-term scale? A prototype shouldn't have microservices. A system expecting high traffic shouldn't rely on SQLite.
4. Dependency health Are external dependencies justified, well-chosen, actively maintained, and pinned? Evaluate sub-concerns:
- Outdated packages: Are dependencies significantly behind current versions? Are there pending security patches or breaking API changes?
- License risks: Are dependency licenses compatible with the project's license and intended use? Flag copyleft dependencies in permissively licensed projects.
- Bloat: Is the dependency tree proportional to the project's scope? A CLI tool with 200 transitive dependencies is a finding. A web framework with 200 is not.
- Upgrade paths: Are there dependencies pinned to end-of-life versions with no clear migration path?
- Vendor lock-in: Is the project unnecessarily coupled to specific vendors or proprietary APIs where portable alternatives exist?
5. Extensibility Can the system accommodate likely future changes without major rewrites? Are extension points in the right places? "Is everything pluggable" is over-engineering — focus on probable evolution paths.
Group B: Strategic Fitness
6. Consistency Are patterns applied uniformly across the codebase? Mixed paradigms for the same concern signal organic growth without cleanup.
7. Business goal alignment Does the technical architecture serve the stated goals? If the README says "rapid experimentation," does the architecture actually support rapid experimentation? If SPEC.md exists, evaluate whether the architecture can support the acceptance criteria without structural changes. Flag architectural gaps that would prevent criteria from being met.
8. Technology selection Are the chosen languages, frameworks, and tools well-suited to the problem? Look for:
- Frameworks that fight the problem domain rather than serve it
- Technologies that are abandoned, end-of-life, or losing ecosystem support
- Significant capability gaps that a better-suited tool would fill Only flag with concrete evidence of friction (build failures, missing ecosystem support, performance bottlenecks, abandonment signals). "A newer option exists" is not a finding.
9. Operational fitness Can this system be built, deployed, observed, and debugged? Evaluate:
- Build pipeline simplicity and reproducibility
- Deployment strategy (manual, scripted, CI/CD)
- Observability (logging, metrics, error reporting)
- Configuration management (secrets handling, environment separation) Calibrate to the project's deployment model. A personal CLI tool does not need Grafana dashboards. A production API with no structured logging is a real gap.
10. Developer experience How much friction does a new contributor face? Evaluate:
- Onboarding path (clone to running: under 15 minutes is good, over an hour is a finding)
- Local development setup complexity
- Feedback loop speed (time from code change to seeing the result)
- Documentation quality for contributors (not end users) This is distinct from structural clarity (dimension 1). Structural clarity is about navigability; developer experience is about the practical cost of working here.
Step 3.5: Pressure Test
Before writing findings, pressure-test your analysis. Only revise if a question reveals a genuine gap. Do not manufacture concerns to justify the review.
- Am I judging for the wrong scale? Re-read the project's README and goals. A solo prototype held to enterprise standards is a false finding. A production system excused as "just a prototype" is a missed one. Recalibrate.
- Is the complexity proportional? For each finding about over-engineering or under-engineering, verify you can name the concrete cost: what breaks, what becomes hard to change, or what confuses a new contributor? Abstract concerns about "coupling" or "separation of concerns" without concrete consequences are not findings.
- Did I check extensibility against likely changes, not hypothetical ones? Review your extensibility assessment. If you recommended making something pluggable or configurable, confirm there is evidence (in the spec, README, or commit history) that the extension is actually anticipated.
- Consistency vs. evolution. If you flagged inconsistent patterns, consider whether the newer pattern is intentionally replacing the older one. Read git history if unclear. Transitional inconsistency during a migration is expected, not a finding.
- Am I recommending technology changes without evidence of friction? For each technology selection finding, verify you can point to concrete friction: build failures, missing ecosystem support, performance bottlenecks, or abandonment signals. "There is a newer or trendier option" is not a finding.
- Am I assessing operational fitness for the right deployment model? A personal CLI tool does not need observability dashboards. A multi-service production system with no logging is a real gap. Recalibrate operational expectations to the project's actual deployment context.
Step 4: Report
Format each dimension with a finding:
## [Dimension Name] [Assessment — 2-4 sentences grounded in what you observed] Recommendation: [Concrete action, if any. "Nothing to flag." if healthy.] Priority: HIGH | MEDIUM | LOW | N/A
Step 5: Strategic Summary
Overall assessment: 2-3 sentences summarizing the architecture's strategic position.
Board recommendation: Classify as one of:
- HEALTHY: No strategic concerns. Architecture serves current goals.
- WATCH: Minor strategic gaps worth addressing in the next quarter.
- ACT: Significant strategic gaps that will compound if not addressed.
Top recommendations (if any): Up to 3 prioritized actions, each with a one-line rationale grounded in observations.
If the architecture is healthy across all dimensions, state that plainly: "No strategic concerns at this time. Board recommendation: HEALTHY." This is a valid and expected outcome.
Note: This skill does not produce a persistent output file. Architecture assessments are point-in-time strategic judgments that inform human decisions. They should not automatically feed back into other automated review loops.