Step-by-step guide for implementing new features in laneweaverTMS, orchestrating use of specialized skills and agents for database, backend, and frontend work.
Orchestrates multi-layer feature implementation by coordinating specialized skills for database, backend, and frontend work.
npx claudepluginhub linehaul-ai/linehaulai-claude-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
An orchestration guide for implementing end-to-end features in laneweaverTMS. This skill coordinates other skills and agents rather than duplicating their content.
Use when:
Before writing any code, ensure:
| Requirement | Questions to Answer |
|---|---|
| Feature Requirements | What does the user story say? What are the acceptance criteria? |
| Database Schema | New tables needed? New columns on existing tables? New ENUMs? |
| API Endpoints | What REST endpoints are needed? Request/response shapes? |
| Frontend Components | New pages? New components? Which existing patterns apply? |
| Domain Knowledge | Any freight-specific terminology or business logic involved? |
When: New tables, columns, ENUMs, or constraints required.
How to Execute:
schema-migration-agent for database work
supabase/migrations/supabase:laneweaver-database-design skill for conventionsOutput: Migration file(s) in supabase/migrations/
Key Conventions (see supabase:laneweaver-database-design for details):
created_at, updated_at, created_by, updated_by, deleted_at, deleted_bydeleted_at columnWhen: Always, for any new entity or DTO.
How to Execute:
golang-orchestrator:backend-service-patterns skillPattern:
type MyEntity struct {
ID string `db:"id" json:"id"`
Name string `db:"name" json:"name"`
Status MyStatus `db:"status" json:"status"`
// Audit fields (always include)
CreatedAt time.Time `db:"created_at" json:"createdAt"`
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
CreatedBy *int32 `db:"created_by" json:"createdBy,omitempty"`
UpdatedBy *int32 `db:"updated_by" json:"updatedBy,omitempty"`
DeletedAt *time.Time `db:"deleted_at" json:"deletedAt,omitempty"`
}
Output: Model file in /internal/models/
When: Always, for any new entity.
How to Execute:
golang-orchestrator:backend-service-patterns skillKey Requirements:
WHERE deleted_at IS NULLpgx.ErrNoRows for not-found casesOutput: Repository file in /internal/repository/
When: Always, for any new entity or business operation.
How to Execute:
golang-orchestrator:backend-service-patterns skillKey Requirements:
ValidationErrors for business rule failurescontext.Context throughoutOutput: Service file in /internal/services/
When: Always, for any new API endpoint.
How to Execute:
golang-orchestrator:backend-service-patterns skillKey Requirements:
c.Bind()APIResponse wrapper for all responsesValidationErrors for 400 responsesOutput: Handler file in /internal/handlers/
When: Always, for any new endpoint.
How to Execute:
Setup functionPattern:
// In router/router.go Setup function
myEntities := api.Group("/my-entities")
myEntities.GET("", myEntityHandler.List)
myEntities.POST("", myEntityHandler.Create)
myEntities.GET("/:id", myEntityHandler.GetByID)
myEntities.PUT("/:id", myEntityHandler.Update)
myEntities.DELETE("/:id", myEntityHandler.Delete)
Output: Updated /internal/router/router.go
When: Feature requires user-facing components.
How to Execute:
frontend-component-agent for Svelte work
svelte5-runes skill for reactivity patternsshadcn-svelte-skill for UI componentsOutput: Svelte components in frontend project
Choose the right skill for each concern:
| Concern | Skill to Use |
|---|---|
| Database tables, migrations, indexes | supabase:laneweaver-database-design |
| Go handlers, services, repositories | golang-orchestrator:backend-service-patterns |
| Go idioms and best practices | golang-orchestrator:effective-go |
| Echo router and middleware | golang-orchestrator:echo-router-skill |
| Svelte 5 reactivity ($state, $derived) | svelte5-runes |
| UI components (buttons, forms, dialogs) | shadcn-svelte-skill |
| Freight industry terminology | freight-domain-glossary |
| Load status lifecycle | load-lifecycle-patterns |
Use agents for context isolation:
| Agent | When to Use | Why Isolate? |
|---|---|---|
schema-migration-agent | Database schema work | Isolates 500KB erd.sql from main context |
frontend-component-agent | Svelte component work | Different mental model (reactive vs imperative) |
1. schema-migration-agent → Create table + indexes
2. /internal/models/ → Entity struct + DTOs
3. /internal/repository/ → CRUD queries
4. /internal/services/ → Business logic + validation
5. /internal/handlers/ → HTTP handlers
6. /internal/router/ → Route registration
7. frontend-component-agent → List page + form (if UI needed)
1. schema-migration-agent → ALTER TABLE + index (if needed)
2. /internal/models/ → Add field to struct
3. /internal/repository/ → Update queries
4. /internal/handlers/ → Update DTOs (if exposed via API)
1. schema-migration-agent → Create ENUM + add column
2. /internal/models/ → Define enum constants + validation
3. /internal/services/ → Implement state machine logic
4. Use load-lifecycle-patterns skill for reference
| Anti-Pattern | Why It Fails | Do This Instead |
|---|---|---|
| Skipping database migration | Go code references non-existent columns | Always start with schema |
| Business logic in handlers | Untestable, duplicated code | Move logic to services |
| Raw SQL strings everywhere | SQL injection, hard to maintain | Use parameterized queries |
| Ignoring soft deletes | Orphaned data, broken queries | Always check deleted_at IS NULL |
| Frontend before API | UI calls non-existent endpoints | Build API first |
Need database changes? → schema-migration-agent + supabase:laneweaver-database-design
Need Go backend code? → golang-orchestrator:backend-service-patterns
Need frontend UI? → frontend-component-agent + svelte5-runes + shadcn-svelte-skill
Unclear on freight terms? → freight-domain-glossary
Implementing load states? → load-lifecycle-patterns
Remember: This skill orchestrates other skills. When you need implementation details, invoke the appropriate specialized skill rather than trying to implement from memory.
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.