Skip to content

feat(linear): tickets start at kickoff and carry the work's context to the close (OSS-130) - #294

Merged
arzafran merged 1 commit into
feat/OSS-129-ticket-standardfrom
feat/OSS-130-ticket-lifecycle
Nov 5, 2026
Merged

arzafran merged 1 commit into
feat/OSS-129-ticket-standardfrom
feat/OSS-130-ticket-lifecycle

Conversation

@vanvasten

Copy link
Copy Markdown
Contributor

What this does

A Linear ticket now exists from the moment a task kicks off and collects the work's context until it closes. Until now most tickets were born when the PR opened, because the start step ran "before the first commit" and nothing checked it. After that they only got status changes and one-line comments ("PR opened", "CI passed", "Merged"), so nobody reading the ticket could tell why the work happened, what was decided, or how it was proven.

Fixes OSS-130.

Stacked on #293 (OSS-129), which adds the closing comment template this reuses. Review #293 first; this PR retargets to main once #293 merges.

Summary

  • Kickoff: start runs once the ask is clarified, before research, and writes the goal, why it matters, the plan and what done means into a ## Context section of the ticket.
  • Milestones, not steps: a new update event covers plan agreed, scope change, blocker and decision. The instructions say milestones only, so the ticket stays readable and each update doesn't cost a subagent for nothing.
  • Closing comment on every task: the template from feat(stories): one shared format for client user stories, tickets, QA and closing comments (OSS-129) #293 now fits any unit of work, not only client stories. It says what changed, what was seen working versus checked by reading code, and what the change adds for the people using the product.
  • Not Done too early: merged leaves the issue in review while the closing comment still lists "Verified by logic, not live" items, and names them in the comment.
  • Reminder, not a block: the linear-gate hook now reminds the agent to file the ticket when it commits on a branch with no issue ID. main, master and a detached HEAD are skipped. The PR block is unchanged.
  • GitHub Issues repos get the same milestones through gh issue create and gh issue comment.

No new files, so no manifest bump.

Test Plan

  • bun test tests/linear-gate.test.ts: 68 pass, including new cases for commit detection past git's global options, the reminder text, issue branches, main/master/detached HEAD, and unmapped repos.
  • bun run typecheck, lint (same 31 warnings as main), lint:links, lint:agents: clean.
  • bun run test: 3187 pass, 8 fail. The same 8 fail on main on this machine (npm-installer x3, safety-net removed-cwd x3, Codex TOML x1, runtime-dependencies x1).
  • The pre-push eval hook ran for the stories change and allowed the push. It didn't show per-case results.
  • Not run end to end: a real session where the reminder fires and the agent files a ticket, or a merged event holding an issue in review.

@arzafran
arzafran merged commit 3836efd into feat/OSS-129-ticket-standard Nov 5, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants