| name | forge |
| description | Mine transcripts into learnings. |
| practices | ["wiki-knowledge-surface","lean-startup"] |
| hexagonal_role | domain |
| consumes | [] |
| produces | [".agents/research/*.md"] |
| context_rel | [{"kind":"shared-kernel","with":"standards"}] |
| skill_api_version | 1 |
| user-invocable | false |
| context | {"window":"fork","intent":{"mode":"task"},"sections":{"exclude":["TASK"]},"intel_scope":"full"} |
| metadata | {"tier":"background","dependencies":[],"internal":true} |
| output_contract | .agents/learnings/*.md, .agents/patterns/*.md |
Forge Skill
Cross-vendor analog: the capture half of Anthropic Managed Agents' memory + dreaming pair (May 2026). Forge mines transcripts; /dream curates between sessions. Off the API, local, cross-vendor.
Typically runs automatically via SessionEnd hook.
Loop position: capture sub-step of move 7 in the operating loop. Extracts candidate learnings from transcripts; the promotion ratchet decides which ones survive (one-offs die at handoff; repeats promote to .agents/learnings/). Forge is the funnel, not the filter.
Extract knowledge from session transcripts.
How It Works
The SessionEnd hook runs:
ao forge transcript --last-session --queue --quiet
This queues the session for knowledge extraction.
Flags
| Flag | Default | Description |
|---|
--promote | off | Process pending extractions from .agents/knowledge/pending/ and promote to .agents/learnings/. Absorbs the former extract skill. |
Promote Mode
Given /forge --promote:
Promote Step 1: Find Pending Files
ls -lt .agents/knowledge/pending/*.md 2>/dev/null
ls -lt .agents/ao/pending.jsonl 2>/dev/null
If no pending files found, report "No pending extractions" and exit.
Promote Step 2: Process Each Pending File
For each file in .agents/knowledge/pending/:
- Read the file content
- Validate it has required fields (
# Learning:, **Category**:, **Confidence**:)
- Copy to
.agents/learnings/ (preserving filename)
- Remove the source file from
.agents/knowledge/pending/
Promote Step 3: Process Pending Queue
if [ -f .agents/ao/pending.jsonl ] && [ -s .agents/ao/pending.jsonl ];
.agents/ao/pending.jsonl
> .agents/ao/pending.jsonl