Step-by-step guide for implementing new features in laneweaverTMS, orchestrating use of specialized skills and agents for database, backend, and frontend work.
Orchestrates end-to-end feature implementation across database, backend, and frontend layers. Triggers when building new entities or multi-layer features that require coordinated schema migrations, Go services, and Svelte components.
/plugin marketplace add linehaul-ai/linehaulai-claude-marketplace/plugin install laneweaver-tms-agents@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 |
| Row-level security policies | supabase:supabase-rls-policy |
| 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.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.