From sdd-engineering
Use during any coding session whenever you uncover a non-obvious finding worth preserving — a failure mode that surprised you, a tool/library quirk, an architectural decision made for a non-obvious reason, a recurring error and its fix, or an open question you could not resolve. Appends a single dated entry to the nearest INSIGHTS.md (the closest ancestor of the affected files, or the repo root) under one of seven fixed sections. Append-only. Skips anything obvious from reading the code.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sdd-engineering:engineering-insightsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Capture loop for non-obvious findings. Writes accumulate in `INSIGHTS.md`
Capture loop for non-obvious findings. Writes accumulate in INSIGHTS.md
files that live next to the code they describe; reads happen when a session
scans them before touching that area (recommend adding a "read INSIGHTS.md
before non-obvious changes" rule to the host repository's CLAUDE.md /
AGENTS.md). This skill handles writes.
Fire when the current session uncovers something a future session would not re-derive from the code alone. Each trigger maps to a section:
Do not fire for: renames, formatting, anything git blame would explain,
anything already in a CLAUDE.md / README.md, transient task state, or
fixed bugs that leave no durable lesson. Silence is a valid session outcome.
Pick the INSIGHTS.md closest to the affected code. Always exactly one
file per entry, except for genuinely cross-area findings (write to the repo
root, optionally add a one-line pointer in each touched area).
INSIGHTS.md (a package root, a module
root, or the repo root).INSIGHTS.md.INSIGHTS.md exists anywhere → offer to create one at the repo
root, seeded with the seven section headings each holding a _None yet._
placeholder. Create it only with the user's consent.If routing is ambiguous, ask once. Do not guess.
Insert under the matching section heading. Use this exact shape:
### <one-line title — present-tense verb phrase, not a topic noun>
_<YYYY-MM-DD>_ · `<file:line>` (or `repo-wide`)
<2–4 sentences. State the failure / decision / quirk and what to do about
it next time. Cold-readable: a stranger should know what to do without
asking follow-ups.>
Title rule: pgvector cosine returns NaN on un-normalized inputs ✓,
pgvector ✗ (topic, not a finding).
"If this would be obvious to anyone reading the code, don't write it."
Examples:
❌ "Promises can be tricky."
✅ "Promise.all() on the ingestion pipeline times out after 30 items.
Switch to Promise.allSettled() with batches of 10."
❌ "Use async/await carefully."
✅ "Local component state breaks the checkout flow because cart data is
shared across 3 components. Always use the cartStore.ts Zustand store."
If your draft entry reads like the left column, rewrite it or drop it.
_None yet._, replace that placeholder with
the new entry. Once a section has real entries, the placeholder is gone.> Updated YYYY-MM-DD: note
below it rather than rewriting silently.git log / git blame / a README.md already explains.CLAUDE.md rules.Aim to keep each file under ~200 entries. If a file grows past that, split
by sub-domain (e.g. INSIGHTS.embeddings.md next to the original) rather
than pruning aggressively — the value is in long memory, not a tidy file.
npx claudepluginhub yamchinsky/dev-digest-ai-marketplace --plugin sdd-engineeringCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.