Loading...
Loading...
Designs system architecture and selects technology stack based on vision analysis. Use after vision analysis for technical decisions. Triggers on: design architecture, select tech stack, choose framework.
npx skill4agent add youglin-dev/aha-loop architect.aha-loop/.aha-loop/project.vision-analysis.md.aha-loop/project.architecture.mdproject.vision-analysis.mdproject.architecture.md## Version Selection Process
1. Query official source for latest version:
- Rust: crates.io API or `cargo search`
- Node: npmjs.com or `npm view [pkg] version`
- Python: pypi.org or `pip index versions`
2. Check release date and stability:
- Released > 2 weeks ago (not bleeding edge)
- No critical issues in GitHub issues
- Changelog shows no breaking changes from common patterns
3. Document the version and why:
- Record in project.architecture.md
- Add to knowledge/project/decisions.md| Layer | Examples |
|---|---|
| Language | Rust, TypeScript, Python, Go |
| Frontend Framework | React, Vue, Svelte, SolidJS |
| Backend Framework | Axum, Actix, Express, FastAPI |
| Database | PostgreSQL, SQLite, MongoDB |
| ORM/Query Builder | Diesel, SQLx, Prisma, Drizzle |
| Authentication | JWT, Sessions, OAuth providers |
| Deployment | Docker, Serverless, VPS |
| Testing | Built-in, Jest, Pytest, Vitest |
## [Layer Name] Decision
### Candidates
| Criterion | Option A | Option B | Option C |
|-----------|----------|----------|----------|
| Latest Version | v1.2.3 | v2.0.0 | v0.9.0 |
| Release Date | 2026-01-15 | 2026-01-20 | 2025-12-01 |
| GitHub Stars | 45k | 30k | 15k |
| Bundle Size | 50kb | 80kb | 30kb |
| Learning Curve | Medium | Low | High |
| Documentation | Excellent | Good | Fair |
| TypeScript Support | Native | Via types | Partial |
| Community Activity | Very Active | Active | Moderate |
### Decision: [Option B]
### Rationale
- [Reason 1]
- [Reason 2]
- [Reason 3]
### Tradeoffs Accepted
- [What we're giving up]
- [Mitigation strategy if any]# Get latest version
curl -s "https://crates.io/api/v1/crates/tokio" | jq '.crate.max_stable_version'
# Or use cargo
cargo search tokio --limit 1# Get latest version
npm view react version
# Get all versions
npm view react versions --json# Using gh CLI
gh api repos/tokio-rs/tokio --jq '.pushed_at, .stargazers_count'## System Components
[Component A] --> [Component B] --> [Component C]
| |
v v
[Database] [External API]project/
├── src/
│ ├── main.rs
│ ├── api/
│ ├── db/
│ └── ...
├── tests/
├── Cargo.toml
└── ...# Project Architecture
**Generated:** [timestamp]
**Based on:** project.vision-analysis.md
## Technology Stack
### Core Technologies
| Layer | Technology | Version | Rationale |
|-------|------------|---------|-----------|
| Language | Rust | 1.75 | Performance, safety |
| Web Framework | Axum | 0.7.4 | Ergonomic, async |
| Database | SQLite | 3.45 | Simple, embedded |
| ORM | SQLx | 0.7.3 | Compile-time checks |
### Development Tools
| Tool | Version | Purpose |
|------|---------|---------|
| cargo-watch | 8.5.2 | Auto-rebuild |
| sqlx-cli | 0.7.3 | Migrations |
## Architecture Decisions
### ADR-001: [Decision Title]
**Context:** [Why this decision was needed]
**Decision:** [What was decided]
**Rationale:** [Why this option]
**Consequences:** [Impact of decision]
### ADR-002: ...
## System Design
### Component Overview
[Diagram or description]
### Data Flow
[How data moves through system]
### Directory Structure
## Key Patterns
### Error Handling
[Approach]
### Configuration
[Approach]
### Testing Strategy
[Approach]
## Dependencies
### Production Dependencies
```toml
[dependencies]
axum = "0.7.4"
tokio = { version = "1.35", features = ["full"] }
sqlx = { version = "0.7.3", features = ["sqlite", "runtime-tokio"] }[dev-dependencies]
---
## Integration with Orchestrator
After architecture design:
1. Save `project.architecture.md` to project root
2. Update `knowledge/project/decisions.md` with ADRs
3. Signal completion to orchestrator
4. Roadmap Skill uses architecture as input
---
## Checklist
Before completing architecture:
- [ ] All technology layers evaluated
- [ ] Latest stable versions verified for each choice
- [ ] Compatibility between choices confirmed
- [ ] Decisions documented with rationale
- [ ] Directory structure proposed
- [ ] Key patterns defined
- [ ] Dependencies listed with versions
- [ ] ADRs recorded in knowledge/project/decisions.md
- [ ] Architecture saved to `project.architecture.md`
---
## Example: Web App Architecture
**Input:** Vision analysis showing PWA finance tracker
**Output:**
```markdown
# Project Architecture
## Technology Stack
### Core Technologies
| Layer | Technology | Version | Rationale |
|-------|------------|---------|-----------|
| Language | TypeScript | 5.3.3 | Type safety, ecosystem |
| Framework | SvelteKit | 2.5.0 | Fast, simple, SSR+SPA |
| Styling | Tailwind CSS | 3.4.1 | Utility-first, fast |
| Database | IndexedDB (Dexie) | 4.0.1 | Offline-first PWA |
| Build | Vite | 5.0.12 | Fast, modern |
### PWA Stack
| Component | Technology | Version |
|-----------|------------|---------|
| Service Worker | Workbox | 7.0.0 |
| Manifest | Vite PWA Plugin | 0.17.4 |
## Architecture Decisions
### ADR-001: SvelteKit over React/Next.js
**Context:** Need a modern frontend framework for PWA
**Decision:** Use SvelteKit 2.x
**Rationale:**
- Smaller bundle size (critical for PWA)
- Built-in SSR and static generation
- Simpler mental model than React
- Excellent TypeScript support
**Consequences:** Smaller community than React, but sufficient for this project.
### ADR-002: Dexie for IndexedDB
**Context:** Need offline data storage
**Decision:** Use Dexie.js 4.x wrapper for IndexedDB
**Rationale:**
- Promise-based API
- Excellent TypeScript support
- Reactive queries
- Well-maintained
**Consequences:** Additional 30kb bundle, but worth the DX improvement.