tdd-workflow
Test-Driven Development workflow for task implementation. Use when implementing tasks that require the Red-Green-Refactor cycle, quality gates, commit guidelines, or phase verification protocols.
What this skill does
# TDD Workflow
This skill provides the Test-Driven Development methodology used by Conductor for task implementation.
## Guiding Principles
1. **The Plan is the Source of Truth:** All work must be tracked in `plan.md`
2. **The Tech Stack is Deliberate:** Changes to the tech stack must be documented in `tech-stack.md` *before* implementation
3. **Test-Driven Development:** Write unit tests before implementing functionality
4. **High Code Coverage:** Aim for >80% code coverage for all modules
5. **User Experience First:** Every decision should prioritize user experience
6. **Non-Interactive & CI-Aware:** Prefer non-interactive commands. Use `CI=true` for watch-mode tools (tests, linters) to ensure single execution.
## Standard Task Workflow
All tasks follow a strict lifecycle:
### 1. Select Task
Choose the next available task from `plan.md` in sequential order.
### 2. Mark In Progress
Before beginning work, edit `plan.md` and change the task from `[ ]` to `[~]`.
### 3. Write Failing Tests (Red Phase)
- Create a new test file for the feature or bug fix.
- Write one or more unit tests that clearly define the expected behavior and acceptance criteria for the task.
- **CRITICAL:** Run the tests and confirm that they fail as expected. This is the "Red" phase of TDD. Do not proceed until you have failing tests.
### 4. Implement to Pass Tests (Green Phase)
- Write the minimum amount of application code necessary to make the failing tests pass.
- Run the test suite again and confirm that all tests now pass. This is the "Green" phase.
### 5. Refactor (Optional but Recommended)
- With the safety of passing tests, refactor the implementation code and the test code to improve clarity, remove duplication, and enhance performance without changing the external behavior.
- Rerun tests to ensure they still pass after refactoring.
### 6. Verify Coverage
Run coverage reports using the project's chosen tools. Target: >80% coverage for new code.
Example commands by language:
- Python: `pytest --cov=app --cov-report=html`
- JavaScript/TypeScript: `npm test -- --coverage`
- Go: `go test -cover ./...`
### 7. Document Deviations
If implementation differs from tech stack:
- **STOP** implementation
- Update `tech-stack.md` with new design
- Add dated note explaining the change
- Resume implementation
### 8. Commit Code Changes
- Stage all code changes related to the task.
- Propose a clear, concise commit message (e.g., `feat(ui): Create basic HTML structure for calculator`).
- Perform the commit.
### 9. Attach Task Summary with Git Notes
- **Step 9.1:** Get the hash of the just-completed commit (`git log -1 --format="%H"`).
- **Step 9.2:** Draft note content including task name, summary of changes, files modified, and the "why".
- **Step 9.3:** Attach note: `git notes add -m "<note content>" <commit_hash>`
### 10. Get and Record Task Commit SHA
- **Step 10.1:** Read `plan.md`, find the completed task, update status from `[~]` to `[x]`, and append the first 7 characters of the commit hash.
- **Step 10.2:** Write the updated content back to `plan.md`.
### 11. Commit Plan Update
- Stage the modified `plan.md` file.
- Commit with message: `conductor(plan): Mark task '<task_name>' as complete`
## Phase Completion Verification and Checkpointing Protocol
**Trigger:** Execute immediately after completing a task that also concludes a phase in `plan.md`.
### 1. Announce Protocol Start
Inform the user that the phase is complete and verification has begun.
### 2. Ensure Test Coverage for Phase Changes
- **Step 2.1:** Find the Git commit SHA of the previous phase's checkpoint. If none exists, scope is all changes since first commit.
- **Step 2.2:** Execute `git diff --name-only <previous_checkpoint_sha> HEAD` to list files modified during this phase.
- **Step 2.3:** For each code file (excluding `.json`, `.md`, `.yaml`), verify a corresponding test file exists. If missing, create one.
### 3. Execute Automated Tests with Proactive Debugging
- Announce the exact shell command before execution (e.g., "Command: `CI=true npm test`").
- If tests fail, attempt to fix a **maximum of two times**. If still failing, stop and ask for guidance.
### 4. Propose Manual Verification Plan
Generate step-by-step instructions for the user to manually verify the phase.
**Frontend example:**
```
1. Start the development server: `npm run dev`
2. Open browser to: `http://localhost:3000`
3. Confirm you see: The new user profile page with name and email
```
**Backend example:**
```
1. Ensure the server is running
2. Execute: `curl -X POST http://localhost:8080/api/v1/users -d '{"name": "test"}'`
3. Confirm response: JSON with status `201 Created`
```
### 5. Await Explicit User Feedback
Ask: "Does this meet your expectations? Please confirm with yes or provide feedback."
**PAUSE** and await response. Do not proceed without explicit confirmation.
### 6. Create Checkpoint Commit
Stage all changes and commit: `conductor(checkpoint): Checkpoint end of Phase X`
### 7. Attach Verification Report using Git Notes
Draft and attach a detailed verification report including automated test command, manual steps, and user confirmation.
### 8. Get and Record Phase Checkpoint SHA
- Get the checkpoint commit hash.
- Update `plan.md` to append `[checkpoint: <sha>]` to the phase heading.
- Commit: `conductor(plan): Mark phase '<PHASE NAME>' as complete`
### 9. Announce Completion
Inform the user that the phase is complete with verification report attached as git note.
## Quality Gates
Before marking any task complete, verify:
- [ ] All tests pass
- [ ] Code coverage meets requirements (>80%)
- [ ] Code follows project's code style guidelines
- [ ] All public functions/methods are documented
- [ ] Type safety is enforced
- [ ] No linting or static analysis errors
- [ ] Works correctly on mobile (if applicable)
- [ ] Documentation updated if needed
- [ ] No security vulnerabilities introduced
## Commit Message Format
```
<type>(<scope>): <description>
[optional body]
[optional footer]
```
### Types
- `feat`: New feature
- `fix`: Bug fix
- `docs`: Documentation only
- `style`: Formatting, missing semicolons, etc.
- `refactor`: Code change that neither fixes a bug nor adds a feature
- `test`: Adding missing tests
- `chore`: Maintenance tasks
### Examples
```bash
git commit -m "feat(auth): Add remember me functionality"
git commit -m "fix(posts): Correct excerpt generation for short posts"
git commit -m "test(comments): Add tests for emoji reaction limits"
```
## Definition of Done
A task is complete when:
1. All code implemented to specification
2. Unit tests written and passing
3. Code coverage meets project requirements
4. Documentation complete (if applicable)
5. Code passes all configured linting and static analysis checks
6. Works beautifully on mobile (if applicable)
7. Implementation notes added to `plan.md`
8. Changes committed with proper message
9. Git note with task summary attached to the commit
Related in Productivity
gitea-workflow
IncludedOrchestrate agile development workflows for Gitea repositories using the tea CLI. Use when working with Gitea-hosted repos and asking to 'run the workflow', 'continue working', 'what's next', 'complete the task cycle', 'start my day', 'end the sprint', 'implement the next task', or wanting guided step-by-step development assistance. Keywords: workflow, orchestrate, agile, task cycle, sprint, daily, implement, review, PR, standup, retrospective, gitea, tea.
microsoft-graph-gateway
IncludedRoute Microsoft Graph work in this workspace. Use when users want to read or write Outlook mail, calendar events, contacts, OneDrive or SharePoint files, Teams, Planner, To Do, users, groups, directory data, or arbitrary Microsoft Graph endpoints from VS Code. Prefer WorkIQ for common read scenarios. Use Microsoft Graph for write actions and gap-read scenarios that need exact Graph properties, filters, permissions, or endpoints.
copilotkit
IncludedUse when building with CopilotKit — setup, development, integrations, debugging, upgrading, or contributing. Routes to the appropriate specialized skill based on the task.
wordly-wisdom
IncludedProvides calibrated decision analysis using Charlie Munger-style multiple mental models, inversion, incentive mapping, circle-of-competence checks, misjudgment audits, second-order effects, and forecast updates. Use when the user asks for an oracle take, a hard call, a decision memo, a premortem, an outside view, a red-team, a sanity-check, what am I missing, think this through, or wants a strategy, hire, investment, plan, product, partnership, or major life choice analysed. Avoid for simple factual lookups or time-sensitive legal, medical, or market questions without fresh evidence.
swain-session
IncludedSession management and project status dashboard. Owns the full session lifecycle (start/work/close/resume), focus lane, bookmarks, worktree detection, and tab naming. Also serves as the project status dashboard — shows active epics, progress, actionable next steps, blocked items, tasks, GitHub issues, and recommendations. Worktree creation is deferred to swain-do task dispatch (SPEC-195). Triggers on: 'session', 'status', 'what's next', 'dashboard', 'overview', 'where are we', 'what should I work on', 'show me priorities', 'bookmark', 'focus on', 'session info'.
gandi
IncludedComprehensive Gandi domain registrar integration for domain and DNS management. Register and manage domains, create/update/delete DNS records (A, AAAA, CNAME, MX, TXT, SRV, and more), configure email forwarding and aliases, check SSL certificate status, create DNS snapshots for safe rollback, bulk update zone files, and monitor domain expiration. Supports multi-domain management, zone file import/export, and automated DNS backups. Includes both read-only and destructive operations with safety controls.