No description
Skills: - event-modeling: complete methodology guide — 4 patterns (state-change, state-view, automation, translation), 7 workshop steps, specification formats (Given/When/Then, Given/Then), spec-to-code translation, quality checklist, common mistakes - emflow-cli: expanded with full REST API reference, auth setup, EM container operations, step-by-step model creation guide, AI agent workflow pattern |
||
|---|---|---|
| claude-code | ||
| docs | ||
| opencode | ||
| .gitignore | ||
| README.md | ||
AI Agents
Reusable agent configurations, skills, and commands for AI-assisted development.
Built around eskit (event sourcing toolkit for Go), screaming architecture, and TigerStyle safety.
Philosophy
- No quick fixes — every piece of code gets proper validation, error handling, and testing
- No aggregates — deciders with DCB pattern only
- Issue-driven — every task gets a git issue before work starts
- Nothing is done unless it's on main — commits are the source of truth
- Docs ship with code — every API change updates docs in the same commit
Structure
ai-agents/
├── claude-code/
│ ├── agents/ # Specialized agent definitions
│ │ ├── backend-architect.md # Backend implementation
│ │ ├── frontend-developer.md # UI implementation
│ │ ├── code-reviewer.md # Code review
│ │ ├── test-writer-fixer.md # Testing
│ │ ├── sprint-prioritizer.md # Planning
│ │ ├── eskit-migrator.md # Migration to eskit
│ │ └── domain-modeler.md # Event model design
│ ├── skills/ # Auto-injected context
│ │ ├── event-modeling/ # Event modeling METHODOLOGY (4 patterns, 7 steps, specs)
│ │ ├── eskit-core/ # eskit API reference (commands, deciders, stores, projections)
│ │ ├── eskit-architecture/ # Screaming architecture patterns and templates
│ │ ├── emflow-cli/ # EMFlow CLI + REST API for event model management
│ │ ├── go-safety/ # TigerStyle Go safety standards
│ │ └── code-review/ # Code review checklist
│ └── commands/ # Slash commands
│ ├── team-feature.md # Spawn coordinated dev team
│ ├── migrate-to-eskit.md # Analyze + plan eskit migration
│ ├── new-context.md # Scaffold bounded context
│ └── new-slice.md # Create vertical slice
├── opencode/ # OpenCode configurations (planned)
└── docs/ # Setup guides
Quick Start
For a new eskit project
# Copy skills into your project
cp -r claude-code/skills/* /path/to/project/.claude/skills/
# Copy agents
cp claude-code/agents/*.md /path/to/project/.claude/agents/
# Copy commands
cp claude-code/commands/*.md /path/to/project/.claude/commands/
For migrating an existing app
- Copy all skills + agents + commands into the project
- Run
/migrate-to-eskit <description of the app> - The agent analyzes the codebase, maps contexts, produces a phased plan
- Use
/new-contextand/new-sliceto scaffold each piece
For building from an event model
- Design your event model in EMFlow (emflow.tempr.dev)
- Use the
domain-modeleragent to validate and refine - Use
/new-contextfor each bounded context identified - Use
/new-slicefor each vertical slice
Stack
| Layer | Technology |
|---|---|
| Language | Go |
| Templates | Templ (type-safe, compiles to Go) |
| Frontend | Datastar (SSE-driven, 11KB, no custom JS) |
| CSS | Open Props (design tokens, NOT Tailwind) |
| Event Store | eskit (SQLite/Postgres/NATS backends) |
| Database | SQLite (WAL mode) for single-instance |
| Router | Chi |
| Deployment | Single binary, systemd + Caddy |
Key Resources
- eskit source: https://git.nullsoft.is/ash/eskit
- EMFlow: https://emflow.tempr.dev
- Architecture reference: https://git.nullsoft.is/ash/architecture-research (approach_e)
- Datastar: https://data-star.dev
- Templ: https://templ.guide