Cut AGENTS.md from 1296 to ~210 lines: removed development timeline,
changelog, stale AI agent section, verbose architecture examples, and
duplicate content. Kept tech stack, project structure, key commands,
config reference, API table, ADR index, and commit conventions.
Cut README.md from 423 to ~80 lines: removed duplicate CI/CD sections
(one had merge conflict markers), non-existent Cobra CLI and
documentation/ references, and the AI agent usage section. Kept
features, quick start, config table, API table, testing, and Gitea
client setup.
Also includes gitea-client.sh fixes from earlier session:
create-pr sub-command and safe jq-based JSON body in comment-pr.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Display the full log as a readable summary before cleanup so the
complete server lifecycle is visible in test output without needing
to preserve the log file manually.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Print the full response body and status code from the /api/ready probe
that fires during the graceful shutdown window, so the 200→503 transition
is visible in test output rather than silently discarded.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Three related issues fixed together:
1. Readiness context was never cancelled during shutdown
server.Run() had a type assertion for a Cancel() method that no standard
context.Context implements, so readiness stayed "ready" through the entire
shutdown window. Added CancelableContext to pkg/server — a thin wrapper that
exposes Cancel() — and switched cmd/server/main.go to use it. Test servers
and CLI continue passing context.Background() unchanged.
2. "Server exited" log was never emitted
The test script expected it; main.go had no log after server.Run() returned.
Added log.Trace().Msg("Server exited") after the Run() call.
3. Double-SIGTERM caused non-JSON "signal: terminated" in server.log
test-graceful-shutdown.sh sent SIGTERM, then called $SERVER_CMD stop which
sent a second SIGTERM. After signal.NotifyContext is cancelled, the second
signal hits the default handler and Go prints "signal: terminated" to stderr,
breaking the all-JSON-lines assertion. Fixed by waiting for the PID to exit
ourselves instead of re-invoking the stop script.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The logger was initialised to console format unconditionally, so the
"Config file loaded" message (and similar early logs) were always written
as human-readable text even when JSON logging was configured.
Root cause: classic chicken-and-egg — the format flag lives inside the
config that is being loaded.
Fix: add peekJSONLogging() which resolves the format 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. The redundant format-switch block that ran after
Unmarshal() is removed.
Also add the "Logging configured" log as the very first line, and
replace the hardcoded PROJECT_DIR path in start-server.sh,
test-graceful-shutdown.sh, and test-opentelemetry.sh with a dynamic
derivation from BASH_SOURCE[0].
Closes#15
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.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.
Fix CI/CD workflow failure by adding swagger documentation generation
step before building packages.
The workflow was failing with:
pkg/server/server.go:30:12: pattern docs/swagger.json: no matching files found
Root cause: The //go:embed directive requires generated swagger docs
but the workflow didn't generate them before building.
Solution: Added 'Generate Swagger Docs' step:
- name: Generate Swagger Docs
run: cd pkg/server && go generate
Also generated the missing docs locally to fix immediate issue:
cd pkg/server && go generate
This ensures swagger.json, swagger.yaml, and docs.go are created
before the build step, preventing the embed directive from failing.