jpskill.com
✍️ ライティング コミュニティ

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.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して tc-tracker.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → tc-tracker フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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_byapproved_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 — 編集中のファイルとその状態(editingneeds_reviewpartially_doneready
  • 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.A or TC-NNN.A.1 (letter = revision, digit = sub-revision)
  • NNN is sequential, MM-DD-YY is 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 done
  • next_steps — ordered list of remaining actions
  • blockers — anything preventing progress
  • key_context — critical decisions, gotchas, patterns the next bot must know
  • files_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)

  1. State machine — only valid transitions are allowed.
  2. Sequential IDsrevision_history uses R1, R2, R3...; test_cases uses T1, T2, T3....
  3. Append-only history — revision entries are never modified or deleted.
  4. Approval consistencyapproved=true requires approved_by and approved_date.
  5. TC ID format — must match TC-NNN-MM-DD-YY-slug.
  6. Sub-TC ID format — must match TC-NNN.A or TC-NNN.A.N.
  7. Atomic writes — JSON is written to .tmp then renamed.
  8. 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-fix first then capture the result as a TC.
  • project-management/decision-log — Architectural decisions made inside a TC's decisions_made block can also be promoted to a project-wide decision log.
  • engineering-team/code-reviewer — Pre-merge review fits naturally into the tested -> deployed transition; capture the reviewer in approval.approved_by.

References in This Skill

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。