# 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 ` (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 `. ## 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:` (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.