MCPInstall

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.

Installs
539
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/alirezarezvani/claude-skills --skill tc-tracker
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads tc-tracker automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

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:

CommandAction
/tc initRun 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 exportRe-render all derived artifacts
/tc dashboardRe-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 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-patternWhy it's badDo this instead
Editing revision_history to "fix" a typoHistory is append-only — tampering destroys the audit trailAdd a new revision that corrects the field
Skipping the state machine ("just set status to deployed")Bypasses validation and hides skipped phasesWalk through in_progress -> implemented -> tested -> deployed
Creating one TC per file changedFragments related work and explodes the registryOne TC per logical unit (feature, fix, refactor)
Updating TC inline between every code editSlows the main agent, wastes contextSpawn a background subagent at milestones
Marking approved=true without approved_byValidator will reject; misleading audit trailAlways set approved_by and approved_date together
Overwriting tc_record.json directly with a text editorRisks corruption mid-write and skips validationUse tc_update.py (atomic write + schema check)
Putting secrets in notes or evidenceRecords are committed to the repoReference an env var or external secret store
Reusing TC IDs after deletionBreaks the sequential guarantee and confuses historyIncrement forward only — never recycle
Letting next_steps go staleDefeats the purpose of handoffUpdate 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 — 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.

FAQ

What does the tc-tracker skill do?

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.

How do I install tc-tracker?

Run npx skills add https://github.com/alirezarezvani/claude-skills --skill tc-tracker in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/tc-tracker/ (personal) or .claude/skills/tc-tracker/ (project).

Which AI agents can use tc-tracker?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is tc-tracker safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains tc-tracker?

It is published by alirezarezvani in alirezarezvani/claude-skills. It has 539 recorded installs.

More from alirezarezvani/claude-skills

View all →

engineering-skills

alirezarezvani/claude-skills

Index of the engineering-team skills bundle for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw, and 6 more tools. Architecture, frontend, backend, QA, DevOps, security, AI/ML, data engineering, Playwright, Stripe, AWS, MS365 (stdlib-only Python tools). Use when browsing or choosing among engineering-team role skills — load only the one specialist SKILL.md you need, never bulk-load the bundle.

Backend & APIs2.4K installs

finance-skills

alirezarezvani/claude-skills

Router/index for the finance skills bundled in this plugin: financial-analyst (ratio analysis, DCF valuation, budget variance, rolling forecasts), saas-metrics-coach (ARR/MRR, churn, CAC/LTV, NRR, quick ratio) and month-end-close (close calendar, reconciliations, flux review). Use when a finance request doesn't obviously match one skill and you need to pick the right one (e.g., 'analyze these financials', 'how healthy are my SaaS metrics').

Business & Finance2.3K installs

marketing-skills

alirezarezvani/claude-skills

Directory and router for the marketing skills library. Use when you need to find the right marketing skill for a task, see what marketing capabilities exist, or get oriented in this plugin. 44 specialist skills across 8 pods (content, SEO + AEO, CRO, channels, growth, intelligence, sales enablement, ops), 59 stdlib Python tools. Routes to one skill — it does not execute marketing work itself.

Marketing & SEO2.3K installs

business-growth-skills

alirezarezvani/claude-skills

Router/index for the 4 business & growth skills bundled in this plugin: customer-success-manager (health scoring, churn risk, expansion), sales-engineer (RFP analysis, competitive matrices, PoC planning), revenue-operations (pipeline, forecast accuracy, GTM efficiency), and contract-and-proposal-writer. Use when a growth/revenue request doesn't obviously match one skill and you need to pick the right one (e.g., 'which accounts are at risk', 'should we bid on this RFP').

Business & Finance2.2K installs

engineering-advanced-skills

alirezarezvani/claude-skills

Index of 37 advanced engineering agent skills for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw. Use when browsing or choosing among the POWERFUL-tier engineering skills: agent design, RAG, MCP servers, CI/CD, database design, observability, security auditing, changelog/release automation, reliability (SLO/chaos/flags/operators), platform ops.

AI & Agents2K installs

product-skills

alirezarezvani/claude-skills

Use when coordinating product work across the 12 bundled product sub-skills (RICE, OKRs, UX research, design tokens, competitive teardown, analytics, experiments, discovery, roadmaps, spec-to-repo, landing pages, SaaS scaffolding) or the 4 standalone product-team plugins (user stories, Apple HIG, code-to-PRD, research summarizer). Triggers on 'help me prioritize', 'plan a product experiment', 'we ship features nobody uses', 'run the discovery loop', 'is our OST sound'. Forks context to route to one sub-skill via a deterministic signal router and returns a digest; can also drive a continuous-discovery loop (Torres cadence tracker + OST linter as machine gates) or a full goal→plan→execute→verify→close run through the repo-wide agent-harness. Distinct from project-management (how to deliver vs what to build), marketing/landing (from-scratch pages), and engineering/agent-harness (the generic loop engine this orchestrator plugs into).

Popular docs & writing skills

View category →

grill-with-docs

mattpocock/skills

A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

Docs & Writing1.2M installs

lark-markdown

open.feishu.cn

飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。

Docs & Writing778.7K installs

writing-beats

mattpocock/skills

Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.

Docs & Writing490.7K installs

writing-shape

mattpocock/skills

Writing, exploit: shape raw material into an article, paragraph by paragraph.

Docs & Writing490.2K installs

writing-fragments

mattpocock/skills

Writing, explore: mine raw fragments, no structure yet.

Docs & Writing489.6K installs

writing-for-agents

mattpocock/skills

Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.

Docs & Writing479.3K installs