decision-auto-tracker
Capture user decisions from human-to-agent conversations into structured Markdown files in `decisions/log/`.
Skill by Kotivskyi
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kotivskyi-decision-auto-tracker
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, security, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/decision-auto-tracker
What's inside
- Skill name
decision-auto-tracker- Description
- Capture user decisions from human-to-agent conversations into structured Markdown files in `decisions/log/`. Use this skill whenever the user commits to a choice that will still matter after the current ticket or PR closes — picking between debated options, settling an open question, locking in a name/value/threshold/owner, reversing or narrowing a prior decision, or saying "let's go with X" / "we'll use Y" / "decided to skip Z" / "use A instead" / "log this decision" / "remember we decided X". Also use it to audit an existing decision log for noise. Do not use it for one-off task picks (ship now, waive a check, close a ticket, which branch to base on), for rules about the agent's own hooks, skills, prompts or review loops (those belong in AGENTS.md / CLAUDE.md), for brainstorming, style preferences, or code-level corrections.
- License
- MIT
- Instructions
- 163 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (21)
- SKILL.md
- README.md · evals/
- evals.json · evals/
- README.md · evals/files/repo-derived/decisions/
- decision-log.json · evals/files/repo-derived/decisions/
- 2026-08-05-01-sample-buffer-holds-16-readings.md · evals/files/repo-derived/decisions/log/
- 2026-08-05-02-uplink-port-12-carries-health.md · evals/files/repo-derived/decisions/log/
- AGENTS.md · evals/files/repo-stored/
- 2026-08-01-01-postgres-for-order-store.md · evals/files/repo-stored/decisions/log/
- 2026-08-01-02-checkout-timeout-30s.md · evals/files/repo-stored/decisions/log/
- 2026-09-10-01-sku-is-the-product-key.md · evals/files/repo-stored/decisions/log/
- 2026-09-10-02-eu-region-only-for-launch.md · evals/files/repo-stored/decisions/log/
- trigger-eval.json · evals/
- config.md · references/
- format.md · references/
- triage-rubric.md · references/
- audit-manifest.mjs · scripts/
- check-append-only.sh · scripts/
- new-decision.mjs · scripts/
- validate.mjs · scripts/
- template.md
SKILL.md (first lines)
## Purpose
Repos accumulate many small decisions per week — pick this tool, name this entity that, skip this feature for v1, settle on this threshold. Most never reach an ADR. They live in chat history and disappear.
This skill turns those moments into a _decision log_ under `decisions/log/`: one file per decision, structured frontmatter, fixed body, sortable filenames. A future session greps the log instead of re-deciding the same thing.
The log is _not_ a replacement for formal ADRs. ADRs carry full context for architecturally significant choices and live wherever the repo keeps them. The log is for the rest.
The log is only useful while it stays **short and true**. Audits of real logs show the two ways it degrades: entries that nobody will look up (a quarter of all entries), and entries that bundle several choices into one file (one in seven). The rules below exist to prevent both.
## What to capture
Capture when the user **commits to a choice** and that choice passes the durability test. Ask three questions; log when at least two answers are **yes**:
1. Will a teammate need this **after the current ticket or PR closes**?
2. Would a **new contributor** six months from now be surprised not to know it?
3. Does it **constrain future code, data or behaviour**, rather than describe one execution path?
Strong signals:
- Picking between debated options: "let's go with B", "use Cloudflare not Route 53", "shaped diffs, not full snapshots"
- Locking in a value, name, owner or threshold: "call it `Pasture`", "default timeout is 500 ms", "Dana owns the ingest service"
- Settling an open question: "skip subscriptions for v1", "no Bluetooth in the first hardware cut"
- Reversing or superseding a prior decision: "scratch that, switch back to Postgres"
- Explicit request: "log this decision", "track that", "remember we decided X"
## What not to capture
| Looks like a decision, but is… | Example | Where it belongs instead |
| --- | --- | --- |
| **A task pick** — how to finish this ticket, PR or session | "ship it as a standalone PR", "waive the local test run, open the PR", "close TICKET-911 with the gap recorded", "base the fix on fresh main" | the ticket or PR |
| **An agent-harness rule** — how the AI agent itself operates | "one AI review round per PR", "the stop-hook falls back to WSL", "MCP config lives in `~/.codex`", "dispatch the reviewer only for behavioural diffs" | `AGENTS.md` / `CLAUDE.md`, or the repo that owns the skill or hook |
| **A task instruction** | "write a function that does X" | nowhere |
| **Brainstorming** — no commitment yet | "we could maybe use Redis here… or memcached" | wait until they commit |
| **A style preference or code-level correction** | "be more concise", "rename foo to bar" | nowhere |
| **A clarification** of an existing entry | "the 500 ms debounce also applies on re-entry" | the existing entry (see Workflow step 5) |
Exception: in a repo whose product _is_ agent tooling (a skills repo, a hooks library), decisions about that tooling are ordinary technical decisions.
**When a task pick wraps a durable rule, split them.** "Ship the decoder only; we never build a daily view for this report — the dashboard reads raw rows" contains one task pick (ship the decoder) and one durable rule (no daily view). Log the rule alone, in two sentences. Leave the pick in the ticket.
When in doubt, apply the three questions and, if still unsure, ask the user in one line.
## One decision per file
Each file holds **one choice** that can be cited on its own:
- `## Decision` is one or two sentences. Background goes to Context, rationale to Reasoning.
- The filename slug is 2–6 words. The H1 title carries the long form.
- A message with several independent picks becomes several files with consecutive sequence numbers.
An entry that opens with "Four picks for…" or "Three choices, shipped as one PR:" is the anti-pattern. A future reader wants to supersede one of the four and cannot.
## Storage layout and config
```
decisions/
├── decision-log.json # optional per-repo config (see references/config.md)
├── NNN-….md # formal ADRs, if the repo keeps them here (never touched by this skill)
└── log/ # this skill writes here
├── 2026-05-18-01-pasture-replaces-piquete.md
└── …
```
The `decisions/log/` folder is created on first capture. Without a config the defaults apply: `status` is stored in each file, the log may be edited, no `bucket` field. A config can switch to a **derived-status, append-only** log, add a required `bucket` classification, restrict the `linear` pattern, and set a ratchet date for the length rules. Read [`references/config.md`](references/config.md) when a `decision-log.json` exists — the supersede and clarification steps differ by mode.
## Filename
`YYYY-MM-DD-NN-short-slug.md` — the date the decision was made, a zero-padded per-day sequence, and a 2–6 word kebab-case slug. `scripts/new-decision.mjs` derives all three; use it rather than hand-writing frontmatter. Two parallel sessions can still allocate the same `NN`; the validator reports the collision and the later entry is renumbered.
## File format
```markdown
---
id: 2026-05-18-01
date: 2026-05-18
topic: pasture-replaces-piquete
status: active
tags: [glossary, terminology]
linear: ABC-387
supersedes:
---
# Pasture replaces Piquete
## Decision
**Pasture** is the canonical term. **Piquete** appears only as a labelled source term, never as the canonical name.
## Context
Reviewing the glossary, we found `Piquete` and `Pasture` used interchangeably across docs. New contributors could not tell which one the code should use. The question came up while updating ABC-387.
## Reasoning
`Pasture` is the industry-standard English term and matches the product name. `Piquete` is region-specific and belongs as a labelled mapping.
## Source
User in conversation, 2026-05-18: "Always use `Pasture`/`Herd`, not `Piquete`/`Mali`; source terms only as labelled mappings."
```
### Frontmatter fields
| Field | Required | Format | Notes |
| ------------ | ------------------------------ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `id` | yes | `YYYY-MM-DD-NN` | Must match the filename prefix |
| `date` | yes | `YYYY-MM-DD` | Must match the date portion of `id` |
| `topic` | yes | kebab-case slug, 2–6 words | Must match the filename slug |
| `status` | `statusMode: stored` (default) | `active` \| `superseded` \| `reversed` | Omit in `derived` mode — the validator computes it from the `supersedes` graph |
| `bucket` | only when the config lists buckets | one of the configured names | What a later rewrite must carry forward; see the repo's config |
| `tags` | yes | inline YAML list of kebab-case strings | `[]` if none. Reuse existing tags before inventing new ones |
| `linear` | optional | tracker id matching the config pattern | Default pattern `ABC-123`; empty if none |
| `supersedes` | optional | id, `id-slug`, or inline list `[a, b]` | On the **new** entry. Use the `id-slug` form when two files share an id |
### Body sections
Exactly these four `##` sections, in this order. None may be empty or left as a `TODO` stub.From Kotivskyi/skills, MIT.
More from Kotivskyi/skills
- 0.570score
agent-self-harness
Kotivskyi
Use when improving an agent harness from execution evidence, including mining Codex or Claude Code local sessions, using already-normalized trace packets…
SkillAFreshness: AClaude Code +9 - 0.529score
design-spec-tracker
Kotivskyi
Keep a developer handoff spec written and current while a designer works, without being asked.
SkillBFreshness: BClaude Code +9 - 0.529score
skill-finder
Kotivskyi
Find which skills to create or fix from real work history.
SkillBFreshness: BClaude Code +9 - 0.529score
write-http-files
Kotivskyi
Author `.http` / `.rest` request files in the "HTTP Request in Editor" format used by the JetBrains HTTP Client and the VS Code REST Client extension.
SkillBFreshness: BClaude Code +9 - 0.529score
handoff-to-paperclip
Kotivskyi
Hand off the task you are working on in this interactive session to the Paperclip agent team so an autonomous agent (the CTO by default) continues it…
SkillBFreshness: BClaude Code +9 - 0.524score
bdd-implement
Kotivskyi
Implement Behavior-Driven Development scenarios — turn Given-When-Then scenarios into executable tests.
SkillBFreshness: BClaude Code +9 - 0.524score
ship
Kotivskyi
Use when the user is about to merge, ship, release, or deploy, or asks "is this safe to merge", "can I ship this", "ready to release", or wants a go/no-go on…
SkillBFreshness: BClaude Code +9 - 0.524score
authoring-skills
Kotivskyi
Conventions for building skills in this repo, covering how a skill switches itself on in someone's project.
SkillBFreshness: BClaude Code +9 - 0.524score
bdd-create
Kotivskyi
Author Behavior-Driven Development scenarios and acceptance criteria — the specification side of BDD, with no implementation.
SkillBFreshness: BClaude Code +9 - 0.524score
fix-with-spec
Kotivskyi
Fix a bug or adjust existing behavior in code AND keep its OpenSpec capability spec consistent, in any OpenSpec-managed repo under whatever schema that repo…
SkillBFreshness: BClaude Code +9 - 0.521score
plan
Kotivskyi
Break down a feature, bugfix, or task into a concrete implementation plan before touching code.
SkillBFreshness: BClaude Code +9 - 0.520score
pr-watch
Kotivskyi
Drives a GitHub pull request to a fully green, fully addressed state.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 16, 2026 (1 month ago)
- Last release
- Jun 22, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Kotivskyi/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Kotivskyi
- 0.570score
agent-self-harness
Kotivskyi
Use when improving an agent harness from execution evidence, including mining Codex or Claude Code local sessions, using already-normalized trace packets…
SkillAFreshness: AClaude Code +9 - 0.529score
design-spec-tracker
Kotivskyi
Keep a developer handoff spec written and current while a designer works, without being asked.
SkillBFreshness: BClaude Code +9 - 0.529score
skill-finder
Kotivskyi
Find which skills to create or fix from real work history.
SkillBFreshness: BClaude Code +9 - 0.529score
handoff-to-paperclip
Kotivskyi
Hand off the task you are working on in this interactive session to the Paperclip agent team so an autonomous agent (the CTO by default) continues it…
SkillBFreshness: BClaude Code +9 - 0.529score
write-http-files
Kotivskyi
Author `.http` / `.rest` request files in the "HTTP Request in Editor" format used by the JetBrains HTTP Client and the VS Code REST Client extension.
SkillBFreshness: BClaude Code +9 - 0.524score
ship
Kotivskyi
Use when the user is about to merge, ship, release, or deploy, or asks "is this safe to merge", "can I ship this", "ready to release", or wants a go/no-go on…
SkillBFreshness: BClaude Code +9
Cite this page
decision-auto-tracker skill. Agent Mart. https://agentmart.dev/skills/kotivskyi-decision-auto-tracker (last updated 2026-10-24)