recallloom — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited recallloom (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.
RecallLoom is a portable context harness for session-based agents.
It provides a lightweight file model for project continuity across sessions without requiring heavy infrastructure.
The goal is not to remember everything. The goal is to keep the right project state durable, readable, and recoverable across sessions.
This file is the agent-facing entrypoint for the installable recallloom/ skill package.
Install and trigger this package through your host agent's normal skill discovery flow. RecallLoom itself does not require a custom host-specific launcher inside the package. The package may still ship optional native wrapper templates for supported hosts.
This installable package is intentionally kept lean. Human-facing repository landing pages and marketing docs may exist upstream, but they are not bundled into the installed skill directory.
In the source repository, README.md and README.en.md are concise public front doors, README.zh-CN.md is the compatibility entry, INDEX.md is the full map, and USAGE.md is the operator guide. Those files describe the same helper contract as this installed package entrypoint rather than defining a second logic set.
For package inventory, protocol details, and helper-script behavior, rely on the files that ship inside the package itself:
managed-assets.jsonpackage-metadata.jsonreferences/file-contracts.mdreferences/operation-playbooks.mdreferences/package-support-policy.mdreferences/protocol.md<!-- RecallLoom metadata sync start: package-metadata -->
0.4.51.01.0<!-- RecallLoom metadata sync end: package-metadata -->
<!-- RecallLoom metadata sync start: runtime-assumptions -->
enzh-CNAGENTS.mdCLAUDE.mdGEMINI.md.github/copilot-instructions.md<!-- RecallLoom metadata sync end: runtime-assumptions -->
RecallLoom package support is separate from project sidecar protocol compatibility.
.recallloom/.readonly_only, mutating helpers MUST block while diagnostic and read-only helpers MAY continue.diagnostic_only, only diagnostic helpers SHOULD continue.unknown_offline, diagnostic and read-only actions MAY continue, but mutating actions MUST block until support can be verified.blocked_reason: package_support_blocked and a package_support object. See references/package-support-policy.md.allow, warn, ask, or block in helper readiness output when provenance state is relevant.warn is for low-risk structural-only or readable legacy states and should stay brief; repeated same-session low-risk warnings should be cooldown-friendly.ask is for legacy review / repair import or reviewed imported baseline actions and requires explicit operator confirmation before higher-risk writes.block is non-waivable for forged markers, detected receipt/store inconsistency, direct state.json / config.json edits, privacy violations, and any state classified as inconsistent_or_tampered_evidence.append_daily_log_entry.py or dispatcher append. Do not handwrite daily-log-entry markers.repair_daily_log_cursor.py or dispatcher repair-daily-log-cursor. Do not hand-edit state.json.daily_logs.file-state markers.STORAGE_ROOT/state.json and STORAGE_ROOT/config.json MUST NOT be hand-edited during normal operation.1.0 daily-log counters are file-local: entry-seq is 1..N within one daily log and canonical entry-id is entry-{entry_seq}. Do not treat either as globally unique.state.json.daily_logs.entry_count as entry_count; it means the entry marker count in the latest active daily log, not a global cumulative count.validate_context.py; do not hand-edit managed markers, state.json, config.json, receipts, or helper-evidence stores.Use RecallLoom when you need to:
Typical triggers include:
On first explicit invocation in a project, RecallLoom should not assume the workspace is already initialized.
The correct flow is:
rl-init, run the standard initialization action3.10+, stop with a blocked runtime result instead of hand-building a sidecarrl-init SHOULD mean: initialize the sidecar, validate the workspace, and return next recommended actions. Treat it as a stable high-level action name even when the host does not expose native slash commands.
For the current package line, the stable operator-facing wrapper targets are:
rl-initrl-resumerl-statusrl-validaterl-init is the primary operator-friendly first-attach action name. The others are operator-facing stable action names that can be interpreted by the host agent or mapped into native custom commands when the host supports that surface. rl-bridge remains the canonical dispatcher/helper action label for bridge work, but this package line does not promise a universal native wrapper or deterministic first-hop routing for that label. Natural language remains the default public phrasing for these actions.
The dispatcher command surface also includes quick-summary, append, write, sync-current-state-after-append, and repair-daily-log-cursor. Use quick-summary for current-state snapshots, append --entry-json for milestone logging, write --type ... --source-file <prepared-file> --dry-run or write --type ... --stdin --dry-run before typed managed-file writes, and sync-current-state-after-append --stdin --input-format json only after preflight allows post_append_summary_sync. Use repair-daily-log-cursor in preview mode first when state.json.daily_logs no longer matches the parsed latest active daily log. Apply mode requires --apply --yes, should include --expected-workspace-revision after a fresh preview/status check, is support-gated as mutating, and repairs cursor fields without writing helper receipts or rewriting daily-log content. These dispatcher additions are optional for existing v0.3.4 projects and do not change sidecar protocol 1.0.
Native wrappers for rl-init, rl-resume, rl-status, and rl-validate are convenience entrypoints only. They must delegate to the same dispatcher and must not replace natural-language restore requests, bypass helpers, or create a host-specific product logic copy.
When a host or agent sees a generic initialized-project restore request:
For the current package line, rl-resume is the single stable operator-facing action name for that initialized-project restore checkpoint. Natural-language restore requests are still the primary public path. Do not invent a manual sidecar fallback or a host-local restore alias that is not backed by the package contract.
RecallLoom should default to user task language, not implementation language.
coldstart label unless the user is explicitly doing operator/debug work.RecallLoom should treat fast path as the default interaction mode.
Resume mode selection:
resume or status when the next agent needs the normal tiered read-plan guidance before deciding what to read.resume --fast when current-state orientation is enough and the next safe move can be chosen from state.json plus rolling_summary.md.resume --full when stable framing, source-of-truth routing, or project-local update_protocol.md guidance is needed before action.query_continuity.py; fast and full resume modes should not expand into daily logs by default.RecallLoom uses three primary memory layers:
STORAGE_ROOT/context_brief.md: stable project framingSTORAGE_ROOT/rolling_summary.md: overwrite-style current-state snapshotSTORAGE_ROOT/daily_logs/YYYY-MM-DD.md: append-only milestone evidenceSTORAGE_ROOT/config.json: machine-readable workspace settingsSTORAGE_ROOT/state.json: machine-readable sidecar state for concurrency-aware helpersSTORAGE_ROOT/update_protocol.md: recommended project-local override layer for read and write behaviorFile responsibilities in one sentence:
context_brief.md explains what this project is and how it should be approached.rolling_summary.md explains what is true right now.daily_logs/ explain what happened at milestone level.config.json keeps storage and language settings stable.state.json tracks workspace revision and helper-visible sidecar state.update_protocol.md, when present, can narrow or strengthen the default read/write rules for this specific project.STORAGE_ROOT is either PROJECT_ROOT/.recallloom/ or PROJECT_ROOT/recallloom/. Exactly one valid storage root MAY exist; if both exist, stop instead of guessing.
Machine-readable markers, not heading labels, are the normative file contract. Protocol 1.0 supports workspace languages en and zh-CN. See references/file-contracts.md.
STORAGE_ROOT/config.json.STORAGE_ROOT/state.json.STORAGE_ROOT/rolling_summary.md.STORAGE_ROOT/update_protocol.md exists, surface it before expanding beyond the minimum continuity set.STORAGE_ROOT/context_brief.md only when the current task needs framing, scope, source-of-truth, or phase context that the summary does not already cover.Cold start should restore and judge first. It should not automatically continue next_step or execute project work just because continuity files were read.
See references/operation-playbooks.md for the full flow.
Three read-side helpers matter here:
preflight_context_check.py: revision-aware freshness review before formal writes; returns handoff-first digests, suggested read targets, write-tier guidance, and trust/drift state.summarize_continuity_status.py: ambient continuity status surface on the same freshness baseline; returns the same digest family plus shared workday-state and trust/drift guidance.query_continuity.py: read-only continuity recall surface; returns answer-first recall with answer, supporting citations, and a risk/freshness note. It also returns hits, token estimate, budget hint, freshness/conflict state, trust/drift state, an output variant label, and override review targets. Daily-log citations include explicit date values, current-state files win ties, and the context window stays bounded.All attach-safe continuity text returned through these read-side surfaces is expected to respect the shared attached-text scan rules.
STORAGE_ROOT/update_protocol.md if it exists.current_state changes usually target rolling_summary.md.stable_rule changes usually target context_brief.md.milestone_evidence usually targets the daily log.Default exits before any write should stay explicit:
no_write is a normal successful resultmerge_current_state updates rolling_summary.mdappend_milestone appends to the daily logconfirm and blocked stop automatic writes rather than guessingRead-side trust notes:
sidecar_trust_state stays in helper JSON, not in protocol 1.0state.json.provenance may store local provenance markers such as structurally_valid, review_imported_baseline, or helper_evidenced after a receipt-finalized helper write; helper JSON still owns operational provenance_state routingstructurally_valid and review_imported_baseline mean structural/readiness evidence only and MUST NOT be treated as helper_evidencedhelper_evidencedrl-validate / validate_context.py remains structural and does not read the optional receipt store. Receipt-store validation is explicit: use --require-provenance with exactly one scope flag, --changed-only or --full.continuity_drift_risk_level is a review signal, not proof that the sidecar is damagedallowed_operation_level and write_readiness help hosts route low-risk read vs review-first vs write-after-preflight flowsProject-local overrides MAY narrow read order, write order, or archive behavior, but they do not replace the core file contract.
Before writing continuity content, the agent should make the layer decision itself. Helpers can provide safe write context and static write-tier guidance, but they must not replace agent judgment about what the content means.
Use this quick check before editing managed files:
no_write the right result?stable_rule, current_state, or milestone_evidence?multi_layer_split?defer or confirm rather than guess?Layer defaults:
stable_rule: long-lived workflow rules, source-of-truth routing, project boundaries, or recovery facts. Default target: context_brief.md.current_state: what is true now, including current phase, active risks, active judgments, and next steps. Default target: rolling_summary.md.milestone_evidence: completed validations, approvals, releases, accepted decisions, or other durable evidence. Default target: daily log.no_write, defer, and confirm are valid outcomes when nothing durable changed, the discussion is unstable, or the boundary needs explicit approval.When more than one layer is valid, split different facts across layers and do not duplicate the same sentence.
For the detailed rules, conflict order, self-review template, and anonymized calibration cases, see references/operation-playbooks.md.
For protocol 1.0, update_protocol.md is a human-reviewed override layer; helpers surface it but do not automatically execute its natural-language rules.
RecallLoom prefers the smallest valid write set. The agent decides what should change and prepares content; helpers decide whether the write is still safe to apply.
When generating workspace files, prefer the user's workspace language when it is supported by protocol 1.0 (en, zh-CN).
Do not update context files just because:
The protocol is designed to reduce noise, not to turn every session into documentation work.
RecallLoom provides four profiles:
profiles/general-project-continuity.mdprofiles/research-writing.mdprofiles/product-doc-collaboration.mdprofiles/software-project-coordination.mdProfiles refine emphasis, evidence handling, and drift risk. Use general-project-continuity.md by default; switch to a specialized profile only when the project shape is a high-confidence match.
RecallLoom does not try to be:
It is the project continuity layer, not the whole agent stack.
references/protocol.mdreferences/file-contracts.mdreferences/operation-playbooks.mdreferences/anti-patterns.mdreferences/profiles.mdThis package is released under Apache License 2.0.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.