agentleFS
SinnConsultingSinnConsulting/LoopBoard/.claude/skills/readme-regen/SKILL.md

readme-regen

Skill19 starsChanged 11 days agoMITView on GitHub

Regenerate docs/guide.md's machine-owned settings region from package.json's contributes.configuration, then run a feature-coverage check that flags drift between the hand-written feature prose and the extension's real contribution points. Use whenever README.md or a `contributes.*` entry in package.json changes. Never rewrites feature prose — it only reports.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Never imports vscode, and is not compiled into out/ or out-test/.

    line 60
  2. Very specific:

    Never ships: .vscodeignore excludes .claude/, and make package asserts no .claude/ entry is in the .vsix.

    line 61

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

readme-regen

docs/guide.md has two halves that need opposite treatment, and this skill is the line between them.

  • The settings region is machine-owned. It sits between <!-- loopboard:settings:begin --> and <!-- loopboard:settings:end -->, and is re-derived from package.json on every run, so it can never drift. Never hand-edit inside the sentinels — the next run overwrites it.
  • The showcase region (<!-- loopboard:showcase:begin/end -->) is machine-owned too: a copy of the same-sentinel slice of docs/showcase/README.md, relative links made absolute raw URLs. Edit the showcase page, never docs/guide.md's copy. make readme regenerates both regions + checks; make showcase re-records the GIFs and then runs it.
  • The feature prose ("Small on purpose", storage, sidebar, security, the settings prose) is hand-written and stays that way. The tool validates its COVERAGE against the real contribution points and FLAGS drift. It never rewrites a sentence. Auto-derived feature prose is out of scope.

Run it

Containers only: never node on the host (CLAUDE.md non-negotiable 1). From the repo root:

make readme

generate is idempotent: running it twice is a no-op, so the README stays fixpoint-stable exactly like the loopboard:sync:* blocks. check exits non-zero and lists every problem it found.

The same logic is asserted by test/readme-settings.test.js under make test / make check, which is the real backstop: a stale settings region or an undocumented command fails the build for an editor who never read this file.

When to run it

  • Any change to contributes.configuration in package.json — a setting added, removed, renamed, re-defaulted, re-ordered, deprecated, or its markdownDescription reworded.
  • Any change to contributes.commands or contributes.views.
  • Any edit to docs/guide.md, to confirm you did not break coverage.

What check enforces

  1. Settings region is current — byte-equal to what generate would write.
  2. Every command is documented — each contributes.commands[].title appears somewhere in the README.
  3. Every view is documented — the activity-bar container title and each view name appear.
  4. Documented behaviours still have prose — the DOCUMENTED_BEHAVIOURS list in readme-tool.js (three human actions, markdown source of truth, groom/work loops, multi-model slots, loop terminals, .loopboard/cache/ attachments, sidebar, DONE.md archival, atomic field-level saves, zero runtime dependencies).

A failure is a prompt to WRITE prose, not a prompt to loosen the check. Only edit DOCUMENTED_BEHAVIOURS when a behaviour genuinely stops existing.

Boundaries

  • Dependency-free plain Node. No new runtime deps, no new devDependencies, no bundler.
  • Never imports vscode, and is not compiled into out/ or out-test/.
  • Never ships: .vscodeignore excludes .claude/**, and make package asserts no .claude/ entry is in the .vsix. Keep it that way — do not add it to the packaged file set.
  • Facts stated in the README must be true of the repo. When adding prose, verify against the source (CLAUDE.md, .loopboard/LOOP.md, the Makefile, package.json) rather than the README's own earlier wording, which is what drifts.

The short README.md is hand-written and links to the guide. Keep it concise; generation must never overwrite it. Run the coverage check after changes to either page.

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.