/start-work - Begin Working on a GitHub Issue
Scanned 9/12/2026
Install to Claude Code
npx -y skills add MattVOLTA/outworkos_diy --skill start-work --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Start Work?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mattvolta-start-work)More formats (shields.io, HTML) on the badges page.
---
name: start-work
description: "/start-work - Begin Working on a GitHub Issue"
---
# /start-work - Begin Working on a GitHub Issue
Start work on a GitHub issue with proper environment setup, branch creation, and workflow enforcement.
## Usage
```
/start-work <issue-number>
```
## Arguments
- `issue-number` (required): The GitHub issue number to work on (e.g., `198`)
---
## Workflow Steps
Execute these steps in order. **STOP and report if any step fails.**
### Step 1: Pre-flight Checks
```bash
# Check for uncommitted changes
git status --porcelain
```
**If output is not empty:**
> "You have uncommitted changes. Please commit or stash them before starting new work."
> Show the uncommitted files and STOP.
**If clean:** Proceed.
### Step 2: Fetch GitHub Issue
```bash
gh issue view $ISSUE_NUMBER
```
**Extract from issue:**
- Title
- Labels (to determine: feature, bug, docs, etc.)
- Description/body
**Report to user:**
> "Starting work on #[number]: [title]"
### Step 3: Review Available MCP Tools
**BEFORE planning implementation, review available MCP servers and tools that might be useful for this issue.**
Use the `ListMcpResourcesTool` to see all available MCP servers and their capabilities:
```typescript
// Review all MCP servers
ListMcpResourcesTool({})
```
**Consider which tools might be relevant:**
- **Supabase MCP**: Database queries, migrations, logs, advisors
- **GitHub MCP**: Issue management, PR operations, code search
- **Context7 MCP**: Library documentation lookup (Next.js, Supabase, React, etc.)
- **Netlify MCP**: Deployment, forms, serverless functions
- **Fireflies MCP**: Meeting transcripts, user data
- **Claude in Chrome MCP**: Browser automation (if UI testing needed)
**Report to user:**
> "Available MCP tools reviewed. Relevant for this issue: [list applicable tools]"
### Step 4: Consider Subagent Usage
**CRITICAL: Assess whether specialized subagents would be advantageous for this issue.**
**Use subagents (Task tool) when:**
- Issue requires deep codebase exploration (use `explore` agent)
- Issue involves database schema changes (use `database-auditor` agent)
- Issue requires security review (use `review` agent)
- Issue is complex with multiple independent research tasks (use `general-purpose` agent)
**Recommended subagent strategy by issue type:**
| Issue Type | Recommended Subagents | Purpose |
|------------|----------------------|---------|
| Database refactoring | `database-auditor` | Analyze schema change risks |
| Complex features | `explore` + `Plan` | Explore codebase, design approach |
| Security-sensitive | `review` or `multi-tenant-security-auditor` | Audit for vulnerabilities |
| Large refactoring | `explore` + `general-purpose` | Map dependencies, plan phases |
**Report to user:**
> "Subagent assessment: [Will use X agent for Y task] or [No subagents needed - straightforward implementation]"
### Step 5: Parse Issue for Workflow Requirements
**CRITICAL: Scan the issue body for TDD requirements.**
**TDD is REQUIRED if the issue contains ANY of these patterns:**
- "TDD Required" or "TDD required"
- "Test-Driven Development Required"
- "Write tests FIRST"
- "test-driven-development skill"
- "RED" and "GREEN" in the context of testing workflow
- "Write failing test" or "failing test first"
- A "TDD Workflow" section
- References to the `test-driven-development` skill
**Set workflow flags:**
```
TDD_REQUIRED = true/false (based on pattern detection)
UI_AFFECTED = true/false (based on pattern detection below)
```
**UI change detection — scan the issue for ANY of these signals:**
- Labels: `frontend`, `ui`, `ux`, `design`, `css`, `styling`, `component`, `layout`, `responsive`
- Title/body keywords: "button", "modal", "dialog", "form", "page", "layout", "style", "CSS", "Tailwind", "component", "responsive", "mobile", "animation", "theme", "color", "font", "icon", "image", "header", "footer", "sidebar", "navbar", "menu", "tooltip", "dropdown", "table", "card", "dashboard", "UI", "visual", "pixel", "spacing", "margin", "padding", "border", "shadow", "hover", "focus", "dark mode", "light mode"
- File paths referenced: `*.css`, `*.scss`, `*.tsx`, `*.jsx`, `components/`, `pages/`, `app/`, `styles/`, `public/`, `assets/`
- Any mention of visual changes, look-and-feel, or user-facing appearance
**If UI patterns detected:**
> "UI CHANGE DETECTED: This issue affects the user interface. Browser confirmation will be required before completion."
**If TDD patterns detected:**
> "TDD DETECTED: This issue explicitly requires Test-Driven Development."
### Step 6: Sync with Main
```bash
git checkout main
git pull origin main
```
**If conflicts or errors:** Report and STOP.
### Step 7: Create Feature Branch
**Determine branch type from issue labels:**
- `bug` label → `fix/`
- `documentation` label → `docs/`
- `enhancement` or `feature` label → `feature/`
- Default → `feature/`
**Create branch:**
```bash
# Format: <type>/<issue-number>-<short-description>
# Example: feature/198-email-reminders
git checkout -b <type>/<issue-number>-<kebab-case-description>
```
**Branch name rules:**
- Lowercase
- Kebab-case (hyphens)
- Include issue number
- Short but descriptive (3-5 words max)
### Step 8: Establish Baseline - Build
**Detect the project's build command.** Check for:
1. `package.json` in the project root or common subdirectories — use `npm run build`
2. `Makefile` — use `make build`
3. Other build systems as appropriate
```bash
# Run from the project root (or appropriate app directory)
npm run build
```
**If build fails:**
> "Build is failing on main. This is a pre-existing issue."
> Show errors and ask: "Continue anyway or fix first?"
**If build passes:** Record success.
**If no build system found:** Skip and note "No build step detected."
### Step 9: Establish Baseline - Tests
**Detect the project's test command.** Check for:
1. `package.json` with a `test` script — use `npm test`
2. `pytest.ini` or `pyproject.toml` — use `pytest`
3. Other test runners as appropriate
```bash
npm test 2>&1 | tail -20
```
**Record:**
- Number of passing tests
- Number of failing tests (if any)
- Note: Pre-existing failures are acceptable baseline
**If no test system found:** Skip and note "No test runner detected."
### Step 10: Report Ready State and Enforce Workflow
**If TDD_REQUIRED = true:**
```
============================================
TDD ENFORCEMENT ACTIVE
============================================
Issue: #[number] - [title]
Branch: [branch-name]
Base: main @ [commit-hash]
Baseline Status:
Build: [PASS/FAIL/SKIPPED]
Tests: [X passing, Y failing / SKIPPED]
THIS ISSUE REQUIRES TEST-DRIVEN DEVELOPMENT
The issue explicitly requires TDD. You MUST:
1. Write a failing test FIRST (RED)
2. Watch the test fail
3. Write minimal code to pass (GREEN)
4. Refactor while keeping tests green
5. Repeat for each feature/behavior
DO NOT write implementation code before tests.
DO NOT skip the "watch it fail" step.
Invoking test-driven-development skill now...
============================================
```
**Then IMMEDIATELY invoke the `test-driven-development` skill.**
**After TDD skill completes, show issue details:**
```
Issue Details:
---
[Issue body/description]
---
Ready to begin TDD workflow. Start with your first failing test.
```
---
**If TDD_REQUIRED = false:**
```
============================================
READY TO START WORK
============================================
Issue: #[number] - [title]
Branch: [branch-name]
Base: main @ [commit-hash]
Baseline Status:
Build: [PASS/FAIL/SKIPPED]
Tests: [X passing, Y failing / SKIPPED]
Next Steps:
1. Review the issue requirements below
2. Plan your implementation approach
3. Consider TDD for new features (recommended)
4. Implement the feature
5. If UI_AFFECTED: Confirm changes visually in the browser (see Step 11)
6. Run /ship-it when complete
Issue Details:
---
[Issue body/description]
---
============================================
```
### Step 11: Browser Confirmation for UI Changes
**This step is MANDATORY when `UI_AFFECTED = true`.** Do not skip it. Do not ship without it.
When implementation is complete and the dev server is running, use the Claude in Chrome browser tools to visually verify the changes:
1. **Get browser context:**
- Call `tabs_context_mcp` to see current browser state
- Navigate to the relevant page(s) using `navigate` or create a new tab with `tabs_create_mcp`
2. **Capture the current state:**
- Use `read_page` to take a screenshot of each affected page/component
- Show the screenshot to the user
3. **Confirm with the user:**
> "Here's how the UI looks after the changes. Does this match what you expected?"
4. **If the user requests adjustments:**
- Make the changes
- Re-capture and re-confirm (repeat until approved)
5. **If the user approves:**
> "UI confirmed. Ready to /ship-it."
**Rules:**
- NEVER skip browser confirmation when `UI_AFFECTED = true`, even if the code change seems trivial
- Check all relevant viewport sizes if the issue mentions responsive/mobile
- If the dev server is not running, start it before confirming
- If Chrome browser tools are unavailable, ask the user to manually verify and confirm before proceeding to /ship-it
---
## TDD Detection Patterns
The following patterns in the issue body trigger TDD enforcement:
| Pattern | Example |
|---------|---------|
| Explicit requirement | "TDD Required", "Test-Driven Development Required" |
| Skill reference | "invoke the `test-driven-development` skill" |
| Workflow markers | "RED:", "GREEN:", "REFACTOR:" in testing context |
| Process instructions | "Write tests FIRST", "Write failing test" |
| Section headers | "## TDD Workflow", "### TDD Workflow" |
| Critical markers | "CRITICAL: Test-Driven Development" |
**When in doubt, assume TDD is required for:**
- New features with business logic
- Bug fixes (prove the fix with a test)
- Database operations
- API endpoints
---
## Error Handling
| Error | Action |
|-------|--------|
| Uncommitted changes | STOP - user must commit/stash first |
| Issue not found | STOP - verify issue number |
| Git pull fails | STOP - report conflict |
| Build fails | WARN - note baseline, ask to continue |
| Tests fail | WARN - note baseline failures, continue |
| TDD required but skipped | BLOCK - do not allow implementation without TDD |
| UI affected but not confirmed | BLOCK - do not /ship-it without browser confirmation or explicit user approval |
---
## What This Command Does NOT Do
- Does not write any code
- Does not create worktrees (use `isolation: "worktree"` on the Task tool if workspace isolation is needed for parallel agents)
- Does not skip any verification steps
- Does not auto-commit anything
- Does not bypass TDD requirements when detected in issue
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!