agentic/code/addons/semantic-memory/skills/memory-log-append/SKILL.md
Append a structured event to a consumer's semantic memory log
npx skillsauth add jmagly/aiwg memory-log-appendInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Append a single structured JSON event to a consumer's .log.jsonl file. This is the write primitive for the semantic memory kernel's event stream.
Called internally by other kernel skills (memory-ingest, memory-lint, memory-query-capture) after completing an operation. Can also be called directly for custom event types.
Consumer ID to log against. Resolved via ADR-021 D4 precedence: explicit > wrapper > auto-detect.
Operation type: ingest, lint, query-capture, log-render, index-rebuild, or a custom string.
JSON object with operation-specific fields per the memory-log-event schema.
memory.topology.log path from consumer's manifest.json.ts, op, consumer, actor) are present. Add ts and actor automatically if missing..log.jsonl file (create file if first entry)..aiwg/activity.log per the activity-log rule.The skill auto-populates:
ts — current ISO 8601 timestamp (UTC)actor — current model identifierconsumer — resolved consumer IDThe caller provides op and all operation-specific fields.
memory-lint will flag the corruption.@semantic-memory/schemas/memory-log-event.md
# After an ingest operation
memory-log-append --consumer research-complete --op ingest --data '{"source":"paper.pdf","pages_touched":["summaries/paper.md"],"contradictions":0,"duration_ms":5200}'
# After a lint operation
memory-log-append --consumer sdlc-complete --op lint --data '{"findings":{"error":0,"warning":3,"suggestion":8},"duration_ms":2100}'
This skill's persistence flows through resolveStorage('memory'). On the default fs backend the memory subsystem lives at .aiwg/memory/ and behavior is byte-identical to direct file writes. To redirect memory artifacts into Obsidian, Logseq, Fortemi, or another backend without changing this skill, configure .aiwg/storage.config (#934).
When this skill needs to read or write memory artifacts from a Bash step:
aiwg memory path # resolved root (fs only)
aiwg memory list --prefix research-complete/
aiwg memory get research-complete/index.md
echo "# index" | aiwg memory put research-complete/index.md
echo '{"op":"ingest","summary":"foo"}' | aiwg memory append-log research-complete/.log.jsonl
The aiwg memory append-log subcommand uses atomic O_APPEND (#976) on the fs backend — concurrent appenders don't race.
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.