| name | linter-driven-development |
| description | WHEN: User requests Go code work (implement, fix, add, refactor) or mentions @ldd in a Go project.
Orchestrates complete workflow (Phases 1-5): design → test → implement → lint → fix → documentation.
Auto-triggers parallel quality analysis and iterative fix loop until code is commit-ready.
|
| allowed-tools | ["Skill(go-linter-driven-development:code-designing)","Skill(go-linter-driven-development:testing)","Skill(go-linter-driven-development:refactoring)","Skill(go-linter-driven-development:documentation)","Task"] |
Meta orchestrator for Go implementation workflow: design → test → lint → refactor → review → commit.
Use for any commit: features, bug fixes, refactors.
Reference: See reference.md for agent prompt templates, example reports, and output formats.
<essential_principles>
Auto-Pilot Behavior: This skill triggers automatically when Go code work is detected. After permission is granted, announce: "Using go-ldd workflow for this Go code work" and proceed to pre-flight check.
Trigger Conditions:
- User requests Go code work (implement, fix, add, refactor, update, change, modify, etc.)
- User mentions "ldd" or "@ldd" (shorthand for linter-driven-development)
- Working directory contains Go project (go.mod or .go files)
</essential_principles>
<quick_start>
Immediate Action: Run Pre-Flight Check, then execute phases sequentially until commit-ready.
- Pre-Flight: Verify Go project, find test/lint commands, identify plan context
- Phase 1: Design types (if needed) → Write tests → Implement code
- Phase 2: Run quality-analyzer agent → Route based on status
- Phase 3: Fix loop until CLEAN_STATE
- Phase 4: Documentation
- Phase 5: Present commit summary with options
</quick_start>
<pre_flight_check>
ALWAYS RUN FIRST
Look for keywords: "implement", "ready", "execute", "do", "start", "continue", "next", "build", "create", "step 1", "task 2", or explicit "@linter-driven-development", "@ldd", "ldd"
Check that `go.mod` exists in the project root or parent directories.
**Search locations** (in order):
1. Project docs: `README.md`, `CLAUDE.md`, `agents.md`
2. Build configs: `Makefile`, `Taskfile.yaml`, `.golangci.yaml`
3. Git repository root for workspace-level commands
Extract commands:
- Test command:
go test, make test, task test
- Lint command:
golangci-lint run --fix, make lint, task lintwithfix
- Fallbacks:
go test ./... and golangci-lint run --fix
Scan conversation history (last 50 messages) for step-by-step plan and which step to implement.
<decision_tree>
</decision_tree>
</pre_flight_check>
**Design Architecture** (if new types/functions needed):
- Invoke @code-designing skill
- Output: Type design plan with self-validating domain types
Write Tests First:
- Invoke @testing skill for guidance
- Write table-driven tests or testify suites
- Target: 100% coverage on new leaf types
Implement Code:
- Follow coding principles from references/coding_rules.md
- Keep functions <50 LOC, max 2 nesting levels
- Use self-validating types, prevent primitive obsession
**Invoke quality-analyzer agent** for parallel quality analysis.
See `reference.md` → "Agent Prompt Templates" for full prompt.
The agent automatically:
- Executes tests, linter, and code review in parallel (40-50% faster)
- Identifies overlapping issues with root cause analysis
- Returns structured report with prioritized fixes
<test_focus_mode>
Loop until tests pass:
- Analyze failure root cause
- Apply fix to implementation or tests
- Re-run quality-analyzer (mode: "full")
- Check status → continue or exit loop
Max 10 iterations. If stuck, ask user for guidance.
</test_focus_mode>
**For each prioritized fix** (from agent's report):
-
Apply Fix:
- Invoke @refactoring skill with file, function, issues, and root cause
- @refactoring applies patterns: early returns, extract function, storifying, extract type, switch extraction, extract constant
-
Verify Fix (Incremental Mode):
- Re-run quality-analyzer with
mode: incremental
- See
reference.md → "Agent Prompt Templates" for prompt
- Agent returns delta report: fixed, remaining, new issues
-
Route Based on Status:
TEST_FAILURE → Enter Test Focus Mode
CLEAN_STATE → Break loop, go to Phase 4
ISSUES_FOUND → Continue to next fix (or retry if no progress)
-
Safety Limits:
- Max 10 iterations per fix loop
- If stuck after 3 attempts → show status, ask user
Loop until agent returns CLEAN_STATE.
Invoke @documentation skill:
1. Add/update package-level godoc
2. Add/update type and function documentation (WHY not WHAT)
3. Add godoc testable examples (Example_* functions)
4. If last plan step → add feature documentation to docs/
Verify: Run go doc -all ./... and ensure examples compile.
Generate comprehensive summary. See `reference.md` → "Commit Readiness Output Format" for template.
Present user with options:
- Commit as-is
- Fix design debt only, then commit
- Fix design + readability debt, then commit
- Fix all findings, then commit
- Refactor entire file, then commit
<workflow_control>
</workflow_control>
**Skills invoked**:
- @code-designing (Phase 1, if needed)
- @testing (Phase 1)
- @refactoring (Phase 3)
- @documentation (Phase 4)
Agents invoked:
go-linter-driven-development:quality-analyzer (Phase 2 and Phase 3 verification)
- Internally delegates to
go-linter-driven-development:go-code-reviewer for design analysis
After committing:
- Feature complete → Already documented in Phase 4
- More work needed → Run this workflow again for next commit
<success_criteria>
Workflow is complete when ALL of the following are true: