AgentSkillsCN

lokstra-overview

深入理解 Lokstra 框架的架构、设计原则、基于注解的代码生成,以及为构建 Go Web 应用程序的 AI 代理提供的决策指导。当您开始任何 Lokstra 项目,或代理需要框架背景知识时,可选用此技能。

SKILL.md
--- frontmatter
name: lokstra-overview
description: Provides foundational understanding of Lokstra Framework architecture, design principles, annotation-based code generation, and decision-making guidelines for AI agents building Go web applications. Use when starting any Lokstra project or when agents need framework context.
phase: design
order: 1
license: MIT
compatibility:
  lokstra_version: ">=0.1.0"
  go_version: ">=1.18"

Lokstra Framework - Overview & Philosophy

When to use this skill

Use this skill when:

  • Starting any new Lokstra project with AI agents
  • Need to understand overall framework philosophy
  • Understanding 2-phase workflow: Design → Implementation
  • Determining module structure (DDD bounded contexts)
  • Need high-level architecture guidance

Framework Overview

Lokstra is a Go web framework with:

  • Design-first development approach (BRD → Code)
  • Annotation-based code generation
  • Full dependency injection framework
  • Modular architecture using DDD bounded contexts
  • Auto-code generation for routes, services, dependencies

Two Main Phases:

Phase 1: Design (Using Design Skills)

code
BRD → Module Requirements → API Spec → Database Schema
  • Focus on planning, requirements, and specifications
  • Human-readable documents for stakeholder approval
  • No code written yet

Phase 2: Implementation (Using Implementation Skills)

code
Initialize Framework → Config → Handlers → Services → Migrations → Tests
  • Focus on code generation based on design phase
  • Microskills for each implementation concern
  • Annotation-based code (minimal boilerplate)

Development Workflow

Design Phase → Implementation Phase:

code
1. lokstra-overview (framework fundamentals)
   ↓
2. lokstra-brd-generation (define business requirements)
   ↓
3. lokstra-module-requirements (break into modules)
   ↓
4. lokstra-api-specification (define API endpoints)
   ↓
5. lokstra-schema-design (define database schema)
   ↓
   SPECIFICATIONS READY
   ↓
6. implementation-lokstra-init-framework (initialize)
7. implementation-lokstra-yaml-config (config)
8. implementation-lokstra-create-handler (@Handler)
9. implementation-lokstra-create-service (@Service)
10. implementation-lokstra-create-migrations (migrations)
11. implementation-lokstra-generate-http-files (HTTP client)
    ↓
    CODE READY
    ↓
12. advanced-lokstra-tests (testing)
13. advanced-lokstra-middleware (custom middleware)
14. advanced-lokstra-validate-consistency (validation)

Migrations note: Apply migrations explicitly with lokstra migration up (not auto-run). If migration.yaml exists in a folder, it supplies dbpool-name / optional schema-table / optional enabled: false; otherwise use -db to pick the pool.

Core Design Philosophy

1. Document-Driven Development

Problem: Code-first approaches lead to rework, inconsistencies, technical debt.

Solution: Design-first workflow (specs before code):

  • Clear stakeholder alignment
  • Built-in compliance documentation
  • Eliminates "code-then-fix" cycles
  • Estimated 10x productivity improvement

2. Bounded Context (DDD)

Module Granularity:

  • ❌ Wrong: One user module handling auth + profile + notifications
  • ✅ Right: Separate auth, user_profile, notification modules

Benefits: Independent scaling, clear responsibilities, easier testing

3. Project Structure Consistency

All Lokstra projects follow same structure (simple → enterprise):

code
myapp/
├── .github/skills/              # AI Agent instructions
├── configs/                     # YAML config files (auto-merged)
│   ├── config.yaml
│   ├── database-config.yaml
│   └── <module-name>-config.yaml
├── migrations/                  # Database migrations per module
│   ├── shared/
│   └── <module_name>/
├── docs/
│   ├── drafts/                  # BRD/requirements drafts
│   └── modules/                 # Published specs
└── modules/
    ├── shared/domain/           # Cross-module models
    └── <module_name>/
        ├── handler/             # @Handler (1 per entity)
        ├── repository/          # Data access (1 per entity)
        └── domain/              # Business logic & DTOs

Rules:

  • Multi-file YAML config in /configs/ - auto-merged
  • Migrations by module in /migrations/{module}/
  • 1 handler per entity (not handlers.go with 10+ entities)
  • DTOs with validation tags in domain layer

Annotations & Code Generation

Why Annotations?

  • Reduce boilerplate code
  • Type-safe at compile time
  • Clear service dependencies
  • Auto-generates routing, DI, service registration

Core Annotations:

  • @Handler - Business service with routes
  • @Service - Infrastructure service
  • @Route - HTTP endpoint mapping
  • @Inject - Dependency injection

Code Details: See implementation-phase skills for specific syntax


Cross-Module Communication

Pattern: Via dependency injection (not direct calls)

Shared Models: /modules/shared/domain/

Async Operations: Event-driven for loose coupling

Details: See design-lokstra-module-requirements for integration points


Configuration Management

Multi-file YAML:

  • All files in /configs/ auto-merged
  • Environment variables supported (${VAR:default})
  • Service definitions with dependencies
  • Deployment configurations

Details: See implementation-lokstra-yaml-config skill


Best Practices Summary

  • ✅ Design first, code second
  • ✅ Document-driven development
  • ✅ DDD bounded contexts (separate modules)
  • ✅ 1 file per entity
  • ✅ Annotations over manual code
  • ✅ Type-safe dependency injection
  • ✅ Validation tags on DTOs
code

---

## Next Steps

After understanding the framework overview:

### DESIGN PHASE (Specifications)

1. **[design-lokstra-brd-generation](../design-lokstra-brd-generation/SKILL.md)**
   - Create Business Requirements Document
   - Define stakeholder requirements, user stories, acceptance criteria

2. **[design-lokstra-module-requirements](../design-lokstra-module-requirements/SKILL.md)**
   - Break BRD into modules (Bounded Contexts using DDD)
   - Define module responsibilities and integration points

3. **[design-lokstra-api-specification](../design-lokstra-api-specification/SKILL.md)**
   - Design API endpoints, request/response schemas
   - Create endpoint specs with validation rules and examples

4. **[design-lokstra-schema-design](../design-lokstra-schema-design/SKILL.md)**
   - Design database schema with tables, indexes, constraints
   - Create migration files (UP/DOWN SQL)

### IMPLEMENTATION PHASE (Code Generation)

5. **[implementation-lokstra-init-framework](../implementation-lokstra-init-framework/SKILL.md)**
   - Initialize main.go with lokstra.Bootstrap()
   - Register services and middleware

6. **[implementation-lokstra-yaml-config](../implementation-lokstra-yaml-config/SKILL.md)**
   - Create multi-file YAML configuration
   - Set up service definitions and deployments

7. **[implementation-lokstra-create-handler](../implementation-lokstra-create-handler/SKILL.md)**
   - Create @Handler annotated endpoints
   - Implement @Route decorators with request/response handling

8. **[implementation-lokstra-create-service](../implementation-lokstra-create-service/SKILL.md)**
   - Create @Service repository implementations
   - Implement data access layer

9. **[implementation-lokstra-create-migrations](../implementation-lokstra-create-migrations/SKILL.md)**
   - Create database migration files
   - Generate UP/DOWN SQL from schema design

10. **[implementation-lokstra-generate-http-files](../implementation-lokstra-generate-http-files/SKILL.md)**
    - Create .http client files for testing
    - Generate REST examples with environment variables

### ADVANCED PHASE (Testing & Validation)

11. **[advanced-lokstra-tests](../advanced-lokstra-tests/SKILL.md)**
    - Write unit tests for handlers and services
    - Create integration tests with test database

12. **[advanced-lokstra-middleware](../advanced-lokstra-middleware/SKILL.md)**
    - Implement custom middleware (auth, logging, rate limiting)
    - Add cross-cutting concerns

13. **[advanced-lokstra-validate-consistency](../advanced-lokstra-validate-consistency/SKILL.md)**
    - Validate circular dependencies
    - Check configuration completeness
    - Pre-deployment validation

---

## Key Principles

**1. Design First, Code Second**
- Always create specifications before implementation
- Clear requirements prevent rework

**2. Document-Driven Development**
- Use BRD → Requirements → Specs as single source of truth
- Generated code directly maps to specifications

**3. Bounded Contexts (DDD)**
- Each module is independent and self-contained
- Clear interfaces between modules
- Easier to test and deploy

**4. Type-Safe Dependency Injection**
- Compile-time verification of dependencies
- Configuration-based service selection
- No runtime surprises

**5. Annotation-Based Code Generation**
- Minimize boilerplate code
- Auto-generated routing and service registration
- Consistent code patterns

---

## When to Choose Lokstra

### ✅ Use Lokstra When

- Building production applications (2+ entities/modules)
- Team size: 2-50 developers
- Complexity: Medium to high (multiple services)
- Scale: Growing from MVP to enterprise
- Need: Strong type safety and structured DI

### ❌ Consider Alternatives When

- Single-file scripts or prototypes
- Learning Go fundamentals
- Very simple APIs (<5 endpoints)
- Extreme performance requirements (1M+ requests/sec)

---

## Framework Comparison

| Aspect | Lokstra | Echo | Gin | Spring Boot |
|--------|---------|------|-----|------------|
| **Language** | Go | Go | Go | Java |
| **DI** | Full Framework | Optional | Optional | Built-in |
| **Code Gen** | Annotations ✅ | Manual | Manual | Annotations |
| **Type Safety** | Excellent | Good | Good | Good |
| **Learning Curve** | Moderate | Easy | Easy | Steep |
| **Enterprise Ready** | ✅ | Good | Good | ✅ |

---

## Common Questions

**Q: Do I need to use all 14 skills?**  
A: For a typical project: Yes. Design phase → Implementation phase → Advanced phase. Optional: Skip advanced if no tests needed.

**Q: Can I skip the design phase?**  
A: Not recommended. Design phase prevents implementation errors. Estimated 10x productivity gain.

**Q: How long does a complete project take?**  
A: Small module: 4-6 hours. Medium module: 1-2 days. Large module: 3-5 days.

**Q: Do I need to use all 6 implementation skills?**  
A: Yes. They're sequential: init → config → handlers → services → migrations → tests.

**Q: Can multiple teams work in parallel?**  
A: Yes. After design phase, each team works on separate modules (bounded contexts).

---

## Summary

Lokstra Framework combines:
- ✅ **Strong typing** from Go
- ✅ **Elegant architecture** from Spring Boot/NestJS
- ✅ **Rapid development** from annotation-based code generation
- ✅ **Production readiness** from dependency injection and modular design

With the 14 AI skills, you can go from business requirement to production-ready application in days instead of weeks.