agent skills for claude code

An agent needs context to do good work.Most of it was never written down.

What shipped, why you chose it, what you tried and killed — from git, your files and your answers. And where nobody remembers why, they say so.

20 skills · every output is Markdown · read the catalogue ↓

design/decisions/0007design-decisions
## Decision

We chose **terminal-rendered markdown**: monospace throughout, box-drawing characters for rules and tables, **markdown syntax present but recessive** rather than hidden, colour used only as signal, and hierarchy from case, weight and colour rather than from size. The palette is inherited entire from the existing system, both modes, unchanged.

The reason, in the owner's words on 2026-08-19 and deliberately not paraphrased:

> *"this direction feels more skill styles and markdown styles and which represent all the context or how all files stores also"*
a real file in this repo · [read the whole thing]
design/decisions/0002design-decisions
## What we gave up

*(none identified)* — the trade was never articulated. Mechanically, a third family is a third webfont on a page whose stated virtue is restraint, and the two-family drafts demonstrably worked without it; but **no one recorded weighing that**, and it is not this record's job to supply the reasoning after the fact.

## What would make us revisit

*(not stated)*
a real file in this repo · [read the whole thing]
docs/decisions/0023decisions-logger
## Decision

We split site content **by kind**, and say so. `website/components/lib/skills.ts` holds everything repeated or counted: the skill catalogue and its groups, every install command, the nine matrix rows, the hero specimens, the loop steps and the repo URLs. **Every count is derived from that data, never written** — `TOTAL_SKILLS`, `spellCount()` and `TOTAL_SKILLS_WORD` exist so that no sentence on the page, and no line of metadata, states a number a human typed. Section prose — headings, ledes and body paragraphs — lives in the component that renders it.
a real file in this repo · [read the whole thing]
docs/decisions/0000-not-loggeddecisions-logger
# 0000. Not logged

Candidates the decision log deliberately does **not** contain — so a re-run doesn't propose them again, forever.

**This is a ledger, not a decision.** Unlike its numbered siblings it is *hand-editable*: delete a row to make a candidate eligible again, or run `/decisions-logger reconsider` to re-open everything here for one run.
a real file in this repo · [read the whole thing]
changelog/commits/037changelog-tracker
 website/components/Specimens.module.css      | 203 ------------------
 website/components/Specimens.tsx             | 222 -------------------
 website/components/lib/skills.ts             | 305 ++++++++-------------------
 website/package.json                         |   4 +-
 29 files changed, 915 insertions(+), 2291 deletions(-)
```

---

_Generated by `/changelog-tracker` from `git log -1` and `git show --stat`. Every fact here comes from git: **faithful, not generative.**_
a real file in this repo · [read the whole thing]
changelog/commits/042changelog-tracker
## Corrections to the commit message

Four sentences in the message above do not survive a check against the diff. The message is in the git log permanently and cannot be edited, so the corrections are recorded here instead. Everything else in it was verified and holds.

**1. "Both shadow values are alpha of `--ink`" — true in light mode, false in dark.**
a real file in this repo · [read the whole thing]
handoff/…-context-stackhandoff-generator
## Open Questions
Reconciled against the 2026-07-12 brief: - **[CLOSED] Slug-in-filename bug** — fixed in `8b02a1b` ("Fix: include slug in handoff filename"); Step 6A now uses `...-{date}-{slug}.md`. - **[CLOSED] Commit `bf31614` (README intro)** — merged to the default branch via PR #2. - **[STILL OPEN] Repo is private** — must be flipped public before anyone else can `/plugin marketplace add vidhunnan/agentic-skills`. - **[STILL OPEN] GitHub About description + topics** — drafted in the prior brief, not yet applied. - **[STILL OPEN] v2 ideas parked in the PRD** — auto-fire on chat wind-down, Cursor `.mdc` counterpart, multi-file handoffs, chaining across multiple prior handoffs.
a real file in this repo · [read the whole thing]
docs/concepts/website/type-systemexploration-log
### What we learned

The direction read as *"more decorative and interactive than the minimal, airy look the owner asked for"* — recorded in [ADR 0017](../../decisions/0017-the-website-design-direction-is-swiss-whitepaper.md).

### Verdict

**Killed** — with the Blueprint direction. Whether the typeface pairing was *independently* rejected, or simply went down with the direction it belonged to, is *(not recorded)*.
a real file in this repo · [read the whole thing]
design/briefs/website-revampdesign-brief
## Anti-goals

*What would count as failure even if it tested well:*

- **The records read as a design gimmick.** If the gaps and the redline look like a device invented for the layout rather than real artifacts from a real repo, the argument inverts — their entire value is that they are not decoration. - **Beautiful, and still can't say what this is.** Someone lands, admires it, leaves, and could not describe the library to a colleague. This is the current failure and the criterion above exists to catch it.
a real file in this repo · [read the whole thing]
design/system/language-websitedesign-language
## Vocabulary

**The noun this runs on:** **context.** The UI, the README and the copy all use it and do not drift to synonyms.

**Out of bounds:**
- **"context engineering"** — the discipline label, as opposed to the plain noun. The closed positioning brief already suspected it loses the reader in the first sentence; the audience is now anyone building with Claude seriously, not engineers.
a real file in this repo · [read the whole thing]

The decision that produced this page — including the reason, quoted as it was said rather than tidied up afterwards.

What gets written

Nine questions a project has to answer. Most of them already have an answer — it’s just nowhere you can read it.

  • What did we try?today: git history, only changesadds: explorations
  • Why did we choose that?today: commit messagesadds: decisions
  • What is it, exactly?today: the code itselfadds: specs
  • What's reusable?today: the package systemadds: system
  • What actually shipped?today: git, properlyadds: changelog
  • What are we trying to build?today: when someone writes itadds: concepts · briefs
  • What are we still deciding?today: when someone documents itadds: prds · briefs
  • What did we learn?today: nothing, by defaultadds: research
  • Where did we leave off?today: nothing, by defaultadds: handoffs

Red is not styling. It marks the rows where nothing answers the question today — the same signal the records use for a reason nobody recorded.

How one skill works

Take decisions-logger. You’ve just decided something — “plain CSS Modules, not Tailwind.”

  1. 01It reads the evidencegit log, the config that changed, the PR thread. Never recollection.
  2. 02It asks what it can't find"why did Tailwind lose?" — and every question offers "I don't remember."
  3. 03It writes the recorddocs/decisions/0018-….md — with the option that lost named, or it isn't a decision.
  4. 04It registers the rulea block in CLAUDE.md, the file your agent re-reads at the start of every session.
  5. 05Next session, unaskedit offers to log the next one. You never have to remember the habit.

The skills

Twenty, each a separate plugin. Three worth reading properly; the rest are one line each.

Install

Read a couple of the records above before you trust it with your repo — including the one that says it doesn’t know.

Claude Code gives you the system. Claude.ai gives you the artifact. On Claude.ai a skill interviews you and hands back a document — there is no folder to write into and no rule registered, so nothing happens next session unless you paste the block in yourself. Skills marked Chat above have that path; the rest need git.

# once

/plugin marketplace add vidhunnan/agentic-skills

# start here — it builds the folders the rest fill

repo-setupCodeChat

Where does this doc go?

/plugin install repo-setup.zip
changelog-trackerCode

What actually shipped?

/plugin install changelog-tracker
decisions-loggerCodeChat

Why did we choose that?

/plugin install decisions-logger.zip
handoff-generatorCodeChat

Where did we leave off?

/plugin install handoff-generator.zip
branch-namingCode

What do I call this branch?

/plugin install branch-naming
model-strategyCode

Which model for this work?

/plugin install model-strategy
version-managerCodeChat

What version is this, and what shipped?

/plugin install version-manager.zip
design-setupCodeChat

Where does this design doc go?

/plugin install design-setup.zip
design-briefCodeChat

What are we actually solving?

/plugin install design-brief.zip
design-languageCodeChat

What should it look like?

/plugin install design-language.zip
design-exploreCodeChat

What are the options?

/plugin install design-explore.zip
exploration-logCodeChat

Did we already try that?

/plugin install exploration-log.zip
design-critiqueCodeChat

Does this match what we said?

/plugin install design-critique.zip
design-decisionsCodeChat

Why is it like this?

/plugin install design-decisions.zip
post-setupCodeChat

How should my posts sound?

/plugin install post-setup.zip
post-exportCodeChat

What was postable about this?

/plugin install post-export.zip
post-anglesCodeChat

Is there a post in this?

/plugin install post-angles.zip
post-generatorCodeChat

How do I say it?

/plugin install post-generator.zip
post-cardCodeChat

What does each frame look like?

/plugin install post-card.zip
skill-scaffoldCodeChat

How do I add another one?

/plugin install skill-scaffold.zip

Upload under Settings → Customize → Skills. On Claude.ai there is no file to write a standing rule into, so a skill that registers one prints it for you to paste instead.