palinode-memory — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited palinode-memory (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Palinode stores typed memory as git-versioned markdown files with hybrid search (BM25 + vector). This skill provides procedural guidance for using Palinode's tools effectively.
| Tool | When to Use |
|---|---|
palinode_search | Find relevant memories by meaning or keyword |
palinode_save | Store a new typed memory (person, project, decision, insight) |
palinode_status | Show file counts, chunk counts, entity graph, system health |
palinode_trigger | Register an intention — auto-surfaces a memory file when context matches |
palinode_diff | See what changed in a memory file recently |
palinode_consolidate | Run or check the weekly compaction job |
Use the right type when saving:
PersonMemory — facts about a person (name, role, preferences, context)Decision — architectural/product decisions with rationaleProjectSnapshot — current state of a project (milestone, blockers, next)Insight — generalizable lessons learned (applies beyond current project)ActionItem — follow-up task with owner and deadlinePalinode uses 4-phase injection — you don't always need to search manually:
core: true) are always injected at session startOnly call palinode_search explicitly when you need something specific not surfaced by injection, or when the user asks "what do I know about X?"
Guidelines:
Example save calls:
palinode_save(
content="Alice and Bob are co-founders, 3-year gap in joining. CEO role is shared.",
type="PersonMemory",
entities=["person/alice", "project/my-app"]
)
palinode_save(
content="Curation > volume for training data. 90 curated samples >> 1,623 raw.",
type="Insight",
entities=["project/my-app"]
)Register an intention when you want a memory to auto-surface in future turns:
palinode_trigger(action="add", description="training data curation",
memory_file="insights/curation-over-volume.md", threshold=0.72)Triggers fire when the user's message semantically matches description. Good for:
Use these when the user asks about memory history:
palinode_diff — what changed in the last N commits for a filepalinode_blame — who/when each section was writtenpalinode_history — file change history with diff stats and rename trackingpalinode_rollback — revert a file to a previous stateWeekly compaction runs Sunday 3am UTC via cron. To run manually:
palinode_consolidate(dry_run=True) # preview what would change
palinode_consolidate(dry_run=False) # apply operationsOperations: KEEP (no change), UPDATE (merge new info), MERGE (combine duplicates), SUPERSEDE (replace fact), ARCHIVE (move to history).
See references/setup.md for installation, config options, and troubleshooting.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.