memorise
Capture key learnings, patterns, gotchas, or context as persistent memories
What this skill does
# Memorise
**Recommended model tier:** balanced (sonnet) - this skill performs straightforward operations
Capture important information for future sessions by storing it in the aide memory database.
## How to Store
Use the `./.aide/bin/aide memory add` CLI command via Bash:
```bash
./.aide/bin/aide memory add --category=<category> --tags=<comma,separated,tags> "<content>"
```
**Binary location:** The aide binary is at `.aide/bin/aide`. If it's on your `$PATH`, you can use `aide` directly.
## Categories
- `learning` - Something discovered about the codebase or tools
- `decision` - An architectural or design choice made
- `session` - Summary of a work session
- `pattern` - A reusable approach or pattern identified
- `gotcha` - A pitfall or issue to avoid in future
- `abandoned` - An approach that was tried and abandoned (see [Abandoned Approaches](#abandoned-approaches) below)
## When to Use
- End of a significant task or session
- After discovering something important about the codebase
- When a decision is made that should persist
- After solving a tricky problem (capture the solution)
- When user shares a preference or important information
## Examples
### Simple preference (global - injected at session start)
```bash
./.aide/bin/aide memory add --category=learning --tags=preferences,colour,scope:global,source:user "User's favourite colour is blue"
```
### Technical learning (project-specific, verified)
```bash
./.aide/bin/aide memory add --category=learning --tags=testing,vitest,project:myapp,session:abc12345,source:discovered,verified:true "Vitest requires .js extensions for ESM imports even for .ts files. Configure moduleResolution: NodeNext in tsconfig."
```
### Session summary
```bash
./.aide/bin/aide memory add --category=session --tags=auth,api,project:myapp,session:abc12345,source:discovered "Implemented JWT auth with 15min access tokens, 7day refresh tokens in httpOnly cookies. Files: src/auth/jwt.ts, src/middleware/auth.ts, src/routes/auth.ts"
```
### Gotcha (global - applies everywhere)
```bash
./.aide/bin/aide memory add --category=gotcha --tags=hooks,claude-code,scope:global,source:discovered,verified:true "Hooks must not write to stderr - Claude Code interprets any stderr as error. Debug logging must go to files only."
```
### Unverified external claim
```bash
./.aide/bin/aide memory add --category=learning --tags=api,stripe,project:myapp,source:user,verified:false "Stripe webhook signatures use HMAC-SHA256 with the whsec_ prefix."
```
## Instructions
When the user invokes `/aide:memorise <something>`:
1. Parse what they want to remember
2. **Verify factual claims before storing** (see [Verification Before Storage](#verification-before-storage-anti-poison) below)
3. Determine the scope:
- **User preference** (colour, style, etc.) → add `scope:global`
- **Project-specific learning** → add `project:<project-name>,session:${AIDE_SESSION_ID}`
- **Session summary** → add `project:<project-name>,session:${AIDE_SESSION_ID}`
4. Choose appropriate category and descriptive tags
5. **Add provenance tags** (see [Provenance Tags](#provenance-tags) below)
6. Format the content concisely but completely
7. Call `./.aide/bin/aide memory add` via Bash to store it
8. **Verify success** - check exit code is 0 and output contains the memory ID
9. Confirm what was stored, including verification outcome
Keep content concise - aim for 1-3 sentences unless it's a complex session summary.
## Verification Before Storage (Anti-Poison)
Memories persist across sessions and influence future behaviour. Storing incorrect information is **worse than storing nothing** — it creates compounding errors. Before storing any memory, verify its claims.
### What to Verify
| Claim Type | Verification Method | Example |
| ------------------------- | ----------------------------------------------------- | ---------------------------------------------- |
| **File exists** | Use Glob or Read to confirm | "Config is in src/config.ts" |
| **Function/class exists** | Use Grep or code search | "Use `parseToken()` from auth.ts" |
| **Function signature** | Read the file, check the actual signature | "parseToken takes a string and returns Claims" |
| **API behaviour** | Check the implementation or tests | "The /users endpoint requires auth" |
| **Dependency/version** | Check package.json, go.mod, etc. | "Project uses Vitest v2" |
| **Build/test command** | Confirm the script exists in package.json or Makefile | "Run `npm run test:e2e` for integration tests" |
### What Does NOT Need Verification
- **User preferences** — The user is the authority ("I prefer tabs over spaces")
- **Session summaries** — Recap of what just happened in the current session
- **Opinions/decisions** — Architectural choices made by the user ("We chose Postgres")
- **External facts** — Things not checkable against the codebase ("React 19 uses...")
### Verification Workflow
```
Is it a codebase claim (file, function, path, command, behaviour)?
├── No → Store directly with source:user or source:stated
└── Yes → Can you verify it right now?
├── Yes → Verify it
│ ├── Correct → Store with verified:true
│ └── Wrong → Inform user, do NOT store. Offer corrected version.
└── No (e.g., external service, runtime behaviour)
→ Store with verified:false, note unverified
```
### Verification Rules
1. **NEVER store a codebase claim without checking** — If the user says "the auth middleware is in src/middleware/auth.ts", confirm the file exists before memorising.
2. **If verification fails, do NOT store** — Tell the user what you found instead and offer to store the corrected version.
3. **If you cannot verify** (e.g., claim about runtime behaviour, external API), store it but tag with `verified:false`.
4. **Err on the side of not storing** — A missing memory is recoverable; a wrong memory causes future errors.
### Example: Verified vs Rejected
**User says:** "Remember that the database schema is defined in db/schema.sql"
**Verification steps:**
1. Check: does `db/schema.sql` exist? → Use Glob to search
2. If yes → Store with `verified:true`
3. If no → "I checked and `db/schema.sql` doesn't exist. I found `database/migrations/` instead. Would you like me to store that instead?"
## Provenance Tags
Always include provenance tags to track the origin and verification status of memories:
| Tag | Meaning | When to Use |
| ------------------- | ---------------------------------------- | ------------------------------------------------ |
| `source:user` | User explicitly stated this | User preferences, direct instructions |
| `source:discovered` | Agent discovered this by examining code | File paths, function signatures, patterns found |
| `source:inferred` | Agent inferred this from context | Behaviour deduced from code, not directly stated |
| `verified:true` | Codebase claim was checked and confirmed | After successful verification |
| `verified:false` | Claim could not be verified against code | External facts, runtime behaviour |
### Provenance Rules
- Every memory MUST have exactly one `source:` tag
- Codebase claims MUST have a `verified:` tag
- User preferences and opinions do NOT need `verified:` tags (user is authoritative)
## Failure Handling
If `./.aide/bin/aide memory add` fails:
1. **Check error message** - common issues:
- Database not accessible: ensure aide MCP server is running
- Invalid category: use one of `learning`, `decision`, `sesRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.