Single-commit clean baseline after security scrub of niche-tells, project codenames, internal jargon, and contributor-email leaks. Contents: - 100 Rust crates (_primitives/_rust/) - 37 agent manifests (_manifests/) + generated specs (_generated/) - 67 user-invocable skills (skills/) - 33 hooks (hooks/) - Composition blocks (_blocks/) - Documentation (docs/, README.md) - TS adapter packages (_ts_packages/) - Assembler (_assembler/) - Roles (_roles/) - Templates (_templates/) - Forgejo CI (.forgejo/) Author: Denis Parfionovich <info@greendragon.info> License: see LICENSE.
3.8 KiB
3.8 KiB
Pre-Implementation Architecture Checklist
Run BEFORE writing any code
1. Requirements Clarity
- What EXACTLY should this do? (not vague "improve X")
- What are the inputs and outputs?
- What are the edge cases?
- What happens on failure?
- What are the performance requirements?
2. Existing Code Check
- Does similar functionality already exist in codebase?
- Can existing code be extended instead of writing new?
- What patterns does the codebase already use?
- What conventions must be followed?
3. Duplication Prevention
- Search codebase for similar patterns (grep, find)
- Check shared/ and lib/ for reusable utilities
- If creating new utility — will 2+ modules use it?
- If yes → put in shared/. If no → keep local
4. Dependency Direction
- Draw dependency arrows — do they point inward (clean)?
- No circular dependencies?
- Upper layers don't know about lower layer implementation?
- Domain logic has ZERO framework imports?
5. Pattern Selection
- Consult patterns.md — which pattern fits?
- Is the pattern justified by complexity? (don't over-engineer)
- Does the codebase already use this pattern?
- If new pattern — is it worth the learning curve for team?
6. Stack Compatibility
- Check stack-compat.md for version constraints
- No anti-compatible combinations?
- New dependency needed? Check bundle size, maintenance status, license
- Prefer stdlib/existing deps over new packages
7. Security
- Input validation at system boundaries
- SQL/NoSQL injection prevention (parameterized queries)
- XSS prevention (sanitize output)
- Auth/authz checks on all endpoints
- No secrets in code (use env vars)
- No internal IDs exposed in public APIs
8. Data Flow
- Where does data enter the system?
- How is it validated and transformed?
- Where is it stored?
- How is it retrieved and presented?
- What happens to stale/expired data?
9. Error Handling Strategy
- What errors are expected? (user input, network, DB)
- What errors are unexpected? (bugs)
- Error response format consistent with existing API?
- Errors logged with enough context to debug?
- No swallowed errors (empty catch blocks)
10. Testability
- Can each component be tested in isolation?
- Dependencies injectable (not hardcoded)?
- Side effects isolated (DB, network, filesystem)?
- Happy path + edge cases + error cases covered?
Run AFTER writing code
11. Post-Implementation Review
- Re-check duplication — did I create any new duplicates?
- Anti-pattern scan (see antipatterns.md)
- All functions < 50 lines? (extract if not)
- All files < 300 lines? (split if not)
- Cyclomatic complexity < 10 per function?
- No dead code left behind
- No commented-out code
- No TODO/FIXME without ticket reference
12. Performance Basics
- No N+1 queries (check ORM calls in loops)
- Indexes on queried columns
- No blocking I/O in async paths
- Large lists paginated
- Heavy operations use queue (not request handler)
13. Deploy Readiness
- Check error-patterns.json for recurring issues
- Environment variables documented
- Database migrations created and tested
- Rollback plan if deploy fails
- Health check endpoint works
Complexity Budget
| Metric | Green | Yellow | Red |
|---|---|---|---|
| Function length | < 30 lines | 30-50 lines | > 50 lines |
| File length | < 200 lines | 200-300 lines | > 300 lines |
| Function params | 1-3 | 4-5 | > 5 (use object) |
| Nesting depth | 1-2 | 3 | > 3 (extract) |
| Cyclomatic complexity | 1-5 | 6-10 | > 10 (simplify) |
| Dependencies per module | 1-5 | 6-8 | > 8 (split module) |
| Test coverage | > 80% | 60-80% | < 60% |