Gabriel Radureau 8c0e3830f8 📝 docs(adr): audit and update Status for 5 implemented ADRs
Audits 7 ADRs marked "Proposed" against the actual code, updates the Status
field of 5 that are at least partially implemented. Keeps 2 as "Proposed"
because only test infrastructure exists (no production implementation).

Updated:
- 0018 user-management-auth-system : Partially Implemented (auth/jwt/repos exist; auth middleware + greet integration missing)
- 0019 postgresql-integration : Partially Implemented (postgres repo exists, BDD uses it; sqlite still present, not default)
- 0022 rate-limiting-cache-strategy : Implemented (Phase 1) - Phase 2 still Proposed (PRs #22 ratelimit, #23 cache; Redis/Dragonfly deferred)
- 0024 bdd-test-organization-and-isolation : Partially Implemented (domain dirs + scenario state isolation; parallel exec opt-in only)
- 0025 bdd-scenario-isolation-strategies : Partially Implemented (schema-per-scenario opt-in via BDD_SCHEMA_ISOLATION; cache/user store isolation missing)

Kept "Proposed" (production code not implemented, only test fixtures):
- 0021 jwt-secret-retention-policy (BDD scenarios exist but no ConfigManager / cleanup goroutine in pkg/)
- 0023 config-hot-reloading (testserver has reload, but no Viper WatchConfig in production)

Audit method: Q-024 compliant - every status decision has file:line evidence
documented in workspaces/adr-audit-status/stages/01-audit/output/audit-report.md.

Generated ~95% in autonomy by Mistral Vibe via ICM workspace
~/Work/Vibe/workspaces/adr-audit-status/. Cost €2.50 stage 01-audit (very thorough).
Trainer (Claude) finalized commit/PR (Mistral hit max-price).

🤖 Co-Authored-By: Mistral Vibe (devstral-2 / mistral-medium-3.5)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 13:31:45 +02:00

dance-lessons-coach

Build Status Go Report Card Version License BDD Coverage UNIT Coverage

Go web service demonstrating idiomatic package structure, versioned JSON API, and production-ready features.

Features

  • Versioned JSON API (/api/v1, /api/v2)
  • Chi router with graceful shutdown
  • Zerolog structured logging (console and JSON modes)
  • Viper configuration (file + env vars)
  • Readiness endpoint for Kubernetes / service mesh
  • OpenTelemetry / Jaeger distributed tracing
  • OpenAPI / Swagger UI (embedded in binary)
  • PostgreSQL user service with JWT auth
  • BDD + unit tests

Quick Start

git clone https://gitea.arcodange.lab/arcodange/dance-lessons-coach.git
cd dance-lessons-coach
./scripts/build.sh          # produces ./bin/server and ./bin/greet
./scripts/start-server.sh start
curl http://localhost:8080/api/health
curl http://localhost:8080/api/v1/greet/Alice

Stop: ./scripts/start-server.sh stop

Greet CLI

go run ./cmd/greet           # Hello world!
go run ./cmd/greet Alice     # Hello Alice!

Configuration

All options are available via config.yaml or DLC_* environment variables.

Env var Default Description
DLC_SERVER_PORT 8080 Listening port
DLC_SERVER_HOST 0.0.0.0 Bind address
DLC_LOGGING_JSON false JSON log format
DLC_LOGGING_OUTPUT stderr Log file path
DLC_SHUTDOWN_TIMEOUT 30s Graceful shutdown window
DLC_API_V2_ENABLED false Enable /api/v2 routes
DLC_CONFIG_FILE ./config.yaml Override config path

See config.example.yaml for a full template.

API

Method Path Description
GET /api/health Liveness check
GET /api/ready Readiness check (503 during shutdown)
GET /api/version Version info (?format=plain|full|json)
GET /api/v1/greet/ Default greeting
GET /api/v1/greet/{name} Named greeting
POST /api/v2/greet V2 greeting with validation
GET /swagger/ Swagger UI

Testing

go test ./...                          # unit + integration tests
./scripts/test-graceful-shutdown.sh    # lifecycle + JSON logging validation
./scripts/test-opentelemetry.sh        # tracing end-to-end

Gitea Client

AI agent helper script at .vibe/skills/gitea-client/scripts/gitea-client.sh.

Auth setup:

echo "your_token" > ~/.gitea_token
chmod 600 ~/.gitea_token
export GITEA_API_TOKEN_FILE="$HOME/.gitea_token"

Get a token at https://gitea.arcodange.lab → Profile → Settings → Applications.

Architecture

Key decisions are documented in adr/. See AGENTS.md for the full development reference (commands, config, ADR index, commit conventions).

License

MIT

Description
No description provided
Readme 57 MiB
Languages
Go 71.2%
Shell 21.7%
Gherkin 3.9%
TypeScript 1.4%
Vue 0.5%
Other 1.2%