agentleFS
TeamHelix-AITeamHelix-AI/helix/skills/helix-shelf/SKILL.md

shelf

Skill1 starsChanged 2 months agoApache-2.0View on GitHub

Put finished artefacts on Helix Shelf and take them down again in any later session — design docs, reports, design systems, screenshots, bookmarks, bundles of files — each with a title, a description and the context it came from, scoped to one project or to every project. Use when the user says "/helix-shelf", "shelve this", "put this on the shelf", "is there a doc for X", "get the tokens from the shelf", when a deliverable is finished and worth finding again, or when a session needs something another session produced. Shelf keeps; it never binds and never decides.

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. jhammant/shelf★ 1same name
    2. AGHEORONO/model-relay★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository12 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 4 are distinctive, and 6 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.

  • 6

    Very specific

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

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

    If HELIX_ORCHESTRATOR_RUN_ID or HELIX_SKILL_CREDENTIAL_FILE is set, this skill runs in Helix Console.

    line 11
  2. Very specific:

    Use the normal helix <surface> up, push, state, and wait commands.

    line 13
  3. Very specific:

    Do not start local servers or Fleet, open a browser, curl localhost, use --local, log in, or change profiles/projects.

    line 14
  4. Distinctive:

    Call the binary by its full path every time:

    line 31
  5. Very specific:

    Never put it in a shell variable or function.

    line 40
  6. Very specific:

    Every verb takes --dir <projectDir> when the project is not the cwd.

    line 66
  7. Very specific:

    When a session needs something it does not have, shelf find before building it again.

    line 102
  8. Distinctive:

    Not Archive. The story of a session, its chapters and decisions, is Archive's.

    line 107
  9. Distinctive:

    Not Memory. A fact worth recalling automatically goes to Memory.

    line 109
  10. Distinctive:

    Not a file system. Items are immutable and addressed by id.

    line 111

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

Helix Shelf

Orchestrator cloud context (check before setup)

If HELIX_ORCHESTRATOR_RUN_ID or HELIX_SKILL_CREDENTIAL_FILE is set, this skill runs in Helix Console. This section takes precedence over local setup and browser instructions below.

  • First call the plugin's bin/helix orchestrator-protocol (Windows: bin/helix.cmd orchestrator-protocol). It must print 1. Otherwise stop with an actionable request to update the Helix plugin/CLI; never run an older binary's setup commands.
  • Use the normal helix <surface> up, push, state, and wait commands. The CLI selects cloud transport and the assigned project automatically. Keep the same slug within this task.
  • Do not start local servers or Fleet, open a browser, curl localhost, use --local, log in, or change profiles/projects. Do not read or print the credential file. Do not remove the injected environment variables.
  • up returns the Console session URL. Use that URL wherever the local instructions request Board/Fleet links. Events go to Console; human responses and gate approvals still come from the person through the normal wait protocol.
  • On cloud or compatibility errors, report the error. Never fall back to local mode. Outside this context, follow the local behavior below unchanged.

The cupboard, not the diary. Archive tells the story of a session; Shelf holds the thing itself — the artefact, with enough context to know what it is and when it applies — so any later session can take it down by id or by search.

One item is one immutable folder: item.md (title, description, context, tags, where it came from) and the files. A revision is a new item that supersedes the old one; the old one stays readable, so a reference made last month still points at what it saw.

Setup

Call the binary by its full path every time:

${CLAUDE_PLUGIN_ROOT}/bin/helix shelf <verb> [flags]

On Windows, ${CLAUDE_PLUGIN_ROOT}\bin\helix.cmd in place of bin/helix; the rest of the command is the same.

Never put it in a shell variable or function. The skill pre-approves this command, and that approval stops matching past a variable assignment — wrap it and every call prompts instead. Prose below names commands as shelf <verb>; run them with the full path.

One store per machine, at ~/.helix/shelf, with two layers: global and project, named by the repo's .helix/project file — or the directory name when there is none. Both are searched. Nothing else is written into the repo.

The commands

# put something on the shelf → {"status":"ok","id":"shf_…"}
${CLAUDE_PLUGIN_ROOT}/bin/helix shelf put --title "…" --description "…" --context "…" [--tag t]… \
    [--scope project|global] [--supersedes shf_…] [--session <app/project/slug>] [--source <ref>] <files…>
${CLAUDE_PLUGIN_ROOT}/bin/helix shelf put --title "…" --description "…" --url https://…      # a bookmark

# take something down
${CLAUDE_PLUGIN_ROOT}/bin/helix shelf get <id> [--latest] [--out <dir>]     # --out writes the files to <dir>/<id>/
${CLAUDE_PLUGIN_ROOT}/bin/helix shelf find "<query>" [--tag t] [--scope L] [--limit n]
${CLAUDE_PLUGIN_ROOT}/bin/helix shelf list [--scope L]

${CLAUDE_PLUGIN_ROOT}/bin/helix shelf up [--no-open]                        # the board, for the person

Every verb takes --dir <projectDir> when the project is not the cwd. Pass --agent <name> --model <id> on put so the item records who shelved it.

Shelving well

Shelve finished things a later session would want: the ratified design doc, the report the swarm merged, the design tokens, the screenshot set a critic judged against. Not drafts, not scratch, not anything already in the repo (reference the commit instead).

The three lines are what make an item findable a month on:

  • title — what it is, in one line
  • description — what it is for
  • context — where it came from and when it applies: the session, the decision, the date. Write it for someone who has no other way to know.
${CLAUDE_PLUGIN_ROOT}/bin/helix shelf put \
  --title "Helix Rails and Shelf — design" \
  --description "Ratified design for the two shared services." \
  --context "From the rails-shelf canvas, 20 Aug 2026; four decisions ratified. Use as the spec until the apps ship." \
  --tag design --tag helix --scope project \
  --session canvas/skills/rails-shelf --agent claude --model <model-id> \
  brainstorming/helix-rails-shelf.md

Revising? Put the new version with --supersedes <old id>; never edit a shelved file in place — there is no in place.

Referencing

An item's id is its address everywhere: shelf:shf_7c1e2a in a canvas card, a memory, a rail, an archive chapter. shelf get <id> hands you exactly what was shelved; --latest follows the supersedes chain to the newest revision.

When a session needs something it does not have, shelf find before building it again.

What Shelf is not

  • Not Archive. The story of a session, its chapters and decisions, is Archive's. Shelf keeps only the artefact and its context.
  • Not Memory. A fact worth recalling automatically goes to Memory; Shelf is never injected, only fetched.
  • Not a file system. Items are immutable and addressed by id; there are no folders to tidy.

Sharp edges

  • An item with a vague context is as good as lost. If you cannot say when it applies, you are not ready to shelve it.
  • get without --latest is deliberate: it returns what the reference pointed at, superseded or not. Say so when you hand it over.
  • Large bundles shelve slowly and are rarely what the next session wants; shelve the deliverable, link the rest.

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.