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 skills add getspm/spm-agent-connectors --skill spm-project-memorygit clone --depth 1 https://github.com/getspm/spm-agent-connectorsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/getspm/spm-agent-connectors/spm-project-memory)<a href="https://agentmods.dev/skills/getspm/spm-agent-connectors/spm-project-memory"><img src="https://agentmods.dev/badge/skills/getspm/spm-agent-connectors/spm-project-memory.svg" alt="Measured on agentmods" height="20"></a>What 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.1 | $0.00028 | $0.01408 |
| Opus 5 | $0.00014 | $0.00704 |
| Sonnet 5 | $0.00006 | $0.00282 |
| Haiku 4.5 | $0.00003 | $0.00141 |
Grade A, and why
spm-project-memory 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 6d 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 — 100 lines — stays where its author put it; the contents beside it link to each section on GitHub.
SPM project memory
Use SPM naturally when project work depends on durable requirements, decisions, completed work, temporal validity, authority, context boundaries, source evidence, agent handoff, testing, security, deployment or governed sharing.
The native lifecycle hooks submit ordinary user and assistant turns to
spm_agent_turn_ingest after spm_agent_session_start resumes the SPM session.
Do not ask the user to repeat an SPM command for routine capture. Query the active
project first. List or compose another authorized project only when the user
explicitly requests cross-project context. Use spm_agent_session_context_inject,
spm_agent_session_context_revoke, spm_cross_project_context_pack or
spm_multi_project_context_pack only for explicit cross-project or shared-context
work. Never claim that memory was persisted if SPM reports ambiguity, SPM
unavailable state or a failed write. If SPM unavailable status is returned,
say so plainly and continue without claiming persistence.
Surface project attention returned at session start before continuing with the first request. Display is not acknowledgement: update recipient state only after an explicit user instruction to acknowledge, defer, resolve or dismiss an item.
For direct project creation, pass the authorization_external_turn_id attested by
the lifecycle adapter and the exact full user turn as explicit_user_instruction.
Never paraphrase, strengthen or infer authorization from an ambiguous reply.
When SPM returns a project-association user_prompt, ask it naturally in the
user's language and interpret the answer semantically. A likely match can be
confirmed, replaced or skipped; an ambiguous match can list candidates. For
bootstrap_required, ask whether to create a new project, show existing projects
or continue without persistent memory in SPM. Confirm, replace or skip a match only through
spm_agent_session_association_decide. After the user explicitly chooses creation,
call spm_project_bootstrap_execute with the current lifecycle session_id,
that instruction, a safe inventory and source-grounded evidence from a bounded
inspection. Creation and task association are atomic: never omit session_id or
report success unless the returned session has the new project active. The
operation is idempotent for the task. If it returns evidence_required, inspect only the requested
authorized source, submit it to the same bootstrap and execute again. Never crawl
the workspace or use an absolute local path as shared project identity. Continue
without another question after created or already_completed. Use the private
URL only for review_required or when the user explicitly asks to review first.
That optional review-first path uses spm_project_bootstrap_preview, submits
requested bounded evidence through spm_project_bootstrap_evidence_submit and
completes through spm_project_bootstrap_confirm.
Never create project memory without an explicit user instruction.
Use spm_agent_session_receipt_delivery_report to record body-free connector
evidence that the receipt instruction was supplied or completion was observed.
Use spm_agent_session_receipt_status when the host drops or hides lifecycle
status text. Use spm_memory_capture_policy_get before changing capture behavior.
Use spm_memory_capture_evidence for a body-free audit of capture state and
spm_memory_context_compose for governed task context before consequential
work in a confirmed project. Treat the context envelope as a bounded governed
projection, not proof that undisplayed memory does not exist. SPM performs at
most one automatic deep composition when its LLM declares the interactive
projection insufficient and additional authorized evidence exists. If the
final sufficiency contract still requires clarification, clarify instead of
guessing from local conversational confidence.
When the user wants to continue the same authorized work in another agent or
device, use spm_agent_session_continuation_create. The receiving agent uses
spm_agent_session_continuation_accept, and an unused handoff can be cancelled
with spm_agent_session_continuation_revoke. The one-time token carries only
project and injected-context references; SPM rechecks current authorization and
never transfers memory bodies or credentials.
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.
- 6d ago First seen · 100 lines · 28 tokens per session scan A c407b49cff92
spm-project-memory is a skill published in the GitHub repository getspm/spm-agent-connectors (0 stars, last pushed 24d ago), licensed MIT. It adds 28 tokens to every session and 1,408 once invoked, about $0.0001 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
media-ingest
Ingest video, audio, PDF, book, screenshot, and GitHub repo content into the brain. Multi-format handling with entity extraction and backlink propagation. Covers video-ingest, youtube-ingest, and book-ingest subtypes.
mem0-oss-to-platform
Plan and then execute a migration of a project from the mem0 open-source / self-hosted SDK (the local Memory class) to the mem0 Platform / hosted / managed SDK (the MemoryClient class). Use this whenever a developer wants to move, switch, or migrate their mem0 usage off OSS/self-hosted to the hosted API — e.g.…
Cortex
Operate Cortex, the LifeOS memory system — the typed Knowledge Archive (People, Companies, Ideas, Research with typed related: links) plus recall of prior work sessions, ISAs, and conversations. Search, add, harvest, develop, ingest, distill, graph-navigate, recall. USE WHEN cortex, knowledge, knowledge base, search…
memory
Use when the user asks to remember, recall, forget, update, search, or inspect durable OpenSquilla memory, including profile facts in USER.md and long-term notes in MEMORY.md or memory//.md.
ha-data-stores
Map of Hope Agent's local data stores and safe read-only query workflow. Use when the user asks where Hope Agent stores data, wants to inspect sessions/messages/memory/logs/background jobs/knowledge indexes/settings, asks the model to query local app data, or debugging requires checking persisted state. Trigger…
establishing-project-context
Use when the user asks to establish shared project language, or project work exposes a conflicting, renamed, or deprecated domain term that needs active semantic modeling. Routine small tasks stay on the fast path.