npx claudepluginhub jmylchreest/aide --plugin aideThis skill is limited to using the following tools:
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides implementation of event-driven hooks in Claude Code plugins using prompt-based validation and bash commands for PreToolUse, Stop, and session events.
Recommended model tier: balanced (sonnet) - this skill performs straightforward operations
Capture important information for future sessions by storing it in the aide memory database.
Use the ./.aide/bin/aide memory add CLI command via 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.
learning - Something discovered about the codebase or toolsdecision - An architectural or design choice madesession - Summary of a work sessionpattern - A reusable approach or pattern identifiedgotcha - A pitfall or issue to avoid in futureabandoned - An approach that was tried and abandoned (see Abandoned Approaches below)./.aide/bin/aide memory add --category=learning --tags=preferences,colour,scope:global,source:user "User's favourite colour is blue"
./.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."
./.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"
./.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."
./.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."
When the user invokes /aide:memorise <something>:
scope:globalproject:<project-name>,session:${AIDE_SESSION_ID}project:<project-name>,session:${AIDE_SESSION_ID}./.aide/bin/aide memory add via Bash to store itKeep content concise - aim for 1-3 sentences unless it's a complex session summary.
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.
| 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" |
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
verified:false.User says: "Remember that the database schema is defined in db/schema.sql"
Verification steps:
db/schema.sql exist? → Use Glob to searchverified:truedb/schema.sql doesn't exist. I found database/migrations/ instead. Would you like me to store that instead?"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 |
source: tagverified: tagverified: tags (user is authoritative)If ./.aide/bin/aide memory add fails:
Check error message - common issues:
learning, decision, session, pattern, gotchaRetry with fixes if the issue is correctable
Report failure if unable to store:
Failed to store memory: <error details>
Please check aide MCP server status.
A successful memory add returns:
Added memory: <ULID>
You can verify by searching for the memory:
./.aide/bin/aide memory search "<key term from content>" --limit=1
Use scope tags to control when memories are injected:
| Tag | When to Use | Injection |
|---|---|---|
scope:global | User preferences, universal learnings | Every session |
project:<name> | Project-specific learnings | Sessions in that project |
session:<id> | Context for this work session | Recent session injection |
scope:globalproject:<name>,session:<id>project:<name>,session:<id> with category=sessionGet the project name from the git remote or directory name. Session ID is available as $AIDE_SESSION_ID (set by aide hooks) or $CLAUDE_SESSION_ID (Claude Code native).
When an approach is tried and abandoned during implementation, debugging, or design, record it as an abandoned memory. This prevents future sessions from repeating the same failed approach.
Use this structured format:
ABANDONED: <what was tried>
REASON: <why it was abandoned>
ALTERNATIVE: <what was done instead, or "none yet">
CONTEXT: <any useful context for future reference>
| Tag | Purpose | Example |
|---|---|---|
reason:<why> | Machine-searchable abandon reason | reason:performance |
approach:<what> | What was tried | approach:sqlite-fts |
project:<name> | Project scope | project:aide |
source:discovered | Provenance (always discovered) | source:discovered |
session:<id> | Session context | session:abc12345 |
./.aide/bin/aide memory add --category=abandoned \
--tags=reason:performance,approach:sqlite-fts,project:aide,session:abc12345,source:discovered \
"ABANDONED: Using SQLite FTS5 for memory search. REASON: go-sqlite3 requires CGO which breaks cross-compilation. ALTERNATIVE: Bleve full-text search (pure Go). CONTEXT: FTS5 was faster in benchmarks but CGO dependency was a non-starter for the release pipeline."
If an abandoned approach contradicts or supersedes an existing Decision (check with mcp__plugin_aide_aide__decision_list), also update the decision to reflect the change. For example, if a decision said "use SQLite FTS" and you abandoned that approach, update the decision with the new direction.
Add agent context to tags:
./.aide/bin/aide memory add --category=session --tags=swarm,agent:main "Overall task outcome..."