and preserve complete architectural context for AI/developer reference.\n\n## Changes\n\n### Documentation Consolidation 🗂️\n- Simplified README.md by ~100 lines (25% reduction)\n- Removed redundant sections (project structure, configuration, API docs)\n- Added strategic cross-references between README.md and AGENTS.md\n- README.md now focused on user onboarding and basic usage\n- AGENTS.md maintained as complete technical reference\n\n### Architecture Decision Records ✅\n- Added comprehensive ADR directory with 9 decision records:\n * 0001-go-1.26.1-standard.md\n * 0002-chi-router.md\n * 0003-zerolog-logging.md (enhanced with Zap analysis)\n * 0004-interface-based-design.md\n * 0005-graceful-shutdown.md\n * 0006-configuration-management.md\n * 0007-opentelemetry-integration.md\n * 0008-bdd-testing.md\n * 0009-hybrid-testing-approach.md\n- Added adr/README.md with guidelines and template\n- Enhanced Zerolog ADR with detailed performance benchmarking vs Zap\n\n### Content Organization 📝\n- README.md: User-focused guide with quick start and basic examples\n- AGENTS.md: Developer/AI-focused complete technical reference\n- ADR directory: Architectural decision history and rationale\n\n## Impact\n- ✅ Better user onboarding experience\n- ✅ Preserved complete technical context for AI agents\n- ✅ Reduced maintenance burden through consolidation\n- ✅ Improved discoverability of advanced documentation\n- ✅ Established ADR process for future decisions\n\n## Related\n- Resolves documentation redundancy issues\n- Prepares for BDD implementation with clear context\n- Supports future Swagger integration decisions\n- Maintains project history for new contributors\n\nGenerated by Mistral Vibe.\nCo-Authored-By: Mistral Vibe <vibe@mistral.ai>
2.4 KiB
2.4 KiB
Architecture Decision Records (ADRs)
This directory contains Architecture Decision Records (ADRs) for the DanceLessonsCoach project.
What is an ADR?
An ADR is a document that captures an important architectural decision made along with its context and consequences.
Format
Each ADR follows this structure:
# [Short title is a few words]
* Status: [Proposed | Accepted | Deprecated | Superseded]
* Deciders: [List of decision makers]
* Date: [YYYY-MM-DD]
## Context and Problem Statement
[Describe the context and problem statement]
## Decision Drivers
* [Driver 1]
* [Driver 2]
* [Driver 3]
## Considered Options
* [Option 1]
* [Option 2]
* [Option 3]
## Decision Outcome
Chosen option: "[Option 1]" because [justification]
## Pros and Cons of the Options
### [Option 1]
* Good, because [argument a]
* Good, because [argument b]
* Bad, because [argument c]
### [Option 2]
* Good, because [argument a]
* Good, because [argument b]
* Bad, because [argument c]
## Links
* [Link type] [Link to ADR]
* [Link type] [Link to ADR]
ADR List
- 0001-go-1.26.1-standard.md - Use Go 1.26.1 as the standard Go version
- 0002-chi-router.md - Use Chi router for HTTP routing
- 0003-zerolog-logging.md - Use Zerolog for structured logging
- 0004-interface-based-design.md - Adopt interface-based design pattern
- 0005-graceful-shutdown.md - Implement graceful shutdown with readiness endpoints
- 0006-configuration-management.md - Use Viper for configuration management
- 0007-opentelemetry-integration.md - Integrate OpenTelemetry for distributed tracing
- 0008-bdd-testing.md - Adopt BDD with Godog for behavioral testing
- 0009-hybrid-testing-approach.md - Combine BDD and Swagger-based testing
How to Add a New ADR
- Create a new file with the next available number (e.g.,
0010-new-decision.md) - Follow the template format
- Update this README.md with the new ADR
- Commit the changes
Status Legend
- Proposed: Decision is being discussed
- Accepted: Decision has been made and implemented
- Deprecated: Decision is no longer relevant
- Superseded: Decision has been replaced by another ADR