issue-driven-development — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited issue-driven-development (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Claude Code plugin for autonomous, GitHub-native software development. Work through issues, create PRs, and ship code - all without manual intervention.
New to Claude Code? Install the plugin, run claude-autonomous, and watch it work through your GitHub issues.
Experienced developer? Full TDD, strict typing, IPv6-first networking, parallel workers, and crash recovery included.
curl -fsSL https://raw.githubusercontent.com/troykelly/claude-skills/main/install.sh | bashThis installs everything: dependencies, Claude Code CLI, the plugin, and CLI tools.
claude-autonomousThat's it. Claude will find your open GitHub issues and start working through them autonomously.
/plugin marketplace add troykelly/claude-skills
/plugin install issue-driven-development@troykelly-skillsRestart Claude Code after installation.
| Tool | Purpose |
|---|---|
claude-autonomous | Autonomous development with crash recovery, parallel workers, and session management |
claude-account | Multi-account switching without re-authentication |
Skills guide Claude through disciplined workflows. They're automatically invoked based on what you're doing.
| Category | Count | Examples |
|---|---|---|
| Workflow & Orchestration | 8 | session-start, autonomous-orchestration, worker-dispatch |
| Issue Management | 5 | issue-decomposition, issue-lifecycle, acceptance-criteria-verification |
| Work Planning | 4 | initiative-architecture, epic-management, milestone-management |
| Development Standards | 7 | strict-typing, tdd-full-coverage, ipv6-first |
| Code Review | 3 | comprehensive-review, apply-all-findings |
| PR & CI | 3 | pr-creation, ci-monitoring, verification-before-merge |
| Research & Memory | 3 | research-after-failure, memory-integration |
| Documentation | 3 | api-documentation, features-documentation |
| Database | 4 | postgres-rls, postgis, timescaledb |
| Other | 11 | branch-discipline, environment-bootstrap, pexels-media |
Specialized agents for specific tasks:
| Agent | Purpose |
|---|---|
| Code Reviewer | Comprehensive code quality review |
| Security Reviewer | Security-focused code analysis |
| Silent Failure Hunter | Detect swallowed errors and silent failures |
| PR Test Analyzer | Analyze test coverage in pull requests |
| Type Design Analyzer | Evaluate type system design |
| Code Simplifier | Identify over-engineering and simplification opportunities |
| Comment Analyzer | Review comment quality and necessity |
| Code Architect | High-level architecture review |
| Code Explorer | Codebase navigation and understanding |
The claude-account tool lets you switch between Claude accounts without re-authenticating each time. When running autonomously, the plugin automatically switches accounts when plan limits are reached.
claude-account capture # Save current logged-in account
claude-account list # Show all saved accounts
claude-account list --available # Show accounts not in cooldown
claude-account current # Show active account
claude-account switch # Rotate to next account
claude-account switch <email> # Switch to specific account
claude-account next # Print next available account (for scripts)
claude-account status # Show exhaustion status of all accounts
claude-account remove <email> # Remove saved account/login), run claude-account capture to save credentials.env in your project (gitignored) and platform credential storageclaude-account switch to swap between saved accounts instantly| Platform | Credential Storage |
|---|---|
| macOS | Keychain (Claude Code-credentials) |
| Linux/Devcontainer | ~/.claude/.credentials.json |
For persistent accounts across container rebuilds:
claude-account capture.env to 1Password or another secrets manager.env and run claude-account switch <email># Managed by claude-account - accounts derived from CLAUDE_ACCOUNT_*_EMAILADDRESS variables
CLAUDE_ACCOUNT_USER_EXAMPLE_COM_EMAILADDRESS="[email protected]"
CLAUDE_ACCOUNT_USER_EXAMPLE_COM_ACCESSTOKEN="sk-ant-oat01-..."
CLAUDE_ACCOUNT_USER_EXAMPLE_COM_REFRESHTOKEN="sk-ant-ort01-..."
# ... additional fields per accountWhen running with claude-autonomous, the plugin automatically detects plan limits and switches accounts:
Session startup shows account status:
Checking Claude account status...
✓ Current account: [email protected]
✓ Multi-account switching: enabled
│ Total accounts: 3
│ Available (not exhausted): 3
Account switch order:
[email protected] (current)
→ [email protected] → [email protected]Environment variables:
| Variable | Default | Purpose |
|---|---|---|
CLAUDE_ACCOUNT_COOLDOWN_MINUTES | 5 | Minutes before exhausted account is available again |
CLAUDE_AUTONOMOUS_MAX_SWITCHES | 10 | Maximum account switches per session |
CLAUDE_ACCOUNT_FLAP_THRESHOLD | 3 | Switches before flap detection triggers |
CLAUDE_ACCOUNT_FLAP_WINDOW | 60 | Seconds for flap detection window |
Flap protection: If all accounts are exhausted (rapid switching detected), the system waits for cooldown before continuing.
claude-autonomous # Work on all open issues
claude-autonomous --epic 42 # Focus on specific epic
claude-autonomous --pr # Resolve open PRs (CI fixes, reviews, merges)
claude-autonomous --new # Start fresh, wait for instructions
claude-autonomous --continue # Resume most recent session
claude-autonomous --resume # Open session picker
claude-autonomous --list # Show session history| Option | Description |
|---|---|
-e, --epic <N> | Focus on specific epic (validates issue exists and is open) |
-p, --pr | PR resolution mode: fix CI failures, verify reviews, merge PRs |
-n, --new | Interactive mode: bootstrap environment, then wait |
-c, --continue | Resume most recent session |
--resume [ID] | Open session picker or resume specific session |
-l, --list | Show worktree session history |
-r, --repo <path> | Repository path (default: current directory) |
origin/main for safe parallel workRun multiple agents on different epics simultaneously:
# Terminal 1
claude-autonomous --epic 10
# Terminal 2
claude-autonomous --epic 15
# Terminal 3
claude-autonomousEach agent works in its own isolated worktree.
Sessions are stored by Claude Code in ~/.claude/projects/<encoded-path>/ and are directory-scoped. The script handles this automatically:
# View session history (our worktree log)
claude-autonomous --list
# Resume most recent session (uses our logged session ID)
claude-autonomous --continue
# Open Claude's interactive session picker
claude-autonomous --resume
# Resume specific session by ID
claude-autonomous --resume <uuid-from-list>Our log at /tmp/claude-sessions.txt tracks worktree sessions with format: timestamp session_id repo_name worktree_path details
while loop auto-restarts Claude with --resume using the same session IDActiveOrchestration marker in MCP Memory triggers automatic resume| Scenario | Behavior |
|---|---|
| Single crash | Auto-restart with session resume |
| 3+ crashes in 60s | Crash loop detection, forced slowdown |
| 10+ total crashes | Gives up (configurable via MAX_CRASHES) |
# View session log
tail -f /tmp/claude-sessions.txt
# Check GitHub project status
gh project item-list $GITHUB_PROJECT_NUM --owner "$GH_PROJECT_OWNER" --format json | \
jq '.items[] | {number: .content.number, title: .content.title, status: .status.name}'
# Check orchestration tracking issue
gh issue list --label "orchestration-tracking" --json number,title,stateTo gracefully stop:
do-not-merge label on any PR to pause mergingCtrl+C - state is preserved in GitHub, resume anytime<details> <summary><strong>Manual Autonomous Script</strong></summary>
For customization or debugging, here's the full script with crash loop detection:
SESSION_ID=$(uuidgen || cat /proc/sys/kernel/random/uuid) && \
REPO_ROOT=$(git rev-parse --show-toplevel) && \
REPO_NAME=$(basename "${REPO_ROOT}") && \
WORKTREE_DIR="/tmp/claude-worktrees/${REPO_NAME}/${SESSION_ID}" && \
echo "$(date -Iseconds) ${SESSION_ID}" >> /tmp/claude-sessions.txt && \
git fetch origin main && \
git worktree add "${WORKTREE_DIR}" origin/main && \
cleanup() { \
echo "Cleaning up worktree ${WORKTREE_DIR}..."; \
cd "${REPO_ROOT}" && \
git worktree remove --force "${WORKTREE_DIR}" 2>/dev/null; \
echo "Session ${SESSION_ID} ended at $(date -Iseconds)"; \
} && \
trap cleanup EXIT && \
cd "${WORKTREE_DIR}" && \
clear && \
echo "Session ID: ${SESSION_ID}" && \
echo "Worktree: ${WORKTREE_DIR}" && \
if [ -n "${WORK_EPIC}" ]; then \
echo "Focus Epic: #${WORK_EPIC}"; \
EPIC_INSTRUCTION="Focus exclusively on Epic #${WORK_EPIC} and its child issues. Do not work on unrelated issues."; \
else \
EPIC_INSTRUCTION="Work through all open epics and issues in priority order."; \
fi && \
INITIAL_PROMPT="You are working in an isolated git worktree at: ${WORKTREE_DIR}
This worktree was created from origin/main to allow multiple agents to work in parallel without conflicts. Your session ID is ${SESSION_ID}.
IMPORTANT WORKFLOW NOTES:
- You have your own isolated copy of the codebase - other agents may be working in parallel
- Create feature branches for your work and push them to origin
- Open PRs when work is complete - do not merge directly to main
- If you need latest changes from main, you can pull origin/main into your worktree
TASK: Use your issue driven development skill to work wholly autonomously until all assigned work is complete.
${EPIC_INSTRUCTION}" && \
CRASH_TIMES=() && \
CRASH_WINDOW=60 && \
CRASH_THRESHOLD=3 && \
claude --dangerously-skip-permissions --session-id "${SESSION_ID}" "${INITIAL_PROMPT}" || \
while true; do \
NOW=$(date +%s) && \
CRASH_TIMES+=("$NOW") && \
RECENT_CRASHES=0 && \
for T in "${CRASH_TIMES[@]}"; do \
if (( NOW - T < CRASH_WINDOW )); then \
((RECENT_CRASHES++)); \
fi; \
done && \
if (( RECENT_CRASHES >= CRASH_THRESHOLD )); then \
echo "Warning: Rapid crash loop detected ($RECENT_CRASHES crashes in ${CRASH_WINDOW}s)"; \
MSG="CRITICAL: You have crashed $RECENT_CRASHES times in the last ${CRASH_WINDOW} seconds. This indicates a crash loop - something you are repeatedly doing is causing you to crash (likely OOM from large test output, or a runaway process). STOP and think carefully: What were you doing? Do NOT repeat the same action. Consider: 1) Running smaller test subsets, 2) Adding output limits, 3) Taking a different approach entirely. Explain your analysis before proceeding."; \
sleep 10; \
else \
echo "Restarting after crash... (Session: ${SESSION_ID})"; \
MSG="You crashed or ran out of memory. This happens occasionally - continue where you left off autonomously."; \
sleep 3; \
fi && \
claude --dangerously-skip-permissions --resume "${SESSION_ID}" "$MSG" && break; \
done| Step | Purpose | ||
|---|---|---|---|
| `SESSION_ID=$(uuidgen \ | \ | ...)` | Generate unique session ID (works on macOS and Linux) |
WORKTREE_DIR | Isolated workspace in /tmp/claude-worktrees/ | ||
git worktree add | Create isolated copy from origin/main for parallel work | ||
| Worktree preservation | Only cleanup on successful exit (code 0) - crashes preserve worktree | ||
--epic validation | Verifies issue exists and is OPEN before starting | ||
--dangerously-skip-permissions | Allow file/command operations without prompts | ||
--session-id | Enable session resumption after crash | ||
| Worktree recreation | On resume, recreates worktree at same path if deleted | ||
| Crash loop detection | If 3+ crashes in 60s, warn Claude about likely OOM/runaway process | ||
| Max crash limit | Gives up after 10 crashes (configurable via MAX_CRASHES) |
</details>
Required:
| Variable | Example | Purpose |
|---|---|---|
GITHUB_PROJECT | https://github.com/users/you/projects/1 | Target project URL |
GITHUB_OWNER | you | Repository owner |
GITHUB_REPO | my-app | Repository name |
GITHUB_PROJECT_NUM | 1 | Project number from URL |
Optional:
| Variable | Default | Purpose |
|---|---|---|
GITHUB_TOKEN | Auto from gh auth token | GitHub API token |
MAX_CRASHES | 10 | Crash limit before giving up |
CLAUDE_MODEL | claude-opus-4-5-20251101 | Model for autonomous operations |
PEXELS_API_KEY | - | For pexels-media skill |
Your project needs these custom fields:
| Field | Type | Values | Purpose |
|---|---|---|---|
Status | Single select | Backlog, Ready, In Progress, In Review, Done, Blocked | Work state |
Verification | Single select | Not Verified, Failing, Partial, Passing | Test status |
Criteria Met | Number | 0-N | Checked acceptance criteria count |
Criteria Total | Number | N | Total acceptance criteria |
Priority | Single select | Critical, High, Medium, Low | Ordering |
Type | Single select | Feature, Bug, Chore, Research, Spike | Categorization |
Last Verified | Date | ISO timestamp | When verification ran |
Verified By | Text | agent / human / ci | Who verified |
Create them via GitHub UI or CLI:
GH_PROJECT_OWNER="@me" # Use org name for org projects
gh project field-create $GITHUB_PROJECT_NUM --owner "$GH_PROJECT_OWNER" \
--name "Verification" --data-type "SINGLE_SELECT" \
--single-select-options "Not Verified,Failing,Partial,Passing"
gh project field-create $GITHUB_PROJECT_NUM --owner "$GH_PROJECT_OWNER" \
--name "Priority" --data-type "SINGLE_SELECT" \
--single-select-options "Critical,High,Medium,Low"
gh project field-create $GITHUB_PROJECT_NUM --owner "$GH_PROJECT_OWNER" \
--name "Type" --data-type "SINGLE_SELECT" \
--single-select-options "Feature,Bug,Chore,Research,Spike"<details> <summary><strong>All Field Creation Commands</strong></summary>
gh project field-create $GITHUB_PROJECT_NUM --owner "$GH_PROJECT_OWNER" --name "Criteria Met" --data-type "NUMBER"
gh project field-create $GITHUB_PROJECT_NUM --owner "$GH_PROJECT_OWNER" --name "Criteria Total" --data-type "NUMBER"
gh project field-create $GITHUB_PROJECT_NUM --owner "$GH_PROJECT_OWNER" --name "Last Verified" --data-type "DATE"
gh project field-create $GITHUB_PROJECT_NUM --owner "$GH_PROJECT_OWNER" --name "Verified By" --data-type "TEXT"</details>
gh label create "parent" --color "0E8A16" --description "Issue has sub-issues"
gh label create "sub-issue" --color "1D76DB" --description "Issue is child of parent"
gh label create "blocked" --color "D93F0B" --description "Cannot proceed"
gh label create "needs-research" --color "FBCA04" --description "Research required"
gh label create "verified" --color "0E8A16" --description "E2E verification passed"| Tool | Purpose | Verification |
|---|---|---|
gh | GitHub CLI | gh auth status - must show logged in |
git | Version control (2.5+) | git --version - worktrees require 2.5+ |
| Tool | Purpose | Verification |
|---|---|---|
pnpm | Node.js package manager | pnpm --version |
op | 1Password CLI | op account list |
| Server | Purpose | Critical Functions |
|---|---|---|
mcp__git | Git operations | status, diff, commit, branch, checkout |
mcp__memory | Knowledge graph | Persistent context across sessions |
| Server | Purpose | Used By |
|---|---|---|
mcp__playwright | Browser automation | E2E verification |
mcp__puppeteer | Browser automation | E2E verification (alternative) |
| Plugin | Purpose |
|---|---|
episodic-memory | Cross-session conversation recall |
<details> <summary><strong>Workflow & Orchestration</strong> (8 skills)</summary>
| Skill | Description |
|---|---|
session-start | Get bearings at session start |
autonomous-operation | Override token limits, work until goal achieved |
issue-driven-development | Master 13-step coding process |
autonomous-orchestration | Long-running autonomous work with parallel workers |
worker-dispatch | Spawn isolated worker processes in git worktrees |
worker-protocol | Behavioral contract for spawned workers |
worker-handover | Context transfer when workers hit turn limits |
work-intake | Triage requests from trivial to massive |
</details>
<details> <summary><strong>Issue & Project Management</strong> (5 skills)</summary>
| Skill | Description |
|---|---|
issue-prerequisite | Ensure GitHub issue exists before work |
issue-decomposition | Break large issues into sub-issues |
issue-lifecycle | Continuous issue updates |
project-status-sync | Update GitHub Project fields |
acceptance-criteria-verification | Verify and report on criteria |
</details>
<details> <summary><strong>Work Planning & Architecture</strong> (4 skills)</summary>
| Skill | Description |
|---|---|
initiative-architecture | Multi-epic planning with research spikes |
epic-management | Feature-level issue grouping |
milestone-management | Time-based issue grouping for releases |
work-intake | Route work to appropriate workflows |
</details>
<details> <summary><strong>Development Standards</strong> (7 skills)</summary>
| Skill | Description |
|---|---|
strict-typing | No any types - everything fully typed |
style-guide-adherence | Google style guides |
inline-documentation | Complete JSDoc/docstrings |
inclusive-language | Respectful terminology |
ipv6-first | IPv6 primary, IPv4 legacy only |
tdd-full-coverage | TDD with full coverage |
no-deferred-work | No TODOs - do it now or don't commit |
</details>
<details> <summary><strong>Code Review</strong> (3 skills)</summary>
| Skill | Description |
|---|---|
comprehensive-review | 7-criteria code review |
review-scope | Determine minor vs major review scope |
apply-all-findings | Implement all review recommendations |
</details>
<details> <summary><strong>PR & CI</strong> (3 skills)</summary>
| Skill | Description |
|---|---|
pr-creation | Complete PR documentation |
ci-monitoring | Monitor and fix CI issues |
verification-before-merge | All checks before merge |
</details>
<details> <summary><strong>Research & Memory</strong> (3 skills)</summary>
| Skill | Description |
|---|---|
research-after-failure | Research after 2 consecutive failures |
pre-work-research | Research before coding |
memory-integration | Use episodic + knowledge graph memory |
</details>
<details> <summary><strong>Branch & Git</strong> (2 skills)</summary>
| Skill | Description |
|---|---|
branch-discipline | Never work on main |
clean-commits | Atomic, descriptive commits |
</details>
<details> <summary><strong>Documentation Enforcement</strong> (3 skills)</summary>
| Skill | Description |
|---|---|
api-documentation | Enforce Swagger/OpenAPI sync |
features-documentation | Enforce features.md sync |
documentation-audit | Comprehensive documentation sync |
</details>
<details> <summary><strong>Database</strong> (4 skills) - PostgreSQL 18, PostGIS 3.6.1, TimescaleDB 2.24.0</summary>
| Skill | Description |
|---|---|
postgres-rls | Row Level Security best practices |
database-architecture | Schema design, migrations, indexing |
postgis | Spatial data and geometry types |
timescaledb | Hypertables, continuous aggregates, compression |
</details>
<details> <summary><strong>Recovery & Environment</strong> (3 skills)</summary>
| Skill | Description |
|---|---|
error-recovery | Graceful failure handling |
environment-bootstrap | Dev environment setup |
conflict-resolution | Merge conflict handling |
</details>
<details> <summary><strong>Other Skills</strong></summary>
| Skill | Description |
|---|---|
pexels-media | Source images/videos from Pexels |
</details>
This is the master process that issue-driven-development implements:
1. ISSUE CHECK → Ensure GitHub issue exists
2. READ COMMENTS → Check for context and updates
3. SIZE CHECK → Break large issues into sub-issues
4. MEMORY SEARCH → Find previous work on related issues
5. RESEARCH → Gather needed information
6. BRANCH CHECK → Create/switch to feature branch
7. TDD DEVELOPMENT → Write tests first, then code
8. VERIFICATION → Verify acceptance criteria
9. CODE REVIEW → Review against 7 criteria
10. IMPLEMENT FIXES → Apply all review findings
11. RUN TESTS → Full test suite
12. RAISE PR → Create with complete documentation
13. CI MONITORING → Watch CI, resolve issuesIssue updates happen continuously throughout, not as a separate step.
When verifying acceptance criteria, post structured comments to issues:
## Verification Report
**Run**: 2024-12-02T14:30:00Z
**By**: agent
### Results
| Criterion | Status | Notes |
|-----------|--------|-------|
| User can click "New Chat" button | PASS | |
| New conversation appears in sidebar | PASS | |
| Chat area shows welcome state | FAIL | Welcome message not rendering |
| Previous conversation is preserved | PARTIAL | Works but slow |
### Summary
- **Passing**: 2/4
- **Failing**: 1/4
- **Partial**: 1/4
### Next Steps
- Investigate welcome message rendering issue
- Profile conversation preservation performanceThis plugin enforces disciplined, issue-driven development based on Anthropic's research on effective harnesses for long-running agents.
| Principle | Meaning |
|---|---|
| No work without an issue | Every change requires a GitHub issue first |
| Never work on main | All work happens in feature branches |
| GitHub is truth | No local progress files - everything in GitHub |
| Continuous updates | Update issues AS work happens, not after |
| Research before guessing | After 2 failures, stop and research |
| Full typing always | No any types anywhere |
| IPv6-first | IPv6 is primary; IPv4 is legacy support |
| No TODOs | Do it now or don't commit |
These override any other instructions:
| Issue | Solution |
|---|---|
gh not authenticated | Run gh auth login |
| Project fields missing | Run field creation commands above |
| MCP server not connected | Check Claude Code MCP configuration |
| Worktree creation fails | Run git worktree prune |
| Git version too old | Upgrade to 2.5+ for worktree support |
| Epic not found | Verify issue exists: gh issue view <N> |
| Epic is closed | Reopen the issue or choose a different epic |
| No origin remote | Add: git remote add origin <url> |
| Plugin not loading | Restart Claude Code after installation |
| Account switch fails | Re-run claude-account capture after fresh /login |
| Multi-account disabled | Run install.sh to install claude-account to PATH |
| All accounts exhausted | Wait for cooldown or add more accounts with claude-account capture |
<details> <summary><strong>MCP Server Installation</strong></summary>
If MCP servers don't start:
# Git server
pip install mcp-server-git
# Node.js servers
pnpm add -g @modelcontextprotocol/server-memory
pnpm add -g @modelcontextprotocol/server-github
npx playwright install --with-deps chromium</details>
<details> <summary><strong>Configure CLAUDE.md for Your Project</strong></summary>
For best results, configure your project's CLAUDE.md with instructions that reinforce the issue-driven workflow. Copy the following prompt and paste it into a Claude Code session in your project directory:
Please update my CLAUDE.md file with development instructions optimized for the issue-driven-development plugin.
IMPORTANT: First, remove any existing sections that might conflict with issue-driven development workflows (sections about commit styles, PR processes, testing workflows, code review, documentation requirements, or development methodology). Keep any project-specific configuration like API keys, server addresses, or domain-specific knowledge.
Then add the following instructions:
---
## Development Methodology
This project uses the `issue-driven-development` plugin. All work MUST follow its skills and protocols.
### Foundational Rules
1. **No work without an issue** - Every change requires a GitHub issue first
2. **Never work on main** - All work happens in feature branches
3. **Research before action** - Your training data is stale; research current patterns before coding
4. **Skills are mandatory** - If a skill exists for what you're doing, you MUST use it
5. **Verify before claiming** - Prove things work with evidence before stating completion
### Anti-Shortcut Enforcement
These behaviors are FAILURES that require stopping and redoing:
| Prohibited Behavior | Why It's Wrong |
|---------------------|----------------|
| Skipping code review | Review artifacts are required for PR creation |
| Skipping tests | TDD is mandatory; tests come first |
| Skipping documentation | Inline docs and feature docs are required |
| Batch updates at end | Issues must be updated continuously as work happens |
| Assuming API behavior | Research current APIs; don't trust training data |
| Skipping validation | All generated artifacts must be validated |
| Claiming completion without proof | Show test output, verification results |
| Working without an issue | Create the issue first, always |
### Mandatory Skill Usage
Before ANY of these actions, invoke the corresponding skill:
| Action | Required Skill |
|--------|----------------|
| Starting work | `session-start` |
| Any coding task | `issue-driven-development` |
| Creating a PR | `pr-creation` (requires review artifact) |
| Code review | `comprehensive-review` |
| After 2 failures | `research-after-failure` |
| Large task | `issue-decomposition` |
| Debugging | `systematic-debugging` |
### Quality Standards
- **Full typing always** - No `any` types; everything fully typed
- **Complete inline documentation** - JSDoc/docstrings on all public APIs
- **TDD with coverage** - Write tests first, maintain coverage
- **Atomic commits** - One logical change per commit
- **IPv6-first** - IPv6 is primary; IPv4 is legacy support only
### Verification Requirements
Before claiming ANY task is complete:
1. Tests pass (show output)
2. Linting passes (show output)
3. Build succeeds (show output)
4. Acceptance criteria verified (post verification report to issue)
5. Review artifact posted (for PRs)
### Issue Lifecycle
Issues must be updated CONTINUOUSLY, not at the end:
- Comment when starting work
- Comment when hitting blockers
- Comment when making progress
- Comment when tests pass/fail
- Update status fields in GitHub Project
---
Make sure to preserve any existing project-specific configuration (environment variables, API endpoints, domain knowledge) that doesn't conflict with these instructions.After running this, your project will have consistent instructions that reinforce the plugin's workflow.
</details>
These skills are opinionated by design. If you disagree with a principle, fork and adapt. The goal is consistency within a project, not universal agreement.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.