/tc — 技術変更追跡
TC(技術変更)コマンドを実行します。引数: $ARGUMENTS。
$ARGUMENTS が空の場合は、このメニューを表示して停止します。
/tc init このプロジェクトでTC追跡を初期化
/tc create <名前> 新しいTCレコードを作成
/tc update <tc-id> [...] フィールド、ステータス、ファイル、ハンドオフを更新
/tc status [tc-id] 1つのTCまたはレジストリのサマリーを表示
/tc resume <tc-id> 以前のセッションからTCを再開
/tc close <tc-id> TCをdeploy状態に遷移
/tc export 派生アーティファクトを再生成
/tc dashboard レジストリのサマリーを再表示
それ以外の場合は、$ARGUMENTS を <サブコマンド> <残り> として解析し、以下の該当プロトコルにディスパッチします。すべてのスクリプトは engineering/tc-tracker/scripts/ にあります。
サブコマンド
init
- 次のコマンドを実行:
python3 engineering/skills/tc-tracker/scripts/tc_init.py --root . --json - ステータスが
already_initializedの場合は、現在の統計情報を報告して停止します。 - それ以外の場合は、作成された内容を報告し、次のステップとして
/tc create <名前>を提案します。
create <名前>
<名前>をケバブケースのスラッグとして解析します。不足している場合は、ユーザーに入力を求めます。- ユーザーに(1問ずつ)次の項目を尋ねます:
- タイトル(5〜120文字)
- スコープ:
feature | bugfix | refactor | infrastructure | documentation | hotfix | enhancement - 優先度:
critical | high | medium | low(デフォルトmedium) - サマリー(10文字以上)
- 動機
- 次のコマンドを実行:
python3 engineering/skills/tc-tracker/scripts/tc_create.py --root . \ --name "<スラッグ>" --title "<タイトル>" --scope <スコープ> --priority <優先度> \ --summary "<サマリー>" --motivation "<動機>" --json - 新しいTC IDとレコードへのパスを報告します。
update <tc-id> [意図]
<tc-id>がない場合は、tc_status.py --allを使用してアクティブなTC(ステータスがin_progressまたはblocked)を一覧表示し、どれかを尋ねます。- ユーザーの意図を自然言語から判断します:
- ステータス変更 →
--set-status <状態>に--reason "<理由>"を追加 - ファイル追加 → 1つ以上の
--add-file パス[:アクション] - テスト追加 →
--add-test "<タイトル>" --test-procedure "<手順>" --test-expected "<結果>" - ハンドオフ更新 →
--handoff-progress,--handoff-next,--handoff-blocker,--handoff-contextの任意の組み合わせ - メモ追加 →
--note "<テキスト>" - タグ追加 →
--tag <タグ>
- ステータス変更 →
- 次のコマンドを実行:
python3 engineering/skills/tc-tracker/scripts/tc_update.py --root . --tc-id <tc-id> [フラグ] --json - 終了コードが0以外の場合は、エラーをそのまま表示します。ステートマシンとバリデーターが不正な遷移を拒否するため、盲目的にリトライしないでください。
status [tc-id]
<tc-id>が指定された場合:python3 engineering/skills/tc-tracker/scripts/tc_status.py --root . --tc-id <tc-id>- それ以外の場合:
python3 engineering/skills/tc-tracker/scripts/tc_status.py --root . --all
resume <tc-id>
- 次のコマンドを実行:
python3 engineering/skills/tc-tracker/scripts/tc_status.py --root . --tc-id <tc-id> --json - ハンドオフブロックを目立つように表示:
progress_summary,next_steps(番号付き),blockers,key_context。 - 「Resume して次のステップ1から再開しますか? (y/n)」と尋ねます。
- yes の場合は、再開を記録するための更新を実行:
python3 engineering/skills/tc-tracker/scripts/tc_update.py --root . --tc-id <tc-id> \ --note "セッション再開" --reason "セッションハンドオフ" next_stepsの最初の項目の実行を開始します。コンテキストを再導出しないでください — ハンドオフを信頼します。
close <tc-id>
tc_status.py --tc-id <tc-id> --jsonでレコードを読み取ります。- 現在のステータスが
testedであることを確認します。そうでない場合は拒否し、まだ必要な遷移をユーザーに伝えます。 test_casesを確認: いずれかがpending,fail,blockedの場合は警告します。- ユーザーに尋ねます:
- 「誰が承認しますか?(あなたの名前、または 'self')」
- 「承認メモ(任意):」
- 「テストカバレッジ状況: none / partial / full」
- 次のコマンドを実行:
その後、スクリプトのバージョンがサポートしている場合は、後続の更新でpython3 engineering/skills/tc-tracker/scripts/tc_update.py --root . --tc-id <tc-id> \ --set-status deployed --reason "Approved by <承認者>" --note "承認: <承認者> — <メモ>"approvalブロックを直接編集します。そうでない場合は、notesに承認を記録するようユーザーに指示します。 - 「TC-NNN がクローズされ、デプロイされました。」と報告します。
export
このスキルには自動HTMLエクスポートはありません。代わりにすべてを再検証します:
- レジストリを読み取ります。
- 各レコードに対して次を実行:
python3 engineering/skills/tc-tracker/scripts/tc_validator.py --record <パス> --json - 次のコマンドを実行:
python3 engineering/skills/tc-tracker/scripts/tc_validator.py --registry docs/TC/tc_registry.json --json - 報告: 検証された総レコード数、エラー、無効なファイルへのパス。
dashboard
全レコードのサマリーを実行:
python3 engineering/skills/tc-tracker/scripts/tc_status.py --root . --all
鉄則
tc_record.jsonを手動で編集しないこと。 常にtc_update.pyを使用して、リビジョン履歴が追記され、検証が実行されるようにしてください。- ステートマシンをスキップしないこと。 冗長に感じられても、状態を順に進めてください。
- TCを削除しないこと。 履歴は追記のみ — 最終リビジョンを追加し、
[CANCELLED]タグを付けてください。 - バックグラウンドの簿記。 タスクの途中では、バックグラウンドのサブエージェントを起動してTCを更新します。書類作業のためにコーディングを一時停止しないでください。
- 成功を報告する前に検証すること。 スクリプトが0以外で終了した場合は、エラーを表示して停止します。
関連スキル
engineering/tc-tracker— スキーマリファレンス、ライフサイクル図、ハンドオフ形式を含む完全なSKILL.md。engineering/changelog-generator— TCトラッカーと連携: 変更ごとの監査証跡にはTC、ユーザー向けリリースノートにはチェンジログ。engineering/tech-debt-tracker— 個別のコード変更ではなく、長期的な負債の追跡用。