Memory EngineSAFE
CocoPlus is an Agentic Operating System for Snowflake Coco. It brings structured, multi-agent workflows to data engineering projects — covering everything from project initialization through spec, plan, build, test, review, and ship phases.
Overview
CocoPlus is an Agentic Operating System for Snowflake Coco. It brings structured, multi-agent workflows to data engineering projects — covering everything from project initialization through spec, plan, build, test, review, and ship phases.
6b58edc143d7OBSERVED · 2026-10-13What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: "memory-capture" description: "Manually capture a decision, pattern, or error resolution to the Memory Engine. Writes to .cocoplus/memory/ for cross-session persistence. Triggered manually or via post-tool-use hook." version: "1.0.0" author: "CocoPlus" tags: - cocoplus - memory - persistence --- Your objective is to capture a specific item to the CocoPlus Memory Engine. ## Pre-flight Check 1. Check that `.cocoplus/` directory exists. If not, output: "CocoPlus not initialized in this directory. Run `$pod init` to begin." Then stop. 2. Check if `memory.on` flag exists at `.cocoplus/modes/memory.on`. If it does NOT exist, output: "Memory Engine is currently off. Run `$memory on` to enable cross-session memory capture." Then stop. ## Identify What to Capture The developer may have: - Provided the item inline: `$memory capture <text>` - Run `$memory capture` with no arguments (interactive mode) If no argument provided, ask: > "What would you like to capture to memory? Choose a type: > 1. **Decision** — A key choice made and why (e.g., 'chose star schema over OBT for query performance') > 2. **Pattern** — A reusable approach observed (e.g., 'incremental load pattern for large fact tables') > 3. **Error** — An error and how it was resolved (e.g., 'warehouse suspended mid-query — used RESUME before retry') > > Reply with the type and the content." ## Write to Memory Based on the type, append to the appropriate memory file: ### Decision → `.cocoplus/memory/decisions.md` Format to append: ``` ## [YYYY-MM-DD HH:MM] <short title> **Decision:** <what was decided> **Rationale:** <why this choice was made> **Alternatives Considered:** <what else was considered, if known> **Context:** CocoBrew Phase: <current phase from .cocoplus/AGENTS.md> ``` ### Pattern → `.cocoplus/memory/patterns.md` Format to append: ``` ## [YYYY-MM-DD HH:MM] <pattern name> **Pattern:** <what the pattern is> **When to Apply:** <conditions under which this pattern is useful> **Example:** <brief example or code snippet if available> **Source:** <where this pattern was observed — stage ID, task, or 'manual'> ``` ### Error → `.cocoplus/memory/errors.md` Format to append: ``` ## [YYYY-MM-DD HH:MM] <error short description> **Error:** <what went wrong> **Root Cause:** <why it happened> **Resolution:** <how it was fixed> **Prevention:** <how to avoid this in the future> ``` ## Post-Capture 1. Output confirmation: "Captured to `.cocoplus/memory/<type>.md`." 2. If the item looks like a reusable pattern that might benefit other projects, suggest: "This looks like a reusable pattern. Run `$patterns promote` to add it to CocoGrove for future projects." ## Anti-Rationalization | Shortcut / Temptation | Why It Fails | |-----------------------|--------------| | Capture without specifying a type (decision/pattern/error) | Each type goes to a different memory file; routing to the wrong file makes retrieval unreliable | | Skip the Rationale field for decisions because "it's obvious" | Rationale is why the decision has value; without it, future sessions cannot understand why the decision was made | | Append to errors.md for a decision that "went wrong" | Errors and decisions are separate categories — conflating them makes both files noisy and hard to scan | ## Exit Criteria - [ ] The captured item is appended to the correct memory file (`decisions.md`, `patterns.md`, or `errors.md`) in the required format - [ ] The entry includes a date-prefixed header in `## [YYYY-MM-DD HH:MM] <title>` format - [ ] Output confirms the file the item was written to
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
6b58edc143d7full audit observations/trust-audit/skill/snowflake-labs__memory-engine.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-13 | 6b58edc143d7 | SAFE | B | 89 | first audit |
Questions
What does the Memory Engine skill do?
CocoPlus is an Agentic Operating System for Snowflake Coco. It brings structured, multi-agent workflows to data engineering projects — covering everything from project initialization through spec, plan, build, test, review, and ship phases.
Is Memory Engine safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Memory Engine access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (6b58edc143d7), read on 2026-10-13. The repository is watched, and a new audit runs when it changes — this is the first audit.