Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/thkt/dotclaude/researchnpx skills add thkt/dotclaude --skill researchgit clone --depth 1 https://github.com/thkt/dotclaudeWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00090 | $0.02512 |
| Opus 5 | $0.00045 | $0.01256 |
| Sonnet 5 | $0.00018 | $0.00502 |
| Haiku 4.5 | $0.00009 | $0.00251 |
Grade A, and why
research scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/research - プロジェクト / 技術調査
コードベースを調査し、発見事項をソース付きで記録する。実装は伴わない。
入力
調査対象は $ARGUMENTS で受け取る。自由記述のトピックまたは質問。空なら AskUserQuestion でユーザーに確認する。
ソース記法
事実は file:line かコマンド出力、推論は inferred from X、未検証は unknown, requires X。各 Phase と出力テンプレートの言うソース記法はこれで、他の形式は認めない。
Phase 1: アウトカム参照
.claude/OUTCOME.md を読む。存在しない場合は /outcome で雛形を生成する。調査が Non-goals へ踏み込む場合は、進める前にユーザーへ確認する。
Phase 2: 過去調査スキャン
$ARGUMENTS から小文字ハイフン区切りの slug を作り、${CLAUDE_SKILL_DIR}/scripts/find-prior-research.py <slug> .claude/workspace/research を実行する。標準出力の JSON { candidates: [{file, shared}, ...], slug_words: int } (shared 降順) をパースする。
- 候補が 0 件のとき、レポートの Prior research を
none foundとして先へ進む - shared 2 以上、または shared が
slug_wordsと等しい候補は下表のとおり引き継ぐ - 残る shared 1 の候補は、slug が 2 語以上でファイル名の語の重なりだけが根拠なので、下表の引き継ぎ対象外とし、レポートの References にパスと shared 数を記載するに留める
| 抽出元 | 引き継ぎ先 | 扱い |
|---|---|---|
| Key Findings 表 | Phase 7 | ベースラインとして再検証または上書き |
| Constraints 表 | Phase 4 | 引き継ぎ元の Domain が現在の Domain と一致するときだけ入力として使い、一致しなければ再発見に戻す |
| Disconfirmation 結果 | Phase 7 | 参照する |
Phase 3: 意図とドメインの明確化
$ARGUMENTS で意図とドメインの両方が明確なら省略する。そうでなければ AskUserQuestion で選ばせる。意図の選択肢は Feature planning、Bug investigation、Understanding。ドメインの選択肢は Data model、API、Infrastructure、General。
Phase 4: ドメインスコープ並列調査
入力は 2 つある。Phase 3 が選ばせた意図とドメインが下のドメイン表の行を決め、Phase 2 の引き継ぎ表が渡す Constraints 表は、引き継ぎ元の Domain が現在の Domain と一致するときだけ入力に取る。
Explore、ugrep、bfs、Read を並列起動する。各コマンドと生出力は scratch にそのまま追記する。これが監査証跡で、Phase 7 の Disconfirmation はここから直接引用し再構築しない。発見事項にはその場でソースを書く。
意図が Feature planning か Bug investigation なら Agent(subagent_type: explorer-feature) も起動する。この起動はバックグラウンドで走るので、他の探索を続けながら完了通知を待つ。返り値は { findings: [{ statement: string, source: string }] } の JSON 1 object で受け取り、受け取るまで次の Phase へ進まない。この起動条件に当たるとき、または .codegraph/ index があるときは ${CLAUDE_SKILL_DIR}/references/tactics.md を読み、該当する手段を適用する。
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 102 lines · 90 tokens per session scan A 53c6ed6a3357
research is a skill published in the GitHub repository thkt/dotclaude (11 stars, last pushed 3d ago), licensed MIT. It adds 90 tokens to every session and 2,512 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
create-modal
Create declarative modals using the modal library API. Covers modal types (confirm, input, select, form), sections (Text, Buttons, Input, Textarea, Checkbox, List, Combo, When, Custom), rendering with OverlayModal, and keyboard/mouse handling. Use when adding modals or dialogs to the application.
merge-strategy
Git merge strategies, conflict resolution approaches, merge vs rebase recommendations, and branch integration patterns in sidecar. Covers pull strategy menu, direct merge workflow, squash merge, commit message templates, configurable defaults, and protected branches. Use when working on git merge features or making…
worktree-switching
Git worktree support in sidecar: worktree detection, switching between worktrees, worktree state management, and plugin reinitialization. Covers the full lifecycle of worktree context switching including registry reinit, per-worktree state persistence, deleted worktree detection and fallback. Use when working on git…
autoprompt
Explicit-only useful-first orchestration. Invoke /autoprompt to turn a mission into one executable roadmap, build dependency-safe lanes, and verify the result with independent reviewers. Never infer invocation from ordinary requests. Never resume from leftover artifacts without an explicit resume instruction.
autoprompt
Explicit-only useful-first orchestration. Invoke /autoprompt to turn a mission into one executable roadmap, build dependency-safe lanes, and verify the result with independent reviewers. Never infer invocation from ordinary requests. Never resume from leftover artifacts without an explicit resume instruction.
openlore-brainstorm
Transform a feature idea into an annotated story using a Domain Sketch or Constrained Option Tree. Use when asked to brainstorm, explore, or shape a feature before implementation.