Agent skill

Recording Change Intent

by jaktestowac in jaktestowac/awesome-copilot-for-testers

Requires an externalised rationale for high-risk changes - new public exports, new endpoints, auth edits, migrations, removed guards - recorded as an Intent commit trailer, an ADR reference, or a…

MITAuto-check passedDevelopment

Install Recording Change Intent

skills CLI
$ npx skills add jaktestowac/awesome-copilot-for-testers --skill recording-change-intent -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jaktestowac/awesome-copilot-for-testers recording-change-intent --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jaktestowac/awesome-copilot-for-testers.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/recording-change-intent .claude/skills/recording-change-intent && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
recording-change-intent
GitHub stars
116
Token cost
~2.8k tokens
SKILL.md length
1,384 words
Files
3
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Requires an externalised rationale for high-risk changes - new public exports, new endpoints, auth edits, migrations, removed guards - recorded as an Intent commit trailer, an ADR reference, or a…

  • Works in 5 steps: Decide whether this change needs a… → Check what rationale already exists → Classify each high-risk change → …
  • Agent-generated
  • SKILL.md covers When to Use, Operating Principles, Workflow and Enforcement Layers, plus 4 more sections
  • Calls git

What it does

Recording Change Intent is an agent skill from jaktestowac/awesome-copilot-for-testers. Requires an externalised rationale for high-risk changes - new public exports, new endpoints, auth edits, migrations, removed guards - recorded as an Intent commit trailer, an ADR reference, or a module intent register, and reports high-risk changes that carry none. Use when agent-generated or AI-assisted changes ship without a recorded why, when reviewers cannot tell what a diff was for, when a codebase is losing its decision history, or when setting up an intent gate alongside test and coverage gates.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `resources/high-risk-surface-rules.md` and `resources/intent-trailer-spec.md`).

It sits in Development, covering Architecture decision records. The repository describes itself as: 👨💻 Instructions, prompts, and chat modes to help You with test automation for GitHub Copilot 🤖. The licence is MIT.

When your agent uses it

  • Agent-generated
  • AI-assisted changes ship without a recorded why
  • Reviewers cannot tell what a diff was for
  • A codebase is losing its decision history

Example prompts

  • “Use the recording-change-intent skill to require an externalised rationale for high-risk changes - new public exports, new endpoints, auth edits…”
  • “/recording-change-intent”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Decide whether this change needs a rationale
  2. Check what rationale already exists
  3. Classify each high-risk change
  4. Draft, then hand over
  5. Report

What it can do on your machine

Read from SKILL.md and the folder at commit 8910672. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Recording Change Intent loads about 2.8k tokens when it runs. Until then it costs about 133 tokens; SKILL.md has 1,384 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~133
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jaktestowac/awesome-copilot-for-testers at commit 8910672, republished under its MIT licence (© jaktestowac). 1,384 words, ~2,759 tokens.

Download SKILL.mdSave it as .claude/skills/recording-change-intent/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
recording-change-intent
description
Requires an externalised rationale for high-risk changes - new public exports, new endpoints, auth edits, migrations, removed guards - recorded as an Intent commit trailer, an ADR reference, or a module intent register, and reports high-risk changes that carry none. Use when agent-generated or AI-assisted changes ship without a recorded why, when reviewers cannot tell what a diff was for, when a codebase is losing its decision history, or when setting up an intent gate alongside test and coverage gates.
argument-hint
Commit range or PR, and where rationale is expected to live (commit trailers, ADRs, issue tracker)
user-invocable
true

Recording Change Intent

Use this skill when a change carries risk and the reason for it exists only in someone's head, a chat thread, or a ticket nobody will find again.

Tests prove a change works. Coverage proves it was executed. Neither records why it was made, which constraint forced the odd shape, or what was considered and rejected. That is intent debt, and it is the one debt an agent structurally cannot pay down: a coding agent can write the implementation, the tests, and the docs, but it cannot supply the human reason the work was commissioned. As AI-assisted output grows, intent debt grows with it while every other quality signal keeps looking healthy.

The fix is small and unfashionable: on high-risk changes, require the rationale to be written down somewhere durable and linked to the change.

When to Use

  • an AI-assisted or agent-generated change touches auth, money, schema, or public surface
  • reviewers routinely ask "why is this like this" and nobody knows
  • a codebase's decisions live in closed tickets and departed colleagues
  • a per-change gate needs an intent check next to its test and coverage checks
  • an ADR practice exists but nothing links ADRs to the commits that implement them
  • a post-incident review cannot reconstruct why a change was made

Operating Principles

  • Intent is why, not what. The diff already says what changed. refactor: extract computeRefund is a restated diff, not a rationale.
  • Only high-risk surface needs it. Demanding a rationale on every typo fix trains people to write filler, and filler is worse than silence because it looks like compliance.
  • A human writes it. An agent can draft it from context and must hand it to a human to confirm or replace. A generated rationale nobody read is intent theatre.
  • Durable and linked. In the commit, in an ADR the commit references, or in a register keyed by module. Not in a PR description that a squash-merge will discard, and not in chat.
  • A malformed record is not a missing one. Report them differently: one needs writing, the other needs fixing, and conflating them makes the gate feel arbitrary.
  • Two layers, different strengths. Fast advisory feedback at commit time; real enforcement at push or CI. Fast feedback that blocks gets disabled; enforcement that is bypassable gets bypassed.
  • Constraints and rejected alternatives are the valuable part. "Why not the obvious way" is what a future reader actually needs.

Workflow

Phase 1: Decide whether this change needs a rationale

Take the tags from scoping-change-relevance, or apply the rules in ./resources/high-risk-surface-rules.md directly. High-risk surface is:

  • a new public export - a new capability other code can now call
  • a new endpoint or externally reachable operation
  • a modified auth path - anything touching who can do what
  • a schema or migration change, especially an irreversible one
  • a removed guard, removed validation, or removed test
  • a new external dependency or call that adds a failure mode
  • a change to a module the contract marks critical-path

Everything else: no rationale required. Say so explicitly, so the gate is visibly proportionate rather than universally nagging.

Phase 2: Check what rationale already exists

Any one of these covers the change:

MechanismLooks likeBest for
Intent: trailerfree-text rationale in the commit message trailer blockthe normal case
Intent-Ref: trailerADR-0042, QA-431, or a URLa decision already written down elsewhere
ADRa document in docs/adr/ that this change implementsarchitectural decisions with alternatives
Module intent registeran entry in .qa/intent.md covering these pathsstable module-level "why this exists"
Intent waivera path-scoped register entrygenuinely mechanical high-risk changes (bulk renames, codegen)
bash
git log <base>..HEAD --format='%H%n%B'          # read the whole message, trailers included
git log <base>..HEAD --format='%(trailers:key=Intent,valueonly)'
git log <base>..HEAD --format='%(trailers:key=Intent-Ref,valueonly)'

Trailers are the standard Key: value block at the end of a commit message - the same mechanism as Signed-off-by:. No tooling, no external service, and they survive rebase and squash if written into the final message. See ./resources/intent-trailer-spec.md.

Phase 3: Classify each high-risk change
StatusMeaningAction
Covereda valid rationale covers this surfacenothing
Undeclaredhigh-risk surface, no rationale anywherewrite one
Malformeda trailer exists but fails its rule - too short, unresolvable ref, wrong keyfix it, and quote the exact problem
Restated diffa rationale that only says what the diff saysrewrite it; this is the most common failure
Waivedcovered by a path-scoped intent waivercite the waiver and its expiry

"Restated diff" deserves the separate row. Intent: added the refund endpoint passes any mechanical check and carries no information. A human reviewing intent records should reject it as they would reject an assertion-free test.

Phase 4: Draft, then hand over

Where a rationale is missing, draft one from the evidence available - the diff, the linked ticket, the branch name, the surrounding code, the conversation. Then hand it to the author with the draft clearly marked as a draft, because a rationale the author has not confirmed is not a rationale.

A good record answers three questions in a few lines:

  1. Why now - the trigger. A bug, a requirement, a limit that was hit.
  2. What constrained the shape - the reason it is not the obvious implementation.
  3. What was rejected - the alternative someone will otherwise propose in six months.
feat(billing): allow partial refunds on settled orders

Support desk cannot resolve disputes on settled orders without a full
reversal, which breaks the monthly reconciliation report.

Intent: Partial refunds must be idempotent because the provider retries
  webhooks up to 5 times; we key on (orderId, providerRefundId) rather
  than generating our own id, so a retry cannot double-refund. Rejected
  a queue-based approach - it would have needed a new consumer and the
  reconciliation window is 15 minutes, not seconds.
Intent-Ref: ADR-0042

More examples, including bad ones and why they fail, in ./resources/intent-trailer-spec.md.

Show full SKILL.md (522 more words)Show less
Phase 5: Report
  • Undeclared high-risk surface - file, what makes it high-risk, and what a rationale should answer
  • Malformed records - the exact rule that failed and the corrected form
  • Restated-diff records - quoted, with what is missing
  • Severity by profile - critical-regulated: undeclared MUST surface is a blocker. standard: a warning. prototype-internal: informational.
  • Low-risk changes needing nothing - say this out loud; it is what keeps the gate credible

Enforcement Layers

Layer 1 - commit-msg hook (advisory, bypassable). Warns when an Intent: trailer is too short or an Intent-Ref: looks malformed. Never blocks. Its job is to catch the typo while the author still has context.

Layer 2 - pre-push or CI (enforcing). Parses trailers on the commits in the range, resolves high-risk surface from the diff, and fails when MUST-level surface has no valid rationale. Wired into required checks. Hook snippets and a CI job are in ./resources/intent-trailer-spec.md.

Roll it out warn-first, like any gate: report for one iteration, then warn, then block on the escalated surface only (auth, migrations, endpoints), then everywhere the contract says MUST.

Common Failure Modes

  • Restating the diff. "Refactored the pricing module." The single most common failure, and the reason a length check alone is insufficient.
  • Requiring it everywhere. A rationale on every commit produces Intent: fix within a week.
  • Accepting an agent's draft unread. The mechanism exists precisely because the human reason cannot be generated. An unreviewed generated rationale is the failure mode this skill is designed to prevent.
  • Rationale only in the PR description. Squash-merge discards it, and the repo keeps the code without the reason.
  • Bare ticket references. Intent-Ref: JIRA-1234 with no accessible ticket is a dead link with extra steps. Reference something durable, or write the reason inline.
  • Confusing malformed with missing. They need different fixes and reporting them identically makes the gate feel capricious.
  • Blocking at commit time. The layer that must stay fast, made slow and mandatory, gets --no-verify'd - see governing-quality-waivers.

Resource Map

  • ./resources/intent-trailer-spec.md - the trailer grammar, validation rules, good and bad examples, the commit-msg hook and the CI job
  • ./resources/high-risk-surface-rules.md - what counts as high-risk surface, per-profile severity, and the module intent register format
  • scoping-change-relevance - supplies the tags that identify high-risk surface in a diff
  • governing-quality-waivers - the sibling record: why a check is off, versus why a change was made
  • assessing-comprehension-debt - an Intent: record is an input to the comprehension risk band
  • code-review-advanced - where a human judges whether a rationale is real or restated
  • deriving-a-quality-contract - where intent-rationale is set to MUST, SHOULD, or COULD for this project
  • reporting-bugs - the same discipline applied to defects: evidence and reasoning, written down once, findable later

Definition of Done

This skill is complete when:

  • high-risk surface in the change range is identified with the rule that made it high-risk
  • existing rationale has been looked for in all of trailers, ADRs, and the module register
  • each high-risk change is classified covered, undeclared, malformed, restated, or waived
  • malformed records quote the failing rule and the corrected form
  • drafted rationales are marked as drafts and handed to a human, never committed as final
  • low-risk changes are explicitly recorded as needing nothing
  • severity follows the project's profile rather than a fixed level

© jaktestowac, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in skills/recording-change-intent of jaktestowac/awesome-copilot-for-testers.

  • SKILL.md
  • resources/high-risk-surface-rules.md
  • resources/intent-trailer-spec.md

Open the folder on GitHubat commit 8910672

Compare with similar skills

Recording Change Intent next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Recording Change Intent compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Recording Change Intent this skilljaktestowac/awesome-copilot-for-testers116—~2.8kAutomated safety check: PassMIT
PR Design DocOpenHands/OpenHands90k—~2.4kAutomated safety check: PassMIT
Cto AdvisorIbrahim-3d/orchestrator-supaconductor3814 repos~2.4kAutomated safety check: PassMIT
Architecture DecisionDonchitos/Claude-Code-Game-Studios26k—~1.7kAutomated safety check: PassMIT
Improve Codebase Architectureywwynm/EverythingDone14415 repos~1.3kAutomated safety check: PassGPL-3.0
Domain Modelingbrim-borium/spotify_sdk1665 repos~806Automated safety check: PassApache-2.0

Similar skills

  • PR Design Doc

    OpenHands/OpenHands

    For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…

    90k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Cto Advisor

    Ibrahim-3d/orchestrator-supaconductor

    Technical leadership guidance for engineering teams, architecture decisions, and technology strategy.

    381 GitHub starsUsed in 4 repos~2.4k tokens
    DevelopmentAuto-check passed
  • Architecture Decision

    Donchitos/Claude-Code-Game-Studios

    Create an ADR documenting a technical decision: context, alternatives considered, consequences.

    26k GitHub stars~1.7k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Improve Codebase Architecture

    ywwynm/EverythingDone

    Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/.

    144 GitHub starsUsed in 15 repos~1.3k tokens
    DevelopmentAuto-check passed
  • Domain Modeling

    brim-borium/spotify_sdk

    Build and sharpen a project's domain model. An agent skill from brim-borium/spotify_sdk.

    166 GitHub starsUsed in 5 repos~806 tokens
    DevelopmentAuto-check passed
  • Design Doc Mermaid

    SpillwaveSolutions/design-doc-mermaid

    Create Mermaid diagrams (flowchart, sequence, class, ER, state, C4, architecture) from text or source code.

    176 GitHub starsUsed in 1 repo~5.6k tokens
    DevelopmentAuto-check passed

More from jaktestowac/awesome-copilot-for-testers

All 13 skills in this repo
  • API Playwright Test Developer

    jaktestowac/awesome-copilot-for-testers

    Writes and reviews API automation tests with Playwright Test, covering setup/teardown, assertions, data management, and hybrid API+UI flows.

    116 GitHub stars~2k tokensUpdated 1 mo ago
    Auto-check passed
  • Assessing Comprehension Debt

    jaktestowac/awesome-copilot-for-testers

    Measures the risk that code shipped without anyone understanding it: a teach-back attestation on high-risk changes, a risk band from changed-code complexity, diff size and whether a human…

    116 GitHub stars~2.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Creating Orchestration Packs

    jaktestowac/awesome-copilot-for-testers

    Creates agent orchestration packs: cooperating .agent.md files with an orchestrator, subagents, matched handoffs, minimal tool grants, and a shared handoff packet contract.

    116 GitHub stars~2.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Creating Plugins

    jaktestowac/awesome-copilot-for-testers

    Packages repository skills as installable Copilot plugins: marketplace registration, plugin.json manifests, generated skill copies, and the sync check CI enforces.

    116 GitHub stars~3.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Governing Quality Waivers

    jaktestowac/awesome-copilot-for-testers

    Turns "we will skip this check for now" into a dated, attributed, expiring waiver with a stated reason and owner, inventories the silent skips already hiding in a repo - skipped tests, disabled lint…

    116 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Running Visual Regression Tests

    jaktestowac/awesome-copilot-for-testers

    Sets up and maintains visual regression testing: what to snapshot, baseline strategy, masking dynamic regions, threshold tuning, containerized baselines, and the review-and-update workflow.

    116 GitHub stars~2.6k tokensUpdated 1 mo ago
    Auto-check passed

Categories

Questions about Recording Change Intent

What does Recording Change Intent do?

Requires an externalised rationale for high-risk changes - new public exports, new endpoints, auth edits, migrations, removed guards - recorded as an Intent commit trailer, an ADR reference, or a…. Recording Change Intent is an agent skill from jaktestowac/awesome-copilot-for-testers. Requires an externalised rationale for high-risk changes - new public exports, new endpoints, auth edits, migrations, removed guards - recorded as an Intent commit trailer, an ADR reference, or a module intent register, and reports high-risk changes that carry none.

When should I use Recording Change Intent?

Recording Change Intent fits situations like: agent-generated; AI-assisted changes ship without a recorded why; reviewers cannot tell what a diff was for; A codebase is losing its decision history.

How do I install Recording Change Intent in Claude Code?

Run `npx skills add jaktestowac/awesome-copilot-for-testers --skill recording-change-intent -a claude-code`. Or copy the skill folder (skills/recording-change-intent in jaktestowac/awesome-copilot-for-testers) into .claude/skills/recording-change-intent in your project. Claude Code loads it when a task matches its description.

How do I install Recording Change Intent in Codex?

Run `npx skills add jaktestowac/awesome-copilot-for-testers --skill recording-change-intent -a codex`. Or copy the skill folder (skills/recording-change-intent in jaktestowac/awesome-copilot-for-testers) into .agents/skills/recording-change-intent in your project. Codex loads it when a task matches its description.

Can I use Recording Change Intent in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jaktestowac/awesome-copilot-for-testers --skill recording-change-intent -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/recording-change-intent, .gemini/skills/recording-change-intent, .github/skills/recording-change-intent and .opencode/skills/recording-change-intent in your project.

What does Recording Change Intent need to run?

Going by SKILL.md and its folder, Recording Change Intent needs the command-line tools its instructions call (git).

Does Recording Change Intent access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Recording Change Intent safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Recording Change Intent use?

Recording Change Intent is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Recording Change Intent use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Recording Change Intent?

Skills that share tags, products or a category with Recording Change Intent: PR Design Doc (OpenHands/OpenHands, 90k stars), Cto Advisor (Ibrahim-3d/orchestrator-supaconductor, 381 stars), Architecture Decision (Donchitos/Claude-Code-Game-Studios, 26k stars) and Improve Codebase Architecture (ywwynm/EverythingDone, 144 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Recording Change Intent?

jaktestowac (a GitHub user) maintains it in jaktestowac/awesome-copilot-for-testers, which has 116 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on August 26, 2026.

Source: jaktestowac/awesome-copilot-for-testers on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.