Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/jscott3201/aionforge-memory/memory-bootstrapnpx skills add jscott3201/aionforge-memory --skill memory-bootstrapgit clone --depth 1 https://github.com/jscott3201/aionforge-memoryWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00071 | $0.01504 |
| Opus 5 | $0.00036 | $0.00752 |
| Sonnet 5 | $0.00014 | $0.00301 |
| Haiku 4.5 | $0.00007 | $0.00150 |
Grade A, and why
memory-bootstrap scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 59 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Memory Bootstrap
Requires an enabled Aionforge Memory MCP server.
Use this skill once per project to turn an empty store into a useful substrate, so the very next session recalls real context instead of starting cold. The ongoing per-task cadence (recall → capture → track work) lives in memory-loop; this skill fills the gap before that loop has anything to recall.
It is idempotent by protocol — recall before you write, so a second run updates the substrate instead of doubling it. The two node kinds get there differently: a re-capture of byte-identical content is dropped automatically, and a reworded fact is updated by passing the original's id as supersedes (otherwise a near-duplicate is still written); work items cannot be superseded, so the backlog stays single-copy only by querying for it before creating (step 7). Aim for a focused starter set — roughly fifteen to twenty precise records — not an exhaustive dump.
Seed facts, never invent them
Every seeded memory must come from real evidence: the repository (README, docs, CI config, Cargo.toml/package.json, the commit history) or the user. Do not capture aspirations, guesses, or anything you have not checked against the repo or confirmed with the user. A bootstrapped substrate full of plausible-but-wrong facts is worse than an empty one — future agents will trust it.
Route each item to the right node (this is the most common mistake):
- A durable fact, decision, convention, or architectural choice →
capture(it becomes a decaying episode). - A task, milestone, backlog item, or follow-up →
work_create→work_advance(a persistent, status-tracked work item). - There is no "note" to store directly — notes are derived by
consolidatefrom episodes. A free-floating "note" is either a fact (capture) or a thing to do (work_create).
Procedure
- Bootstrapping writes many memories, so confirm the user wants it. Check
server_statusif the MCP connection is uncertain; if it is unavailable, say so and stop. - Resolve identity once: prefer
AIONFORGE_AGENT_ID; otherwise use the stable agent UUID from the user or project instructions. If none exists, ask once — do not silently mint a throwaway namespace, or the substrate you seed will be orphaned from the next session.capturetakes the bare UUID asagent_id; recall and work tools take the namespace formagent:<uuid>. - Recall first, so re-runs do not duplicate. Search the store for what may already be there ("project conventions", "architecture decisions", "dev workflow", and the project name), and
work_queryfor an existing backlog. Seed only the gaps; when you are updating a fact that already exists, pass its id assupersedesrather than writing a near-duplicate. - Gather the ground truth: read the repo's README, docs, CI/workflow config, and dependency manifests, and ask the user for anything not written down (the merge model, release cadence, review norms, hard constraints). This is the evidence the next steps capture from.
- Seed conventions as captures — one focused
captureper durable convention: dev workflow, branch/merge model, CI gates, coding standards, test/review expectations, release process. Userole: assistantand a higher trust for curated foundational facts (e.g.trust: 0.9); include the project, the source (repo file or user), and the date when useful. - Seed architecture and product direction: capture the key decisions and their rationale, the high-level component map, and the product's purpose and direction — each as its own record, sourced from the repo or the user.
- Stand up the backlog skeleton, querying before creating. Work items have no supersede or dedup, so a blind
work_createon a re-run would mint a second epic and duplicate tasks. Firstwork_queryfor an existing epic (filterlevel: epic, then match on title in the results — the query filters by status and level, not title). Create the projectepiconly if none exists, then add the handful of missing initialtaskchildren under it viaparent_id, reusing the existing epic's id as the parent. New items start attodo, giving the next session a backlog towork_queryinstead of re-deriving. - Optionally open a shared space: if the user authorizes a team scope for shared project feedback, capture the cross-cutting conventions and decisions into it with
target_namespace: team:<name>(and the matchingteams). Default to private otherwise. - Verify the substrate is retrievable: do a recall pass —
searchthe seeded topics back andwork_querythe backlog to confirm they return. Bootstrapping is not done until recall proves it took. - Summarize what you seeded: the categories covered, the work-item ids for the epic and tasks, and any receipt ids worth keeping for later audit, supersession, or forget. After several writes, check
consolidation_status; runconsolidateonly when the approval policy and user/project rules allow mutating derived memory.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 59 lines · 71 tokens per session scan A 417df3a0083b
memory-bootstrap is a skill published in the GitHub repository jscott3201/aionforge-memory (10 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 71 tokens to every session and 1,504 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
nap
Reclaims context window budget by compressing agent histories, pruning old logs, archiving stale decisions, and cleaning orphaned inbox files.
zettelforge
ZettelForge v2.0.0 — Production CTI agentic memory system. Hybrid TypeDB (STIX 2.1 ontology) + LanceDB (vector search). Zero external AI dependencies: fastembed for embeddings, llama-cpp-python for LLM. 75% accuracy on CTI queries, 18% on LOCOMO. Use when agents need persistent memory, threat intel retrieval, entity…
capture-task
Capture a new task — create a draft or pending Task record from a rough idea or detailed spec. Use when asked to "add a task", "log a bug", "create a task", or "add to backlog".
refine-backlog
Refine the backlog — screen drafts, remove duplicates, fill in missing details, classify, link, and move to pending.
implement-task
Pick up and work on a binder Task — investigate bugs, discuss open questions, design solutions, write tests, or implement code. Use when asked to "work on", "pick up", "implement", or "fix" a task.
matryca-github
Apply Matryca maintainer standards for GitHub issues, pull requests, branches, reviews, merges, milestones, tags, releases, and remote comments. Use before any GitHub-facing action or artifact.