refactor: convert all DanceLessonsCoach mentions to kebab-case
Some checks failed
CI/CD Pipeline / Build Docker Cache (push) Successful in 10s
CI/CD Pipeline / CI Pipeline (push) Failing after 13s

This commit is contained in:
2026-04-07 19:11:39 +02:00
parent 7f32a113db
commit 52065c9cf3
72 changed files with 211 additions and 211 deletions

View File

@@ -233,7 +233,7 @@ jobs:
# Create Dockerfile.prod with the correct cache image tag
cat > docker/Dockerfile.prod << EOF
# DanceLessonsCoach Production Docker Image
# dance-lessons-coach Production Docker Image
# Generated by CI/CD pipeline with dependency hash: $DEPS_HASH
# Use the build cache image as base

View File

@@ -1,6 +1,6 @@
# Git Hooks for DanceLessonsCoach
# Git Hooks for dance-lessons-coach
This directory contains Git hooks for the DanceLessonsCoach project.
This directory contains Git hooks for the dance-lessons-coach project.
## Available Hooks

View File

@@ -1,16 +1,16 @@
---
name: bdd-testing
description: Behavior-Driven Development testing for DanceLessonsCoach using Godog. Use when creating or running BDD tests, implementing new features with BDD, or validating API endpoints through Gherkin scenarios.
description: Behavior-Driven Development testing for dance-lessons-coach using Godog. Use when creating or running BDD tests, implementing new features with BDD, or validating API endpoints through Gherkin scenarios.
license: MIT
metadata:
author: DanceLessonsCoach Team
author: dance-lessons-coach Team
version: "1.0.0"
based-on: pkg/bdd implementation
---
# BDD Testing for DanceLessonsCoach
# BDD Testing for dance-lessons-coach
Behavior-Driven Development testing framework using Godog for the DanceLessonsCoach project. This skill provides comprehensive guidance for creating, running, and maintaining BDD tests that validate API endpoints and system behavior.
Behavior-Driven Development testing framework using Godog for the dance-lessons-coach project. This skill provides comprehensive guidance for creating, running, and maintaining BDD tests that validate API endpoints and system behavior.
## Key Concepts

View File

@@ -2,7 +2,7 @@
## What Was Created
A comprehensive `bdd_testing` skill that encapsulates all our BDD testing knowledge and experience from the DanceLessonsCoach project.
A comprehensive `bdd_testing` skill that encapsulates all our BDD testing knowledge and experience from the dance-lessons-coach project.
## Directory Structure
@@ -268,7 +268,7 @@ The skill has been validated:
## Conclusion
This `bdd_testing` skill represents the culmination of our BDD testing journey for DanceLessonsCoach. It captures:
This `bdd_testing` skill represents the culmination of our BDD testing journey for dance-lessons-coach. It captures:
1. **All our hard-won knowledge** about Godog and BDD testing
2. **Proven patterns** that work reliably
@@ -283,7 +283,7 @@ The skill ensures that:
- **Knowledge** is preserved and shared
- **Debugging** is systematic and efficient
With this skill, the DanceLessonsCoach project has a robust, well-documented BDD testing framework that can scale with the project and support team growth.
With this skill, the dance-lessons-coach project has a robust, well-documented BDD testing framework that can scale with the project and support team growth.
**Next Steps:**
1. Use this skill for all new BDD feature development

View File

@@ -2,7 +2,7 @@
package steps
import (
"DanceLessonsCoach/pkg/bdd/testserver"
"dance-lessons-coach/pkg/bdd/testserver"
"fmt"
"strings"

View File

@@ -1,4 +1,4 @@
# BDD Best Practices for DanceLessonsCoach
# BDD Best Practices for dance-lessons-coach
Based on our implementation experience with Godog and the existing `pkg/bdd` codebase.

View File

@@ -1,6 +1,6 @@
# BDD Testing Debugging Guide
Comprehensive guide to debugging BDD tests for DanceLessonsCoach.
Comprehensive guide to debugging BDD tests for dance-lessons-coach.
## Common Issues and Solutions

View File

@@ -345,7 +345,7 @@ resp, err := testClient.Do(req)
// pkg/bdd/bdd_test.go
func TestBDD(t *testing.T) {
suite := godog.TestSuite{
Name: "DanceLessonsCoach BDD Tests",
Name: "dance-lessons-coach BDD Tests",
TestSuiteInitializer: bdd.InitializeTestSuite,
ScenarioInitializer: bdd.InitializeScenario,
Options: &godog.Options{

View File

@@ -5,7 +5,7 @@
set -e
echo "🧪 Running BDD tests for DanceLessonsCoach..."
echo "🧪 Running BDD tests for dance-lessons-coach..."
echo "============================================"
# Run tests with verbose output

View File

@@ -3,7 +3,7 @@ name: changelog-manager
description: A skill to help agents properly maintain and utilize AGENT_CHANGELOG.md for tracking contributions and decisions
license: MIT
metadata:
author: DanceLessonsCoach Team
author: dance-lessons-coach Team
version: "1.0.0"
role: Documentation Assistant
purpose: Maintain consistent, useful changelog entries

View File

@@ -3,7 +3,7 @@ name: commit-message
description: Helps create proper Gitmoji commit messages following the Common Gitmoji Reference from AGENTS.md. Use when creating commits to ensure consistent, visual commit messages. Includes Git hooks for automatic code formatting and dependency management.
license: MIT
metadata:
author: DanceLessonsCoach Team
author: dance-lessons-coach Team
version: "1.1.0"
based-on: AGENTS.md Common Gitmoji Reference
---
@@ -115,7 +115,7 @@ The suggestions are just helpful reminders, never requirements.
🔍 Checking for relevant issues...
📋 Found 1 open issue(s):
#2: Optimize Gitea Workflow for Main Branch
https://gitea.arcodange.lab/arcodange/DanceLessonsCoach/issues/2
https://gitea.arcodange.lab/arcodange/dance-lessons-coach/issues/2
💡 Suggested commit message formats:
- closes #<number> (when issue is fully resolved)
@@ -254,7 +254,7 @@ echo "$commit_message" | grep -E "^[🎨✨🐛📝🔧♻️🚀🔒📦🔥
```bash
#!/bin/sh
# DanceLessonsCoach pre-commit hook
# dance-lessons-coach pre-commit hook
# Runs go mod tidy and go fmt before allowing commits
echo "Running pre-commit hooks..."

View File

@@ -1,6 +1,6 @@
# Git Hooks for DanceLessonsCoach
# Git Hooks for dance-lessons-coach
This directory contains Git hooks for the DanceLessonsCoach project.
This directory contains Git hooks for the dance-lessons-coach project.
## Available Hooks

View File

@@ -1,6 +1,6 @@
#!/bin/sh
# DanceLessonsCoach pre-commit hook
# dance-lessons-coach pre-commit hook
# Runs go mod tidy, go fmt, and suggests issue references before allowing commits
echo "Running pre-commit hooks..."

View File

@@ -25,7 +25,7 @@ fi
echo "🔍 Checking for relevant issues..."
# Get list of open issues
ISSUES_JSON=$($GITEA_CLIENT list-issues arcodange DanceLessonsCoach open 2>/dev/null || echo "[]")
ISSUES_JSON=$($GITEA_CLIENT list-issues arcodange dance-lessons-coach open 2>/dev/null || echo "[]")
# Check if we got valid JSON
if [ "$ISSUES_JSON" = "[]" ] || [ -z "$ISSUES_JSON" ]; then

View File

@@ -454,7 +454,7 @@ curl -s https://gitea.arcodange.lab/swagger.v1.json | \
This reference guide provides comprehensive examples for using the gitea-client skill in real-world scenarios, covering job monitoring, PR management, issue tracking, and API discovery with practical, copy-paste-ready examples.
## 🎯 Real-World Use Cases from DanceLessonsCoach
## 🎯 Real-World Use Cases from dance-lessons-coach
### CI/CD Pipeline Debugging

View File

@@ -3,7 +3,7 @@ name: product-owner-assistant
description: A skill for managing Gitea issues, organizing them into Epics and User Stories, and facilitating product backlog refinement
license: MIT
metadata:
author: DanceLessonsCoach Team
author: dance-lessons-coach Team
version: "1.0.0"
dependencies:
- gitea-client

View File

@@ -2,7 +2,7 @@
## ✅ What We've Created
A comprehensive **Product Owner Assistant** skill for the DanceLessonsCoach project that enables effective agile product management using Gitea issues and wiki.
A comprehensive **Product Owner Assistant** skill for the dance-lessons-coach project that enables effective agile product management using Gitea issues and wiki.
## 🎯 Key Components

View File

@@ -6,7 +6,7 @@
set -e
# Configuration
SKILL_DIR="/Users/gabrielradureau/Work/Vibe/DanceLessonsCoach/.vibe/skills/product-owner-assistant"
SKILL_DIR="/Users/gabrielradureau/Work/Vibe/dance-lessons-coach/.vibe/skills/product-owner-assistant"
DATA_DIR="$SKILL_DIR/data"
GITEA_CLIENT="skill gitea-client"

View File

@@ -5,7 +5,7 @@
set -e
# Configuration
SKILL_DIR="/Users/gabrielradureau/Work/Vibe/DanceLessonsCoach/.vibe/skills/product-owner-assistant"
SKILL_DIR="/Users/gabrielradureau/Work/Vibe/dance-lessons-coach/.vibe/skills/product-owner-assistant"
GITEA_API="https://gitea.arcodange.lab/api/v1"
OWNER="arcodange"
REPO="dance-lessons-coach"

View File

@@ -2,7 +2,7 @@
## 🎯 Overview
This document describes the standardized workflow for implementing user stories in the DanceLessonsCoach project. The workflow follows a test-driven development approach with clear phases and deliverables.
This document describes the standardized workflow for implementing user stories in the dance-lessons-coach project. The workflow follows a test-driven development approach with clear phases and deliverables.
## 🔄 Workflow Diagram
@@ -89,7 +89,7 @@ Feature: User Persistence
```bash
# Run BDD tests
cd /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach
cd /Users/gabrielradureau/Work/Vibe/dance-lessons-coach
godog features/user-persistence.feature
# Expected: Test fails with "pending" or "undefined" steps

View File

@@ -3,7 +3,7 @@ name: skill-creator
description: Creates and manages Mistral Vibe skills following the Agent Skills specification. Use when you need to create new skills, validate existing ones, or maintain skill consistency across projects.
license: MIT
metadata:
author: DanceLessonsCoach Team
author: dance-lessons-coach Team
version: "1.0.0"
---

View File

@@ -121,4 +121,4 @@ The skill_creator has been tested with:
- **Compliance**: Automatic validation ensures specification compliance
- **Maintainability**: Clear structure makes skills easier to update
The skill_creator provides a solid foundation for building a library of high-quality, specification-compliant skills for the DanceLessonsCoach project.
The skill_creator provides a solid foundation for building a library of high-quality, specification-compliant skills for the dance-lessons-coach project.

View File

@@ -6,7 +6,7 @@
## 📋 Overview
This skill provides comprehensive guidance and automation for managing OpenAPI/Swagger documentation in the DanceLessonsCoach project. It captures our best practices, tagging strategies, and automation patterns for maintaining high-quality API documentation.
This skill provides comprehensive guidance and automation for managing OpenAPI/Swagger documentation in the dance-lessons-coach project. It captures our best practices, tagging strategies, and automation patterns for maintaining high-quality API documentation.
## 🎯 Key Features
@@ -145,6 +145,6 @@ Found a better way? Have a new pattern?
---
**Maintained by:** DanceLessonsCoach Team
**Maintained by:** dance-lessons-coach Team
**License:** MIT
**Status:** Actively developed

View File

@@ -1,16 +1,16 @@
---
name: swagger-documentation
description: Manage and optimize OpenAPI/Swagger documentation for DanceLessonsCoach
description: Manage and optimize OpenAPI/Swagger documentation for dance-lessons-coach
license: MIT
metadata:
author: DanceLessonsCoach Team
author: dance-lessons-coach Team
version: "1.0.0"
---
# Swagger Documentation Skill
**Name:** `swagger-documentation`
**Purpose:** Manage and optimize OpenAPI/Swagger documentation for DanceLessonsCoach
**Purpose:** Manage and optimize OpenAPI/Swagger documentation for dance-lessons-coach
**Version:** 1.0.0
## 🎯 Skill Objectives
@@ -200,7 +200,7 @@ func (s *Server) handleHealth(w http.ResponseWriter, r *http.Request) {
- [swaggo/swag Documentation](https://github.com/swaggo/swag#declaration)
- [OpenAPI 2.0 Specification](https://swagger.io/specification/v2/)
### DanceLessonsCoach Specific
### dance-lessons-coach Specific
- [ADR 0013: OpenAPI/Swagger Toolchain](adr/0013-openapi-swagger-toolchain.md)
- [AGENTS.md OpenAPI Section](#openapi-documentation)
- [Current Implementation](pkg/greet/api_v1.go)
@@ -303,6 +303,6 @@ fi
---
**Maintainers**: DanceLessonsCoach Team
**Maintainers**: dance-lessons-coach Team
**License**: MIT
**Status**: Active

View File

@@ -1,4 +1,4 @@
# DanceLessonsCoach YAML Lint Configuration
# dance-lessons-coach YAML Lint Configuration
# More practical limits for CI/CD workflow files
extends: default

View File

@@ -1,10 +1,10 @@
# DanceLessonsCoach - AI Agent Documentation
# dance-lessons-coach - AI Agent Documentation
This file documents the AI agents, tools, and development workflow for the DanceLessonsCoach project.
This file documents the AI agents, tools, and development workflow for the dance-lessons-coach project.
## 🎯 Project Overview
**DanceLessonsCoach** is a Go-based web service with CLI capabilities, featuring:
**dance-lessons-coach** is a Go-based web service with CLI capabilities, featuring:
- RESTful JSON API with Chi router
- High-performance Zerolog logging
- Interface-based architecture
@@ -94,7 +94,7 @@ This file documents the AI agents, tools, and development workflow for the Dance
## 🗺️ Project Structure
```
DanceLessonsCoach/
dance-lessons-coach/
├── adr/ # Architecture Decision Records
│ ├── README.md # ADR guidelines and index
│ ├── 0001-go-1.26.1-standard.md
@@ -138,7 +138,7 @@ DanceLessonsCoach/
### New Cobra CLI (Recommended)
DanceLessonsCoach now includes a modern CLI built with Cobra framework:
dance-lessons-coach now includes a modern CLI built with Cobra framework:
```bash
# Show help and available commands
@@ -156,7 +156,7 @@ DanceLessonsCoach now includes a modern CLI built with Cobra framework:
**Available Commands:**
- `version` - Print version information
- `server` - Start the DanceLessonsCoach server
- `server` - Start the dance-lessons-coach server
- `greet [name]` - Greet someone by name
- `help` - Built-in help system
- `completion` - Generate shell completion scripts
@@ -178,7 +178,7 @@ The server provides runtime version information:
./bin/server --version
# Output:
DanceLessonsCoach Version Information:
dance-lessons-coach Version Information:
Version: 1.0.0
Commit: abc1234
Built: 2026-04-05T10:00:00+0000
@@ -191,7 +191,7 @@ A convenient shell script is provided for managing the server lifecycle:
```bash
# Navigate to project directory
cd /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach
cd /Users/gabrielradureau/Work/Vibe/dance-lessons-coach
# Start the server
./scripts/start-server.sh start
@@ -223,7 +223,7 @@ If you prefer manual control:
```bash
# Navigate to project directory
cd /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach
cd /Users/gabrielradureau/Work/Vibe/dance-lessons-coach
# Run server in background using control script
./scripts/start-server.sh start
@@ -535,7 +535,7 @@ Enable OpenTelemetry in your `config.yaml`:
telemetry:
enabled: true
otlp_endpoint: "localhost:4317"
service_name: "DanceLessonsCoach"
service_name: "dance-lessons-coach"
insecure: true
sampler:
type: "parentbased_always_on"
@@ -547,7 +547,7 @@ Or via environment variables:
```bash
export DLC_TELEMETRY_ENABLED=true
export DLC_TELEMETRY_OTLP_ENDPOINT="localhost:4317"
export DLC_TELEMETRY_SERVICE_NAME="DanceLessonsCoach"
export DLC_TELEMETRY_SERVICE_NAME="dance-lessons-coach"
export DLC_TELEMETRY_INSECURE=true
export DLC_TELEMETRY_SAMPLER_TYPE="parentbased_always_on"
export DLC_TELEMETRY_SAMPLER_RATIO=1.0
@@ -579,7 +579,7 @@ curl http://localhost:8080/api/v1/greet/John
```
4. **View traces in Jaeger UI:**
Open http://localhost:16686 and select the "DanceLessonsCoach" service.
Open http://localhost:16686 and select the "dance-lessons-coach" service.
### Sampler Types
@@ -613,7 +613,7 @@ curl -s http://localhost:8080/api/health
### 2. Start Development Server
```bash
cd /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach
cd /Users/gabrielradureau/Work/Vibe/dance-lessons-coach
./scripts/start-server.sh start
```
@@ -927,7 +927,7 @@ defer cancel()
## 📦 Version Management
DanceLessonsCoach uses a comprehensive version management system based on Semantic Versioning 2.0.0.
dance-lessons-coach uses a comprehensive version management system based on Semantic Versioning 2.0.0.
### Version Information
@@ -990,9 +990,9 @@ curl http://localhost:8080/api/version
# Release build
go build -o bin/server \
-ldflags="\
-X 'DanceLessonsCoach/pkg/version.Version=1.0.0' \
-X 'DanceLessonsCoach/pkg/version.Commit=$(git rev-parse --short HEAD)' \
-X 'DanceLessonsCoach/pkg/version.Date=$(date +%Y-%m-%dT%H:%M:%S%z)' \
-X 'dance-lessons-coach/pkg/version.Version=1.0.0' \
-X 'dance-lessons-coach/pkg/version.Commit=$(git rev-parse --short HEAD)' \
-X 'dance-lessons-coach/pkg/version.Date=$(date +%Y-%m-%dT%H:%M:%S%z)' \
" \
./cmd/server
```
@@ -1034,7 +1034,7 @@ The `pkg/version` package provides runtime access to version information:
package main
import (
"DanceLessonsCoach/pkg/version"
"dance-lessons-coach/pkg/version"
"fmt"
)
@@ -1267,7 +1267,7 @@ For issues or questions:
4. Consult Go and Chi documentation
5. Ask the AI agent for guidance
This documentation provides a complete guide to developing, testing, and maintaining the DanceLessonsCoach project using the established patterns and best practices.
This documentation provides a complete guide to developing, testing, and maintaining the dance-lessons-coach project using the established patterns and best practices.
## 📋 BDD Feature Structure
All user stories and BDD features follow the structure defined in ADR-0019:

View File

@@ -1,6 +1,6 @@
# Contributing to DanceLessonsCoach
# Contributing to dance-lessons-coach
Thank you for your interest in contributing to DanceLessonsCoach! This guide will help you set up your development environment and understand our contribution process.
Thank you for your interest in contributing to dance-lessons-coach! This guide will help you set up your development environment and understand our contribution process.
## 📋 Table of Contents
@@ -24,8 +24,8 @@ Thank you for your interest in contributing to DanceLessonsCoach! This guide wil
```bash
# Clone the repository
git clone https://gitea.arcodange.lab/arcodange/DanceLessonsCoach.git
cd DanceLessonsCoach
git clone https://gitea.arcodange.lab/arcodange/dance-lessons-coach.git
cd dance-lessons-coach
# Install dependencies
go mod tidy
@@ -260,7 +260,7 @@ Major architectural decisions are documented in the `adr/` directory. Please rev
## 🤖 AI Agent Contributions
AI agents play a crucial role in maintaining and improving DanceLessonsCoach. This section provides guidance for AI agents on how to effectively contribute.
AI agents play a crucial role in maintaining and improving dance-lessons-coach. This section provides guidance for AI agents on how to effectively contribute.
### Key Files and Directories
@@ -342,7 +342,7 @@ AI agents play a crucial role in maintaining and improving DanceLessonsCoach. Th
## 📜 License
By contributing to DanceLessonsCoach, you agree that your contributions will be licensed under the MIT License.
By contributing to dance-lessons-coach, you agree that your contributions will be licensed under the MIT License.
---
@@ -350,7 +350,7 @@ By contributing to DanceLessonsCoach, you agree that your contributions will be
=======
## 🤖 AI Agent Contributions
AI agents play a crucial role in maintaining and improving DanceLessonsCoach. This section provides guidance for AI agents on how to effectively contribute.
AI agents play a crucial role in maintaining and improving dance-lessons-coach. This section provides guidance for AI agents on how to effectively contribute.
### Key Files and Directories
@@ -432,7 +432,7 @@ AI agents play a crucial role in maintaining and improving DanceLessonsCoach. Th
## 📜 License
By contributing to DanceLessonsCoach, you agree that your contributions will be licensed under the MIT License.
By contributing to dance-lessons-coach, you agree that your contributions will be licensed under the MIT License.
---

View File

@@ -1,8 +1,8 @@
# DanceLessonsCoach
# dance-lessons-coach
[![Build Status](https://gitea.arcodange.fr/api/badges/arcodange/DanceLessonsCoach/status)](https://gitea.arcodange.fr/arcodange/DanceLessonsCoach)
[![Go Report Card](https://goreportcard.com/badge/github.com/arcodange/DanceLessonsCoach)](https://goreportcard.com/report/github.com/arcodange/DanceLessonsCoach)
[![Version](https://img.shields.io/badge/version-1.4.0-blue.svg)](https://gitea.arcodange.fr/arcodange/DanceLessonsCoach/releases)
[![Build Status](https://gitea.arcodange.fr/api/badges/arcodange/dance-lessons-coach/status)](https://gitea.arcodange.fr/arcodange/dance-lessons-coach)
[![Go Report Card](https://goreportcard.com/badge/github.com/arcodange/dance-lessons-coach)](https://goreportcard.com/report/github.com/arcodange/dance-lessons-coach)
[![Version](https://img.shields.io/badge/version-1.4.0-blue.svg)](https://gitea.arcodange.fr/arcodange/dance-lessons-coach/releases)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Coverage](https://img.shields.io/badge/coverage-0%-red?style=flat-square)](https://gitea.arcodange.lab/arcodange/dance-lessons-coach)
@@ -43,7 +43,7 @@ go run ./cmd/greet
## CI/CD Pipeline
DanceLessonsCoach includes a portable CI/CD pipeline using GitHub Actions syntax:
dance-lessons-coach includes a portable CI/CD pipeline using GitHub Actions syntax:
### Features
-**Multi-platform**: Works on Gitea, GitHub, and GitLab
@@ -185,7 +185,7 @@ go test ./pkg/greet/
## CI/CD
DanceLessonsCoach includes a comprehensive CI/CD pipeline with multiple testing options:
dance-lessons-coach includes a comprehensive CI/CD pipeline with multiple testing options:
### Local Testing (No Gitea Required)
```bash
@@ -216,7 +216,7 @@ DanceLessonsCoach includes a comprehensive CI/CD pipeline with multiple testing
## Project Structure
```
DanceLessonsCoach/
dance-lessons-coach/
├── adr/ # Architecture Decision Records
├── cmd/ # Entry points (greet CLI, server)
├── pkg/ # Core packages (config, greet, server, telemetry)
@@ -274,7 +274,7 @@ This project uses Architecture Decision Records (ADRs) to document key technical
## Gitea Integration
DanceLessonsCoach includes AI agent skills for Gitea integration to monitor CI/CD jobs and interact with pull requests.
dance-lessons-coach includes AI agent skills for Gitea integration to monitor CI/CD jobs and interact with pull requests.
### Gitea Client Skill Setup

View File

@@ -1,4 +1,4 @@
# DanceLessonsCoach Version
# dance-lessons-coach Version
# Current Version (Semantic Versioning)
MAJOR=1

View File

@@ -6,7 +6,7 @@
## Context and Problem Statement
We needed to choose a Go version for the DanceLessonsCoach project that provides:
We needed to choose a Go version for the dance-lessons-coach project that provides:
- Stability and long-term support
- Access to modern language features
- Good ecosystem compatibility

View File

@@ -6,7 +6,7 @@
## Context and Problem Statement
We needed to choose an HTTP router for the DanceLessonsCoach web service that provides:
We needed to choose an HTTP router for the dance-lessons-coach web service that provides:
- Good performance characteristics
- Flexible routing capabilities
- Middleware support

View File

@@ -6,7 +6,7 @@
## Context and Problem Statement
We needed to choose a logging library for DanceLessonsCoach that provides:
We needed to choose a logging library for dance-lessons-coach that provides:
- High performance with minimal overhead
- Structured logging capabilities
- Multiple output formats (console, JSON)
@@ -94,7 +94,7 @@ Chosen option: "Zerolog" because it provides excellent performance, clean API, g
| With fields | 3 alloc | 4 alloc |
| Complex | 5 alloc | 6 alloc |
### Real-World Impact for DanceLessonsCoach
### Real-World Impact for dance-lessons-coach
* **Performance**: <1μs difference per request - negligible impact
* **Memory**: Zerolog's better allocation profile helps in long-running services

View File

@@ -6,7 +6,7 @@
## Context and Problem Statement
We needed to choose a design pattern for DanceLessonsCoach that provides:
We needed to choose a design pattern for dance-lessons-coach that provides:
- Good testability and mocking capabilities
- Flexibility for future changes
- Clear separation of concerns

View File

@@ -6,7 +6,7 @@
## Context and Problem Statement
We needed to implement a shutdown mechanism for DanceLessonsCoach that provides:
We needed to implement a shutdown mechanism for dance-lessons-coach that provides:
- Clean resource cleanup
- Proper handling of in-flight requests
- Kubernetes/service mesh compatibility

View File

@@ -6,7 +6,7 @@
## Context and Problem Statement
We needed a configuration management solution for DanceLessonsCoach that provides:
We needed a configuration management solution for dance-lessons-coach that provides:
- Support for multiple configuration sources (files, environment variables, defaults)
- Configuration validation
- Type-safe configuration loading

View File

@@ -6,7 +6,7 @@
## Context and Problem Statement
We needed to add observability to DanceLessonsCoach that provides:
We needed to add observability to dance-lessons-coach that provides:
- Distributed tracing capabilities
- Performance monitoring
- Request flow visualization
@@ -105,7 +105,7 @@ func (s *Server) getAllMiddlewares() []func(http.Handler) http.Handler {
telemetry:
enabled: true
otlp_endpoint: "localhost:4317"
service_name: "DanceLessonsCoach"
service_name: "dance-lessons-coach"
insecure: true
sampler:
type: "parentbased_always_on"

View File

@@ -6,7 +6,7 @@
## Context and Problem Statement
We needed to add behavioral testing to DanceLessonsCoach that provides:
We needed to add behavioral testing to dance-lessons-coach that provides:
- User-centric test scenarios
- Living documentation
- Integration testing capabilities

View File

@@ -8,7 +8,7 @@
## Context and Problem Statement
We need to establish a comprehensive testing strategy for DanceLessonsCoach that provides:
We need to establish a comprehensive testing strategy for dance-lessons-coach that provides:
- Behavioral verification through BDD
- API documentation through Swagger/OpenAPI
- Client SDK validation

View File

@@ -6,7 +6,7 @@
## Context
The DanceLessonsCoach application needed to add a new API version (v2) that provides different greeting behavior while maintaining backward compatibility with the existing v1 API. The v2 API should only be available when explicitly enabled via a feature flag.
The dance-lessons-coach application needed to add a new API version (v2) that provides different greeting behavior while maintaining backward compatibility with the existing v1 API. The v2 API should only be available when explicitly enabled via a feature flag.
## Decision

View File

@@ -6,7 +6,7 @@
## Context
The DanceLessonsCoach project implemented Git hooks to automatically run `go fmt` and `go mod tidy` before commits. Initially, the `go fmt` hook was configured to format **all Go files** in the repository, regardless of their staged status.
The dance-lessons-coach project implemented Git hooks to automatically run `go fmt` and `go mod tidy` before commits. Initially, the `go fmt` hook was configured to format **all Go files** in the repository, regardless of their staged status.
During implementation review, concerns were raised about this approach:

View File

@@ -9,7 +9,7 @@
## Context
The DanceLessonsCoach project requires comprehensive API documentation and testing capabilities. As the API evolves with v1 and v2 endpoints, we need a robust OpenAPI/Swagger toolchain to:
The dance-lessons-coach project requires comprehensive API documentation and testing capabilities. As the API evolves with v1 and v2 endpoints, we need a robust OpenAPI/Swagger toolchain to:
1. **Document APIs**: Generate interactive API documentation
2. **Test APIs**: Enable automated API testing
@@ -166,9 +166,9 @@ import (
// Chi adapter would be needed
)
// @title DanceLessonsCoach API
// @title dance-lessons-coach API
// @version 1.0
// @description API for DanceLessonsCoach service
// @description API for dance-lessons-coach service
// @host localhost:8080
// @BasePath /api
func main() {
@@ -328,9 +328,9 @@ After thorough evaluation and implementation, we've successfully integrated swag
go install github.com/swaggo/swag/cmd/swag@latest
# 2. Add swagger metadata to main.go
// @title DanceLessonsCoach API
// @title dance-lessons-coach API
// @version 1.0
// @description API for DanceLessonsCoach service
// @description API for dance-lessons-coach service
// @host localhost:8080
// @BasePath /api
package main
@@ -390,9 +390,9 @@ swag fmt
go install github.com/swaggo/swag/cmd/swag@latest
# 2. Add swagger metadata to main.go
// @title DanceLessonsCoach API
// @title dance-lessons-coach API
// @version 1.0
// @description API for DanceLessonsCoach service
// @description API for dance-lessons-coach service
// @host localhost:8080
// @BasePath /api
package main
@@ -525,7 +525,7 @@ s.router.Get("/swagger/*", httpSwagger.WrapHandler)
# 2. Create OpenAPI spec (openapi.yaml)
# openapi: 3.0.3
# info:
# title: DanceLessonsCoach API
# title: dance-lessons-coach API
# version: 1.0.0
# 3. Generate server types
@@ -654,9 +654,9 @@ go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@latest
# 2. Create OpenAPI spec (openapi.yaml)
openapi: 3.0.3
info:
title: DanceLessonsCoach API
title: dance-lessons-coach API
version: 1.0.0
description: API for DanceLessonsCoach service
description: API for dance-lessons-coach service
servers:
- url: http://localhost:8080/api
description: Development server

View File

@@ -8,7 +8,7 @@
## Context
As DanceLessonsCoach grows, we need a more robust and maintainable CLI structure. Currently, we use simple flag parsing (`--version`), but this approach has limitations:
As dance-lessons-coach grows, we need a more robust and maintainable CLI structure. Currently, we use simple flag parsing (`--version`), but this approach has limitations:
1. **Limited scalability**: Adding more commands/flags becomes messy
2. **Poor user experience**: No built-in help, completion, or validation
@@ -51,10 +51,10 @@ We will adopt **Cobra** as our CLI framework. Cobra is a mature, widely-used lib
```go
var rootCmd = &cobra.Command{
Use: "dance-lessons-coach",
Short: "DanceLessonsCoach - API server and CLI tools",
Long: `DanceLessonsCoach provides greeting services and API management.
Short: "dance-lessons-coach - API server and CLI tools",
Long: `dance-lessons-coach provides greeting services and API management.
To begin working with DanceLessonsCoach, run:
To begin working with dance-lessons-coach, run:
dance-lessons-coach server --help`,
SilenceUsage: true,
}
@@ -69,7 +69,7 @@ var versionCmd = &cobra.Command{
var serverCmd = &cobra.Command{
Use: "server",
Short: "Start the DanceLessonsCoach server",
Short: "Start the dance-lessons-coach server",
Run: func(cmd *cobra.Command, args []string) {
// Load config and start server
cfg, err := config.LoadConfig()
@@ -116,7 +116,7 @@ func main() {
**Current Commands:**
- `version`: Print version information
- `server`: Start the DanceLessonsCoach server
- `server`: Start the dance-lessons-coach server
- `greet [name]`: Greet someone by name
- `help`: Built-in help system
- `completion`: Shell completion scripts (automatic)

View File

@@ -8,7 +8,7 @@
## Context
DanceLessonsCoach requires a robust CI/CD pipeline that:
dance-lessons-coach requires a robust CI/CD pipeline that:
1. **Primary Platform**: Gitea (self-hosted Git service)
2. **Mirror Support**: GitHub and GitLab mirrors for visibility and backup
@@ -69,7 +69,7 @@ graph TD
```yaml
# .github/workflows/main.yml
name: DanceLessonsCoach CI/CD
name: dance-lessons-coach CI/CD
on:
push:
@@ -140,10 +140,10 @@ jobs:
# README.md
[![Build Status](https://ci.dancelessonscoach.org/api/badges/project/status)](https://ci.dancelessonscoach.org)
[![GitHub Mirror Status](https://github.com/yourorg/DanceLessonsCoach/actions/workflows/main.yml/badge.svg)](https://github.com/yourorg/DanceLessonsCoach/actions)
[![GitLab Mirror Status](https://gitlab.com/yourorg/DanceLessonsCoach/badges/main/pipeline.svg)](https://gitlab.com/yourorg/DanceLessonsCoach/-/pipelines)
[![Go Report Card](https://goreportcard.com/badge/github.com/yourorg/DanceLessonsCoach)](https://goreportcard.com/report/github.com/yourorg/DanceLessonsCoach)
[![Code Coverage](https://codecov.io/gh/yourorg/DanceLessonsCoach/branch/main/graph/badge.svg)](https://codecov.io/gh/yourorg/DanceLessonsCoach)
[![GitHub Mirror Status](https://github.com/yourorg/dance-lessons-coach/actions/workflows/main.yml/badge.svg)](https://github.com/yourorg/dance-lessons-coach/actions)
[![GitLab Mirror Status](https://gitlab.com/yourorg/dance-lessons-coach/badges/main/pipeline.svg)](https://gitlab.com/yourorg/dance-lessons-coach/-/pipelines)
[![Go Report Card](https://goreportcard.com/badge/github.com/yourorg/dance-lessons-coach)](https://goreportcard.com/report/github.com/yourorg/dance-lessons-coach)
[![Code Coverage](https://codecov.io/gh/yourorg/dance-lessons-coach/branch/main/graph/badge.svg)](https://codecov.io/gh/yourorg/dance-lessons-coach)
```
### 5. Mirror Synchronization Strategy
@@ -170,7 +170,7 @@ mkdir -p .gitea/workflows
# 2. Create main workflow file with Arcodange-specific configuration
cat > .gitea/workflows/ci-cd.yaml << 'EOF'
name: DanceLessonsCoach CI/CD
name: dance-lessons-coach CI/CD
on:
push:
@@ -200,41 +200,41 @@ jobs:
- name: Notify internal systems
if: always()
run: |
curl -X POST "$GITEA_INTERNAL/api/v1/repos/yourorg/DanceLessonsCoach/statuses/$(git rev-parse HEAD)" \
curl -X POST "$GITEA_INTERNAL/api/v1/repos/yourorg/dance-lessons-coach/statuses/$(git rev-parse HEAD)" \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"state\": \"$([ $? -eq 0 ] && echo 'success' || echo 'failure')\", \"context\": \"ci/build-test\"}"
EOF
# 3. Enable Gitea CI/CD in repo settings (Arcodange instance)
# - Go to: https://gitea.arcodange.lab/arcodange/DanceLessonsCoach/settings/actions
# - Go to: https://gitea.arcodange.lab/arcodange/dance-lessons-coach/settings/actions
# - Enable GitHub Actions
# - Configure runner to use internal network (192.168.1.202)
# - Set up GITEA_TOKEN for API access
# - SSH URL: ssh://git@192.168.1.202:2222/arcodange/DanceLessonsCoach.git
# - SSH URL: ssh://git@192.168.1.202:2222/arcodange/dance-lessons-coach.git
# 4. Add STATUS_BADGES.md with Arcodange-specific URLs
cat > STATUS_BADGES.md << 'EOF'
## Arcodange Gitea Badges
```markdown
[![Build Status](https://gitea.arcodange.fr/api/badges/arcodange/DanceLessonsCoach/status)](https://gitea.arcodange.fr/arcodange/DanceLessonsCoach)
[![Pipeline](https://gitea.arcodange.fr/api/badges/arcodange/DanceLessonsCoach/pipeline.svg)](https://gitea.arcodange.fr/arcodange/DanceLessonsCoach/-/pipelines)
[![Build Status](https://gitea.arcodange.fr/api/badges/arcodange/dance-lessons-coach/status)](https://gitea.arcodange.fr/arcodange/dance-lessons-coach)
[![Pipeline](https://gitea.arcodange.fr/api/badges/arcodange/dance-lessons-coach/pipeline.svg)](https://gitea.arcodange.fr/arcodange/dance-lessons-coach/-/pipelines)
```
**Configuration Details:**
- Organization: arcodange
- Repository: DanceLessonsCoach
- Repository: dance-lessons-coach
- Internal URL: https://gitea.arcodange.lab/
- External URL: https://gitea.arcodange.fr/
- SSH URL: ssh://git@192.168.1.202:2222/arcodange/DanceLessonsCoach.git
- SSH URL: ssh://git@192.168.1.202:2222/arcodange/dance-lessons-coach.git
- Badges use external URL with full org/repo path
- CI/CD uses internal URL for faster network access
EOF
# 5. Configure CI/CD runners on internal network
# - Set up runners to access: https://gitea.arcodange.lab/
# - Configure SSH access: ssh://git@192.168.1.202:2222/arcodange/DanceLessonsCoach.git
# - Configure SSH access: ssh://git@192.168.1.202:2222/arcodange/dance-lessons-coach.git
# - Ensure runners have network access to internal services (192.168.1.202:2222)
# - Configure runners with proper GITEA_TOKEN
# - Test connection: curl https://gitea.arcodange.lab/api/v1/version
@@ -332,18 +332,18 @@ cat > STATUS_BADGES.md << 'EOF'
## GitHub Mirror
```markdown
[![GitHub CI](https://github.com/yourorg/DanceLessonsCoach/actions/workflows/main.yml/badge.svg)](https://github.com/yourorg/DanceLessonsCoach/actions)
[![GitHub CI](https://github.com/yourorg/dance-lessons-coach/actions/workflows/main.yml/badge.svg)](https://github.com/yourorg/dance-lessons-coach/actions)
```
## GitLab Mirror
```markdown
[![GitLab CI](https://gitlab.com/yourorg/DanceLessonsCoach/badges/main/pipeline.svg)](https://gitlab.com/yourorg/DanceLessonsCoach/-/pipelines)
[![GitLab CI](https://gitlab.com/yourorg/dance-lessons-coach/badges/main/pipeline.svg)](https://gitlab.com/yourorg/dance-lessons-coach/-/pipelines)
```
## Code Quality
```markdown
[![Go Report Card](https://goreportcard.com/badge/github.com/yourorg/DanceLessonsCoach)](https://goreportcard.com/report/github.com/yourorg/DanceLessonsCoach)
[![Code Coverage](https://codecov.io/gh/yourorg/DanceLessonsCoach/branch/main/graph/badge.svg)](https://codecov.io/gh/yourorg/DanceLessonsCoach)
[![Go Report Card](https://goreportcard.com/badge/github.com/yourorg/dance-lessons-coach)](https://goreportcard.com/report/github.com/yourorg/dance-lessons-coach)
[![Code Coverage](https://codecov.io/gh/yourorg/dance-lessons-coach/branch/main/graph/badge.svg)](https://codecov.io/gh/yourorg/dance-lessons-coach)
```
EOF
@@ -452,7 +452,7 @@ docker run --rm \
-e GITEA_INTERNAL="https://gitea.arcodange.lab/" \
-e GITEA_EXTERNAL="https://gitea.arcodange.fr/" \
-e GITEA_ORG="arcodange" \
-e GITEA_REPO="DanceLessonsCoach" \
-e GITEA_REPO="dance-lessons-coach" \
gitea/act_runner:latest \
act -W .gitea/workflows/ci-cd.yaml --rm
```
@@ -472,7 +472,7 @@ act -W .gitea/workflows/ci-cd.yaml \
# 3. With specific event simulation
act push -W .gitea/workflows/ci-cd.yaml \
--env GITEA_ORG=arcodange \
--env GITEA_REPO=DanceLessonsCoach
--env GITEA_REPO=dance-lessons-coach
```
### Pipeline Status Checking Scripts
@@ -489,10 +489,10 @@ echo "🔍 Checking CI/CD Pipeline Status"
echo "================================"
# 1. Gitea (Primary) - Internal URL
if curl -s -o /dev/null -w "%{http_code}" "https://gitea.arcodange.lab/api/v1/repos/arcodange/DanceLessonsCoach/actions/workflows" | grep -q "200"; then
if curl -s -o /dev/null -w "%{http_code}" "https://gitea.arcodange.lab/api/v1/repos/arcodange/dance-lessons-coach/actions/workflows" | grep -q "200"; then
echo "✅ Gitea Internal API: Accessible"
# Get workflow list
WORKFLOWS=$(curl -s "https://gitea.arcodange.lab/api/v1/repos/arcodange/DanceLessonsCoach/actions/workflows" | jq -r '.[] | .name + " (" + .file_name + ")"')
WORKFLOWS=$(curl -s "https://gitea.arcodange.lab/api/v1/repos/arcodange/dance-lessons-coach/actions/workflows" | jq -r '.[] | .name + " (" + .file_name + ")"')
echo "📋 Gitea Workflows:"
echo "$WORKFLOWS" | sed 's/^/ - /'
else
@@ -502,9 +502,9 @@ fi
# 2. Gitea (External) - Public URL
echo ""
echo "🌐 Gitea External Status:"
if curl -s -o /dev/null -w "%{http_code}" "https://gitea.arcodange.fr/arcodange/DanceLessonsCoach" | grep -q "200"; then
if curl -s -o /dev/null -w "%{http_code}" "https://gitea.arcodange.fr/arcodange/dance-lessons-coach" | grep -q "200"; then
echo "✅ Gitea External: Accessible"
echo "🔗 Repository: https://gitea.arcodange.fr/arcodange/DanceLessonsCoach"
echo "🔗 Repository: https://gitea.arcodange.fr/arcodange/dance-lessons-coach"
else
echo "❌ Gitea External: Not accessible"
fi
@@ -512,7 +512,7 @@ fi
# 3. Check badge API
echo ""
echo "🏷️ Badge API Status:"
BADGE_URL="https://gitea.arcodange.fr/api/badges/arcodange/DanceLessonsCoach/status"
BADGE_URL="https://gitea.arcodange.fr/api/badges/arcodange/dance-lessons-coach/status"
if curl -s -o /dev/null -w "%{http_code}" "$BADGE_URL" | grep -q "200"; then
echo "✅ Badge API: Accessible"
echo "🔗 Badge URL: $BADGE_URL"
@@ -541,8 +541,8 @@ echo "✅ Arcodange conventions: Matches webapp workflow style"
echo ""
echo "💡 Next Steps:"
echo " 1. Push to trigger workflow: git push origin main"
echo " 2. Check Gitea Actions: https://gitea.arcodange.lab/arcodange/DanceLessonsCoach/actions"
echo " 3. Monitor badges: https://gitea.arcodange.fr/arcodange/DanceLessonsCoach"
echo " 2. Check Gitea Actions: https://gitea.arcodange.lab/arcodange/dance-lessons-coach/actions"
echo " 3. Monitor badges: https://gitea.arcodange.fr/arcodange/dance-lessons-coach"
```
### Workflow Validation Script
@@ -659,7 +659,7 @@ services:
- GITEA_INTERNAL=https://gitea.arcodange.lab/
- GITEA_EXTERNAL=https://gitea.arcodange.fr/
- GITEA_ORG=arcodange
- GITEA_REPO=DanceLessonsCoach
- GITEA_REPO=dance-lessons-coach
command: act -W .gitea/workflows/ci-cd.yaml --rm
yamllint:

View File

@@ -8,7 +8,7 @@
## Context
DanceLessonsCoach requires a safe workflow for making CI/CD changes to prevent breaking the main branch. The current workflow allows direct pushes to main, which poses risks for CI/CD configuration changes that could break the entire pipeline.
dance-lessons-coach requires a safe workflow for making CI/CD changes to prevent breaking the main branch. The current workflow allows direct pushes to main, which poses risks for CI/CD configuration changes that could break the entire pipeline.
## Decision Drivers
@@ -220,13 +220,13 @@ echo 'm' | act -n -W .gitea/workflows/ci-cd.yaml
#### Sample Dry Run Output
```
*DRYRUN* [DanceLessonsCoach CI/CD/Build and Test ] ⭐ Run Set up job
*DRYRUN* [DanceLessonsCoach CI/CD/Build and Test ] 🚀 Start image=node:16-buster-slim
*DRYRUN* [DanceLessonsCoach CI/CD/Build and Test ] ✅ Success - Set up job
*DRYRUN* [DanceLessonsCoach CI/CD/Build and Test ] ⭐ Run Main Checkout code
*DRYRUN* [DanceLessonsCoach CI/CD/Build and Test ] ✅ Success - Main Checkout code [4.038875ms]
*DRYRUN* [dance-lessons-coach CI/CD/Build and Test ] ⭐ Run Set up job
*DRYRUN* [dance-lessons-coach CI/CD/Build and Test ] 🚀 Start image=node:16-buster-slim
*DRYRUN* [dance-lessons-coach CI/CD/Build and Test ] ✅ Success - Set up job
*DRYRUN* [dance-lessons-coach CI/CD/Build and Test ] ⭐ Run Main Checkout code
*DRYRUN* [dance-lessons-coach CI/CD/Build and Test ] ✅ Success - Main Checkout code [4.038875ms]
... (all steps succeeded)
*DRYRUN* [DanceLessonsCoach CI/CD/Build and Test ] 🏁 Job succeeded
*DRYRUN* [dance-lessons-coach CI/CD/Build and Test ] 🏁 Job succeeded
```
### Recommended Local Development Workflow

View File

@@ -7,7 +7,7 @@
## Context
The DanceLessonsCoach application currently lacks user management and authentication capabilities. To provide personalized experiences and administrative functions, we need to implement a secure user authentication system with PostgreSQL persistence.
The dance-lessons-coach application currently lacks user management and authentication capabilities. To provide personalized experiences and administrative functions, we need to implement a secure user authentication system with PostgreSQL persistence.
## Decision
@@ -69,7 +69,7 @@ CREATE TABLE users (
#### Architecture Alignment
The user management system follows the established DanceLessonsCoach patterns:
The user management system follows the established dance-lessons-coach patterns:
1. **Interface-based Design:**
```go
@@ -309,7 +309,7 @@ type Config struct {
## Implementation Plan
This implementation builds upon the completed phases and follows the established DanceLessonsCoach patterns.
This implementation builds upon the completed phases and follows the established dance-lessons-coach patterns.
### Phase 10: User Management Foundation (Next Phase)

View File

@@ -7,7 +7,7 @@
## Context
The DanceLessonsCoach application currently uses SQLite with GORM for the user management system (ADR 0018), but since there are no existing users or production data, we can implement PostgreSQL directly as our primary database without migration concerns.
The dance-lessons-coach application currently uses SQLite with GORM for the user management system (ADR 0018), but since there are no existing users or production data, we can implement PostgreSQL directly as our primary database without migration concerns.
### Current State
- **Database:** SQLite (in-memory mode) - no persistent data
@@ -96,7 +96,7 @@ CREATE TABLE greet_history (
#### Architecture Alignment
The PostgreSQL integration follows established DanceLessonsCoach patterns:
The PostgreSQL integration follows established dance-lessons-coach patterns:
1. **Interface-based Design:**
```go

View File

@@ -5,7 +5,7 @@
## Context
The DanceLessonsCoach CI/CD pipeline initially used Docker Buildx (`docker buildx build --push`) for building and pushing Docker cache images. However, this approach encountered several issues:
The dance-lessons-coach CI/CD pipeline initially used Docker Buildx (`docker buildx build --push`) for building and pushing Docker cache images. However, this approach encountered several issues:
### Issues with Buildx Approach

View File

@@ -1,6 +1,6 @@
# Architecture Decision Records (ADRs)
This directory contains Architecture Decision Records (ADRs) for the DanceLessonsCoach project.
This directory contains Architecture Decision Records (ADRs) for the dance-lessons-coach project.
## What is an ADR?

View File

@@ -1,4 +1,4 @@
# DanceLessonsCoach Configuration
# dance-lessons-coach Configuration
# This file serves as both the default configuration and documentation
# All available options are shown with their default values
@@ -41,8 +41,8 @@ telemetry:
# Format: host:port
otlp_endpoint: "localhost:4317"
# Service name for tracing (default: "DanceLessonsCoach")
service_name: "DanceLessonsCoach"
# Service name for tracing (default: "dance-lessons-coach")
service_name: "dance-lessons-coach"
# Use insecure connection (no TLS) (default: true)
insecure: true

View File

@@ -1,4 +1,4 @@
# DanceLessonsCoach Docker Image
# dance-lessons-coach Docker Image
# Multi-stage build for production deployment
# Stage 1: Build binary

View File

@@ -1,4 +1,4 @@
# DanceLessonsCoach Production Docker Image
# dance-lessons-coach Production Docker Image
# ⚠️ DEVELOPMENT ONLY - This file uses 'latest' tag for local testing
# ⚠️ CI/CD generates the correct Dockerfile.prod with proper dependency hash
# ⚠️ For production use, see the CI/CD workflow which generates the correct file

View File

@@ -1,4 +1,4 @@
# DanceLessonsCoach Production Docker Image
# dance-lessons-coach Production Docker Image
# Minimal image using pre-built binary from CI cache
# Template: Replace {{DEPS_HASH}} with actual dependency hash

View File

@@ -1,16 +1,16 @@
# DanceLessonsCoach Agent Usage Guide
# dance-lessons-coach Agent Usage Guide
## 🚀 Quick Start
### Launch Programmer Agent
```bash
cd /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach
cd /Users/gabrielradureau/Work/Vibe/dance-lessons-coach
vibe start --agent dancelessonscoachprogrammer
```
### Launch Product Owner Agent
```bash
cd /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach
cd /Users/gabrielradureau/Work/Vibe/dance-lessons-coach
vibe start --agent dancelessonscoach-product-owner
```
@@ -141,7 +141,7 @@ skill changelog-manager add-entry \
```toml
# .mistral/dancelessonscoachprogrammer-agent.toml
name: dancelessonscoachprogrammer
role: DanceLessonsCoachProgrammer
role: dance-lessons-coach-programmer
goals: ["Follow BDD practices", "Use Gitmoji commits", "Respect ADR process"]
```
@@ -149,7 +149,7 @@ goals: ["Follow BDD practices", "Use Gitmoji commits", "Respect ADR process"]
```toml
# .mistral/dancelessonscoach-product-owner-agent.toml
name: dancelessonscoach-product-owner
role: DanceLessonsCoachProductOwner
role: dance-lessons-coach-product-owner
goals: ["Facilitate stakeholder interviews", "Generate BDD tests", "Maintain documentation"]
```
@@ -210,7 +210,7 @@ vibe validate --agent dancelessonscoach-product-owner
```bash
# List available skills
ls /Users/gabrielradureau/Work/Vibe/.mistral/skills/
ls /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach/.vibe/skills/
ls /Users/gabrielradureau/Work/Vibe/dance-lessons-coach/.vibe/skills/
# Validate skill
skill skill-creator validate .vibe/skills/product-owner-assistant
@@ -222,7 +222,7 @@ skill skill-creator validate .mistral/skills/interview-facilitator
```bash
# Check file permissions
chmod +x /Users/gabrielradureau/Work/Vibe/.mistral/skills/*/scripts/*
chmod +x /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach/.vibe/skills/*/scripts/*
chmod +x /Users/gabrielradureau/Work/Vibe/dance-lessons-coach/.vibe/skills/*/scripts/*
```
## 📖 Related Documentation

View File

@@ -1,6 +1,6 @@
# BDD Testing Guide for DanceLessonsCoach
# BDD Testing Guide for dance-lessons-coach
This guide explains how to work with BDD tests using Godog in the DanceLessonsCoach project.
This guide explains how to work with BDD tests using Godog in the dance-lessons-coach project.
## Installation
@@ -33,7 +33,7 @@ The project already includes Godog as a dependency in `go.mod`. The BDD tests ar
```bash
# From project root
cd /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach
cd /Users/gabrielradureau/Work/Vibe/dance-lessons-coach
go test ./features/... -v
```
@@ -112,7 +112,7 @@ Create a corresponding step definition file in `pkg/bdd/steps/`:
package steps
import (
"DanceLessonsCoach/pkg/bdd/testserver"
"dance-lessons-coach/pkg/bdd/testserver"
"github.com/cucumber/godog"
)
@@ -213,7 +213,7 @@ Add BDD tests to your CI pipeline:
## Modern Go Testing Practices
The DanceLessonsCoach project follows modern Go testing practices:
The dance-lessons-coach project follows modern Go testing practices:
1. **Standard library integration**: BDD tests use `go test`
2. **No global installation required**: Godog is a Go module dependency

View File

@@ -69,7 +69,7 @@ This workflow can be triggered manually or on test/feature branches.
### 1. Run the Interactive Script
```bash
cd /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach
cd /Users/gabrielradureau/Work/Vibe/dance-lessons-coach
./scripts/test-local-ci-cd.sh
```

View File

@@ -8,7 +8,7 @@ This document clarifies the security-critical aspect of the password reset workf
## 🎯 Security Principle
The DanceLessonsCoach password reset system follows a **zero-trust, admin-controlled** security model:
The dance-lessons-coach password reset system follows a **zero-trust, admin-controlled** security model:
```mermaid
graph TD
@@ -234,4 +234,4 @@ func (s *AuthService) ResetPasswordWithoutAuth(username, newPassword string) err
---
*DanceLessonsCoach - Secure by design, private by default 🔒*
*dance-lessons-coach - Secure by design, private by default 🔒*

View File

@@ -2,7 +2,7 @@
## Overview
The DanceLessonsCoach user management and authentication system provides secure user authentication, personalized experiences, and administrative capabilities. This document describes the system architecture, API endpoints, and integration points.
The dance-lessons-coach user management and authentication system provides secure user authentication, personalized experiences, and administrative capabilities. This document describes the system architecture, API endpoints, and integration points.
## Architecture

View File

@@ -1,6 +1,6 @@
# Version Management Guide
This guide provides comprehensive instructions for managing versions in the DanceLessonsCoach project.
This guide provides comprehensive instructions for managing versions in the dance-lessons-coach project.
## 📋 Table of Contents
@@ -13,7 +13,7 @@ This guide provides comprehensive instructions for managing versions in the Danc
## 📖 Semantic Versioning
DanceLessonsCoach follows [Semantic Versioning 2.0.0](https://semver.org/):
dance-lessons-coach follows [Semantic Versioning 2.0.0](https://semver.org/):
### Version Format: `MAJOR.MINOR.PATCH-PRERELEASE`
@@ -360,6 +360,6 @@ git push origin v1.0.1
---
**Maintained by:** DanceLessonsCoach Team
**Maintained by:** dance-lessons-coach Team
**Last Updated:** 2026-04-05
**Version:** 1.0

View File

@@ -97,7 +97,7 @@ type VersionInfo struct {
// VersionCommand handles version display
func (c *Config) VersionCommand() string {
// This will be enhanced when we integrate with cobra
return fmt.Sprintf("DanceLessonsCoach %s (commit: %s, built: %s, go: %s)",
return fmt.Sprintf("dance-lessons-coach %s (commit: %s, built: %s, go: %s)",
version.Version, version.Commit, version.Date, version.GoVersion)
}
@@ -128,7 +128,7 @@ func LoadConfig() (*Config, error) {
// Telemetry defaults
v.SetDefault("telemetry.enabled", false)
v.SetDefault("telemetry.otlp_endpoint", "localhost:4317")
v.SetDefault("telemetry.service_name", "DanceLessonsCoach")
v.SetDefault("telemetry.service_name", "dance-lessons-coach")
v.SetDefault("telemetry.insecure", true)
v.SetDefault("telemetry.sampler.type", "parentbased_always_on")
v.SetDefault("telemetry.sampler.ratio", 1.0)
@@ -165,7 +165,7 @@ func LoadConfig() (*Config, error) {
// Bind environment variables
v.AutomaticEnv()
v.SetEnvPrefix("DLC") // DanceLessonsCoach prefix
v.SetEnvPrefix("DLC") // dance-lessons-coach prefix
v.BindEnv("server.host", "DLC_SERVER_HOST")
v.BindEnv("server.port", "DLC_SERVER_PORT")
v.BindEnv("shutdown.timeout", "DLC_SHUTDOWN_TIMEOUT")

View File

@@ -1,4 +1,4 @@
// Package telemetry provides OpenTelemetry instrumentation for the DanceLessonsCoach application
// Package telemetry provides OpenTelemetry instrumentation for the dance-lessons-coach application
package telemetry
import (

View File

@@ -1,4 +1,4 @@
// Package version provides version information and management for DanceLessonsCoach
// Package version provides version information and management for dance-lessons-coach
package version
import (
@@ -91,7 +91,7 @@ func getBuildDate() {
// Info returns formatted version information
func Info() string {
return fmt.Sprintf("DanceLessonsCoach %s (commit: %s, built: %s UTC, go: %s)", Version, Commit, Date, GoVersion)
return fmt.Sprintf("dance-lessons-coach %s (commit: %s, built: %s UTC, go: %s)", Version, Commit, Date, GoVersion)
}
// Short returns just the version number
@@ -101,7 +101,7 @@ func Short() string {
// Full returns detailed version information
func Full() string {
return fmt.Sprintf(`DanceLessonsCoach Version Information:
return fmt.Sprintf(`dance-lessons-coach Version Information:
Version: %s
Commit: %s
Built: %s (UTC)

View File

@@ -1,6 +1,6 @@
# DanceLessonsCoach Scripts
# dance-lessons-coach Scripts
This directory contains automation and management scripts for the DanceLessonsCoach project.
This directory contains automation and management scripts for the dance-lessons-coach project.
## 📁 Script Categories
@@ -22,7 +22,7 @@ This directory contains automation and management scripts for the DanceLessonsCo
### 1. Server Management (`start-server.sh`)
**Manage the DanceLessonsCoach server lifecycle**
**Manage the dance-lessons-coach server lifecycle**
```bash
# Start the server
@@ -301,13 +301,13 @@ exit 0
- [Git SCM](https://git-scm.com/)
- [Go Build](https://golang.org/cmd/go/)
### DanceLessonsCoach Specific
### dance-lessons-coach Specific
- [ADR 0014: Version Management](adr/0014-version-management-lifecycle.md)
- [AGENTS.md Scripts Section](#-scripts)
- [Contributing Guide](CONTRIBUTING.md)
---
**Maintained by:** DanceLessonsCoach Team
**Maintained by:** dance-lessons-coach Team
**License:** MIT
**Status:** Actively developed

View File

@@ -1,5 +1,5 @@
#!/bin/bash
# Build DanceLessonsCoach with version information
# Build dance-lessons-coach with version information
# Usage: ./scripts/build-with-version.sh [output_path]
set -e
@@ -22,7 +22,7 @@ GIT_DATE=$(git log -1 --format=%cd --date=short 2>/dev/null || echo "unknown")
# Build time (UTC for consistency)
BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
echo "🔧 Building DanceLessonsCoach $VERSION"
echo "🔧 Building dance-lessons-coach $VERSION"
echo " Commit: $GIT_COMMIT"
echo " Date: $GIT_DATE"
echo " Output: $OUTPUT_PATH"
@@ -31,9 +31,9 @@ echo " Output: $OUTPUT_PATH"
go build \
-o "$OUTPUT_PATH" \
-ldflags="\
-X DanceLessonsCoach/pkg/version.Version=$VERSION \
-X DanceLessonsCoach/pkg/version.Commit=$GIT_COMMIT \
-X DanceLessonsCoach/pkg/version.Date=$BUILD_DATE \
-X dance-lessons-coach/pkg/version.Version=$VERSION \
-X dance-lessons-coach/pkg/version.Commit=$GIT_COMMIT \
-X dance-lessons-coach/pkg/version.Date=$BUILD_DATE \
" \
./cmd/server

View File

@@ -1,11 +1,11 @@
#!/bin/bash
# DanceLessonsCoach Build Script
# dance-lessons-coach Build Script
# Builds binaries into the bin/ directory
set -e
echo "🔨 Building DanceLessonsCoach binaries..."
echo "🔨 Building dance-lessons-coach binaries..."
# Create bin directory if it doesn't exist
mkdir -p bin

View File

@@ -1,12 +1,12 @@
#!/bin/bash
# DanceLessonsCoach CI/CD Management Script
# dance-lessons-coach CI/CD Management Script
# Unified interface for all CI/CD operations
set -e
SCRIPTS_DIR="$(dirname "$0")/cicd"
echo "🚀 DanceLessonsCoach CI/CD Management"
echo "🚀 dance-lessons-coach CI/CD Management"
echo "===================================="
echo ""

View File

@@ -6,7 +6,7 @@
set -e
echo "🧪 Running BDD Tests..."
cd /Users/gabrielradureau/Work/Vibe/DanceLessonsCoach
cd /Users/gabrielradureau/Work/Vibe/dance-lessons-coach
# Check if PostgreSQL container is running, start it if not
echo "🐋 Checking PostgreSQL container..."

View File

@@ -1,10 +1,10 @@
#!/bin/bash
# DanceLessonsCoach Server Start Script
# dance-lessons-coach Server Start Script
# This script starts the server in the background and provides control functions
# Configuration
PROJECT_DIR="/Users/gabrielradureau/Work/Vibe/DanceLessonsCoach"
PROJECT_DIR="/Users/gabrielradureau/Work/Vibe/dance-lessons-coach"
SERVER_CMD="go run ./cmd/server"
LOG_FILE="server.log"
PID_FILE="server.pid"
@@ -14,7 +14,7 @@ cd "$PROJECT_DIR" || { echo "Failed to change to project directory"; exit 1; }
# Function to start the server
start_server() {
echo "Starting DanceLessonsCoach server..."
echo "Starting dance-lessons-coach server..."
# Check if server is already running
if [ -f "$PID_FILE" ]; then

View File

@@ -73,7 +73,7 @@ echo "8. Testing production Dockerfile..."
# First, let's create a temporary Dockerfile.prod with the correct hash
TEMP_DOCKERFILE="Dockerfile.prod.test"
cat > "$TEMP_DOCKERFILE" << EOF
# DanceLessonsCoach Production Docker Image
# dance-lessons-coach Production Docker Image
# Minimal image using pre-built binary from CI cache
# Use the build cache image as base

View File

@@ -1,20 +1,20 @@
#!/bin/bash
# DanceLessonsCoach Graceful Shutdown Test Script
# dance-lessons-coach Graceful Shutdown Test Script
# This script tests the complete server lifecycle with JSON logging
# and validates that all shutdown logs are present
set -e
# Configuration
PROJECT_DIR="/Users/gabrielradureau/Work/Vibe/DanceLessonsCoach"
PROJECT_DIR="/Users/gabrielradureau/Work/Vibe/dance-lessons-coach"
SERVER_CMD="./scripts/start-server.sh"
LOG_FILE="server.log"
PID_FILE="server.pid"
TEST_LOG="shutdown_test.log"
# Colors for output - use simple echo -e with inline ANSI codes
echo -e "\033[1;34m=== DanceLessonsCoach Graceful Shutdown Test ===\033[0m"
echo -e "\033[1;34m=== dance-lessons-coach Graceful Shutdown Test ===\033[0m"
echo ""
# Clean up any existing server

View File

@@ -1,15 +1,15 @@
#!/bin/bash
# DanceLessonsCoach OpenTelemetry Test Script
# dance-lessons-coach OpenTelemetry Test Script
# This script tests OpenTelemetry integration with Jaeger
set -e
echo -e "\033[1;34m=== DanceLessonsCoach OpenTelemetry Test ===\033[0m"
echo -e "\033[1;34m=== dance-lessons-coach OpenTelemetry Test ===\033[0m"
echo ""
# Configuration
PROJECT_DIR="/Users/gabrielradureau/Work/Vibe/DanceLessonsCoach"
PROJECT_DIR="/Users/gabrielradureau/Work/Vibe/dance-lessons-coach"
SERVER_CMD="./scripts/start-server.sh"
LOG_FILE="server.log"
PID_FILE="server.pid"
@@ -47,7 +47,7 @@ fi
echo "Starting server with OpenTelemetry enabled..."
DLC_TELEMETRY_ENABLED=true DLC_TELEMETRY_OTLP_ENDPOINT="localhost:4317" DLC_TELEMETRY_INSECURE=true \
DLC_TELEMETRY_SERVICE_NAME="DanceLessonsCoach" $SERVER_CMD start
DLC_TELEMETRY_SERVICE_NAME="dance-lessons-coach" $SERVER_CMD start
sleep 3
echo "Testing API endpoints..."
@@ -77,7 +77,7 @@ echo -e "\033[0;32m✅ OpenTelemetry Test Complete!\033[0m"
echo ""
echo "To view traces in Jaeger:"
echo "1. Open http://localhost:16686 in your browser"
echo "2. Select 'DanceLessonsCoach' service"
echo "2. Select 'dance-lessons-coach' service"
echo "3. Click 'Find Traces' button"
echo ""
echo "You should see traces for:"

View File

@@ -171,4 +171,4 @@ echo "💡 Next Steps:"
echo " 1. Test with Docker: ./scripts/test-cicd-simple.sh"
echo " 2. Commit changes: git commit -m '🤖 ci: validate workflow'"
echo " 3. Push to trigger: git push origin main"
echo " 4. Monitor pipeline: https://gitea.arcodange.lab/arcodange/DanceLessonsCoach/actions"
echo " 4. Monitor pipeline: https://gitea.arcodange.lab/arcodange/dance-lessons-coach/actions"

View File

@@ -1,5 +1,5 @@
#!/bin/bash
# DanceLessonsCoach Version Bump Script
# dance-lessons-coach Version Bump Script
# Usage: ./scripts/version-bump.sh [major|minor|patch|pre|release]
set -e
@@ -81,7 +81,7 @@ echo "🔜 New version: $NEW_VERSION"
# Update VERSION file
cat > "$VERSION_FILE" << VERSION_EOF
# DanceLessonsCoach Version
# dance-lessons-coach Version
# Current Version (Semantic Versioning)
MAJOR=$MAJOR
@@ -139,7 +139,7 @@ if [ -f "$README_MD" ]; then
# Use awk to update version badge
awk -v new_version="$NEW_VERSION" '{
if ($0 ~ /Version.*badge.*version/) {
print "[![Version](https://img.shields.io/badge/version-" new_version "-blue.svg)](https://gitea.arcodange.fr/arcodange/DanceLessonsCoach/releases)"
print "[![Version](https://img.shields.io/badge/version-" new_version "-blue.svg)](https://gitea.arcodange.fr/arcodange/dance-lessons-coach/releases)"
} else {
print $0
}