agentleFS
nathanadaynathanaday/atlas-obsidian/skills/almagest/SKILL.md

almagest

Skill1 starsChanged 25 days agoMITView on GitHub

Orient in the Almagest vault, say what waits for the user, do the work a request asks in a linked repository, and route any other request to the skill that owns it. Use for /almagest, what is going on, status, what waits for me, where do I work on X, work on X, fix this, implement, build, note this, remember to, publish my journal, what is in my journals, and any request when the right skill is not clear. Keeping part of this conversation is wiki-save; files to learn from are wiki-ingest.

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 4 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every request passes this skill first.

    line 8
  2. Very specific:

    Read the opening context: the vault, its repositories, the live sessions, the tags with their counts, and this session's document.

    line 18
  3. Very specific:

    When the request names work in a repository, find the repository: search with types: [repository] and the request's words, then context …

    line 25
  4. Very specific:

    When the request names categories ("my cs513 self-driving project"), turn the words that name tags of the vocabulary into tags, and pass …

    line 29
  5. Distinctive:

    Do the work in the repository (Work in a repository), or hand off.

    line 34
  6. Very specific:

    Read what context returned for the repository in step 3: follow its instructions (the paths of AGENTS.md and CLAUDE.md, and what they …

    line 83
  7. Distinctive:

    Do the work. Change files with Edit and Write, not with the shell.

    line 86
  8. Very specific:

    When the work is long, or stops before it is done, add a dated line to ## Progress in this session's document: where the work stands.

    line 88
  9. Distinctive:

    Never report the vault's git state to the user.

    line 134

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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

almagest

Every request passes this skill first. It reads where the session stands, names the kind of request, finds the repository or the tags that the request names, and hands off. A request to change code in a linked repository goes to no other skill: this skill finds the repository and does the work.

Tools: vault, search, context. References: conventions.md.

Procedure

  1. Read the opening context: the vault, its repositories, the live sessions, the tags with their counts, and this session's document. Call vault when the context is missing or the user asks for the state. When the context says that the vault waits for almagest vault migrate, stop: tell the user to type ! almagest vault migrate in this session (you cannot run it), then to start a new session. Until then, every tool and every edit in the vault refuses.
  2. Name the kind of request with the table below.
  3. When the request names work in a repository, find the repository: search with types: [repository] and the request's words, then context with repository set to the best hit. When two repositories match, ask which, and name both. Never guess between two.
  4. When the request names categories ("my cs513 self-driving project"), turn the words that name tags of the vocabulary into tags, and pass them to the next call. The opening context and vault list the tags that exist.
  5. Once the work is known, write one line under ## Description in this session's document (the opening context links it). Use Edit.
  6. Do the work in the repository (Work in a repository), or hand off.
The user wantsSkill
an answer, an explanation, to explore; what the vault holds under a tagwiki-query
a change to code in a linked repository: fix, build, implement, continuethis skill: Work in a repository
to note an idea, a bug, or a paper for later ("note this", "remember to")this skill: Notes for later
to publish a journal, or to know what the journals holdthis skill: Journals
to ingest files, or process ingest/wiki-ingest
to keep something from this conversationwiki-save
to bring the wiki up to date with new sourceswiki-sync
to link, unlink, or describe a repositoryrepo-link, repo-unlink, repo-ingest
to check the wikiwiki-review
to fix, rewrite, merge, or retag knowledge, or rename a tagwiki-edit
to organize the knowledge under a tagwiki-map
a reading stack: check out the material on a subject, or return a checkoutwiki-checkout
to wikify a note: mark what the wiki knows in it, and the subjects worth a topicwiki-wikify
a new vaultalmagest-onboard

A question can turn into work. When the user then asks for a change to a repository, do the work.

Messages from the palette

The Almagest palette in Obsidian starts an agent with one of seven messages. Each one names its skill, and four name a work document. A work document's kind is ingest, repair, or draft:

The messageSkill
/almagest:wiki-ingest Ingest the files of ingest/ … Your work document is [[…]] (<id>) …wiki-ingest
/almagest:wiki-review … with a repair work documentwiki-review, its Repair path
/almagest:wiki-sync Absorb the source [[<edition>]] (<id>), the user's journal edition. … Your work document is [[…]] (<id>) …wiki-sync, its journal edition rules
/almagest:wiki-edit Remove [[<title>]] …: point each backlink elsewhere …wiki-edit, its Safe delete path
/almagest:wiki-checkout Check out the material on: <request>wiki-checkout
/almagest:wiki-wikify Wikify [[<copy title>]]: mark what the wiki knows …wiki-wikify
/almagest:wiki-edit Draft a topic titled <Title> from [[<note>]] … Your work document is [[…]] (<id>) … with a draft work documentwiki-edit, its Draft path

The user decides in the document (Approve or Cancel), so these tasks do not stop for a yes before they propose. Ask the user only for a real edge case that the skill names.

The end of a task

End each task with one or two lines: what was done, and the change or work document as a link. The documents hold the details; do not repeat them in the chat.

Work in a repository

  1. Read what context returned for the repository in step 3: follow its instructions (the paths of AGENTS.md and CLAUDE.md, and what they require) and the policies that bind the work (conventions.md).
  2. Do the work. Change files with Edit and Write, not with the shell; use the shell to run commands. Test what can break.
  3. When the work is long, or stops before it is done, add a dated line to ## Progress in this session's document: where the work stands.
  4. What you learn on the way has a home:
    • a fact the wiki should hold (how a tool behaves, a result, a pitfall) → wiki-save;
    • work for later → a note in scratchpad/.

Notes for later

An idea, a bug, or a paper the user wants to remember goes in a note in scratchpad/: the user's words, with a short title as the file name. A file the wiki should learn from goes in ingest/, for wiki-ingest.

Journals

journals/ holds the user's own writing. A volume is a folder directly under journals/. Its notes are every .md file under it, except its publication history, Journal · <folder>.md, which code writes.

  • "Publish my journal." Publish is the user's act. Tell the user to press Publish next to the volume on the Journals page of the Almagest palette, or to type ! almagest journal publish <volume> in the session. Never run that command yourself: the guard refuses it from your shell. Publish captures the volume as one source, an edition. The palette then starts wiki-sync on the edition, with a work document. After a publish with !, the edition waits as a pending source; absorb it with wiki-sync when the user asks.
  • "What is in my journals?" vault status (journals) names each volume with its note count, its latest edition, and whether it changed since that edition. almagest journal list prints the same. Read the notes with Read, Grep, and Glob; search does not index journals/. Never edit a file there.

Status

vault status gives the state of the vault. Say what waits for the user first: the proposed changes and the sessions that wait. Then the running work documents (changes.running), the files in ingest/, the sources pending for the wiki, the journal volumes with changes to publish (journals entries with changed: true; the user publishes them), the checkouts with edited copies that are out (checkouts entries with status: out and edited above 0; Return proposes their edits), and the lint problems, each with the skill that handles it. The opening context names each repository that is behind its description (repo-ingest), and each journal volume with changes to publish.

Vault rules

  • Never report the vault's git state to the user. The Obsidian plugin commits the user's hand edits as quiet snapshots, and every write tool commits a snapshot first.
  • journals/ holds the user's own writing. Read it when the request needs it; never edit a file there, and never run almagest journal publish. The guard refuses every agent edit under journals/, and the publish command from your shell.
  • checkout/ is the user's: the copies the librarian checked out, each checkout's _index.md, and the ledger. A returned checkout moves to tool/returned/, as the user left it. Code writes them; the user reads and edits the copies. Never edit a file there; the guard refuses every agent edit under checkout/ and tool/returned/.
  • A wikified copy (scratchpad/<name> · wikified.md) is the user's scratch. Only wikify mark writes into it; never edit it with Edit or Write.
  • tool/trash/ holds what the user deleted. Never read or edit it, and never run almagest vault trash: safe delete is the user's action. The guard refuses every agent edit under tool/trash/.

Gate

None. The skill that the request routes to keeps its own gate.

Hand off

The routed skill.

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.

Reviews can't be read right now.

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.