Use when a task involves continuing a project, restoring project context, maintaining file-based project memory, updating current-state summaries, or recording meaningful progress across sessions. Works best for long-horizon, file-based projects and supports research writing, product document collaboration, software project coordination, and broader cross-functional project continuity.
npx skills add https://github.com/Frappucc1no/recall-loom --skill recallloom
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/recording-workflow.mdreferences/protocol.md<!-- RecallLoom metadata sync start: package-metadata -->
0.4.8.31.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 because no local support cache exists, local diagnostic, read-only, and mutating actions MAY continue; network access is not a prerequisite for local RecallLoom use.supported, upgrade_recommended, readonly_only, or diagnostic_only restriction.invalid_support_advisory remains distinct from an invalid local cache: correct or refresh the advisory rather than treating it as cache damage.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 general, legacy, or unbound state classified as inconsistent_or_tampered_evidence.references/operation-playbooks.md.write for managed-file writes, append for daily-log entries, and sync-current-state-after-append only when its post-append contract requires that lane. Do not bypass the dispatcher with blind file replacement, blind patching, or hand-built sidecar files.append; its internal helper writes the entry. Do not handwrite daily-log-entry markers.repair-daily-log-cursor; its internal helper performs the repair. Do not hand-edit state.json.daily_logs.write; its internal helper performs the revision-aware commit. Do not handwrite file-state markers.STORAGE_ROOT/state.json and STORAGE_ROOT/config.json MUST NOT be hand-edited during normal operation.write and append; sync-current-state-after-append is used only when its post-append contract requires that lane. commit_context_file.py and append_daily_log_entry.py are internal dispatcher/integration surfaces: the dispatcher performs its own fresh preflight, constructs the binding, and persists the matching lease immediately before calling a helper. A read-only preflight does not issue either material, there is no independent operator pickup interface, and a hand-invoked helper without dispatcher-issued material is expected to fail. For the first write from a reviewed imported baseline, use dispatcher write or append with --confirm-review-imported-baseline; the post-append sync lane also accepts that confirmation when its contract requires it. The internal helpers do not accept the flag and only consume dispatcher-issued confirmation-bound binding and lease material.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, record --suggest, record --plan, append, write, sync-current-state-after-append, and repair-daily-log-cursor.
Use quick-summary for current-state snapshots, record --suggest to produce a side-effect-free candidate recording prompt after a durable milestone/decision/validation signal, record --plan to classify a recording intent and get the next safe helper step, 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 --reuse-current-summary --semantic-unchanged-assertion-json <json> only after preflight allows metadata-only post_append_summary_sync; see references/recording-workflow.md for the bound assertion JSON skeleton.
record --suggest never writes, never watches in the background, and never turns sensitive or attached raw material into a write path; it only returns a sanitized candidate summary and suggested record --plan path when a prompt is appropriate.
Use repair-daily-log-cursor in preview mode first when state.json.daily_logs no longer matches the parsed latest active daily log. Preview returns a public-safe repair classification, preview_digest, expected workspace revision, confirmation material, and post-repair validation step. Apply mode requires --apply --yes plus a fresh preview binding through --expected-workspace-revision or --preview-digest, 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.
Convert Markdown files to HTML similar to `marked.js`, `pandoc`, `gomarkdown/markdown`, or similar tools; or writing custom script to convert markdown to html and/or working on web template systems like `jekyll/jekyll`, `gohugoio/hugo`, or similar web templating systems that utilize markdown documents, converting them to html. Use when asked to "convert markdown to html", "transform md to html", "render markdown", "generate html from markdown", or when working with .md files and/or web a templating system that converts markdown to HTML output. Supports CLI and Node.js workflows with GFM, CommonMark, and standard Markdown flavors.
Write and maintain technical documentation. Trigger with "write docs for", "document this", "create a README", "write a runbook", "onboarding guide", or when the user needs help with any form of technical writing — API docs, architecture docs, or operational runbooks.
Translate visa application documents (images) to English and create a bilingual PDF with original and translation
Write, review, and edit documentation files with consistent structure, tone, and technical accuracy. Use when creating docs, reviewing markdown files, writing READMEs, updating `/docs` directories, or when user says "write documentation", "review this doc", "improve this README", "create a guide", or "edit markdown". Do NOT use for code comments, inline JSDoc, or API reference generation.
Real-time Constitution compliance checker for devflow documents. Blocks partial implementations and hardcoded secrets during file editing.
Write self-documenting code with minimal, evergreen comments that explain complex logic without describing recent changes or temporary fixes. Use this skill when writing code comments, documentation strings, explaining complex algorithms, clarifying business logic, or deciding whether code needs comments. Apply when working with any source code files where comments or documentation might be added, ensuring comments remain relevant, helpful, and focused on explaining why rather than what the code does, while preferring clear code structure and naming over excessive commenting.
Use when writing technical documentation that needs to be readable by both humans and AI models, converting existing docs to HADS format, validating a HADS document, or optimizing documentation for token-efficient AI consumption.
Draft a structured investment committee memo for PE deal approval. Synthesizes due diligence findings, financial analysis, and deal terms into a professional IC-ready document. Use when preparing for investment committee, writing up a deal, or creating a formal recommendation. Triggers on "write IC memo", "investment committee memo", "deal write-up", "prepare IC materials", or "recommendation memo".
Take frappucc1no/recallloom from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.