agentleFS
RamillaxRamillax/claude-code-control-room/skills/skill-sync/SKILL.md

skill-sync

Skill8 starsChanged 36 days agoMITView on GitHub

Consolidate what this session learned into the project's skills so the NEXT session (or a parallel one) starts oriented instead of cold. Use when the user says "sync skills", "update the skills", "document this in the skill", or similar; and proactively offer it at the end of a session that changed how a system behaves, fixed a bug, made a design decision, or discovered that the docs were wrong (drift).

21 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use session-handoff, verification-before-completion and 2 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • wpankSkill

    session-handoff

    WHAT: Create comprehensive handoff documents that enable fresh AI agents to seamlessly continue work with zero ambiguity. Solves long-running agent context exhaustion problem.

    Also in 3 projects that use this

  • OpenAISkill

    verification-before-completion

    Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always

    Also in 3 projects that use this

  • OpenAISkill

    test-driven-development

    Use when implementing any feature or bugfix, before writing implementation code

    Also in 3 projects that use this

  • GoogleSkill

    tdd

    Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

11 rules. 0 are common, 7 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 17 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    One truth, one place: Every fact lives in exactly one file.

    line 23
  2. Distinctive:

    Before writing a fact, classify it:

    line 33
  3. Distinctive:

    If you catch yourself copying a number, version or status that could differ tomorrow, stop and leave the pointer instead.

    line 43
  4. Very specific:

    Only your own work: Read the board (slog tail 40) to orient yourself (not to overwrite someone's change, to notice a stale base), not to …

    line 53
  5. Distinctive:

    Do not write from memory or from what you believe.

    line 60
  6. Very specific:

    Parallel sessions: before editing a skill file, slog take "skill:<name>".

    line 70
  7. Very specific:

    Before finishing, run skill-lint.

    line 80
  8. Distinctive:

    If a change supersedes an older one, say so ("SUPERSEDES #42") instead of deleting it.

    line 82
  9. Distinctive:

    Exact beats complete: If you doubt a fact, verify it or leave it out.

    line 104
  10. Very specific:

    Move verbatim: When relocating content, move it with a script and diff to prove nothing was lost.

    line 107
  11. Distinctive:

    Staleness check in passing: If a reference hasn't been touched in months but its subsystem did change (grep the changelog), verify its main …

    line 109

“Common” is measured: kept by at least 6 in 10 of the 17 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skill Sync

Skills are the shared, durable memory of a project that several Claude Code sessions work on in parallel. The live board (slog) is ephemeral; this is where what matters lands before a session closes. The goal is not more text: it is that a future session, starting cold, understands the system correctly and builds on it without re-discovering everything. A stale fact is worse than a missing one: it makes the next session assert something false with confidence, and every decision built on it inherits the error.

The structure to respect: 3 layers

LayerFileWhat goes hereWhat does NOT
RouterSKILL.mdfrontmatter, 3–5 line intro, map of references, short durable rulessubsystem detail, history, walls of text
Current statereferences/<topic>.mdhow each subsystem works TODAYhow it got that way
Historyreferences/changelog.mdwhat changed, when and why; dated entries with stable #NNN idscurrent state (that lives in the topic file)

One truth, one place. Every fact lives in exactly one file. If it is in three places, two will rot. The router is loaded in full every time the skill triggers, so every KB there is paid on every use: keep SKILL.md under 12 KB and move detail to a reference. References have no size budget; they are read with grep + a partial Read.

Snapshot vs pointer: the rule that prevents most drift

What rots is whatever mirrors live state: a value, a version, a count, "currently only X is enabled". What lasts is the why, the architecture, a gotcha, an identifier.

Before writing a fact, classify it:

  • Durable → write it. This is knowledge that lives nowhere else (reasoning, decisions, traps).
  • Live state → do NOT copy the value. Write one line about what it does, plus where it lives and how to read it now:
Retries failed webhooks with backoff.
↻ verify: <command that shows the current config / query / file:line>

If you catch yourself copying a number, version or status that could differ tomorrow, stop and leave the pointer instead.

Procedure

1. Inventory YOUR work first (write nothing yet)

List the concrete changes and findings of this session: what you changed (with identifiers), behavior that is new or corrected, decisions and their reasons, and every place where reality differed from what the skill said. If the scope is unclear, ask the user.

Only your own work. Read the board (slog tail 40) to orient yourself (not to overwrite someone's change, to notice a stale base), not to collect material. A feed line has no reasoning and no gotchas: documenting another session's work from it produces something plausible and wrong, and it collides with what that session writes. Each session consolidates its own work; if something of theirs looks unconsolidated, tell the user.

2. Verify against the live system before asserting

Do not write from memory or from what you believe. For each fact, confirm it with a tool result: read the code, query the system, check the config. An identifier or behavior that did not come out of a tool result does not get written.

3. Route each fact to its single owner file

Open references/owners-map.md (in this skill) to find which skill/file owns the topic, and edit there. Apply snapshot-vs-pointer to every fact. If a change spans topics, split it. If you found drift (a reference said something no longer true), fix it: that is the most valuable part of the job, more than adding the new thing.

Parallel sessions: before editing a skill file, slog take "skill:<name>"; release it at the end. Two sessions rewriting the same reference is how facts get silently lost.

4. Changelog discipline

references/changelog.md is a single chronological log, newest on top, grouped by day (## YYYY-MM-DD), one entry per line block: **#NNN** · **Title** (date; ids; state in references/<topic>.md) — what, why, gotchas, ↻ pointers.

  • id = next free integer. Ids are stable references (other files cite "see #42"): never renumber or reorder them.
  • ⚠ Parallel sessions collide here: two can read the same maximum id and both use it. Before finishing, run skill-lint. It flags duplicate ids. Renumber the entry that is cited less (grep -rn "#NNN") and fix its citations.
  • If a change supersedes an older one, say so ("SUPERSEDES #42") instead of deleting it.
  • The changelog is a decision log, not a diff history: git already tells you which bytes changed. Write what git cannot see: the why, and changes outside the repo (databases, APIs, deployed services, dashboards).

5. Skill or memory?

Skills = how the system works (shareable, for any session). Claude Code's memory = the user's preferences and project state that is not derivable from code. A user preference goes to memory, not to a skill. Sometimes both: the skill gets the "how", memory the "why they want it".

6. Close the board

For each of YOUR feed lines with something durable that hasn't landed yet, land it now (steps 3–5). Then run slog done: it removes your lines, never other sessions' lines, never a lock you still hold. Never delete or rewrite the board by hand: other sessions' live locks are in it.

7. Report

Tell the user which files you touched and what changed in each (a short table). List any drift you noticed but did not fix, so they can decide.

Golden rules

  • Exact beats complete. If you doubt a fact, verify it or leave it out.
  • Confirm before restructuring. Editing and adding entries: go ahead. Moving, renaming or re-architecting files: show the plan first.
  • Move verbatim. When relocating content, move it with a script and diff to prove nothing was lost; back up large files first.
  • Staleness check in passing. If a reference hasn't been touched in months but its subsystem did change (grep the changelog), verify its main claims before building on it.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.