Store and find procedural knowledge — reusable step-by-step how-tos — in Forgetful's skill store. Use when a workflow worth repeating gets worked out, when the user asks how something is done here, or when importing or exporting SKILL.md files. Litmus: a procedure someone follows is a skill; a fact someone recalls is a memory.
Installs into .claude/skills of the current project.
Are you the author of Forgetful Procedures?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/scottrbk-forgetful-procedures)
---
name: forgetful-procedures
description: >-
Store and find procedural knowledge — reusable step-by-step how-tos — in Forgetful's skill
store. Use when a workflow worth repeating gets worked out, when the user asks how
something is done here, or when importing or exporting SKILL.md files. Litmus: a procedure
someone follows is a skill; a fact someone recalls is a memory.
license: MIT
tags: [skills, procedures, how-to, skill-store]
allowed-tools:
- mcp__forgetful__discover_forgetful_tools
- mcp__forgetful__how_to_use_forgetful_tool
- mcp__forgetful__execute_forgetful_tool
- Bash(forgetful:*)
---
# Storing and finding procedures
Forgetful's skill store is procedural memory: how-tos that agents retrieve by capability
and follow. All skill operations run through the standard invocation surface below, the
same as every other domain.
## Invoking operations
Operations are named by registry name (`search_skills`, `create_skill`, ...). Invoke via
whichever surface this agent has:
- **MCP**: `execute_forgetful_tool(tool_name="search_skills", arguments={...})`
- **CLI**: `forgetful call search_skills --args '{"query": "..."}' --json`
Get any operation's schema at runtime: `how_to_use_forgetful_tool` (MCP) or
`forgetful tools info <operation>` (CLI) — schemas are deliberately not repeated here.
## Step 1 — Apply the litmus
"How to review pull requests in this project" is a skill; "we use conventional commits" is
a memory (`forgetful-remember`). A procedure has steps someone follows in order; a fact is
recalled and applied.
Done when: the content is confirmed procedural.
## Step 2 — Search before create
`search_skills` for the capability first — search is semantic over skill *descriptions*, so
query by what the procedure achieves ("deploy the API", "rotate credentials"), not its
exact name. An existing skill that covers it gets updated (`update_skill`) rather than
duplicated; names are unique.
Done when: create vs update is an informed decision.
## Step 3 — Create with the description carrying the weight
The description is the only embedded field — content (up to 100KB) is stored but never
searched semantically. Write the description as the retrieval surface: what the procedure
achieves, when to reach for it, capability keywords. Then `create_skill` with kebab-case
name, the full markdown procedure as content, tags, and importance.
Done when: the skill exists and a capability-phrased `search_skills` finds it.
## Step 4 — Import / export SKILL.md
`import_skill` ingests a SKILL.md string: YAML frontmatter needs `name` and `description`;
`license`, `compatibility`, `tags`, `metadata`, and `allowed-tools` (hyphenated on disk,
mapped to `allowed_tools` internally) are honoured. The body after the frontmatter becomes
the content. `export_skill` re-emits the SKILL.md, round-trip faithful — tags included.
Done when: imported skills search well (check the description survived intact) and exports
open cleanly in the target platform.
## Step 5 — Link the supporting material
Procedures rarely stand alone: `link_skill_to_memory` for the decisions behind the
procedure, `link_skill_to_document` for long-form background, `link_skill_to_code_artifact`
for the code it operates, `link_skill_to_file` for bundled assets. `get_skill_links` shows
everything attached — it is the reverse lookup, returning linked memory, file, code
artifact, and document IDs.
Done when: following the procedure never requires hunting for its supporting material.