一键导入
linear
Read and draft-mutate Linear issues, comments, and state transitions. All mutations require --i-approve and are logged to .pi/.linear-log.jsonl.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Read and draft-mutate Linear issues, comments, and state transitions. All mutations require --i-approve and are logged to .pi/.linear-log.jsonl.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Initialize a foreign project to use the pi-seshat system. Symlinks .omp/, drops AGENTS.md and CLAUDE.md templates, scaffolds specs/ and .pi/, updates .gitignore. Dry-run by default; --i-approve gates all mutations.
Read-only pre-flight verifier. Checks Honcho/Linear/gh/omp connectivity, agent symlinks, and state-file integrity before a dogfood session. No mutations, no --i-approve gate.
Fetch, cache, and expose the latest official documentation for registered libraries, SDKs, and APIs. Turns Luci's "always check latest official docs" rule from prose into an executable contract.
Fetch, cache, and expose the latest official documentation for registered libraries, SDKs, and APIs. Turns Luci's "always check latest official docs" rule from prose into an executable contract.
Propose-review-apply flow for BMad artifacts (PRDs, UX specs, architecture, briefs). All applies require --i-approve and produce commits with Proposed-By/Approved-By trailers.
Read and draft-mutate GitHub PRs, issues, and API endpoints via gh(1). All mutations require --i-approve. PR creation enforces a Linear-state invariant and is logged to .pi/.github-log.jsonl.
| name | linear |
| description | Read and draft-mutate Linear issues, comments, and state transitions. All mutations require --i-approve and are logged to .pi/.linear-log.jsonl. |
A thin Bun CLI wrapping @linear/sdk for reading and mutating Linear issues.
Reads execute immediately. Mutations are gated behind --i-approve.
Without --i-approve, every mutation prints a full DRY-RUN preview block showing:
Exits 0 on dry-run — it is a successful preview, not an error.
With --i-approve, the mutation executes and one JSON line is appended to .pi/.linear-log.jsonl (mode 0600).
Set LINEAR_API_KEY in your environment:
export LINEAR_API_KEY="lin_api_..."
# Add to ~/.bashrc for persistence
If the key is absent, the CLI exits non-zero with the exact export command to add.
linear list [--team=CUR] [--state=triage|todo|in_progress|in_review|done] [--assignee=me]
List issues. All filters are optional and stackable. State tokens map to Linear workflow state types and names — in_progress and in_review disambiguate by display name pattern.
linear get <KEY>
Fetch a single issue by its human-readable key (e.g., CUR-92). Shows: key, title, state, assignee, team, priority, URL, description.
linear comment <KEY> <body> # dry-run: prints preview
linear comment <KEY> <body> --i-approve # executes: posts comment, logs
Post a comment on an issue. Without --i-approve, prints what would be posted. With --i-approve, calls Linear and logs to .pi/.linear-log.jsonl.
linear transition <KEY> <state> # dry-run: resolves state ID, shows diff
linear transition <KEY> <state> --i-approve # executes: changes state, logs before/after
State tokens: triage, todo, in_progress, in_review, done. State names are resolved to IDs via team.states() at call time and cached per invocation.
linear create --team=<id> --title=<t> [--body=<b>] # dry-run
linear create --team=<id> --title=<t> [--body=<b>] --i-approve # executes: creates issue, logs
Create a new issue. --team and --title are required.
Every approved mutation appends one JSON line to .pi/.linear-log.jsonl (gitignored, mode 0600):
{"ts":"2026-04-24T12:00:00.000Z","action":"comment","key":"CUR-92","before":{...},"after":{...},"approver":"luci"}
# Read operations (immediate)
bun run .omp/skills/linear/bin/linear.ts list
bun run .omp/skills/linear/bin/linear.ts list --team=CUR --state=in_progress
bun run .omp/skills/linear/bin/linear.ts get CUR-92
# Dry-run mutations (safe, exit 0)
bun run .omp/skills/linear/bin/linear.ts comment CUR-92 "Looks good to me"
bun run .omp/skills/linear/bin/linear.ts transition CUR-92 in_review
bun run .omp/skills/linear/bin/linear.ts create --team=team-uuid --title="Fix the widget"
# Approved mutations (execute + log)
bun run .omp/skills/linear/bin/linear.ts comment CUR-92 "Looks good to me" --i-approve
bun run .omp/skills/linear/bin/linear.ts transition CUR-92 done --i-approve
bun run .omp/skills/linear/bin/linear.ts create --team=team-uuid --title="Fix the widget" --body="Details here" --i-approve