Todo GitHub
Overview
Turn a task checklist into GitHub issues for the current repository using the GH CLI. Include a quick repo scan, dedupe against existing issues, and clear issue bodies with acceptance criteria and likely touchpoints.
Workflow (PowerShell)
1) Confirm repo and auth
- •Run
gh repo view --json nameWithOwner,urlto confirm the target repository. - •If needed, set default repo with
gh repo set-default OWNER/REPO. - •Verify login with
gh auth status.
2) Quick context scan
- •Read
README.mdandDOCS.MDto understand architecture and current behavior. - •Read
AGENTS.mdfor local workflow rules. - •If tasks mention specific subsystems, skim those folders and files with
rg --filesandrg "keyword".
3) Dedupe and plan issues
- •List open issues:
gh issue list --state open --limit 200. - •Search for close matches:
gh issue list --search "keyword". - •To pick what to work on, list issues with details:
- •
gh issue list --state open --limit 200 --json number,title,labels,updatedAt,url
- •
- •Create one issue per checklist item unless the user says to consolidate.
- •Preserve the checklist title text and punctuation exactly (including any prefix).
4) Compose issue content
Use this body template (adjust as needed):
## Summary <1-2 lines on the problem and desired outcome> ## Done when - <acceptance criteria> - ... ## Likely touchpoints - `path/` - `path/` ## Notes - <repro hints, edge cases, constraints>
Guidelines:
- •Copy "Done when" criteria verbatim from the user when provided.
- •Keep "Likely touchpoints" focused on concrete paths in the repo.
- •Include safety constraints (for example, "save raw Markdown text") in Summary or Notes.
5) Create issues safely (avoid PowerShell quoting errors)
Preferred pattern:
@' ## Summary ... '@ | gh issue create --title "Exact issue title" --body-file -
Notes:
- •The
--body-file -pipeline avoids quoting errors and preserves newlines. - •If the title includes single quotes, wrap the title in double quotes.
- •If the title includes double quotes, wrap the title in single quotes and escape single quotes by doubling them.
6) Update issues with comments (default) and update ISSUES.md
- •
When adding new information to an existing issue, append it as a comment using
gh issue comment. - •
Do not rewrite or edit the original issue body unless the user explicitly asks to do so.
- •
If the user requests a body edit, use
gh issue editand mention what changed. - •
Keep
ISSUES.mdin the repo root as the source-of-truth list of issues. - •
After creating each issue, append/update a single line with:
#<number> - <title> - <url>. - •
On issue resolution, remove the line (or move to a resolved section if the user requests).
- •
Make sure
ISSUES.mdalways matches the current GitHub issue state.
Example line:
#9 - FIX — Markdown support + Settings switch (write with Markdown elements) - https://github.com/nibzard/scribe/issues/9
7) Confirm and report
- •Capture issue URLs from the
gh issue createoutput. - •Report the issue numbers and titles back to the user.
Troubleshooting
- •If you see
unknown arguments ..., it is a quoting issue. Re-run with--body-file -and a here-string. - •If you see
not logged in, rungh auth loginand retry. - •If the repo is wrong, run
gh repo set-default OWNER/REPO, then re-run.
Quality checklist
- •Ensure the issue title matches the checklist item exactly.
- •Ensure the body includes Summary, Done when, and Likely touchpoints.
- •Ensure acceptance criteria are explicit and testable.
- •Ensure each issue is independent unless the user asked to group items.
Optional enhancements
- •Use labels:
--label "bug"or--label "fix". - •Use milestones:
--milestone "vX.Y.Z". - •Use projects:
--project "Scribe".