33 lines
2.7 KiB
Markdown
33 lines
2.7 KiB
Markdown
# Issue tracker: Linear
|
||
|
||
Issues and specs for this repository live in the {{WORKSPACE_NAME}} Linear workspace, under the `{{TEAM_NAME}}` team (`{{TEAM_KEY}}`){{PROJECT_SENTENCE}}. Use the authenticated official Linear MCP server for all operations. Do not infer the tracker from the Git remote.
|
||
|
||
## Conventions
|
||
|
||
- Create and update issues with `save_issue`; use team `{{TEAM_NAME}}`{{PROJECT_ARGUMENT}} and state `{{OPEN_STATE}}` unless another state is explicitly required.
|
||
- Read one issue with `get_issue`, including relations when blockers matter. Read its discussion with `list_comments`.
|
||
- List issues with `list_issues`, scoped to team `{{TEAM_NAME}}`{{PROJECT_ARGUMENT}}.
|
||
- Add resolution or progress comments with `save_comment`.
|
||
- Apply labels with `save_issue`; create missing Wayfinder labels with `save_issue_label`, scoped to the `{{TEAM_NAME}}` team.
|
||
- Treat state `{{DONE_STATE}}` as closed/resolved and `{{CANCELED_STATE}}` as ruled out of scope. Other states are open.
|
||
- In human-facing text, refer to an issue by its linked title, not only its identifier.
|
||
|
||
## When a skill says “publish to the issue tracker”
|
||
|
||
Create a Linear issue in team `{{TEAM_NAME}}`{{PROJECT_ARGUMENT}}.
|
||
|
||
## When a skill says “fetch the relevant ticket”
|
||
|
||
Resolve its URL, UUID, identifier, or title with `get_issue`; include comments or relations when the workflow needs them.
|
||
|
||
## Wayfinding operations
|
||
|
||
- **Map:** a `{{OPEN_STATE}}` issue labelled `wayfinder:map`, containing Destination, Notes, Decisions so far, Not yet specified, and Out of scope.
|
||
- **Child ticket:** a `{{OPEN_STATE}}` sub-issue whose `parentId` is the map. Apply exactly one type label: `wayfinder:research`, `wayfinder:prototype`, `wayfinder:grilling`, or `wayfinder:task`.
|
||
- **Blocking:** use Linear’s native issue relation by adding blocker identifiers through `blockedBy`. Never encode a blocker only in prose.
|
||
- **Frontier:** list the map’s children, exclude completed and canceled states, exclude assigned issues, then inspect relations and exclude issues with an open blocker. Choose the earliest-created remaining child.
|
||
- **Claim:** assign the ticket to `me` with `save_issue` before any investigation or discussion. Assignment alone is the claim.
|
||
- **Resolve:** add the answer with `save_comment`, set the ticket to `{{DONE_STATE}}`, then add a one-line linked gist to the map’s Decisions-so-far section with an atomic description patch.
|
||
- **Rule out of scope:** comment with the scope reason, set the ticket to `{{CANCELED_STATE}}`, and add a linked one-line gist under the map’s Out of scope section. Do not add it to Decisions so far.
|
||
- **Labels:** maintain team-scoped labels `wayfinder:map`, `wayfinder:research`, `wayfinder:prototype`, `wayfinder:grilling`, and `wayfinder:task`.
|