agentleFS
pecigonzalopecigonzalo/agent-skills/skills/tool-store/SKILL.md

tool-store

Skill0 starsChanged 4 months agoMITView on GitHub

Use this skill whenever you store or retrieve extended repository context, plans, notes, or `[store:id]` references, or when a message asks you to load a store id. Store items are not auto-loaded, so load this skill before reading or writing store state.

The file

Show its rules and text

We split this skill into the rules it gives an agent

13 rules. About 0 are common, 7 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    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:

    Use this skill only when the host provides compatible storewrite and storeread tools.

    line 7
  2. Distinctive:

    Use the store for extended repository context that should survive session cleanup or compaction.

    line 15
  3. Distinctive:

    Create a new store item. IDs are generated internally (12-char lowercase hex).

    line 88
  4. Distinctive:

    Every call creates a new item: it never updates an existing one.

    line 89
  5. Very specific:

    Update an existing store item by ID.

    line 115
  6. Distinctive:

    Update tags and summary together:

    line 136
  7. Very specific:

    Use sparingly. Prefer storepatch({ id, status: "archived" }) or storepatch({ id, status: "deprecated" }) when historical context may still …

    line 173
  8. Very specific:

    Keep summary short and descriptive

    line 183
  9. Distinctive:

    Use tags consistently so LIST mode stays useful

    line 184
  10. Very specific:

    Use links for related or dependent items

    line 186
  11. Distinctive:

    Prefer archive/deprecate over delete

    line 187
  12. Very specific:

    When a TODO or prompt needs durable backing context, reference the item with [store:id] and load it explicitly with storeread.

    line 193
  13. Distinctive:

    Use the store for extended repository context, not temporary scratch space.

    line 204

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

Use this skill only when the host provides compatible storewrite and storeread tools. If store tools are unavailable, retain context in TODO descriptions or the conversation and omit store IDs instead of emulating persistence with repository files.

CRITICAL: Store items are not auto-loaded. When you see Load store: <id> or [store:<id>], call storeread({ id: "<id>" }) before proceeding.

What belongs in the store

Use the store for extended repository context that should survive session cleanup or compaction.

Good fits:

  • Active plans and future plans
  • Long-term notes, research notes, and implementation context
  • Requirements, specs, and acceptance criteria
  • Schemas, interfaces, and reference structures
  • Related items that should cross-reference each other with links

Avoid storing:

  • Temporary scratch notes
  • Trivial one-off reminders
  • Data that only matters for the current short interaction
  • Documents that should live in the repository itself

What you can store

The data field can hold either short structured content or longer free-form content.

Short structured data

storewrite({
  summary: "Session handling notes for auth flow",
  tags: ["auth", "notes", "session"],
  status: "active",
  data: {
    issues: ["expiry rules differ by entry point", "validation is duplicated"],
    next_step: "create a cleanup plan for session creation and renewal",
  },
});

Long-form text or plan notes

storewrite({
  summary: "Research notes for auth redesign",
  tags: ["auth", "research", "notes"],
  status: "active",
  data: {
    notes: `Observed issues:
- Session lifetime is inconsistent
- Callback flow duplicates validation

Recommended next step:
Create a phased plan before implementation.`,
  },
});

Related/dependent items

storewrite({
  summary: "Plan: auth redesign",
  tags: ["plan", "auth", "todo-context"],
  status: "active",
  links: ["auth-spec-1", "session-decision-2"],
  data: {
    goal: "Simplify auth flow",
  },
});

Tools

storewrite

Create a new store item. IDs are generated internally (12-char lowercase hex). Every call creates a new item: it never updates an existing one.

Parameters:

  • summary (required): Short description of the item
  • tags (required): Tags for discovery and grouping
  • status (optional): "active" (default), "archived", or "deprecated"
  • data (optional): Structured or free-form JSON content
  • links (optional): Related store item IDs

Use for: New plans, notes, specs, schemas, and reusable context.

Minimal example:

storewrite({
  summary: "API error format",
  tags: ["api", "spec"],
  data: {
    shape: { error: "string", code: "string" },
  },
});

storepatch

Update an existing store item by ID. Only the fields you provide are changed; omitted fields are preserved. Returns found: false when the ID does not exist.

Parameters:

  • id (required): ID of the item to update
  • summary (optional): New summary
  • tags (optional): New tags array
  • status (optional): New status: "active", "archived", or "deprecated"
  • data (optional): New data payload (replaces existing)
  • links (optional): New links array

Use for: Changing status, updating tags, amending notes, or replacing data on an existing item.

Archive an item:

storepatch({ id: "abc123def456", status: "archived" });

Update tags and summary together:

storepatch({
  id: "abc123def456",
  summary: "Updated auth design notes",
  tags: ["auth", "notes", "revised"],
});

storeread

Retrieve store items.

LIST mode (no id):

  • Lightweight discovery
  • Returns summaries without the full data field
  • Can filter by tags
  • Excludes archived items unless includeArchived: true
storeread({ tags: ["auth", "notes"] });

READ mode (with id):

  • Returns the full item, including data
storeread({ id: "auth-spec-1" });

storedelete

Permanently remove a store item.

Use sparingly. Prefer storepatch({ id, status: "archived" }) or storepatch({ id, status: "deprecated" }) when historical context may still matter.

storedelete({ id: "obsolete-note-1" });

Best practices

  • Keep summary short and descriptive
  • Use tags consistently so LIST mode stays useful
  • Store enough context to make the item useful later
  • Use links for related or dependent items
  • Prefer archive/deprecate over delete
  • Review existing items first when you are unsure: storeread()

TODO linking

When a TODO or prompt needs durable backing context, reference the item with [store:id] and load it explicitly with storeread.

Example:

Refactor auth flow [store:auth-plan-1]

Summary

Use the store for extended repository context, not temporary scratch space.

  • storewrite creates new items (ID generated automatically)
  • storepatch updates existing items (preserves omitted fields)
  • storeread discovers or loads items
  • storedelete permanently removes items
  • Store references must always be loaded explicitly

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.