config/agents/skills/steering/SKILL.md
Use when the user asks for a plan, implementation checklist, task breakdown, progress tracking, or a durable task artifact for a non-trivial task. Also use when creating or updating steering documents such as requirements, design, or tasklist files under ~/.local/state/steering. Do NOT use for simple Q&A, lightweight investigation with no artifact, or single-file obvious edits that do not need planning. Trigger especially on requests like "改善プラン", "実装計画", "タスクリスト", "進捗管理", or "steeringを使って".
npx skillsauth add kumewata/dotfiles steeringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
中央集約型ディレクトリ(~/.local/state/steering/)に基づいた実装を支援し、tasklist.mdの進捗管理を確実に行うスキルです。
モード判定の前に、現リポジトリの既存 steering ドキュメントを自動取得する。 steering-research エージェント(haiku)に委譲することで、メインコンテキストの消費を最小限に抑える。
リポジトリ名の自動検出(モード1の手順1と同じロジック)
git remote get-url origin → owner--repo 形式に変換
steering-research エージェントに問い合わせ
Agent ツールで steering-research を起動し、以下のプロンプトを渡す:
現リポジトリ {owner}--{repo} の steering ドキュメントを検索し、以下を要約してください:
1. 進行中のタスク (status: in_progress または pending) の一覧
- 各タスク: タイトル、ステータス、完了率、現在のフェーズ
2. 直近で完了したタスク (status: done) があれば、タイトルのみ
検索ベース: ~/.local/state/steering/{owner}--{repo}/
ドキュメントが見つからない場合は「該当なし」と報告してください。
結果に基づくモード判定
新しい機能や変更のためのステアリングファイルを作成します。
リポジトリ名の自動検出
Phase 0 で既に取得済みの場合、この手順はスキップする。
現在の作業ディレクトリから owner/repo 形式のリポジトリ名を取得する:
Step 1: git リポジトリかどうか判定
$ git rev-parse --is-inside-work-tree
Step 2A (git リポジトリ + remote あり):
$ git remote get-url origin
→ origin が存在しない場合: $ git remote | head -1 で最初の remote を使用
→ URL を解析して owner/repo を抽出
URL パターン:
[email protected]:owner/repo.git → owner/repo
https://github.com/owner/repo.git → owner/repo
https://github.com/owner/repo → owner/repo
(GitLab 等も同様: ホスト名の後の最後の2パスセグメント)
Step 2B (git リポジトリ + remote なし):
→ local/<basename of git toplevel> を使用
Step 2C (git リポジトリ外の場合):
→ local/<basename of pwd> を使用
Step 3 (worktree の場合):
$ git rev-parse --git-common-dir
→ メインリポジトリのルートを取得し、そこで Step 2A/2B を再実行して owner/repo を解決
ディレクトリ名への変換: owner/repo のスラッシュをダブルハイフン (--) に変換する。
例: kumewata/dotfiles → kumewata--dotfiles、local/scripts → local--scripts
ステアリングディレクトリの作成
現在の日付を取得し、`~/.local/state/steering/<owner>--<repo>/[YYYYMMDD]-[機能名]/` の形式でディレクトリを作成
プロジェクトドキュメントの確認
プロジェクトの方針を理解するために、以下のドキュメントがあれば確認する:
軽量モード判定
以下のいずれかに該当する場合、軽量モード(tasklist.md のみ)で進める:
軽量モードの場合:
---
title: { タスク名 }
tags: [調査, タスク管理]
mode: lightweight
related: []
repos:
- { owner/repo }
branch: { branch-name }
status: pending
completion: 0%
---
フェーズ構成(軽量モード専用):
## フェーズ1: 調査・分析
- [ ] {調査タスク}
## フェーズ2: 成果物作成
- [ ] {分析結果のドキュメント化}
## フェーズ3: レビュー・報告
- [ ] 成果物の確認
- [ ] 実装後の振り返り
テンプレートからファイル作成(通常モード)
以下のテンプレートを読み込み、プレースホルダーを具体的な内容に置き換えてファイルを作成:
~/.claude/skills/steering/templates/requirements.md → requirements.md~/.claude/skills/steering/templates/design.md → design.md~/.claude/skills/steering/templates/tasklist.md → tasklist.md出力先: ~/.local/state/steering/<owner>--<repo>/YYYYMMDD-[機能名]/
YAML Front Matter の記入
[]owner/repo をリスト形式で設定git rev-parse --abbrev-ref HEAD で取得(detached HEAD の場合は省略)pending(tasklist.md のみ)0%(tasklist.md のみ)tags: カテゴリ分類(3-8個)
use_when: 最重要フィールド。参照すべき状況をユーザーの言葉で記述
keywords: プロジェクト固有の固有名詞(API名、コンポーネント名等)
references: 関連する外部リンク(GitHub Issue/PR/Discussion 等のURL)
---
title: Nix Flakes のマルチデバイス対応
tags: [要件, スコープ, Nix, マルチデバイス]
use_when: >
- Nix Flakes でマルチデバイス対応の要件を確認したいとき
- ユーザー名の動的解決の要件を確認したいとき
keywords: [Nix, Home Manager, builtins.getEnv, --impure]
references:
- "https://github.com/kumewata/dotfiles/issues/1"
related:
- design.md
- tasklist.md
repos:
- kumewata/dotfiles
branch: main
---
design.md のドメイン別セクション選択
design.md テンプレートにはオプションスタブ(HTMLコメント)が含まれる。タスクのドメインに応じて該当セクションを有効化し、不要なコメントを削除する:
tasklist.mdの詳細化
requirements.mdとdesign.mdに基づいて、tasklist.mdのタスクを具体化。
.steering/ の移行リポジトリ内に .steering/ がある場合、中央ディレクトリに移行する:
owner/repo を取得し ~/.local/state/steering/<owner>--<repo>/ に移動repos / branch を追加.steering/ を削除tasklist.mdに従って実装を進め、進捗を確実にドキュメントに記録します。
tasklist.mdが唯一の進捗管理ドキュメント。 全タスクを[x]にするまで作業を継続すること。タスクのスキップは技術的理由のみ許可。詳細なルールは tasklist.md テンプレートの「🚨 タスク完全完了の原則」セクションを参照。
MUST:
[ ]→[x]に更新NEVER:
~/.local/state/steering/<owner>--<repo>/ 配下の tasklist.md を走査repos フィールドを検索status が pending または in_progress のみRead('~/.local/state/steering/<owner>--<repo>/YYYYMMDD-[機能名]/tasklist.md')
全体のタスク構造を把握し、次に着手すべきタスクを特定する。
2-1. 次のタスクを確認
tasklist.mdを読み、次の未完了タスク(`[ ]`)を特定
2-2. 実装を実行
プロジェクトのガイドラインに従って実装
2-3. タスク完了をtasklist.mdに記録(必須)
実装完了後、Editツールで該当行を`[ ]`→`[x]`に更新
例:
old_string: "- [ ] StorageServiceを実装"
new_string: "- [x] StorageServiceを実装"
サブタスクがある場合はサブタスクも個別に`[x]`に更新
2-5. 次のタスクへ → ステップ2-1に戻る
各フェーズ完了時に tasklist.md を読み込み、全タスクが[x]になっているか確認。ユーザーに報告。
振り返りを書く前に、未完了タスク([ ])がないことを確認。未完了がある場合はステップ2に戻る。技術的理由でタスクが不要になった場合のみスキップ可(tasklist.md テンプレートのルールに従う)。
tasklist.mdの「実装後の振り返り」セクションをEditツールで更新:
5タスクごとに確認: tasklist.mdを最近更新したか? 進捗がドキュメントに反映されているか?
実装完了後、tasklist.mdに振り返りを記録します。
[x]であることを確認[x]に更新- [x] タスク名(実装方法を変更: 理由)実装前: tasklist.md読み込み → 次タスク特定
実装後: Edit で[x]更新 → 進捗確認 → ユーザーが見て分かる状態か?
tasklist.mdこそが永続的な進捗ドキュメント(ユーザーが見る)。 実装中は常に「ユーザーがtasklist.mdを見たときに進捗が分かるか?」を自問してください。
tools
Use when creating a new skill or making a substantial change to an existing skill and you also need to design, update, or review Waza-based executable evaluations. This includes deciding whether Waza is warranted, mapping `evals.json` cases into Waza tasks, choosing fixtures and graders, selecting a valid model with `waza models --json`, and running a local-first `waza run` workflow. Do NOT use for installing the Waza CLI itself or for general skill-authoring advice that does not involve Waza; use `skill-creator` for skill design and this skill for the Waza execution layer. Trigger especially when the user mentions Waza, `waza run`, `waza models`, executable evals, compare, graders, fixtures, or wants to validate a skill change with model-backed evaluation.
tools
Use when the user wants Codex to ask Claude Code for a second opinion or review on code, docs, diffs, PR changes, or design notes without modifying files. This delegates bounded review-only analysis through the Claude Code CLI (`claude -p`). Do NOT use for implementation or file edits; keep this skill review-only. Trigger especially when the user says ask Claude, ask Claude Code, cc-delegate, Claude review, second opinion from Claude, compare Codex and Claude, or review this diff/document with Claude Code.
tools
Airflow DAG development skill for writing, reviewing, testing, and debugging Apache Airflow workflows. Use whenever the user mentions Airflow, DAGs, tasks, operators, sensors, schedules, retries, catchup, DAG import errors, DAG parse performance, or workflow orchestration in Python. Also use for Amazon MWAA / Managed Workflows for Apache Airflow work, including MWAA DAG deployment, requirements.txt, plugins.zip, aws-mwaa-docker-images, S3 DAG folders, CloudWatch logs, and MWAA-specific dependency or IAM issues.
development
Use when the user asks for help drafting a GitHub PR description, a PR review comment, or a Slack post in their own tone (i.e., their personal writing voice). The skill detects the context (formal for PR / review, casual for Slack) and target_type (pr_description, pr_review, slack), drafts the body with an explicit reflection step that avoids verbose, mechanical phrasing, and stages the draft to `~/.local/state/tone/drafts/` via `tone-stage-draft.sh`. The user later runs `/tone-capture <url>` after posting, which pairs the staged draft with the final body to build a corpus for future tone tuning. Trigger especially when the user mentions PR description, PR review comment, Slack post, または「文を書いて」「文面を作って」「自分らしく」「トーン」「tone」.