Resolve Slate Issue
Handle $ARGUMENTS.
Use this for one issue at a time when the goal is to prove, fix or classify the
issue, then comment directly on the issue. This combines task issue-first
execution with Slate Plan's live-source, issue-ledger, and Slate v2
verification discipline.
Hard Rules
- Do not open, create, update, or mention a PR.
- Do not include PR metadata lines in the GitHub issue comment.
- Do not include a
Fixes ... issue metadata line in the comment.
- Do not comment until the outcome is verified or intentionally classified as
already fixed/currently accounted.
- Use
gh issue comment ... --body-file ... for the final issue comment.
- If confidence is
95%+ after verification, close the issue after posting the
comment.
- If the required flow cannot be tested honestly, do not close the issue; ask a
human to reproduce the exact flow and report back.
- Start from the issue source, not from old plans or memory.
- Current
.tmp/slate-v2 source wins over issue-time assumptions.
- An issue may name an origin commit. Treat that commit as the report baseline,
not current truth. Later commits may already have fixed it.
- If current
.tmp/slate-v2 is already green for the issue flow, do not patch
code just to make a diff. Classify already-accounted, record evidence, and
comment with current verification.
- If current
.tmp/slate-v2 is red, add the smallest proof row first, fix the
real owner, then verify.
- Do not claim manual IME/mobile/device closure from synthetic browser rows.
plate-2 commands prove planning/docs state only. Slate behavior proof must
run in .tmp/slate-v2.
Intake
- Resolve the issue:
gh issue view <number-or-url> -R udecode/slate --comments --json number,title,body,comments,labels,state,url
If the repo is not udecode/slate, resolve the repo from the URL or current
gh repo, then fetch the same fields.
- Read the issue body, comments, labels, attached images, and attached videos.
- If a video or screen recording exists, use
video-transcripts before
implementation unless an existing cached transcript comment fully covers the
same normalized media URL.
- Extract:
- issue number and title
- exact user flow
- expected behavior
- actual behavior
- local route or package owner
- live reference route when present
- origin commit or branch if present
- likely owner in
.tmp/slate-v2
- browser/device requirement
Current-State Check
Before editing:
- Inspect current
.tmp/slate-v2 source, examples, tests, and routes that own
the issue.
- If the issue names an origin commit, optionally compare that baseline to
current HEAD when it helps explain why the issue is already fixed. Do not
check out old commits unless needed for proof.
- Reproduce against current
.tmp/slate-v2 first.
- Classify current state:
| State |
Meaning |
Action |
red-current |
Current .tmp/slate-v2 still reproduces the issue. |
Add proof row, fix, verify, then comment. |
already-accounted |
Current .tmp/slate-v2 passes the issue flow, likely fixed by later commits or prior work. |
No code change; verify, comment, close if confidence is 95%+. |
needs-manual-proof |
Browser/device/IME proof cannot be honestly automated. |
Run available supporting proof, ask a human to reproduce the exact flow, leave open, and do not overclaim. |
blocked |
Required issue evidence, media, or tooling is inaccessible after a real attempt. |
Do not comment as fixed. Report blocker. |
Execution
For red-current:
- Add the smallest failing proof:
- package test for model/history/clipboard contracts;
- Playwright row for browser behavior;
- manual/browser note only when automation cannot honestly cover it.
- Fix the durable owner in
.tmp/slate-v2.
- Avoid example-local patches unless the bug is truly example-local.
- Run focused verification from
.tmp/slate-v2.
- Run broader Slate v2 gate when the touched surface justifies it.
- Update any local plan or fork dossier only when useful for issue accounting.
- If verification gives
95%+ confidence, close the issue after posting the
comment:
gh issue close <number-or-url> -R udecode/slate
For already-accounted:
- Keep code unchanged.
- Add missing proof only if the issue flow is important and uncovered.
- Verify the current behavior with the smallest honest command or browser
flow.
- Comment as current verified behavior, not as a new fix.
- If confidence is
95%+, close the issue after posting the comment.
For needs-manual-proof:
- Run any supporting automated proof that is honest for the flow.
- Comment with the exact human reproduction request.
- Leave the issue open.
- Do not use the
95-100% confidence line.
Verification
Record exact commands with cwd.
Common Slate v2 gates:
cd .tmp/slate-v2
bun --filter slate-react typecheck
bun check
PLAYWRIGHT_BASE_URL=http://localhost:3100 bun playwright <test-file> --project=chromium --grep "<issue row>"
Use only the commands that fit the touched surface. If bun check fails for an
unrelated broad integration or local-environment reason, isolate the failure and
record why it does not block the issue comment.
Comment Body
Write the final comment to a temp file, then post it:
gh issue comment <number-or-url> -R udecode/slate --body-file <comment-file>
Use this format. Keep it concise. Omit **⚠️ Caveat** when there is no real
caveat.
🟢 95-100% confidence
| Phase | 🧪 Tests | 🌐 Browser |
| ---------- | ----------------------------------------- | ------------------------------ |
| Reproduced | 🔴 <failing proof or issue-current repro> | ✅ <browser/local repro> |
| Verified | 🟢 <passing proof> | ✅ <browser verified behavior> |
**🌐 Browser Check**
- Open `<exact route>`.
- Follow `<exact user flow>`.
- Confirm `<expected fixed/current behavior>`.
**✅ Outcome**
- <What now happens for the user.>
- <What no longer happens.>
**⚠️ Caveat**
- <Only real caveats: manual IME/device gap, already fixed by later commits, or partial browser coverage.>
**🏗️ Design**
- Chosen owner: <runtime/package/example owner>.
- Why not quick patch: <why a local workaround was wrong, or `N/A; already fixed in current v2`.>
- Why not broader change: <why a larger API/runtime change was unnecessary, if applicable.>
**🧪 Verified**
- `<command or browser proof>`
- `<command or browser proof>`
Status words:
- Use
🔴 only when a real failing proof was observed in this run or preserved
from the just-executed plan.
- Use
✅ when evidence exists but the current checkout was already green.
- For
already-accounted, say that plainly in Outcome or Caveat; do not
fake red-green.
- Keep confidence below
95% if browser/device proof is partial or manual-only.
- Close the issue only when the confidence line is
🟢 95-100% confidence.
- When the required browser/device flow cannot be tested, include a caveat like:
Please reproduce the steps above on <browser/device/input method>; leave this open until that confirms the behavior.
Final Handoff
After commenting, answer with:
- issue number
- classification:
red-current -> fixed, already-accounted, or blocker
- comment posted: URL if
gh returns one
- issue closed: yes/no, with reason
- verification commands
- any caveat
Keep it short.
1---2name: resolve-slate-issue3description: Resolve one Slate or Slate v2 GitHub issue end to end, using task-style issue intake plus Slate Plan proof discipline, then post the verified no-PR issue comment with gh.4---56# Resolve Slate Issue78Handle $ARGUMENTS.910Use this for one issue at a time when the goal is to prove, fix or classify the11issue, then comment directly on the issue. This combines `task` issue-first12execution with Slate Plan's live-source, issue-ledger, and Slate v213verification discipline.1415## Hard Rules1617- Do not open, create, update, or mention a PR.18- Do not include PR metadata lines in the GitHub issue comment.19- Do not include a `Fixes ...` issue metadata line in the comment.20- Do not comment until the outcome is verified or intentionally classified as21 already fixed/currently accounted.22- Use `gh issue comment ... --body-file ...` for the final issue comment.23- If confidence is `95%+` after verification, close the issue after posting the24 comment.25- If the required flow cannot be tested honestly, do not close the issue; ask a26 human to reproduce the exact flow and report back.27- Start from the issue source, not from old plans or memory.28- Current `.tmp/slate-v2` source wins over issue-time assumptions.29- An issue may name an origin commit. Treat that commit as the report baseline,30 not current truth. Later commits may already have fixed it.31- If current `.tmp/slate-v2` is already green for the issue flow, do not patch32 code just to make a diff. Classify `already-accounted`, record evidence, and33 comment with current verification.34- If current `.tmp/slate-v2` is red, add the smallest proof row first, fix the35 real owner, then verify.36- Do not claim manual IME/mobile/device closure from synthetic browser rows.37- `plate-2` commands prove planning/docs state only. Slate behavior proof must38 run in `.tmp/slate-v2`.3940## Intake41421. Resolve the issue:4344```bash45gh issue view <number-or-url> -R udecode/slate --comments --json number,title,body,comments,labels,state,url46```4748If the repo is not `udecode/slate`, resolve the repo from the URL or current49`gh` repo, then fetch the same fields.50512. Read the issue body, comments, labels, attached images, and attached videos.523. If a video or screen recording exists, use `video-transcripts` before53 implementation unless an existing cached transcript comment fully covers the54 same normalized media URL.554. Extract:56 - issue number and title57 - exact user flow58 - expected behavior59 - actual behavior60 - local route or package owner61 - live reference route when present62 - origin commit or branch if present63 - likely owner in `.tmp/slate-v2`64 - browser/device requirement6566## Current-State Check6768Before editing:69701. Inspect current `.tmp/slate-v2` source, examples, tests, and routes that own71 the issue.722. If the issue names an origin commit, optionally compare that baseline to73 current HEAD when it helps explain why the issue is already fixed. Do not74 check out old commits unless needed for proof.753. Reproduce against current `.tmp/slate-v2` first.764. Classify current state:7778| State | Meaning | Action |79| -------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |80| `red-current` | Current `.tmp/slate-v2` still reproduces the issue. | Add proof row, fix, verify, then comment. |81| `already-accounted` | Current `.tmp/slate-v2` passes the issue flow, likely fixed by later commits or prior work. | No code change; verify, comment, close if confidence is `95%+`. |82| `needs-manual-proof` | Browser/device/IME proof cannot be honestly automated. | Run available supporting proof, ask a human to reproduce the exact flow, leave open, and do not overclaim. |83| `blocked` | Required issue evidence, media, or tooling is inaccessible after a real attempt. | Do not comment as fixed. Report blocker. |8485## Execution8687For `red-current`:88891. Add the smallest failing proof:90 - package test for model/history/clipboard contracts;91 - Playwright row for browser behavior;92 - manual/browser note only when automation cannot honestly cover it.932. Fix the durable owner in `.tmp/slate-v2`.943. Avoid example-local patches unless the bug is truly example-local.954. Run focused verification from `.tmp/slate-v2`.965. Run broader Slate v2 gate when the touched surface justifies it.976. Update any local plan or fork dossier only when useful for issue accounting.987. If verification gives `95%+` confidence, close the issue after posting the99 comment:100101```bash102gh issue close <number-or-url> -R udecode/slate103```104105For `already-accounted`:1061071. Keep code unchanged.1082. Add missing proof only if the issue flow is important and uncovered.1093. Verify the current behavior with the smallest honest command or browser110 flow.1114. Comment as current verified behavior, not as a new fix.1125. If confidence is `95%+`, close the issue after posting the comment.113114For `needs-manual-proof`:1151161. Run any supporting automated proof that is honest for the flow.1172. Comment with the exact human reproduction request.1183. Leave the issue open.1194. Do not use the `95-100%` confidence line.120121## Verification122123Record exact commands with cwd.124125Common Slate v2 gates:126127```bash128cd .tmp/slate-v2129bun --filter slate-react typecheck130bun check131PLAYWRIGHT_BASE_URL=http://localhost:3100 bun playwright <test-file> --project=chromium --grep "<issue row>"132```133134Use only the commands that fit the touched surface. If `bun check` fails for an135unrelated broad integration or local-environment reason, isolate the failure and136record why it does not block the issue comment.137138## Comment Body139140Write the final comment to a temp file, then post it:141142```bash143gh issue comment <number-or-url> -R udecode/slate --body-file <comment-file>144```145146Use this format. Keep it concise. Omit `**⚠️ Caveat**` when there is no real147caveat.148149```md150🟢 95-100% confidence151152| Phase | 🧪 Tests | 🌐 Browser |153| ---------- | ----------------------------------------- | ------------------------------ |154| Reproduced | 🔴 <failing proof or issue-current repro> | ✅ <browser/local repro> |155| Verified | 🟢 <passing proof> | ✅ <browser verified behavior> |156157**🌐 Browser Check**158159- Open `<exact route>`.160- Follow `<exact user flow>`.161- Confirm `<expected fixed/current behavior>`.162163**✅ Outcome**164165- <What now happens for the user.>166- <What no longer happens.>167168**⚠️ Caveat**169170- <Only real caveats: manual IME/device gap, already fixed by later commits, or partial browser coverage.>171172**🏗️ Design**173174- Chosen owner: <runtime/package/example owner>.175- Why not quick patch: <why a local workaround was wrong, or `N/A; already fixed in current v2`.>176- Why not broader change: <why a larger API/runtime change was unnecessary, if applicable.>177178**🧪 Verified**179180- `<command or browser proof>`181- `<command or browser proof>`182```183184Status words:185186- Use `🔴` only when a real failing proof was observed in this run or preserved187 from the just-executed plan.188- Use `✅` when evidence exists but the current checkout was already green.189- For `already-accounted`, say that plainly in `Outcome` or `Caveat`; do not190 fake red-green.191- Keep confidence below `95%` if browser/device proof is partial or manual-only.192- Close the issue only when the confidence line is `🟢 95-100% confidence`.193- When the required browser/device flow cannot be tested, include a caveat like:194 `Please reproduce the steps above on <browser/device/input method>; leave this195open until that confirms the behavior.`196197## Final Handoff198199After commenting, answer with:200201- issue number202- classification: `red-current -> fixed`, `already-accounted`, or blocker203- comment posted: URL if `gh` returns one204- issue closed: yes/no, with reason205- verification commands206- any caveat207208Keep it short.