anclax-develop-feature
Installation
SKILL.md
Anclax Development Workflow
Use Anclax generated types as the contract between layers and keep specs/SQL as the source of truth.
Design principles
- Singleton services with dependency injection.
- High cohesion, low coupling.
Core flow
- Inspect
anclax.yamlto learn generation paths and enabled generators. - Update sources first:
- OpenAPI: the matching
oapi-codegenentrypath(commonlyapi/v1.yaml) - Tasks: the matching
task-handlerentrypath(commonlyapi/tasks.yaml) - DB schema:
sql/migrations - Queries:
sql/queries
- OpenAPI: the matching
- Run
anclax genafter any spec/SQL/Wire changes. - If you modify
examples/, runmake gento refreshcmd/anclax/initFilesand normalize template-specificgo.modcontent. - Implement code against generated interfaces and types.
- Add unit tests for service logic with mocks.
Layering rules
- Handler: parse HTTP, call service, map errors to HTTP responses.
- Service: implement business logic, accept and return
apigentypes. - Model: use
pkg/zcore/modeland sqlc-generated queries. - Async tasks: define in the task spec configured under
task-handler(commonlyapi/tasks.yaml), implementtaskgen.ExecutorInterface, enqueue viataskgen.TaskRunner.
References and Examples
- Config: How to use
anclax.yamlfor generator inputs/outputs. - CRUD operations: End-to-end CRUD flow and mapping examples.
- OpenAPI Spec: Conventions for OpenAPI specs in Anclax.
- Business Logic: Service-layer rules and error handling.
- Database: SQL/schema rules and transaction helpers.
- Dependency Injection: Wire DI conventions.
- Async Tasks: Task definitions, execution, retries, and hooks.
- Example template generation: Updating
examples/and regeneratingcmd/anclax/initFiles, includinggo.modnormalization fromVERSION. - Multi-service repos: Organizing multiple apps under
app/with shared or service-specific modules.