Skip to content

#1175 Link new tickets to their blockers and parents - #1249

Merged
williamthorsen merged 6 commits into
mainfrom
1175
Aug 9, 2026
Merged

#1175 Link new tickets to their blockers and parents#1249
williamthorsen merged 6 commits into
mainfrom
1175

Conversation

@williamthorsen

@williamthorsen williamthorsen commented Aug 9, 2026

Copy link
Copy Markdown
Owner

What

The create-ticket skill now instructs agents to propose a blocked-by, blocking, or parent relationship when the reason for creating the ticket implies one, confirm it with the user, and to record it on the tracker itself rather than as prose in the ticket body. The --blocked-by, --blocking, and --parent flags set the relationship directly.

Why

Work that deserves more than one pull request gets more than one ticket, and those tickets stand in real relationships to each other. Reaching the forge unlinked, they lost those relationships to whatever a body happened to say, leaving the tracker's own blocker and sub-issue views blank on work that had them.

Details

🎉 Features

  • An ## Arguments section declares --parent, --blocked-by, and --blocking, each taking ticket references in the project's own form. related is absent from the vocabulary because GitHub cannot express it.
  • A new step 4 decides the relationships from the reason the ticket is being created, sharpened by the ticket the current branch derives from. An explicit argument replaces the inference for its own relationship. Where nothing applies, the step passes silently, so the common backlog-idea case gains no prompt.
  • Deciding sits after platform resolution, so a confirmation can name a relationship the resolved forge cannot express while it is still free to drop.
  • A new step 7 applies the relationships once the ticket exists, carrying all three in a single gh issue edit call on the GitHub path. Applying after creation means a rejected reference costs the link and never the ticket.
  • Nothing in the relationship path can abort the run. A forge that expresses no relationships, a type it cannot express, a failed call, and a path that creates no remote ticket at all are each recorded and skipped, and the completion output names every relationship created and every one skipped with its reason.
  • The GitHub path is documented against the gh 2.94 flags rather than the REST dependencies endpoint they replace, which takes an issue's database id and forces a lookup the flags removed.

♻️ Refactoring

  • Two inserted steps shift four others, so every step cross-reference in the skill was renumbered as its own pass.

🧪 Tests

  • create-ticket joins the reinforced-skills list, so the action-items convention it now inlines is held in place against a later DRY sweep.

Closes #1175

`create-ticket` proposes the relationships a new ticket should carry — parent, blocked by, or blocking — and confirms them before the ticket is created. A ticket that carries none is created without a prompt.

The proposal is overridden with `--parent`, `--blocked-by`, and `--blocking`, each taking ticket references in the project's own form.
`create-ticket` sets the parent, blocked-by, and blocking relationships it proposed, and reports which ones landed. A relationship the platform cannot express, or one whose target it rejects, is skipped with its reason rather than stopping the run — the ticket is created either way.

The reported reasons are how a platform's missing relationship surface becomes visible.
…ences

Every step cross-reference in `create-ticket` names the step it means, so an agent following one reaches the step the text describes.
A relationship confirmed before creation is reported as skipped when the run produces no remote ticket. The Jira path and the no-remote fallback both reach the reporting step rather than routing around it, so a confirmed relationship cannot disappear in silence.

The `gh` version note also gives the GitHub Enterprise Server floors: a parent needs 3.17, and the two blocking relationships need 3.19.
`create-ticket` joins `REINFORCED_SKILLS`, so the action-items include at its relationship confirmation is held in place against a DRY-driven refactor.
The note beside `create-ticket`'s relationship call names the `gh` version floor and the REST endpoint to avoid, and nothing else.
@williamthorsen williamthorsen added feature Added or improved external functionality scope:agents labels Aug 9, 2026
@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

Dependency audit

Production dependency audit passed.

@williamthorsen williamthorsen self-assigned this Aug 9, 2026
@williamthorsen
williamthorsen marked this pull request as ready for review August 9, 2026 20:26
@williamthorsen
williamthorsen merged commit 589a398 into main Aug 9, 2026
3 checks passed
@williamthorsen
williamthorsen deleted the 1175 branch August 9, 2026 20:37
williamthorsen added a commit that referenced this pull request Aug 13, 2026
…e-v0.3.0 codeassembly-v0.9.0 factory-v0.2.6 codeassembly-mcp-v0.2.5

codeassembly-v0.9.0
- #1288 feat: State mutability and name the lede reader at the artifact type lists (#1303)
- #1285 fix: Require plain bullets for checklists on both update-jira-ticket paths (#1302)
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1294 feat: Specify artifact mutability and its sanctioned exceptions (#1297)
- #1293 fix: Present and classify discretionary findings as actionable (#1295)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1280 feat: Add a refresh path that edits an existing AGENTS.md instead of redrafting it (#1287)
- #1055 feat: Replace the lede doctrine with corpus-derived guidance and retire the changelog-writer (#1286)
- deps: Upgrade all deps to latest version
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1263 refactor: Retire the deferred-lint mechanism and adopt toolbelt.errors in agents (#1279)
- #1262 refactor: Hoist unreadable for-of expressions and promote the lint rule to an error (#1276)
- #1267 fix: Extend the no-hard-wrapping instruction to every GitHub composer (#1275)
- #1177 fix: Rewrite links, tokens, and template variables in a Markdown file support entry (#1273)
- #1176 feat: Add a ticketing-preferences hook to the skills that split and create tickets (#1268)
- #1252 fix: Keep a skill's own sections out of injected guidance (#1266)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)
- #1247 feat: Add a personal tooling-preferences rulebook (#1257)
- #1251 feat: Let a rulebook declare that a guidance hook is how it is reached (#1259)
- #1246 feat: Guard home-domain writes and record their provenance (#1254)
- #1175 feat: Link new tickets to their blockers and parents (#1249)

factory-v0.2.6
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- deps: Upgrade all deps to latest version
- deps: Upgrade all deps to latest version
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)

kb-v0.6.0
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)

codeassembly-lifecycle-v0.4.0
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)

codeassembly-mcp-v0.2.5
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)

codeassembly-run-core-v0.3.0
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Added or improved external functionality scope:agents

Projects

None yet

Development

Successfully merging this pull request may close these issues.

create-ticket cannot create native blocker or parent/child links

1 participant