create-ticket: auto-add issues to Project #50 and link sub-issue parents - #656
Conversation
New tickets now get added to the board (Status: Pre Backlog) instead of staying invisible until someone remembers to do it manually. Part-of sub-issues also get linked to their parent via GitHub's native addSubIssue relationship, not just the prose reference, so the project's Parent issue/Sub-issues progress fields actually reflect it. Closes #654
…elopment New tickets now get positioned at the front of the project's item order (updateProjectV2ItemPosition, afterId omitted), which is sufficient to put them first within their own Status group in the grouped board view. Also documents createLinkedBranch for creating the working branch through the issue's native Development link, so it's visible there from the start of work rather than only once a PR exists. Confirmed live this needs repo write access (FORBIDDEN), distinct from the project scope requirement for the board-add mutations above it.
Live-tested against the just-opened PRs #655/#656: Closes #N does not register as a Development link at all when the PR targets a non-default branch (confirmed via closingIssuesReferences and willCloseTarget both being empty/false), not just "won't auto-close on merge" as previously assumed. createLinkedBranch must run first, before any branch of that name is pushed, since there's no mutation to retroactively link an existing one.
troymyree-lang
left a comment
There was a problem hiding this comment.
Approving — clean and thorough. Nice verification discipline: dogfooding the project-add and Status steps on #654, confirming the read-side parent link is real (#630 → #613), and deliberately not fabricating a test sub-issue write to avoid polluting real timelines. The createLinkedBranch-first finding — that Closes #N doesn't even link under Development when the PR targets a non-default branch — is a genuinely useful catch.
Two non-blocking notes: the hardcoded project/field/option IDs are fine given you included the re-derive query, and the write path (addSubIssue / createLinkedBranch) is documented but unexercised until the next real ticket, so it's worth eyeballing the first ticket created via the updated skill to confirm that path works end to end.
Per review on #655/#666: rather than relocating gh_fetch.py to dq-documentation while still vendoring project-specific copies here, the whole skill is now installed at ~/.claude/skills/github-throughput-forecast/ instead - available for any GitHub Projects v2 board, nothing committed into any one repo's history. Removes .claude/scripts/{gh_fetch,forecast,forecast-html}.py, .claude/skills/throughput-forecast/, and the settings.json that existed solely for their Bash allowlist. create-ticket (#654/#656) untouched - separate concern, out of scope. No merged history reverted - this is a normal forward delete commit. PR #665 closed unmerged rather than revised (its fixes carried over into the global install already). Closes #666
Summary
.claude/skills/create-ticket/SKILL.mdso newly-created tickets no longer sit invisible off the project board:updateProjectV2ItemPosition,afterIdomitted).Part of #<parent>tickets get linked to their parent via GitHub's native sub-issue relationship (addSubIssue), not just the prose reference.createLinkedBranchfor creating the working branch through the issue's own Development link, so the branch (not just an eventual PR) shows up there from the start of work.parentlink to Feature: Voice Selection — Hybrid (Device Default + In-App Override) #613 in this repo (so the underlying GitHub feature is genuinely in use here, not hypothetical).Ticket
Closes #654 — same non-default-branch caveat as #653/PR #655: will manually close after merge since
closes #Nwon't auto-fire againstfeature/voice-selection.Type of Change
Testing
Documentation/work-log/654-create-ticket-project-autolink.mdfor the full verification writeup, including the one gap found:createLinkedBranchneeds repo write access distinct from theprojectscope (confirmed live via aFORBIDDENresponse before this PR's write access was granted)Checklist
./gradlew testDebug) — N/A, no app code (app/) touchedgh api graphql, reusing the machine's existinggh auth loginSee
Documentation/work-log/654-create-ticket-project-autolink.mdfor the complete writeup.