вариант

Отслеживайте изменения кода с помощью структурированных JSON-записей, принудительного конечного автомата и формата передачи сессии для обеспечения непрерывности работы ИИ.

...Расширить все
33
Обновлено время 27 августа 2026 г.

TC Tracker

Отслеживайте каждое изменение кода с помощью структурированных JSON-записей, принудительного конечного автомата и формата передачи сессии, который позволяет новой сессии ИИ возобновить работу корректно после истечения предыдущей.

Обзор

Техническое изменение (TC) — это структурированная запись, которая фиксирует что изменилось, почему оно изменилось, кто его изменил, когда оно изменилось, как оно было протестировано и где находится работа для следующей сессии. Записи хранятся в формате JSON в docs/TC/ внутри целевого проекта, проверяются на соответствие строгой схеме и конечному автомату.

Используйте этот навык, когда пользователь:

  • Просит "отследить это изменение" или хочет получить журнал аудита для изменений кода
  • Хочет передать незавершенную работу будущей сессии ИИ
  • Нуждается в структурированных примечаниях к выпуску, которые выходят за рамки сообщений коммитов
  • Осваивает существующий проект и хочет ретроспективную документацию по изменениям
  • Запрашивает /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

  • Родительский 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 — в kebab-case.

Конечный автомат

planned -> in_progress -> implemented -> tested -> deployed
   |            |              |           |          |
   +-> blocked -+              +- in_progress  planned

См. references/lifecycle.md для полной таблицы переходов и потоков восстановления.

Команды рабочего процесса

Навык поставляется с пятью скриптами на Python, которые выполняют детерминированные операции только со стандартной библиотекой над записями TC. Каждый из них поддерживает --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, создает каталог записи, записывает полностью заполненный 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></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></n> и T<n></n>, а также утверждает согласованность одобрения (approved=true требует approved_by и approved_date).

См. references/tc-schema.md для полной схемы.

Диспетчер слэш-команд

В репозитории поставляется слэш-команда /tc в commands/tc.md, которая перенаправляет эти скрипты в зависимости от подкоманды:

КомандаДействие
`/tc init`Запустить `tc_init.py` для текущего проекта
`/tc create `Запросить поля, запустить `tc_create.py`
`/tc update `Применить описанные пользователем изменения через `tc_update.py`
`/tc status [tc-id]`Запустить `tc_status.py`
`/tc resume `Отобразить передачу, архивировать предыдущую сессию, начать новую
`/tc close `Перейти в `deployed`, установить одобрение
`/tc export`Пересоздать все производные артефакты
`/tc dashboard`Пересоздать сводку реестра

Слэш-команда является пользовательским интерфейсом; скрипты на Python — это движок.

Формат передачи сессии

Блок передачи находится в session_context.handoff внутри каждого TC и является самым важным полем для непрерывности работы ИИ. Он содержит:

  • progress_summary — что было сделано
  • next_steps — упорядоченный список оставшихся действий
  • blockers — все, что препятствует прогрессу
  • key_context — критические решения, подводные камни, шаблоны, которые должен знать следующий бот
  • files_in_progress — файлы, редактируемые в данный момент, и их состояние (editing, needs_review, partially_done, ready)
  • decisions_made — архитектурные решения с обоснованием и временной меткой

См. references/handoff-format.md для полной структуры и правил заполнения.

Правила валидации (всегда применяются)

  1. Конечный автомат — разрешены только допустимые переходы.
  2. Последовательные идентификаторыrevision_history использует R1, R2, R3...; test_cases использует T1, T2, T3....
  3. История только для добавления — записи ревизии никогда не изменяются и не удаляются.
  4. Согласованность одобренияapproved=true требует approved_by и approved_date.
  5. Формат идентификатора TC — должен соответствовать TC-NNN-MM-DD-YY-slug.
  6. Формат идентификатора под-TC — должен соответствовать TC-NNN.A или TC-NNN.A.N.
  7. Атомарные записи — JSON записывается в .tmp, затем переименовывается.
  8. Статистика реестра — пересчитывается при каждой записи в реестр.

Шаблон неблокирующего учета

Отслеживание TC НЕ должно прерывать основной рабочий процесс.

  • Никогда не останавливайтесь для обновления записей TC в потоке. Продолжайте кодирование.
  • На естественных этапах запускайте фоновый подагент для обновления записи.
  • Отображайте вопросы только при реальной необходимости ("Эта работа не соответствует ни одному активному TC — создать один?"), и задавайте один раз за сессию, а не за файл.
  • В конце сессии запишите финальный блок передачи перед закрытием.

Массовое ретроспективное создание

Для освоения существующего проекта с недокументированной историей создайте retro_changelog.json (по одной записи на логическое изменение) и передайте его в tc_create.py в цикле или расширьте скрипт для пакетного режима. Группируйте коммиты по функциям, а не по файлам.

Антипаттерны

АнтипаттернПочему это плохоДелайте так вместо этого
Редактирование `revision_history` для "исправления" опечаткиИстория только для добавления — вмешательство уничтожает журнал аудитаДобавить новую ревизию, исправляющую поле
Пропуск конечного автомата ("просто установите статус в deployed")Обходит проверку и скрывает пропущенные фазыПройти через `in_progress -> implemented -> tested -> deployed`
Создание одного TC на каждый измененный файлФрагментирует связанную работу и раздувает реестрОдин TC на логическую единицу (функция, исправление, рефакторинг)
Обновление TC в потоке между каждым редактированием кодаЗамедляет основного агента, тратит контекстЗапустить фоновый подагент на этапах
Отметка `approved=true` без `approved_by`Валидатор отклонит; вводящий в заблуждение журнал аудитаВсегда устанавливать `approved_by` и `approved_date` вместе
Прямое перезаписывание `tc_record.json` текстовым редакторомРиск повреждения во время записи и пропуск проверкиИспользовать `tc_update.py` (атомарная запись + проверка схемы)
Помещение секретов в `notes` или доказательстваЗаписи коммитятся в репозиторийСсылаться на переменную окружения или внешнее хранилище секретов
Повторное использование идентификаторов TC после удаленияНарушает последовательную гарантию и запутывает историюУвеличивать только вперед — никогда не перерабатывать
Позволение `next_steps` устареватьПодрывает цель передачиОбновлять на каждом этапе, даже если "ничего не изменилось"

Перекрестные ссылки

  • engineering/changelog-generator — Генерирует примечания к выпуску в формате Keep-a-Changelog из Conventional Commits. Сочетайте с трекером TC: TC для детального журнала аудита по каждому изменению, changelog для заметок к выпуску для пользователей.
  • engineering/tech-debt-tracker — Для отслеживания долгосрочных элементов долга, а не дискретных изменений кода.
  • engineering/focused-fix — Когда исправление ошибки требует системного ремонта всей функции, сначала запустите /focused-fix, затем зафиксируйте результат как TC.
  • project-management/decision-log — Архитектурные решения, принятые в блоке decisions_made TC, также могут быть перенесены в журнал решений всего проекта.
  • engineering-team/code-reviewer — Предварительное слияние проверки естественно вписывается в переход tested -> deployed; зафиксируйте рецензента в approval.approved_by.

Ссылки в этом навыке

  • references/tc-schema.md — Полная схема JSON для записей TC и реестра.
  • references/lifecycle.md — Конечный автомат, допустимые переходы и потоки восстановления.
  • references/handoff-format.md — Структура передачи сессии и лучшие практики.
Посмотреть на GitHub
---
name: tc-tracker
description: Track code changes with structured JSON records, an enforced state machine, and a session handoff format for AI continuity.
---

# 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](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

```bash
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

```bash
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

```bash
# 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

```bash
# 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

```bash
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](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](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 IDs** — `revision_history` uses `R1, R2, R3...`; `test_cases` uses `T1, T2, T3...`.
3. **Append-only history** — revision entries are never modified or deleted.
4. **Approval consistency** — `approved=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

- [references/tc-schema.md](references/tc-schema.md) — Full JSON schema for TC records and the registry.
- [references/lifecycle.md](references/lifecycle.md) — State machine, valid transitions, and recovery flows.
- [references/handoff-format.md](references/handoff-format.md) — Session handoff structure and best practices.

Все файлы

0 файлов

Установить tc-tracker

Скачайте и извлеките файлы навыков в вашу директорию .claude/skills/.

Скачать ZIP

Клонируйте репозиторий и скопируйте файлы навыка в свой проект.

git clone https://github.com/alirezarezvani/claude-skills/tree/main/engineering/skills/tc-tracker # Copy SKILL.md to your .claude/skills/ directory

Копировать Копировать
Быстрая настройка: Скопируйте папку навыка в .claude/skills/ Claude автоматически обнаружит и использует этот навык
Репозиторий alirezarezvani/claude-skills

Похожие навыки

golang-dependency-injection
Обновлено время 29 июня 2026 г.
nuxthub
Обновлено время 23 августа 2026 г.
code-quality
Обновлено время 22 августа 2026 г.
altimate-data-engineering-skills
Обновлено время 23 августа 2026 г.
OR