figloops-go-plan-ack
Plan-ack phase — render plan frame in Figma, anchor comment threads, refresh on subsequent runs
Skill by tyburrowbridge
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/tyburrowbridge-figloops-go-plan-ack
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/figloops-go-plan-ack
What's inside
- Skill name
figloops-go-plan-ack- Description
- Plan-ack phase — render plan frame in Figma, anchor comment threads, refresh on subsequent runs
- License
- MIT
- Instructions
- 87 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
## Setup
Resolve `FIGLOOPS_PLUGIN_DIR` from env or `.env`. If unset, abort. Resolve `FIGMA_TOKEN` from env or `.env`. Scripts: `cd "<CONSUMING_REPO>" && "<PLUGIN_DIR>/node_modules/.bin/tsx" "<PLUGIN_DIR>/scripts/<name>.ts" <args>`. Always double-quote paths.
## Style
Status table per round. `AskUserQuestion` options carry no descriptions.
## Errors
TS exits non-zero → relay stderr verbatim, don't advance. MCP failure → prompt user to retry; don't advance.
---
## Handler
1. Mark `[FIGLOOPS] Ack plan in Figma` as `in_progress`.
2. Read `feedback/state.json` and `figloops.config.json` to get `figma.fileKey` and current round.
3. **Mode detection.** If `state.rounds[currentRound].planFrame` is unset → **render+anchor mode** (step 4). Else → **refresh mode** (step 7).
---
### Render + anchor mode
4. **Render frame.** Run:
```bash
PAYLOAD=$("<PLUGIN_DIR>/node_modules/.bin/tsx" "<PLUGIN_DIR>/scripts/render-plan-frame.ts" "feedback/state.json" <round>)
```
Then invoke `use_figma` with `fileKey: <fileKey>`, `code: "$PAYLOAD"`, `description: "Render Round <N> plan frame"`. Capture the returned JSON: `{pageId, frameId, frameName, rows: [{itemId, index, nodeId}]}`.
5. **Persist frame result + assign rowIndex.** Read state.json, set `rounds[round].planFrame = {pageId, frameId, frameName}`, set `rowIndex` on each plan item from `rows`. Write back.
6. **Anchor threads.** Run:
```bash
"<PLUGIN_DIR>/node_modules/.bin/tsx" "<PLUGIN_DIR>/scripts/anchor-plan-threads.ts" "feedback/state.json" <round> "<fileKey>" "$FIGMA_TOKEN"
```
Regenerate snapshot.
Print:
```
📋 Round <N> plan rendered in Figma — <count> items anchored.
Open the Figma file and act on each item:
- ✓ resolve the thread when you've shipped it
- reply `/skip` to mark won't do
- leave it open to discuss
When you're done (or want to check in), re-run `/figloops:go`.
```
Exit. Do not advance.
---
### Refresh mode
7. **Pull thread states.** Run:
```bash
DELTA=$("<PLUGIN_DIR>/node_modules/.bin/tsx" "<PLUGIN_DIR>/scripts/pull-plan-states.ts" "feedback/state.json" <round> "<fileKey>" "$FIGMA_TOKEN")
```
Parse the JSON: `{statuses: {itemId → status}, delta: {shipped: [], wontdo: [], pending: [], removed: []}}`. The script has already written the new statuses back to state.json.
8. **Recovery check — plan frame deleted.** If any item now has `status: 'removed'` AND it was previously not `'removed'`, run `get_metadata` on `planFrame.frameId` to confirm. If frame is missing too, use `AskUserQuestion`:
```
question: "Plan frame for Round <N> is missing. Re-render?"
header: "Recovery"
options:
- label: "Re-render frame and threads (Recommended)"
- label: "Cancel — leave state as-is"
```
- Re-render: clear `planFrame` and clear `commentId`/`botReplyId` on every item, then re-enter render+anchor mode (step 4).
- Cancel: print the delta and exit.
9. **Print delta.**
```
🔄 Refreshed Round <N> plan
+ <N> newly shipped (<#list>)
+ <N> newly skipped (<#list>)
= <N> still pending
```
Regenerate snapshot.
10. **Advance check.** Count items by status from the new state.
- If any item is `pending` → exit. Tell user to keep working in Figma.
- Else (all `shipped` / `wontdo` / `removed`) → mark task `completed`, run `advance-phase.ts close`, invoke skill `figloops-go-close`.From tyburrowbridge/figloops, MIT.
More from tyburrowbridge/figloops
- 0.491score
figloops-discover
tyburrowbridge
Auto-detect modal/panel/menu/tab scenarios by crawling the running app
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
figloops-whatsnew
tyburrowbridge
Show latest figloops release notes and check for available upgrade
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
figloops-go-review
tyburrowbridge
Review phase — display comments by frame; gate on user decision
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
figloops-init
tyburrowbridge
Setup wizard — verifies MCP, PAT, Figma file; collects config
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
figloops-uninstall
tyburrowbridge
Remove all local figloops files (state, config, .env keys).
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
figloops-go-close
tyburrowbridge
Close phase — write changelog and start next round
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
figloops-go-pull
tyburrowbridge
Pull phase — fetch Figma comments and advance
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
figloops-go-push
tyburrowbridge
Push phase — upload images and create Figma frames
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
figloops-go-cluster
tyburrowbridge
Cluster phase — group comments into themes and draft plan
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
figloops-restart
tyburrowbridge
Restart or discard the current round
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
figloops-summary
tyburrowbridge
Render every round to date as a single status table
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
figloops-go-await
tyburrowbridge
Await phase — gate until Figma comments arrive
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Jun 25, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/tyburrowbridge/figloops
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from tyburrowbridge
- 0.491score
figloops-init
tyburrowbridge
Setup wizard — verifies MCP, PAT, Figma file; collects config
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
figloops-whatsnew
tyburrowbridge
Show latest figloops release notes and check for available upgrade
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
figloops-go-review
tyburrowbridge
Review phase — display comments by frame; gate on user decision
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
figloops-discover
tyburrowbridge
Auto-detect modal/panel/menu/tab scenarios by crawling the running app
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
figloops-uninstall
tyburrowbridge
Remove all local figloops files (state, config, .env keys).
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
figloops-summary
tyburrowbridge
Render every round to date as a single status table
SkillCFreshness: C★ 1Claude Code +9
Cite this page
figloops-go-plan-ack skill. Agent Mart. https://agentmart.dev/skills/tyburrowbridge-figloops-go-plan-ack (last updated 2026-10-24)