content/skills/development-workflows/implementation-notes/SKILL.md
Use when implementing a multi-step spec, PRD, design doc, GitHub issue, or approved plan where decisions, deviations, and tradeoffs accumulate during coding. Maintain a live implementation-notes.md alongside the work capturing design decisions (choices made where the spec was ambiguous), intentional deviations from the spec, alternatives considered and rejection criteria, and open questions for human review. Use proactively the moment implementation of a written spec begins, before the first edit. Triggers include 实施记录, 实现笔记, 决策日志, 边写边记, 按这个 spec 实现, 按这个计划做, implementation log, decision log, spec divergence, implement this plan. Do NOT use for single-file fixes, pure investigation, one-off scripts, work without a written spec to deviate from, or simple tasks where one commit captures the reasoning.
npx skillsauth add bahayonghang/my-claude-code-settings implementation-notesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Maintain a live implementation-notes.md while implementing a written spec, so that design decisions, intentional deviations, alternatives considered, and open questions stay visible during review instead of being reverse-engineered from the diff.
A spec is never complete. As you implement, you will make choices the spec did not name. The diff records what you did. Commit messages record what changed. Neither captures why this option over the alternative, which spec line you knowingly departed from, or which question you still need a human to answer. This file does.
The goal is not to write more documentation. It is to give yourself a legitimate place to record the judgment calls you would otherwise either bury silently in code or interrupt the user to ask about.
Start before the first edit, when all of the following are true:
If no written spec exists yet, stop and invoke writing-plans first. This skill does not replace planning; it captures what happens after planning meets reality.
Do not start this file for:
If you start the file and realize the work is too small, delete it. An empty notes file is worse than no file.
Default location: implementation-notes.md at the root of the spec. If the spec lives inside the repo and the root is reserved for other use, place it at .notes/<spec-slug>.md.
If the spec is in a PR, the notes file ships with the change in the same PR.
Every entry under each section must answer something the diff cannot. Each entry is one to three sentences. Link to file paths, line ranges, or commit SHAs where useful.
Choices made where the spec was ambiguous or silent. Record the choice point and why this option was picked over a named alternative.
cache/store.py:42."Places where the implementation intentionally departs from the spec. Quote the spec line, then state the change and the reason.
retries: 5. Implemented with retries: 3 because the upstream rate-limits at 4 req/s and 5 retries blows the budget. See client.py:88."Alternatives considered and rejected. Include the rejection criterion so a reviewer does not waste cycles re-evaluating the same option.
spec.md:14). In-process queue is sufficient at current scale (<1k req/min)."Items that need a human to answer before merge. Phrase each so a reviewer can answer yes/no or pick one from a short list.
## 2026-05-20 session 2 is the only timestamp needed.[reconstructed] and treat the reasoning as low-confidence.| Anti-pattern | Counter-rule |
|---|---|
| Chronological log — "added function X, then function Y, then ran tests" | If an entry could be reconstructed from git log --stat, delete it. Only write what the diff alone cannot explain. |
| End-of-session backfill — writing the whole file at the end | Append at the moment of the decision. A note written hours later is fiction dressed as fact. |
| Over-triggering — maintaining notes for a one-commit fix | Gate at the start of work. If the spec is under ~50 lines or the work fits in one commit, skip this skill and put the reasoning in the commit body. |
Append entries as decisions land. Do not batch. Do not "clean up later." The file is meant to be a low-friction scratchpad that produces a high-signal artifact precisely because it is written in-flight.
A session that adds zero entries is fine if no real decisions were made. Padding the file is worse than leaving it empty.
writing-plans: This skill activates after a plan exists. If no plan, run writing-plans first.subagent-driven-development: When subagents implement tasks, the parent maintains this file. Subagents report their decisions back; the parent appends. Never let multiple subagents write to this file concurrently — entries will conflict and reasoning will get lost.git-commit: When a notes entry maps one-to-one to a commit, the commit body should link to the entry (e.g., See implementation-notes.md "Retry count deviation"). Do not duplicate the reasoning in both places.session-wrap: When wrapping a session, the "Key decisions" section should pull from this file rather than from memory. If the notes file is empty, that is the truthful answer.code-auditor / PR review: Reviewers should read this file before reading the diff. It frames what the diff is trying to do.# Implementation notes — <spec name>
Spec: <link or path>
Started: <YYYY-MM-DD>
## Decisions
- (none yet)
## Deviations
- (none yet)
## Tradeoffs
- (none yet)
## Open questions
- (none yet)
Keep the four headings even when empty. The empty heading is a question to yourself at the next decision point.
Before requesting review:
git log --stat alone.Deviations entry quotes the spec line it departs from.Open questions entry is phrased so a reviewer can answer yes/no or pick one.development
Use only when the user explicitly asks for swarm, subagents, parallel agents, dynamic workflow, multi-agent orchestration, 多智能体编排, or when the task truly needs coordinated research plus implementation plus review plus verification packets. Do not use for ordinary code review, planning-only work, single-line bugfixes, routine audits, or migrations unless orchestration is requested or at least two independent workflow dimensions are present.
development
Run a code quality review focused on maintainability, structure, abstraction quality, file growth, branching complexity, boundary cleanliness, and refactoring opportunities. Use when the user asks for code quality review, code review, maintainability review, architecture quality review, PR code quality feedback, 代码质量审查, 代码质量 review, 可维护性审查, 架构质量审查, or review comments about code structure. Do not use for pure security review, formatting-only review, performance profiling, or implementation tasks unless the user also asks for a code quality review.
development
Plan-first brainstorming workflow that turns an idea into an approved Markdown implementation plan by default. Use when the user wants to brainstorm, design, scope, or plan a feature/spec before implementation. Spark explores project context, asks only blocking questions, writes the plan under the project root's .plannings/YYYY-MM-DD-feature-slug.md path, self-reviews it, and waits for user approval. Create an HTML or visual plan/spec only when the user explicitly asks for HTML, browser-viewable, or visual output; save the paired .html beside the Markdown plan.
development
Run a code quality review focused on maintainability, structure, abstraction quality, file growth, branching complexity, boundary cleanliness, and refactoring opportunities. Use when the user asks for code quality review, code review, maintainability review, architecture quality review, PR code quality feedback, 代码质量审查, 代码质量 review, 可维护性审查, 架构质量审查, or review comments about code structure. Do not use for pure security review, formatting-only review, performance profiling, or implementation tasks unless the user also asks for a code quality review.