agentleFS
billyluibillylui/scriptorium/skills/vault-wrap/SKILL.md

vault-wrap

Skill1 starsChanged 59 days agoMITView on GitHub

End-of-day pass over a markdown vault — synthesise the day's log into a summary, sweep the inbox, find orphaned notes, flag stale projects, lint the conventions, refresh the search index, and set tomorrow's first thing. Run once at the end of a working day, after one or more capture sessions.

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 5 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run once per day. Everything here is safe to re-run — if a wrap already happened, do the lint and index steps and skip the synthesis.

    line 10
  2. Very specific:

    Day boundary: Before <day_boundary_hour>, today's note is *yesterday's* date.

    line 14
  3. Very specific:

    Read today's note in <daily_folder>.

    line 20
  4. Distinctive:

    If something cannot be filed because you do not know where it belongs, ask rather than guessing.

    line 30
  5. Distinctive:

    Check what the write-time guard cannot: files that reached disk another way — shell commands, sync, mobile, another editor.

    line 52
  6. Very specific:

    Run whatever <search_command> depends on.

    line 66
  7. Distinctive:

    Run it yourself: Do not tell the owner to run it later — an index that lags the vault silently degrades every answer the research law …

    line 68
  8. Distinctive:

    Keep it short — this runs at the end of a working day:

    line 82

≈ “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

Vault wrap

The closing pass. vault-up opens the day and vault-log captures during it; this closes it and does the maintenance nothing else does.

Run once per day. Everything here is safe to re-run — if a wrap already happened, do the lint and index steps and skip the synthesis.

Configuration. Folder names, the day boundary and the search command come from .scriptorium.json at the vault root: <daily_folder>, <inbox_folder>, <landing_note_parents>, <synthesis_folder>, <templates_folder>, <index_filename>, <day_boundary_hour>, <search_command>, <protected_surfaces>. Read the real values; where a key is blank, skip that step rather than guessing a layout.

Day boundary. Before <day_boundary_hour>, today's note is yesterday's date. Resolve this first — every step below writes to that file.


1. Summarise the day

Read today's note in <daily_folder>. Synthesise its activity log into a short summary: what actually moved, what was decided, what is now open.

Write the summary, not a list. The log already lists. The summary's job is what the log cannot say — what it added up to.

⚑ Never write into a protected surface. Anything in <protected_surfaces> — a reflections heading, a journal section — is the owner's own words. If they gave you text for it, format and append it. Never invent it, never rewrite it, never fill an empty one to look complete.

2. Inbox to zero

List <inbox_folder>. For each item: classify, file, link, log, remove — the intake loop.

If something cannot be filed because you do not know where it belongs, ask rather than guessing. A note filed into the wrong folder is worse than one left in the inbox, because the inbox is a place people look.

Report what remains and why.

3. Orphans

Find notes nothing links to. Glob the vault's .md files, then check which basenames never appear inside [[...]] anywhere else.

Exclude by nature: daily notes, templates, index files, landing notes, and the root CLAUDE.md.

Orphans are a signal, not an error. A genuinely standalone note is fine. A note that should be connected and is not means the link step was skipped when it was filed. Report them and offer to link the ones that clearly belong somewhere.

4. Stale topic nodes

For each folder under <landing_note_parents>, read its landing note's frontmatter and modification time.

Flag anything status: active untouched for more than two weeks. Ask whether it is finished, parked, or genuinely still active — and if finished, offer to update the status and move it to the archive.

This step exists because nothing about a stale project looks stale from inside its own note. One project left active after it ended appears in every enumeration and every "what is open" answer, indefinitely.

5. Lint the conventions

Check what the write-time guard cannot: files that reached disk another way — shell commands, sync, mobile, another editor.

  • Hard-wrapped prose. Paragraphs split across lines by a column boundary rather than intent. Offer to reflow.
  • Stray root markdown — anything at the vault root outside the allowlist.
  • Multi-wikilink YAML — two or more [[...]] on one frontmatter line.
  • Missing landing notes — a folder under <landing_note_parents> with no <Folder>/<Folder>.md.
  • Missing type: on notes in content folders.
  • Broken wikilinks — link targets with no matching file. Distinguish a typo from an intentional forward reference.
  • Index drift — notes absent from their folder's <index_filename>.

Report before fixing. Reflowing and index updates are safe to apply directly; anything touching prose or structure gets confirmed first.

6. Refresh the search index

Run whatever <search_command> depends on. For an index-backed tool this is its update and embed step; for a grep-style tool there is nothing to do.

Run it yourself. Do not tell the owner to run it later — an index that lags the vault silently degrades every answer the research law depends on, and the degradation is invisible.

7. Tomorrow's first thing

Close with one thing to pick up tomorrow, drawn from what is actually open: an unfinished thread, a decision waiting, a stale project needing a call.

One, not a list. A list is a backlog and gets ignored; one thing gets done.

Offer to write it into tomorrow's note.


Report

Keep it short — this runs at the end of a working day:

  • What the day added up to, in a sentence or two
  • Inbox: processed / remaining
  • Orphans, stale nodes, lint findings — counts, with detail only where action is needed
  • Whether the index refreshed
  • Tomorrow's one thing

Say what you changed and what you only reported. The owner should never have to diff their own vault to find out what the wrap did.

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.