# Agent Skills Documentation

Welcome to the GoodGo Platform Agent Skills documentation. These skills are specialized guides that help you implement consistent, production-ready patterns across the platform.

## What Are Agent Skills?

Agent Skills are structured knowledge modules that provide:
- **Best practices** for specific technical domains
- **Code patterns** with real examples from the platform
- **Common pitfalls** to avoid
- **Quick references** for rapid development

Each skill is designed to be actionable and immediately applicable to your work.

## Skills by Category

### 🏗️ Architecture & Design

Master the architectural patterns that power GoodGo's microservices.

- **[RESTful API Design](./api-design.md)** - Standards for consistent, maintainable APIs with MediatR integration
- **[CQRS & MediatR](./cqrs-mediatr.md)** - Separate read/write operations with pipeline behaviors
- **[Domain-Driven Design](./domain-driven-design.md)** - Rich domain models, aggregates, and domain events

### 💾 Data Access

Efficient and scalable data access patterns.

- **[Repository Pattern](./repository-pattern.md)** - Entity Framework Core repositories and Unit of Work
- **[Redis Caching](./redis-caching.md)** - Distributed caching strategies with invalidation patterns

### 🔐 Security & Authentication

Protect your services and users.

- **[Security Patterns](./security.md)** - Authentication, authorization, and data protection with Duende IdentityServer

### ⚡ Error Handling & Resilience

Build robust, fault-tolerant services.

- **[Error Handling Patterns](./error-handling-patterns.md)** - Global exception handling, Result pattern, and Polly resilience

### 🧪 Testing

Ensure quality through comprehensive testing.

- **[Testing Patterns](./testing-patterns.md)** - Unit, integration, and functional tests with xUnit and Testcontainers

### 🚀 Infrastructure & Deployment

Deploy and monitor production services.

- **[Docker & Traefik](./docker-traefik.md)** - Containerization and reverse proxy configuration
- **[Kubernetes Deployment](./deployment-kubernetes.md)** - Pods, Services, Ingress, and Helm Charts
- **[Observability](./observability.md)** - Monitoring with Prometheus, Grafana, and distributed tracing

### 🔄 Communication

Enable seamless inter-service communication.

- **[Inter-Service Communication](./inter-service-communication.md)** - Event Bus (RabbitMQ), HTTP clients with Polly, and gRPC

### 📝 Documentation & Development

Maintain quality documentation and code standards.

- **[Documentation Guidelines](./documentation.md)** - Bilingual documentation standards (EN/VI)
- **[Code Commenting](./comment-code.md)** - Bilingual code comments and XML documentation
- **[Skill Authoring](./skill-authoring.md)** - How to create and maintain Agent Skills
- **[Project Rules](./project-rules.md)** - Platform-wide coding standards and architecture

## How to Use Skills

### 1. Find the Right Skill

Browse by category above or search for specific patterns you need to implement.

### 2. Understand the Context

Each skill starts with a "When to Use" section that helps you determine if it's applicable to your current task.

### 3. Learn the Patterns

Study the code examples and diagrams. All examples are based on real production code from the GoodGo platform.

### 4. Avoid Common Mistakes

Review the "Common Mistakes" section to save time and avoid known pitfalls.

### 5. Reference Quickly

Use the "Quick Reference" section for rapid lookups during development.

## Skill Development

Skills are living documents that evolve with the platform. If you discover better patterns or want to contribute:

1. Review the [Skill Authoring](./skill-authoring.md) guide
2. Follow the established structure and bilingual format
3. Include real examples from the codebase
4. Submit for review

## Quick Links

### By Technology Stack

- **.NET / C#**: [API Design](./api-design.md), [CQRS](./cqrs-mediatr.md), [Repository](./repository-pattern.md), [Testing](./testing-patterns.md)
- **Infrastructure**: [Docker](./docker-traefik.md), [Kubernetes](./deployment-kubernetes.md), [Observability](./observability.md)
- **Security**: [Security Patterns](./security.md), [Error Handling](./error-handling-patterns.md)
- **Documentation**: [Docs Guidelines](./documentation.md), [Code Comments](./comment-code.md)

### By Use Case

- **Starting a new service**: [Project Rules](./project-rules.md) → [API Design](./api-design.md) → [CQRS](./cqrs-mediatr.md) → [Repository](./repository-pattern.md)
- **Adding authentication**: [Security Patterns](./security.md)
- **Improving performance**: [Redis Caching](./redis-caching.md)
- **Deploying to production**: [Docker](./docker-traefik.md) → [Kubernetes](./deployment-kubernetes.md) → [Observability](./observability.md)
- **Writing tests**: [Testing Patterns](./testing-patterns.md)

## Additional Resources

- [Architecture Documentation](../architecture/system-design.md) - Overall system design
- [Development Guides](../guides/getting-started.md) - Getting started with local development
- [API Specifications](../api/openapi/) - OpenAPI documentation

---

**Note**: All skills follow bilingual documentation standards (English/Vietnamese). Vietnamese versions are available in [`docs/vi/skills/`](../../vi/skills/index.md).
