tc-tracker
Use when the user asks to track technical changes, create change records, manage TC lifecycles, or hand off work between AI sessions. Covers init/create/update/status/resume/close/export workflows for structured code change documentation.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o tc-tracker.zip https://jpskill.com/download/21879.zip && unzip -o tc-tracker.zip && rm tc-tracker.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/21879.zip -OutFile "$d\tc-tracker.zip"; Expand-Archive "$d\tc-tracker.zip" -DestinationPath $d -Force; ri "$d\tc-tracker.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
tc-tracker.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
tc-trackerフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 10
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] tc-tracker
TCトラッカー
すべてのコード変更を、構造化されたJSONレコード、強制的なステートマシン、および以前のAIセッションが期限切れになったときに新しいAIセッションがクリーンに作業を再開できるセッションハンドオフ形式で追跡します。
概要
テクニカルチェンジ(TC)は、何が変更されたか、なぜ変更されたか、誰が変更したか、いつ変更されたか、どのようにテストされたか、そして次のセッションに向けて作業がどこまで進んでいるかを記録する構造化されたレコードです。レコードは、ターゲットプロジェクト内のdocs/TC/にJSONとして保存され、厳格なスキーマとステートマシンに対して検証されます。
ユーザーが以下の場合は、このスキルを使用してください。
- 「この変更を追跡する」と依頼したり、コード変更の監査証跡を求めたりする場合
- 進行中の作業を将来のAIセッションに引き継ぎたい場合
- コミットメッセージ以上の構造化されたリリースノートが必要な場合
- 既存のプロジェクトをオンボーディングし、遡及的な変更ドキュメントが必要な場合
/tc init、/tc create、/tc update、/tc status、/tc resume、または/tc closeを要求する場合
以下の場合は、このスキルを使用しないでください。
- ユーザーがgit履歴からの変更ログのみを求めている場合(
engineering/changelog-generatorを使用してください) - ユーザーが技術的負債項目のみを追跡したい場合(
engineering/tech-debt-trackerを使用してください) - 変更が些細なもので(誤字、フォーマット)、動作に影響を与えない場合
ストレージレイアウト
各プロジェクトは、TCを{project_root}/docs/TC/に保存します。
docs/TC/
├── tc_config.json # プロジェクト設定
├── tc_registry.json # マスターインデックス + 統計
├── records/
│ └── TC-001-04-05-26-user-auth/
│ └── tc_record.json # 真実の源
└── evidence/
└── TC-001/ # ログスニペット、コマンド出力、スクリーンショット
TC ID規則
- 親TC:
TC-NNN-MM-DD-YY-functionality-slug(例:TC-001-04-05-26-user-authentication) - サブTC:
TC-NNN.AまたはTC-NNN.A.1(文字 = リビジョン、数字 = サブリビジョン) NNNは連番、MM-DD-YYは作成日、slugはケバブケースです。
ステートマシン
planned -> in_progress -> implemented -> tested -> deployed
| | | | |
+-> blocked -+ +- in_progress <-------+
| (rework / hotfix)
+-> planned
完全な遷移表とリカバリフローについては、references/lifecycle.mdを参照してください。
ワークフローコマンド
このスキルには、TCレコードに対して決定論的でstdlibのみの操作を実行する5つのPythonスクリプトが付属しています。それぞれが--helpと--jsonをサポートしています。
1. プロジェクトで追跡を初期化する
python3 scripts/tc_init.py --project "My Project" --root .
docs/TC/、docs/TC/records/、docs/TC/evidence/、tc_config.json、およびtc_registry.jsonを作成します。冪等であり、再実行すると現在の統計とともに「既に初期化済み」と報告されます。
2. 新しいTCレコードを作成する
python3 scripts/tc_create.py \
--root . \
--name "user-authentication" \
--title "Add JWT-based user authentication" \
--scope feature \
--priority high \
--summary "Adds JWT login + middleware" \
--motivation "Required for protected endpoints"
次の連番のTC IDを生成し、レコードディレクトリを作成し、完全に設定されたtc_record.json(ステータスplanned、R1作成リビジョン)を書き込み、レジストリを更新します。
3. TCレコードを更新する
# ステータス遷移(ステートマシンに対して検証されます)
python3 scripts/tc_update.py --root . --tc-id TC-001-04-05-26-user-auth \
--set-status in_progress --reason "Starting implementation"
# ファイルを追加する
python3 scripts/tc_update.py --root . --tc-id TC-001-04-05-26-user-auth \
--add-file src/auth.py:created
# ハンドオフデータを追加する
python3 scripts/tc_update.py --root . --tc-id TC-001-04-05-26-user-auth \
--handoff-progress "JWT middleware wired up" \
--handoff-next "Write integration tests" \
--handoff-next "Update README"
すべての変更は、連番のR<n>リビジョンエントリを追加し、updatedを更新し、アトミックに書き込む前に(.tmpに書き込み、その後リネーム)スキーマに対して再検証します。
4. ステータスを表示する
# 単一のTC
python3 scripts/tc_status.py --root . --tc-id TC-001-04-05-26-user-auth
# すべてのTC(レジストリの概要)
python3 scripts/tc_status.py --root . --all --json
5. レコードまたはレジストリを検証する
python3 scripts/tc_validator.py --record docs/TC/records/TC-001-.../tc_record.json
python3 scripts/tc_validator.py --registry docs/TC/tc_registry.json
バリデーターはスキーマを強制し、ステートマシンの合法性をチェックし、連番のR<n>およびT<n> IDを検証し、承認の一貫性(approved=trueにはapproved_byとapproved_dateが必要)をアサートします。
完全なスキーマについては、references/tc-schema.mdを参照してください。
スラッシュコマンドディスパッチャー
このリポジトリには、サブコマンドに基づいてこれらのスクリプトをディスパッチする/tcスラッシュコマンドがcommands/tc.mdに付属しています。
| コマンド | アクション |
|---|---|
/tc init |
現在のプロジェクトに対してtc_init.pyを実行します |
/tc create <name> |
フィールドの入力を促し、tc_create.pyを実行します |
/tc update <tc-id> |
ユーザーが記述した変更をtc_update.py経由で適用します |
/tc status [tc-id] |
tc_status.pyを実行します |
/tc resume <tc-id> |
ハンドオフを表示し、以前のセッションをアーカイブし、新しいセッションを開始します |
/tc close <tc-id> |
deployedに遷移させ、承認を設定します |
/tc export |
すべての派生アーティファクトを再レンダリングします |
/tc dashboard |
レジストリの概要を再レンダリングします |
スラッシュコマンドはユーザーインターフェースであり、Pythonスクリプトはエンジンです。
セッションハンドオフ形式
ハンドオフブロックは各TC内のsession_context.handoffにあり、AIの継続性にとって最も重要なフィールドです。これには以下が含まれます。
progress_summary— 何が完了したかnext_steps— 残りのアクションの順序付きリストblockers— 進行を妨げているものkey_context— 次のボットが知っておくべき重要な決定、落とし穴、パターンfiles_in_progress— 編集中のファイルとその状態(editing、needs_review、partially_done、ready)decisions_made— 根拠とタイムスタンプ付きのアーキテクチャ上の決定
references/handoff-format.mdを参照してください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
TC Tracker
Track every code change with structured JSON records, an enforced state machine, and a session handoff format that lets a new AI session resume work cleanly when a previous one expires.
Overview
A Technical Change (TC) is a structured record that captures what changed, why it changed, who changed it, when it changed, how it was tested, and where work stands for the next session. Records live as JSON in docs/TC/ inside the target project, validated against a strict schema and a state machine.
Use this skill when the user:
- Asks to "track this change" or wants an audit trail for code modifications
- Wants to hand off in-progress work to a future AI session
- Needs structured release notes that go beyond commit messages
- Onboards an existing project and wants retroactive change documentation
- Asks for
/tc init,/tc create,/tc update,/tc status,/tc resume, or/tc close
Do NOT use this skill when:
- The user only wants a changelog from git history (use
engineering/changelog-generator) - The user only wants to track tech debt items (use
engineering/tech-debt-tracker) - The change is trivial (typo, formatting) and won't affect behavior
Storage Layout
Each project stores TCs at {project_root}/docs/TC/:
docs/TC/
├── tc_config.json # Project settings
├── tc_registry.json # Master index + statistics
├── records/
│ └── TC-001-04-05-26-user-auth/
│ └── tc_record.json # Source of truth
└── evidence/
└── TC-001/ # Log snippets, command output, screenshots
TC ID Convention
- Parent TC:
TC-NNN-MM-DD-YY-functionality-slug(e.g.,TC-001-04-05-26-user-authentication) - Sub-TC:
TC-NNN.AorTC-NNN.A.1(letter = revision, digit = sub-revision) NNNis sequential,MM-DD-YYis the creation date, slug is kebab-case.
State Machine
planned -> in_progress -> implemented -> tested -> deployed
| | | | |
+-> blocked -+ +- in_progress <-------+
| (rework / hotfix)
+-> planned
See references/lifecycle.md for the full transition table and recovery flows.
Workflow Commands
The skill ships five Python scripts that perform deterministic, stdlib-only operations on TC records. Each one supports --help and --json.
1. Initialize tracking in a project
python3 scripts/tc_init.py --project "My Project" --root .
Creates docs/TC/, docs/TC/records/, docs/TC/evidence/, tc_config.json, and tc_registry.json. Idempotent — re-running reports "already initialized" with current stats.
2. Create a new TC record
python3 scripts/tc_create.py \
--root . \
--name "user-authentication" \
--title "Add JWT-based user authentication" \
--scope feature \
--priority high \
--summary "Adds JWT login + middleware" \
--motivation "Required for protected endpoints"
Generates the next sequential TC ID, creates the record directory, writes a fully populated tc_record.json (status planned, R1 creation revision), and updates the registry.
3. Update a TC record
# Status transition (validated against the state machine)
python3 scripts/tc_update.py --root . --tc-id TC-001-04-05-26-user-auth \
--set-status in_progress --reason "Starting implementation"
# Add a file
python3 scripts/tc_update.py --root . --tc-id TC-001-04-05-26-user-auth \
--add-file src/auth.py:created
# Append handoff data
python3 scripts/tc_update.py --root . --tc-id TC-001-04-05-26-user-auth \
--handoff-progress "JWT middleware wired up" \
--handoff-next "Write integration tests" \
--handoff-next "Update README"
Every change appends a sequential R<n> revision entry, refreshes updated, and re-validates against the schema before writing atomically (.tmp then rename).
4. View status
# Single TC
python3 scripts/tc_status.py --root . --tc-id TC-001-04-05-26-user-auth
# All TCs (registry summary)
python3 scripts/tc_status.py --root . --all --json
5. Validate a record or registry
python3 scripts/tc_validator.py --record docs/TC/records/TC-001-.../tc_record.json
python3 scripts/tc_validator.py --registry docs/TC/tc_registry.json
Validator enforces the schema, checks state-machine legality, verifies sequential R<n> and T<n> IDs, and asserts approval consistency (approved=true requires approved_by and approved_date).
See references/tc-schema.md for the full schema.
Slash-Command Dispatcher
The repo ships a /tc slash command at commands/tc.md that dispatches to these scripts based on subcommand:
| Command | Action |
|---|---|
/tc init |
Run tc_init.py for the current project |
/tc create <name> |
Prompt for fields, run tc_create.py |
/tc update <tc-id> |
Apply user-described changes via tc_update.py |
/tc status [tc-id] |
Run tc_status.py |
/tc resume <tc-id> |
Display handoff, archive prior session, start a new one |
/tc close <tc-id> |
Transition to deployed, set approval |
/tc export |
Re-render all derived artifacts |
/tc dashboard |
Re-render the registry summary |
The slash command is the user interface; the Python scripts are the engine.
Session Handoff Format
The handoff block lives at session_context.handoff inside each TC and is the single most important field for AI continuity. It contains:
progress_summary— what has been donenext_steps— ordered list of remaining actionsblockers— anything preventing progresskey_context— critical decisions, gotchas, patterns the next bot must knowfiles_in_progress— files being edited and their state (editing,needs_review,partially_done,ready)decisions_made— architectural decisions with rationale and timestamp
See references/handoff-format.md for the full structure and fill-out rules.
Validation Rules (Always Enforced)
- State machine — only valid transitions are allowed.
- Sequential IDs —
revision_historyusesR1, R2, R3...;test_casesusesT1, T2, T3.... - Append-only history — revision entries are never modified or deleted.
- Approval consistency —
approved=truerequiresapproved_byandapproved_date. - TC ID format — must match
TC-NNN-MM-DD-YY-slug. - Sub-TC ID format — must match
TC-NNN.AorTC-NNN.A.N. - Atomic writes — JSON is written to
.tmpthen renamed. - Registry stats — recomputed on every registry write.
Non-Blocking Bookkeeping Pattern
TC tracking must NOT interrupt the main workflow.
- Never stop to update TC records inline. Keep coding.
- At natural milestones, spawn a background subagent to update the record.
- Surface questions only when genuinely needed ("This work doesn't match any active TC — create one?"), and ask once per session, not per file.
- At session end, write a final handoff block before closing.
Retroactive Bulk Creation
For onboarding an existing project with undocumented history, build a retro_changelog.json (one entry per logical change) and feed it to tc_create.py in a loop, or extend the script for batch mode. Group commits by feature, not by file.
Anti-Patterns
| Anti-pattern | Why it's bad | Do this instead |
|---|---|---|
Editing revision_history to "fix" a typo |
History is append-only — tampering destroys the audit trail | Add a new revision that corrects the field |
| Skipping the state machine ("just set status to deployed") | Bypasses validation and hides skipped phases | Walk through in_progress -> implemented -> tested -> deployed |
| Creating one TC per file changed | Fragments related work and explodes the registry | One TC per logical unit (feature, fix, refactor) |
| Updating TC inline between every code edit | Slows the main agent, wastes context | Spawn a background subagent at milestones |
Marking approved=true without approved_by |
Validator will reject; misleading audit trail | Always set approved_by and approved_date together |
Overwriting tc_record.json directly with a text editor |
Risks corruption mid-write and skips validation | Use tc_update.py (atomic write + schema check) |
Putting secrets in notes or evidence |
Records are committed to the repo | Reference an env var or external secret store |
| Reusing TC IDs after deletion | Breaks the sequential guarantee and confuses history | Increment forward only — never recycle |
Letting next_steps go stale |
Defeats the purpose of handoff | Update on every milestone, even if it's "nothing changed" |
Cross-References
engineering/changelog-generator— Generates Keep-a-Changelog release notes from Conventional Commits. Pair it with TC tracker: TC for the granular per-change audit trail, changelog for user-facing release notes.engineering/tech-debt-tracker— For tracking long-lived debt items rather than discrete code changes.engineering/focused-fix— When a bug fix needs systematic feature-wide repair, run/focused-fixfirst then capture the result as a TC.project-management/decision-log— Architectural decisions made inside a TC'sdecisions_madeblock can also be promoted to a project-wide decision log.engineering-team/code-reviewer— Pre-merge review fits naturally into thetested -> deployedtransition; capture the reviewer inapproval.approved_by.
References in This Skill
- references/tc-schema.md — Full JSON schema for TC records and the registry.
- references/lifecycle.md — State machine, valid transitions, and recovery flows.
- references/handoff-format.md — Session handoff structure and best practices.
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (10,325 bytes)
- 📎 README.md (2,278 bytes)
- 📎 references/handoff-format.md (5,291 bytes)
- 📎 references/lifecycle.md (4,037 bytes)
- 📎 references/tc-schema.md (5,386 bytes)
- 📎 scripts/tc_create.py (9,936 bytes)
- 📎 scripts/tc_init.py (6,861 bytes)
- 📎 scripts/tc_status.py (7,335 bytes)
- 📎 scripts/tc_update.py (14,181 bytes)
- 📎 scripts/tc_validator.py (14,226 bytes)