linear-refresh
Linear チケットの棚卸し・構造整理・未登録ソース発見を Collect/Discover/Analyze/Approve/Execute の 5 ステップで一気通貫実行する。 既存の外部リンク探索に加え、Slack/GitHub のキーワード検索と逆引きで未紐付きの 外部ソースも発見する。定期的な Linear メンテナンス、または「棚卸し」「リフレッシュ」 「整理」の依頼時に使用する。
Best use case
linear-refresh is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Linear チケットの棚卸し・構造整理・未登録ソース発見を Collect/Discover/Analyze/Approve/Execute の 5 ステップで一気通貫実行する。 既存の外部リンク探索に加え、Slack/GitHub のキーワード検索と逆引きで未紐付きの 外部ソースも発見する。定期的な Linear メンテナンス、または「棚卸し」「リフレッシュ」 「整理」の依頼時に使用する。
Teams using linear-refresh should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/linear-refresh/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How linear-refresh Compares
| Feature / Agent | linear-refresh | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Linear チケットの棚卸し・構造整理・未登録ソース発見を Collect/Discover/Analyze/Approve/Execute の 5 ステップで一気通貫実行する。 既存の外部リンク探索に加え、Slack/GitHub のキーワード検索と逆引きで未紐付きの 外部ソースも発見する。定期的な Linear メンテナンス、または「棚卸し」「リフレッシュ」 「整理」の依頼時に使用する。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Linear Refresh
Linear チケットの棚卸し・構造整理・未登録ソース発見を一気通貫で実行する。
## Options
| Option | 効果 |
|--------|------|
| `--force` | Step 4 (Approve) をスキップ — Plan は表示するが即座に実行 |
| `--skip-discovery` | Step 2 (Discover) をスキップ — リンク済みソースのみ対象 |
| `--cleanup-only` | Step 3 の add 分析をスキップ |
| `--add-only` | Step 3 の cleanup 分析をスキップ |
## Prerequisites
- `linear` CLI が利用可能であること: `which linear && linear --version`
- `/slackcli` スキルが利用可能であること(Slack 探索用)
- チーム選択: `linear team list` → 1チーム: 自動選択 / 複数: ユーザーに選択を求める / 0: エラー終了
## Workflow
```
Step 1: Collect — チケット取得 + リンク済みURLの探索
Step 2: Discover — キーワード検索 + チケット逆引き(--skip-discovery で省略)
Step 3: Analyze — Cleanup + Add 分析を一括実行
Step 4: Approve — 統合Planをユーザーに提示して承認を得る(--force で省略)
Step 5: Execute — Linear API で変更を適用
```
**開始時アナウンス:** 「Linear Refresh を開始します。Step 1: Collect」
## Step 1: Collect
チケットを全件取得し、description/attachments からリンクされた外部ソースを探索する。
1. `/linear-cli` と `/slackcli` スキルを invoke する。
2. チケット一覧を取得: `linear issue list --team {id} --sort priority --all-states --all-assignees --limit 0 --no-pager`
3. アクティブチケットの詳細取得を**並列サブエージェント**でディスパッチ(10件バッチ)。
→ サブエージェント指示: [collect-agent.md](references/collect-agent.md) 「詳細取得エージェント」
4. 結果からURLを抽出。[external-source-exploration.md](references/external-source-exploration.md) に従って分類する。
5. 1ホップURL探索を**並列サブエージェント**でディスパッチ(チケットクラスタ単位)。
→ サブエージェント指示: [collect-agent.md](references/collect-agent.md) 「1ホップ探索エージェント」
6. 2ホップ条件を評価: In Progress + Urgent/High + 72時間以内のアクティビティ。
7. 該当URLがあれば、2ホップ探索を**並列サブエージェント**でディスパッチ。
→ サブエージェント指示: [collect-agent.md](references/collect-agent.md) 「2ホップ探索エージェント」
8. 全結果を [collected-context-schema.md](references/collected-context-schema.md) に従って `.linear-refresh/collected-context.json` にマージ。
## Step 2: Discover
チケットからリンクされていない外部ソースを、キーワード検索とチケット逆引きで発見する。
**`--skip-discovery` 指定時はスキップ。** 空の `discovery_sources: []` を書き込んで次へ進む。
1. collected-context.json から [discovery-strategy.md](references/discovery-strategy.md) に従ってクエリシードを生成する。
2. Slack検索とGitHub検索を**並列サブエージェント**でディスパッチ。
→ サブエージェント指示: [discover-agent.md](references/discover-agent.md)
3. 結果をフィルタリング: Step 1 のソースと重複排除し、無関係なものを除外。
4. `.linear-refresh/collected-context.json` に `discovery_sources[]` として追記。
## Step 3: Analyze
Cleanup と Add の分析を一括実行する。collected-context.json を1回読み込む。
1. [cleanup-guidelines.md](references/cleanup-guidelines.md) を参照。8カテゴリで変更候補を検出する。
**`--add-only` 指定時はスキップ。**
2. [add-guidelines.md](references/add-guidelines.md) を参照。`create`/`link`/`skip` の disposition で検出項目を判定する。
重複排除のため cleanup 結果を参照する。
**`--cleanup-only` 指定時はスキップ。**
3. `discovery_sources` の項目: 同じ分析を適用するが、根拠に `[discovered]` タグを付与する。
4. **セルフチェック:**
- すべての In Progress チケットが少なくとも1回分析されたか。
- discovery_sources の deferred signals が Plan に反映されているか。
- external_sources + discovery_sources の両方が 0 件だがチケットにURLがある場合、異常としてユーザーに報告。
5. `.linear-refresh/plan.json` を書き出す。
## Step 4: Approve
統合 Plan をユーザーに提示して承認を得る。
**`--force` 指定時はスキップ**(Plan は表示するが承認待ちしない)。
表示フォーマット:
```
## Linear Refresh Plan
**Team:** {team_id} ({total_tickets} tickets, {external_sources} linked, {discovery_sources} discovered)
### Cleanup ({N} items)
(カテゴリ別にグループ化: 親子関係、関連、ブロック、ステータス、プロジェクト、コンテキスト、タイトル、期限、重複。空カテゴリは省略。)
### Add ({N} items)
(disposition 別にグループ化: create, link, skip。)
---
Approve? (ok / modify / cancel)
```
- `ok` → Step 5 へ
- ID指定で修正指示 → plan.json を更新し、再提示
- `cancel` → 終了
## Step 5: Execute
承認済み Plan を Linear API で適用する。
1. **Cleanup**(厳密な順序):
a. 親子関係の設定(順次実行)
b. 並列: blockedBy、relatedTo、ステータス変更、プロジェクト紐付け、コンテキスト追加、タイトル変更、期限設定
c. 重複統合 — Done + duplicateOf(順次実行、最後に実行)
2. **Add**(厳密な順序):
a. 新規チケット作成
b. 既存チケットへのリンク(コメント + relation/attachment)
3. エラーハンドリング: 個別失敗はスキップして続行、レート制限はリトライ(最大3回)、Cleanup 失敗は Add をブロックしない。
→ 結果フォーマット: [execution-report.md](references/execution-report.md)
4. `.linear-refresh/result.json` を書き出し、結果サマリーを表示する。
## Red Flags
**禁止事項:**
- 承認済み Plan なしでの変更実行(`--force` 時を除く)
- チケットの削除・アーカイブ(Cleanup は重複を Close するのみ)
- チケット description の書き換え(コンテキスト追加はコメント/attachment で行う)
- Step 1 での2ホップ超の探索(無限展開防止)
- Step 2 での30日超の検索
**必須事項:**
- Step 1 の前に `/linear-cli` と `/slackcli` を invoke
- 要約予算の遵守(優先度別 200/400/800文字)
- 外部ソースからの deferred signals の記録
- discovery 由来の項目には根拠に `[discovered]` タグを付与
- すべての実行失敗を result JSON に記録
## Artifacts
| ファイル | 書き込みステップ | 用途 |
|---------|----------------|------|
| `.linear-refresh/collected-context.json` | Step 1 + Step 2 | 全チケット、リンク済みソース、発見ソース |
| `.linear-refresh/plan.json` | Step 3 | 統合 Cleanup + Add Plan |
| `.linear-refresh/result.json` | Step 5 | 実行結果 |Related Skills
weekly-sync
Linear(SSOT)と顧客向け出力先(GitHub Project 等)の間で定例ミーティング向けの 週次同期を実行する。チケットのスキャン・差分分析・顧客向けDocument作成・出力先転写・ ステータス同期を一気通貫で行う。プロジェクト固有の設定は .weekly-sync/config.md で管理。
triage
URL(Slack/GitHub/その他)から情報収集→周辺コンテキスト探索→分析→Linear Issue 登録を行う初動対応ワークフロー。 問い合わせやバグ報告のトリアージに使用する。
slackcli
Slack CLI: Send messages, read conversations, search, and manage Slack workspaces from the terminal. Use when the user asks anything related to Slack — sending messages, checking unreads, searching conversations, or managing workspaces. Also trigger when a Slack URL is provided (e.g., https://*.slack.com/archives/*, app.slack.com/*) or when the conversation context mentions Slack threads, channels, or messages.
handover
現在のセッションで行った作業・決定事項・アーキテクチャ変更を project-state.json に記録し、 handover.md を生成する。コンテキスト圧縮の直前、/handover の明示呼び出し、 ツール呼び出し累計 50 回超過時、または応答が遅延した時に使用する。
doc-check
コード変更に影響を受ける md ドキュメントを検出し、ユーザー承認後に更新する。 md ファイルの YAML frontmatter に宣言された depends-on(ファイルパス・glob)と 本文中の Markdown リンクから依存グラフを構築し、git diff との突合で影響範囲を特定する。 /doc-check で起動、またはコード変更を含むタスク完了時に実行を検討する。
doc-audit
md ドキュメントの陳腐化・欠落・矛盾を 4 Layer 構造で検出し、ユーザー承認後に修正する。 depends-on 検証、coverage チェック、business-rule/architecture の未文書化知識検出、 readme/CLAUDE.md のメタ整合検査を行う。/doc-audit で起動、または大規模なコード変更後に ドキュメント整合性を確認したい時に使用する。
continue
前セッションの project-state.json から未完了タスク(in_progress/blocked)を特定し、 ユーザー承認後に作業を再開する。/continue の明示呼び出し、"continue from handover" のような継続指示、handover.md への言及を検出した時に使用する。worktree 切り替えと Pipeline Detection も含む。
linearization
Local approximation of nonlinear dynamics
linear-logic
Linear Logic Skill
lhott-cohesive-linear
Cohesive Linear HoTT patterns for interaction entropy with diagram generation. Implements Schreiber's cohesive modalities (♯,♭,ʃ) and Riley's linear modality (♮) for quantum-classical bridging.
linear
Work with Linear issues via CLI - use this skill whenever the user asks about Linear issues, creating, updating, commenting on, or deleting issues, or checking issue status and details
ir:refresh-aliases
Sync irrlicht's model-name alias map against codeburn's upstream BUILTIN_ALIASES. Fetches codeburn's src/models.ts, diffs entries against core/pkg/capacity/aliases.go, and proposes additions/changes as a PR. Use when user says '/ir:refresh-aliases', 'refresh aliases', 'sync codeburn aliases', 'check alias map', or when a session prices at $0 for a known model.