47 lines
2.0 KiB
Markdown
47 lines
2.0 KiB
Markdown
# Issue tracker: Linear
|
|||
|
|
|
||
|
|
Issues and PRDs for this repo are tracked in Linear, driven entirely through the
|
||
|
|
Linear MCP configured in the current runtime. VPS operation records use the
|
||
|
|
Linear **`vps`** project (team `W1ndy`).
|
||
|
|
|
||
|
|
## Conventions
|
||
|
|
|
||
|
|
- **Create**: `linear_save_issue` (requires `title` + `team`); description as
|
||
|
|
real-newline Markdown.
|
||
|
|
- **Read**: `linear_get_issue <identifier>` (e.g. LIN-123), optionally with
|
||
|
|
`includeRelations`.
|
||
|
|
- **List**: `linear_list_issues`, filtered by `query` / `state` / `assignee` /
|
||
|
|
`team` / `project`.
|
||
|
|
- **Comment**: `linear_save_comment` (pass `issueId` + `body`).
|
||
|
|
- **Labels**: `linear_save_issue` `labels` field (replaces the whole label set).
|
||
|
|
- **Status**: `linear_save_issue` `state` field (type / name / ID).
|
||
|
|
|
||
|
|
Resolve team, project, and cycle names through the Linear MCP rather than
|
||
|
|
hard-coding them.
|
||
|
|
|
||
|
|
## Cross-issue constraint baseline
|
||
|
|
|
||
|
|
The `plans/` directory is retired (removed 2026-08-06). Plans and baselines now
|
||
|
|
live in the vps project document "VPS 运维重构:已确认决策与验收标准". Open work
|
||
|
|
items are tracked as individual issues with dependencies expressed via
|
||
|
|
`blockedBy` / `blocks`. Read that document before adding new tasks.
|
||
|
|
|
||
|
|
## When a skill says "publish to the issue tracker"
|
||
|
|
|
||
|
|
Create a Linear issue with `linear_save_issue` (`project: vps`).
|
||
|
|
|
||
|
|
## When a skill says "fetch the relevant ticket"
|
||
|
|
|
||
|
|
Use `linear_get_issue <identifier>`.
|
||
|
|
|
||
|
|
## Wayfinding operations
|
||
|
|
|
||
|
|
- **Map**: one issue as the map; child tickets link via `parentId`.
|
||
|
|
- **Child ticket**: `linear_save_issue` with `parentId` set to the map; labels
|
||
|
|
`wayfinder:<type>` (research / prototype / grilling / task).
|
||
|
|
- **Blocking**: `linear_save_issue` `blockedBy` / `blocks` (append-only).
|
||
|
|
- **Frontier query**: list the map's open children, excluding those blocked or
|
||
|
|
already assigned; take the first in map order.
|
||
|
|
- **Claim**: `linear_save_issue` `assignee: me`.
|
||
|
|
- **Resolve**: `linear_save_comment` the answer → update `state` → append a
|
||
|
|
pointer under the map's decisions-so-far.
|