Write knowledge to markdown AND sync to PKB. MUST invoke - do not write markdown directly.
From aops-corenpx claudepluginhub nicsuzor/aopsThis skill is limited to using the following tools:
procedures/capture.mdprocedures/consolidate.mdprocedures/prune.mdprocedures/sync.mdprocedures/validate.mdreferences/detail-level-guide.mdreferences/obsidian-format-spec.mdreferences/quality-exemplars.mdDesigns and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Taxonomy note: This skill provides domain expertise (HOW) for knowledge capture and persistence. See [[TAXONOMY.md]] for the skill/workflow distinction.
Persist knowledge to markdown + PKB. Both writes required for semantic search.
$ACA_DATA contains both semantic and episodic memory. The key distinction is between synthesized knowledge (decontextualized, kept current) and primary sources (time-stamped, preserved as-is).
Durable, decontextualized truths. Lives in $ACA_DATA/knowledge/, project files, context files.
type: task): Document what was done. Preserved even when archived. Managed via tasks MCP.type: daily-note, in sessions/): High-quality user synthesis of what happened and what matters. Created by the user. NOT edited after the day.type: meeting-note, in knowledge/ or project dirs): Notes of meetings, phone calls, conversations. Captured close to the event. May not be edited afterwards. Valuable as primary sources.The episodic/semantic distinction mirrors how biological memory works. Complementary Learning Systems theory (McClelland et al. 1995) shows that rapid episode capture and gradual pattern extraction are complementary processes — you need both. Semanticization (Baddeley 1988) is the natural process where episodic memories lose temporal context through repeated retrieval, becoming context-free semantic knowledge. The /sleep cycle's consolidation phases mirror this: offline replay of episodes, pattern extraction, integration into durable knowledge. The review process IS the consolidation mechanism — passive storage does not produce understanding.
$ACA_DATA reflect what's currentPKB is the universal index. Write to your primary storage AND PKB for semantic search retrieval.
| What | Primary Storage | Also Sync To |
|---|---|---|
| Epics/projects | PKB (type="epic" or type="project") | PKB index |
| Tasks/issues | GitHub Issues (gh issue create) | PKB index |
| Durable knowledge | $ACA_DATA/ markdown files | PKB index |
| Session findings | Task body updates | PKB index |
See [[base-memory-capture]] workflow for when and how to invoke this skill.
Is this a time-stamped observation? (what agent did, found, tried)
→ YES: Use tasks MCP (create_task or update_task) - NOT this skill
→ NO: Continue...
Is this about the framework (axioms, heuristics)?
→ YES: HALT and invoke /framework skill to add properly to $AOPS
→ NO: Continue...
Is this about the user? (projects, goals, context, tasks)
→ YES: Use appropriate location below
→ NO: Use `knowledge/<topic>/` for general facts
| Content | Location | Notes |
|---|---|---|
| Project metadata | projects/<name>.md | Hub file |
| Project details | projects/<name>/ | Subdirectory |
| Goals | goals/ | Strategic objectives |
| Context (about user) | context/ | Preferences, history |
| Sessions/daily | sessions/ | Daily notes only, type: daily-note |
| Tasks | Delegate to [[tasks]] | Use scripts |
| General knowledge | knowledge/<topic>/ | Facts NOT about user |
| Meeting/call notes | knowledge/<topic>/ or projects/ | Contemporaneous notes, type: meeting-note |
| Maps of Content (MOCs) | knowledge/ or topic dirs | Navigational hub notes, type: moc |
mcp__pkb__create_task(task_title="...", type="task", project="<project>", parent="<parent-id>")mcp__pkb__create_task(task_title="...", type="task", project="<project>", parent="<parent-id>", tags=["bug"])mcp__pkb__update_task(id="...", body="...")Rule: If it describes agent activity or debugging, it's operational episodic → tasks MCP.
sessions/) — type: daily-notetype: meeting-note) — contemporaneous records of conversations, captured close to the eventmcp__pkb__search(query="topic") + Glob under $ACA_DATA/---
title: Descriptive Title
type: note|project|knowledge|moc|meeting-note|daily-note
tags: [relevant, tags]
created: YYYY-MM-DD
---
Content with [[wikilinks]] to related concepts.
mcp__pkb__create_memory(
title="[descriptive title]",
body="[content]",
tags=["relevant", "tags"]
)
When a memory references an external issue, bug, or resource, always link it explicitly:
[org/repo#NNN](https://github.com/org/repo/issues/NNN) — don't just mention "#NNN" in prosegh issue create link or [#NNN](url)## Relationships section with typed edges:
## Relationships
- [related] [[task-id]] — brief description
- [upstream-bug] [org/repo#NNN](url)
- [parent] [[parent-id]]
Why: Unlinked references are dead ends. The PKB graph and future agents can't traverse prose mentions — they need explicit edges.
Use PKB semantic search for $ACA_DATA/ content. Never grep for markdown in the knowledge base. Give agents enough context to make decisions - never use algorithmic matching (fuzzy, keyword, regex).
When capturing learnings from debugging/development sessions, prefer generalizable patterns over implementation specifics.
| ❌ Too Specific | ✅ Generalizable |
|---|---|
| "AOPS_SESSION_STATE_DIR env var set at SessionStart in router.py:350" | "Configuration should be set once at initialization, no fallbacks" |
| "Fixed bug in session_paths.py on 2026-01-28" | "Single source of truth prevents cascading ambiguity" |
| "Gemini uses ~/.gemini/tmp/<hash>/ for state" | "Derive paths from authoritative input, don't hardcode locations" |
Why this matters: Specific implementation details are only useful for one code path. Generalizable patterns apply across all future framework work. We're dogfooding - capture what helps NEXT session, not what happened THIS session.
Test: Would this memory help an agent working on a DIFFERENT component? If not, it's too specific.
When extracting facts or observations from episodic content, use Obsidian callout syntax:
[!observation] Brief factual claim Source: [[link-to-source-note]] or description of origin Confidence: established | provisional | speculative
Examples:
<!-- -->[!observation] Platform liability frameworks increasingly distinguish between hosting and curation Source: [[20260401-meeting-regulators]], discussion with policy team Confidence: established
[!observation] Sleep cycle deduplication catches ~15% false positives on short titles Source: Three /sleep runs in March 2026 Confidence: provisional
Guidelines:
established (multiple independent sources), provisional (single source or limited evidence), speculative (inference, needs verification)All synthesized knowledge must be traceable to its sources. This is critical — we never fabricate information.
For synthesized knowledge notes, include:
sources:
- "[[daily/20260401-daily]]"
- "[[meeting-notes/regulatory-review-20260328]]"
- "Session transcript 2026-04-01T14:30"
synthesized: 2026-04-03
confidence: provisional
maturity: seedling
last_reviewed: 2026-04-03
Maturity levels (optional, tracks evidence strength):
seedling — single source, provisional confidence. May not survive review.budding — corroborated by 2+ independent sources. Worth linking to.evergreen — reviewed, stable, established confidence. Core knowledge.When a specific claim comes from a specific source, cite it inline:
[[wikilinks]] for $ACA_DATA sources, markdown links for external sourcesprovisional to established without additional evidenceA Map of Content is a navigational hub note that curates links to related notes on a topic.
Create a MOC when a topic area reaches a "mental squeeze point" — typically 5+ related notes that would benefit from a navigational index. MOCs are created by the /sleep consolidation cycle or manually.
---
title: "MOC: Topic Name"
type: moc
tags: [moc, topic-area]
created: YYYY-MM-DD
last_reviewed: YYYY-MM-DD
---
MOCs contain curated links with brief annotations, grouped thematically:
# MOC: Platform Regulation
## Core Concepts
- [[platform-liability-frameworks]] — distinction between hosting and curation models
- [[content-moderation-at-scale]] — practical challenges of automated enforcement
## Australian Context
- [[osb-act-overview]] — Online Safety Bill structure and key provisions
- [[esafety-commissioner-powers]] — regulatory enforcement mechanisms
## Open Questions
- How will AI-generated content affect platform liability? (no settled answer yet)
For factual observations NOT about the user. Location: knowledge/<topic>/
Constraints:
Topics (use broadly):
cyberlaw/ - copyright, defamation, privacy, AI ethics, platform lawtech/ - protocols, standards, technical factsresearch/ - methodology, statistics, findingsFormat:
---
title: Fact/Case Name
type: knowledge
topic: cyberlaw
source: Where learned
date: YYYY-MM-DD
---
[[Entity]] did X. Key point: Y. [[Person]] observes: "quote".
For non-blocking capture, spawn background agent:
Task(
subagent_type="general-purpose", model="haiku",
run_in_background=true,
description="Remember: [summary]",
prompt="Invoke Skill(skill='remember') to persist: [content]"
)
Report both operations:
[path][hash]