Repository navigation
feat(linear): tickets start at kickoff and carry the work's context to the close (OSS-130) - #294
Merged
arzafran merged 1 commit intoNov 5, 2026
Conversation
…o the close (OSS-130)
Merged
4 of 5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
startstep 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
mainonce #293 merges.Summary
startruns once the ask is clarified, before research, and writes the goal, why it matters, the plan and what done means into a## Contextsection of the ticket.updateevent 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.mergedleaves the issue in review while the closing comment still lists "Verified by logic, not live" items, and names them in the comment.linear-gatehook now reminds the agent to file the ticket when it commits on a branch with no issue ID.main,masterand a detached HEAD are skipped. The PR block is unchanged.gh issue createandgh 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).storieschange and allowed the push. It didn't show per-case results.mergedevent holding an issue in review.