skills/implement-loop/SKILL.md
Use when user says "implement --loop", "loop mode", "iterate on issues", "auto-continue", or adds --loop flag to implement. Manages autonomous iteration through sub-issues until completion.
npx skillsauth add ash4180/vorbit implement-loopInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manages Ralph Wiggum-style iteration loops for the implement command. Handles sub-issue tracking, state management, and completion detection.
Linear MCP namespace: All Linear calls in this skill use
mcp__plugin_linear_linear__*(the namespace shipped with the vorbit plugin). Bare verb names below (list_issues,update_issue,create_comment,list_issue_statuses) andTool: <verb>blocks refer to the correspondingmcp__plugin_linear_linear__<verb>tool.
/vorbit:implement:implement [issue] --loop/vorbit:implement:implement [issue] --cancelExtract from $ARGUMENTS:
--loop flag (activates loop mode)--cancel flag (stops active loop)--completion-signal "text" (optional custom signal)If --cancel detected:
.claude/.loop-state.json if existsCRITICAL: Always check for sub-issues first!
list_issues with filter parentId: [issue ID] to get sub-issue detailsRead the parent issue description and find "Implementation Order" section:
## Implementation Order
1. VIB-1862 - analyze-codebase-compatibility
2. VIB-1863 - update-incident-types
3. VIB-1878 - setup-incident-dashboard-folder
...
Build work queue:
Example:
Implementation Order from parent:
1. VIB-1862 → Status: Done → SKIP
2. VIB-1863 → Status: Done → SKIP
3. VIB-1878 → Status: Backlog → Queue position 1
4. VIB-1879 → Status: Backlog → Queue position 2
5. VIB-1864 → Status: In Progress → Queue position 3
...
Work queue = [VIB-1878, VIB-1879, VIB-1864, ...]
Create .claude/.loop-state.json:
If sub-issues exist:
{
"active": true,
"command": "/vorbit:implement:implement [issue ID]",
"completionSignal": "✅ All acceptance criteria met",
"maxIterations": 50,
"iteration": 1,
"issueId": "[issue ID]",
"hasSubIssues": true,
"subIssues": ["[sub-1-id]", "[sub-2-id]", "..."],
"parallelSubIssues": ["[ids with Parallel label]"],
"currentSubIssueIndex": 0,
"completedSubIssues": []
}
If NO sub-issues (single issue):
{
"active": true,
"command": "/vorbit:implement:implement [issue ID]",
"completionSignal": "✅ All acceptance criteria met",
"maxIterations": 50,
"iteration": 1,
"issueId": "[issue ID]",
"hasSubIssues": false,
"subIssues": [],
"currentSubIssueIndex": 0,
"completedSubIssues": []
}
🔄 Loop mode activated
📋 Issue: [issue title]
Type: [Parent with N sub-issues | Single issue]
📝 Work queue:
1. [first item to work on]
2. [second item]
...
🎯 Completion: [completion signal]
Read .claude/.loop-state.json and determine current target:
If hasSubIssues: true:
subIssues[currentSubIssueIndex]If hasSubIssues: false:
issueId directlySub-issues with the "Parallel" label in Linear can run in parallel:
parallelSubIssuesRead current state from .claude/.loop-state.json
Get current target issue:
hasSubIssues: use subIssues[currentSubIssueIndex]issueIdCheck completion for CURRENT issue:
If current issue COMPLETE:
For sub-issues:
completedSubIssues, increment currentSubIssueIndexFor single issue:
If all sub-issues done:
currentSubIssueIndex >= subIssues.lengthIf current issue NOT complete:
Each iteration should show:
📍 Current: [issue title]
Acceptance criteria:
- [x] Criteria 1 (done)
- [ ] Criteria 2 (pending)
📊 Progress: [completed]/[total] issues done
.claude/.loop-state.jsonThe stop hook (hooks/scripts/loop-controller.sh):
You MUST call Linear MCP tools to update issues. Don't just describe updates - actually call the tools!
IMMEDIATELY call Linear to update status:
Tool: update_issue
Parameters:
- issueId: [current sub-issue ID]
- stateId: [In Progress state ID]
Add a comment:
Tool: create_comment
Parameters:
- issueId: [current sub-issue ID]
- body: "🤖 Starting implementation via loop mode (iteration [N])"
Add progress comments for significant updates:
Tool: create_comment
Parameters:
- issueId: [current sub-issue ID]
- body: "Progress: [what was done]\n\nFiles changed:\n- [file1]\n- [file2]"
Update status to Done:
Tool: update_issue
Parameters:
- issueId: [current sub-issue ID]
- stateId: [Done state ID]
Add completion comment:
Tool: create_comment
Parameters:
- issueId: [current sub-issue ID]
- body: "✅ Implementation complete\n\n## What was done\n[summary]\n\n## Files changed\n- [files]\n\n## Tests\n[test status]"
Update parent issue:
Tool: update_issue
Parameters:
- issueId: [parent issue ID]
- stateId: [Done state ID]
Tool: create_comment
Parameters:
- issueId: [parent issue ID]
- body: "✅ All sub-issues complete\n\nCompleted: [count] sub-issues\nIterations: [total]"
Before updating, get available states:
Tool: list_issue_statuses
Find the state IDs for "In Progress" and "Done" from the response.
development
Sync design tokens and components from a codebase to a Pencil canvas (`.pen` files), or set up a Pencil canvas from a style guide when no codebase exists. Use when the user says "sync pencil", "setup pencil", "configure pencil", "pencil sync", "sync tokens to pencil", "build pencil component library", or names Pencil/`.pen` files explicitly. Also triggers when mockups generated by Pencil don't match project conventions.
development
--- name: figma version: 1.6.0 description: Use when user says "figma", "figma it", "sync figma", "figma mockup", "create figma file", "design to figma", "figma from PRD", "figma from journey", "build in figma", or "figma design system" — anything that creates, syncs, or updates Figma design systems, components, variables, mockups, or front-end-ready screens. Always enumerates the linked Figma library FIRST (library-driven discovery, not per-need search), produces a block→DS mapping table for us
development
Use when the user wants to build Webflow pages, templates, or components, with or without Figma designs as reference.
testing
Use when the user wants to verify an implementation, validate acceptance criteria, or run a Vorbit-style post-change check using shared project rules.