CI workflow #598 was failing with "Found undefined steps" because the healthz BDD scenario used "the response status code should be 200" while the registered step regex matches "the status code should be N" (without "response"). Aligns the feature wording with the existing convention used in features/auth/.
PR #21 généré en autonomie complète par Mistral Vibe (€0.24, 13 steps, 11/13 tool calls success). 3rd autonomous PR du jour. Validation Q-030 workaround : prompt 100% ASCII = pas de hang.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com>
Co-committed-by: Gabriel Radureau <arcodange@gmail.com>
Adds Kubernetes-style /api/healthz endpoint with status/version/uptime_seconds/timestamp.
Non-breaking — /api/health preserved. Includes unit test (passes locally) and BDD scenario (validated by CI).
Généré ~95% en autonomie par Mistral Vibe via workspace ICM ~/Work/Vibe/workspaces/healthz-feature/.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com>
Co-committed-by: Gabriel Radureau <arcodange@gmail.com>
Régression du squash merge c17fb4f (PR #16). Restauration de Go Report Card, BDD Coverage et UNIT Coverage badges.
Généré en autonomie par Mistral Vibe (test ICM workspace, ~/Work/Vibe/workspaces/icm-vs-multiagent/T2-icm/).
Co-authored-by: Gabriel Radureau <arcodange@gmail.com>
Co-committed-by: Gabriel Radureau <arcodange@gmail.com>
## Summary
Homogenize all 23 ADRs to a single canonical header format, and rewrite `adr/README.md` to match the actual state of the corpus.
This is **Tâche 7** of the ARCODANGE Phase 1 migration (Claude Code → Mistral Vibe). Independent from PR #17 (Tâche 6 — restructure AGENTS.md) — both can merge in any order. No code changes; only documentation.
## Changes
### 1. Homogenize 21 ADR headers (commit `db09d0a`)
The audit (Tâche 6 Phase A, Mistral intent-router agent, 2026-05-02) had identified **3 inconsistent header formats** :
- **F1** — list bullets (`* Status:` / `* Date:` / `* Deciders:`) : 11 ADRs (0001-0008, 0011, 0014, 0023)
- **F2** — bold fields (`**Status:**` / `**Date:**` / `**Authors:**`) : 9 ADRs (0009, 0010, 0012, 0013, 0015, 0016, 0017, 0018, 0019)
- **F3** — dedicated section (`## Status\n**Value** ✅`) : 5 ADRs (0020, 0021, 0022, 0024, 0025)
Plus mixed metadata names (Authors / Deciders / Decision Date / Implementation Date / Implementation Status / Last Updated) and decorative emojis on status values made the corpus hard to scan or template against.
**Canonical format adopted** (see `adr/README.md` for full template) :
```markdown
# NN. Title
**Status:** <Proposed | Accepted | Implemented | Partially Implemented | Approved | Rejected | Deferred | Deprecated | Superseded by ADR-NNNN>
**Date:** YYYY-MM-DD
**Authors:** Name(s)
[optional **Field:** ... lines]
## Context...
```
**Transformations applied** (via `/tmp/homogenize-adrs.py` script, 23 files scanned, 21 modified — 0010 and 0012 were already conform) :
- F1 list bullets → bold fields
- F2 cleanup : `**Deciders:**` → `**Authors:**`, strip status emojis
- F3 sections : `## Status\n**Value** ✅` → `**Status:** Value` (single line)
- Strip decorative emojis from `**Status:**` and `**Implementation Status:**`
- Convert `* Last Updated:` / `* Implementation Status:` / `* Decision Drivers:` / `* Decision Date:` to bold
- Date typo fix : `2024-04-XX` → `2026-04-XX` for ADRs 0018, 0019 (off-by-2-years in original)
- Normalize multiple blank lines after header (max 1)
**ADR body content is preserved unchanged.** Only headers transformed.
### 2. Rewrite `adr/README.md` (commit `d64ab02`)
Previous README had multiple inconsistencies :
- Index table listed wrong titles for ADRs 0010-0021 (looked like an aspirational forecast that never matched reality — e.g. "0011 = Trunk-Based Development" but real 0011 is absent and Trunk-Based Development is actually 0017)
- Listed entries for ADRs 0011 (validation library) and 0014 (gRPC) but **these files do not exist** in the repo
- 0024 (BDD Test Organization) was missing from the detail list
- Template still showed the obsolete F1 format (`* Status:`)
- Decorative emojis on every status entry
Rewrite :
- Index table **regenerated from actual file contents** (title from H1, status from `**Status:**` line) — emoji-free, accurate
- Notes that 0011 / 0014 are not currently in use (reserved)
- Updated template block matches the canonical format
- Status Legend extended with `Approved`, `Partially Implemented`, `Deferred`
- Added note that 0026 is the next free number for new ADRs
## Test plan
- [x] All 23 ADRs follow `**Status:**` / `**Date:**` / `**Authors:**` (verified via grep)
- [x] No more occurrences of `* Status:` (F1) or `## Status` (F3) in any ADR header
- [x] No more emojis on `**Status:**` lines
- [x] `adr/README.md` index links resolve to existing files (no more 0011 / 0014 dead links)
- [x] Pre-commit hooks pass (`go mod tidy`, `go fmt`, `swag fmt`)
## Migration context
Part of Phase 1 of the ARCODANGE migration from Claude Code to Mistral Vibe. Tâche 7 of the curriculum.
Independent from PR #17 (which restructures `AGENTS.md`). The two PRs touch disjoint files — no merge conflict expected when both are merged.
🤖 Generated with [Claude Code](https://claude.com/claude-code) (Opus 4.7, 1M context). Mistral Vibe (intent-router agent / mistral-medium-3.5) did the original audit identifying the 3 formats during Tâche 6 Phase A.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Mistral Vibe (devstral-2 / mistral-medium-3.5)
Reviewed-on: #18
Co-authored-by: Gabriel Radureau <arcodange@gmail.com>
Co-committed-by: Gabriel Radureau <arcodange@gmail.com>
## Summary
Closes#15
When `logging.json: true` (or `DLC_LOGGING_JSON=true`), the logger was unconditionally initialised to console/text format at the top of `LoadConfig()`, so early log lines — most visibly **"Config file loaded"** — were always written as human-readable text regardless of configuration.
## Root cause
Classic chicken-and-egg: the format flag lives inside the config that is being loaded. The format-switch block only ran *after* `v.Unmarshal()`, too late for the config-file log.
## Changes
### `pkg/config/config.go`
- Add `peekJSONLogging()`: resolves the JSON flag **before** any log is emitted by (1) checking `DLC_LOGGING_JSON` directly via `os.Getenv`, then (2) doing a minimal throwaway Viper pre-read of the config file for the `logging.json` key. This mirrors Viper's own priority order without parsing the full config twice.
- Apply the resolved format immediately and emit **"Logging configured"** as the very first log line.
- Remove the now-redundant format-switch block that ran after `Unmarshal()`.
### `scripts/start-server.sh`, `test-graceful-shutdown.sh`, `test-opentelemetry.sh`
- Replace hardcoded `PROJECT_DIR` path with a dynamic `SCRIPTS_DIR=$(dirname $(realpath ${BASH_SOURCE[0]}))` derivation so scripts work from any worktree or clone location.
## Test plan
- [x] `go test ./pkg/...` — all pass
- [x] `scripts/test-graceful-shutdown.sh` — all JSON valid, all startup logs present
- [x] Manual smoke test: first line is `{"level":"info",...,"message":"Logging configured"}`, every line is valid JSON
Reviewed-on: #16
Co-authored-by: Gabriel Radureau <arcodange@gmail.com>
Co-committed-by: Gabriel Radureau <arcodange@gmail.com>
Added critical documentation about using separate 'Closes' lines for PR merge commits:
- Explains why single-line multiple issue references fail
- Provides correct multi-line format examples
- Prevents common issue where only first issue gets closed
- Updates usage examples with proper multi-issue syntax
This fixes the issue we encountered where 'Closes #4, #5, #6' only closed#4.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Added ADR-0018 for User Management and Authentication System with:
- Non-persisted admin user with master password authentication
- JWT-based authentication with bcrypt password hashing
- PostgreSQL database schema and GORM integration
- Admin-assisted password reset workflow
- Comprehensive security considerations
Added ADR-0019 for BDD Feature Structure:
- Epic/User Story organization pattern
- Unified development workflow
- Source of truth hierarchy
Added ADR-0020 for Docker Build Strategy:
- Multi-stage build approach
- Cache optimization strategy
- Production vs development build differences
Added technical documentation:
- Complete user management system specification
- API endpoints and integration details
- Security architecture and best practices
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Created comprehensive Gitmoji cheatsheet in documentation/
- Added quick reference to README for common Gitmoji
- Links to full cheatsheet for all Gitmoji options
- Helps team use consistent commit message format
This provides:
- Quick visual reference for common Gitmoji
- Examples of good/bad commit messages
- Best practices for commit formatting
- Easy access to full reference when needed
No more guessing which Gitmoji to use!
Refs: #documentation, #gitmoji, #conventions
- Created comprehensive agent usage guide in documentation/
- Added quick launch commands to README
- Provides clear guidance on when to use each agent
- Includes workflow examples and best practices
- Links to full documentation for details
This makes it easier for new users to:
- Launch the correct agent for their task
- Follow established workflows
- Understand agent capabilities
- Find troubleshooting help
Refs: #documentation, #onboarding, #usability
- Created changelog-manager skill to help agents properly maintain AGENT_CHANGELOG.md
- Provides guidance on when and how to update changelog
- Includes validation checks for format, content, and references
- Offers best practices for compact, outcome-focused entries
- Integrates with agent workflow for consistent documentation
This skill helps maintain the discipline of:
- Updating after each significant session
- Following consistent What/Why/How structure
- Linking to references (issues, ADRs, commits)
- Keeping entries compact and outcome-focused
Refs: #documentation, #changelog, #discipline
- Moved all documentation files from doc/ to documentation/
- Removed empty doc/ directory
- Single unified location for all project documentation
- Includes BDD guide, CI/CD testing guide, version management guide
Refs: #documentation, #organization, #cleanup
- Removed product owner agent documentation from AGENT_CHANGELOG.md
- Kept changelog focused on agent contributions and decisions
- Product owner system documentation belongs in separate files
- Maintains compact, iterative format as intended
Refs: #documentation, #cleanup, #changelog
- Changed GITEA_REPO from 'DanceLessonsCoach' to 'dance-lessons-coach'
- Updated workflow comment to use kebab-case
- Aligns with module name changes from previous commits
This ensures the CI/CD workflow correctly references the repository
using the new kebab-case naming convention.
Refs: #ci-cd, #kebab-case, #repository-naming
- Added path validation to prevent .vibe/.vibe nested directory creation
- Enhanced BEST_PRACTICES.md with path handling patterns
- Added troubleshooting section to ADVANCED_FEATURES.md
- Shows actual creation path for transparency
Fixes: Issue with skills being created in incorrect nested paths
Refs: #skill-creation, #path-validation
- Add swag fmt to git pre-commit hook and CI/CD pipeline
- Create comprehensive CONTRIBUTING.md guide with AI section
- Update ADR-0013 with swag fmt documentation
- Fix swagger generation to include all endpoints
- Improve local testing scripts and workflows
- Update Dockerfile for better swagger handling
- Fix CI/CD workflow file references
Remove redundant workflow-validation job:
- Local validation script is sufficient
- Simplifies CI workflow
- Reduces CI execution time
- Removes potential failure point
Workflow validation now handled locally
before pushing to repository.
Enhance documentation with real-world examples:
- Add PR commenting workflow use case
- Include actual examples from this project
- Show automated feedback patterns
- Document CI integration examples
Makes the skill more practical and valuable
for both humans and AI agents.
Fix three critical CI issues:
1. SWAG TOOL: Install swag before go generate
- Adds 'Install swag' step to build-test job
- Prevents 'command not found' errors
- Ensures swagger docs can be generated
2. GO VET REDUNDANCY: Remove duplicate go vet
- Removes go vet from lint-format job
- Keeps go vet only in build-test job
- Reduces CI execution time
3. WORKFLOW VALIDATION: Fix yamllint path
- Updates validate-workflow.sh to use absolute paths
- Fixes .yamllint.yaml file not found error
- Makes path resolution more robust
These fixes address the root causes of:
- Job 350 failure (missing swag)
- Redundant validation (duplicate go vet)
- Workflow validation failures (wrong paths)
Tested locally and ready for CI.
Add web UI link documentation and examples:
- Document html_url field usage in responses
- Add examples for opening jobs in browser
- Include common URL patterns
- Enhance job-status and list-workflow-jobs docs
Makes it easier to navigate between CLI and web UI
for better CI/CD monitoring and debugging.