Linear Tracker
Use this when a task wants PRDs/issues published, especially from Rat King flows.
The lock
Before publishing to Linear, call linear_tracker_resolve from the project cwd.
Linear publishing is allowed only when all three are true:
- Project-local policy says Linear: nearest
AGENTS.md,CLAUDE.md,docs/agents/issue-tracker.md, or.pi/settings.jsonpoints to Linear. - Project-local association exists: Linear
teamKeyorteamIdis configured locally. - Capability exists: direct Linear API auth or authenticated Linear MCP exists. Direct auth may come from env vars, common agent-secrets names, or a project-local Linear skill/policy that names a secret such as
rubicon:linear_api_key.
Global auth, global MCP, or a skill mentioning Linear is capability, not routing. Explicit GitHub/not-Linear local policy wins.
Tool workflow
linear_tracker_resolve- If
publishModeislinear_direct, uselinear_tracker_create_issue(s). - If
publishModeislinear_mcp, use the Linear MCP create/read tools and verify readback. - If
publishModeispayload_only, output ready-to-paste payloads and name the missing association/auth. - If
publishModeisnot_linear, use the configured non-Linear tracker. - If
publishModeisunknown, do not guess. Ask for or create local tracker policy.
- If
- Publish blockers first.
- Verify every created issue by fetching it back.
- Return Linear identifiers + URLs only after readback.
Local policy examples
docs/agents/issue-tracker.md:
# Issue tracker
Issue tracker: Linear
Linear workspace: badass
Linear team key: AIH
Linear project: AI Hero Support
or in .pi/settings.json:
{
"issueTracker": {
"provider": "linear",
"linear": {
"teamKey": "AIH",
"projectId": "00000000-0000-0000-0000-000000000000"
}
}
}
Hard rules
- Never claim Linear publishing without verified readback.
- Never publish to Linear because global MCP/auth exists.
- Never override explicit GitHub/not-Linear policy.
- Do not leak tokens. The tools only report auth source, never secret values.