1仕組みと動作原理
完全プロンプトオーケストレーション:スキル全体がモデルへの分解規律と2つの出力テンプレートのみで構成され、スクリプト、テンプレートファイル、ランタイムコードは一切含みません。成果物はドキュメントファイルではなく「ブロッキング関係を持つ一連のチケット」です。
Break a plan, spec, or conversation into a set of **tickets**: tracer-bullet vertical slices, each declaring the tickets that **block** it.
名称の変遷:キューのスラッグ `to-issues` はピン留めされたHEADで削除済みです。v1.1にて to-plan と to-issues が to-tickets に統合され、to-issues 自体は消滅しました(機能は新スキルへ吸収)。
**`to-plan` and `to-issues` are merged into one `to-tickets` skill, and `to-issues` is deleted.**
コア機構はトレーサーブレットによる垂直スライスとブロッキング関係:各チケットは全レイヤー(スキーマ/API/UI/テスト)を貫通して単体で動作デモが可能であり、1つの新しいコンテキストウィンドウに収まるサイズに制限され、「何にブロックされているか」を明示します。ブロッカーのないチケットが即座に着手可能なフロンティアとなります。
- Each slice cuts a narrow but COMPLETE path through every layer (schema, API, UI, tests): vertical, NOT a horizontal slice of one layer
大規模リファクタリング(Wide Refactoring)は垂直スライスの明示的な例外とし、expand–contract方式でスケジュール:新規パターン追加 → 影響範囲ごとの分割移行 → 旧パターン削除の順序で進行。分割移行でもテスト通過が困難な場合は、共通の統合ブランチを使用し、全バッチが最終統合チケットをブロックすることを許容します。
**Wide refactors are the exception to vertical slicing.** A **wide refactor** is one mechanical change (rename a column, retype a shared symbol) whose **blast radius** fans across the whole codebase, so a single edit breaks thousands of call sites at once and no vertical slice can land green. Don't force it into a tracer bullet; sequence it as **expand–contract**.
公開前の必須ユーザーQuiz:分解結果を番号付き(タイトル / ブロッカー / 提供機能)で一覧化し、粒度、ブロッキング関係の正しさ、統合・分割の要否を1項目ずつ確認し、ユーザーの承認を得るまでトラッカーへ書き込みません。
Are the blocking edges correct: does each ticket only depend on tickets that genuinely gate it?
トラッカー切り替えに応じた出力形態と依存関係表現:ローカルモードでは1チケット1ファイルとし、依存順(ブロッカー優先)で番号付けを行い、単一ファイルへの統合は禁止。実トラッカーモードでは依存順にIssueを作成し、プラットフォーム固有のブロッキング/サブタスク関係を優先しつつ ready-for-agent ラベルを付与します。
- **Local files** → write one file per ticket under `.scratch/<feature-slug>/issues/<NN>-<slug>.md`, numbered from `01` in dependency order (blockers first). Each file's "Blocked by" lists the numbers/titles it depends on. Use the per-ticket file template below: one ticket per file, never a single combined file.
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| cli | gh(GitHub CLI)——条件依赖,真 tracker 模式下的发布与原生依赖关系操作 |
| cli | glab(GitLab CLI)——条件依赖 |
| network | GitHub Issues + 原生 issue dependencies API(经 gh 批量建票、加阻断边、打标签) |
| network | 用户以参数传入的任意 URL:skill 指示 fetch 该引用并读全文与评论(取数面由参数决定,未见主机白名单) |
| package | skills CLI / Claude Code 插件(分发渠道) |
4推奨統制措置と判定根拠
- 外部 API: 外部プラットフォームに対する投稿、リソース作成、または変更の書き込みを実行
- 本地工作目录: ファイルの読み書きおよび成果物の出力: ローカルモード:`.scratch/<feature-slug>/issues/<NN>-<slug>.md` に依存順の番号付きで1チケット1ファイルを出力(単一ファイルへの統合は禁止)
5二重目の独立検証
- [discrepancy] 队列 slug `to-issues` 在 pin commit 是否作为目录存在 — 不存在。HEAD 树内无 skills/engineering/to-issues(也无 to-tickets 之外的 to-plan);CHANGELOG 明写 '`to-plan` and `to-issues` are merged into one `to-tickets` skill, and `to-issues` is deleted.'。本 JSON 以 HEAD 实名 to-tickets 记录,页面 slug 与文件名沿用任务书的 to-issues。
- [ok] 『to-issues 的功能确已并入 to-tickets』是否属实(而非删掉即失去) — CHANGELOG PR #469 记 to-issues 曾获得 wide-refactor(expand–contract)与 Co-located reference blocks;现行 to-tickets/SKILL.md line 40 完整保留该段(expand/migrate/contract 与集成分支兜底),说明能力是迁移而非丢失。
- [ok] 阻断边的落点是否真由 tracker 文档决定(而非 skill 硬编码路径) — to-tickets 正文只给形态要求('Use the platform's native blocking / sub-issue relationship where it has one')与本地路径约定;具体命令(gh api …/dependencies/blocked_by、gh issue edit --add-assignee 等)与 frontier 查询定义全在 setup-matt-pocock-skills/issue-tracker-github.md 内,两处措辞一致。
- [ok] 『无网络外发』类声明是否成立 — skill 文件 token 扫描无 http/curl/fetch 关键字;网络行为全部经 tracker 文档定义的 gh/glab 间接发生,已按条件性记入 network_calls。
- [discrepancy] 取参 fetch 是否有限制(主机白名单/大小/去指令化) — 定位不到任何限制:SKILL.md 只写 'fetch it and read its full body and comments',无主机白名单、无大小上限、无 untrusted/防注入条款;对超长 spec 的截断问题反倒在 docs 页被当作环境问题(建议同窗口不要 clear/compact)来描述,说明 skill 层面无防护。此点按「定位不到不硬写」只记事实,不升级档位。
- [ok] installs / stars 口径 — installs=353800 来自 skills.sh 注册表的旧 slug 记录(queue-100.json 的 to-issues 条目),仓库内无此数值;stars=262519 为 2026-09-15 gh api 实测。口径不同,页面并列时需标注来源。
6結論
0a4d30fcc2a2ce67…