Devlog
Weekly narrative of what shipped, what changed, and the decisions behind it. Synthesized from ops reports, git history, GitHub activity, and session logs.
2026-W12 — 849 entries, structural enrichment, and the rename
849 entries, structural enrichment, and the rename
Week 12 nearly tripled the catalog. Fifteen import projects ran concurrently, the structural enrichment sweep tagged every entry for shape-based retrieval, and the project-wide rename from “mappings” to “entries” landed. By Sunday the catalog held 1,299 entries, 249 frames, and 26 categories.
By the Numbers
- 849 entries added in seven days (450 to 1,299). Nearly double the pace of Week 11’s 474.
- 284 PRs merged, 200+ issues closed. The auto-merge workflow handled the volume without manual intervention.
- Structural enrichment completed in a single day (March 21): 22 batches covering ~1,080 entries, plus a 200-entry cleanup pass. Every entry in the catalog now carries structural tags.
- Ops reports stopped after March 18. The digest pipeline didn’t keep up with the pace of change. Cost data is incomplete for the second half of the week.
What Shipped
Content — fifteen import projects running concurrently:
The pipeline sustained a pace that would have been unthinkable two weeks earlier. Major projects:
- Alexander pattern language (PRs #2385-#2391, 30 entries from A Pattern Language)
- Stoic philosophy (PRs #2453-#2474, 20 entries from Marcus Aurelius, Epictetus, Seneca)
- Psychotherapy metaphors (PRs #2422-#2438, ~40 entries from ACT, narrative therapy, somatic work)
- Ecological metaphors (PRs #2374-#2381, ~25 entries from ecology and permaculture)
- Hacker laws (PRs #2445-#2447, 14 entries: Hyrum’s Law, Goodhart’s Law, Dunning-Kruger, etc.)
- Bannard aphorisms + carpentry proverbs (PRs #2364-#2370, ~30 entries)
- Surgical aphorisms + agricultural proverbs (PRs #2341-#2348, ~25 entries)
- Dangling references cleanup (PRs #2677-#2691, ~40 entries filling gaps in the
relatedgraph) - Eval-novel-metaphors (PRs #2426-#2435, ~12 entries testing whether the pipeline can generate original metaphors)
Structural enrichment — the whole catalog, tagged for shape:
The structural enrichment sweep added four fields to every entry: embodied_patterns, relation_types, structure, and abstraction_level. The motivation: keyword search and even embeddings find topically similar entries, but the catalog’s real value is surfacing non-obvious connections across domains. Two entries from completely different fields can share the same embodied pattern (container, path, cycle, tension) or the same relational structure (part-whole, cause-effect, enabler-constraint). These tags make that kind of structural retrieval possible. The vocabulary was designed in docs/plans/2026-03-20-structural-enrichment-vocabulary.md, validated with an eval harness, then swept across the catalog in 22 batches on March 21.
Schema and naming:
- Mappings renamed to entries (PR #1567). Every file, script, agent prompt, skill, and template updated. The old term was confusing to newcomers.
- Schema v2 (PR #1458): five-kind taxonomy (metaphor, pattern, archetype, paradigm, mental-model),
applies_tofield,groundinglevels. 41 paradigms reclassified to mental-model (PR #1459).
Site:
- Structural neighbors sidebar added to entry detail pages. When viewing an entry, the sidebar shows entries that share embodied patterns or relation types.
- Pagefind faceted filters for kind and category.
Infrastructure:
- Agent identity and RBAC system (PR #2334). Agents can now operate under their own GitHub bot accounts via operator-level crew config.
- Embeddings pipeline and evaluation framework (PR #1520).
- Relation subtypes with weighted Jaccard similarity for the structural exploration system.
Pipeline & Kaizen
Six kaizen fixes shipped:
- Smelter label corrected:
ready-for-assaytoneeds-assay(PR #1572) - Miner required
needs-smeltinglabel on all PRs (PR #1569) gh pr reviewreplaced withgh apifor review submission (PR #2398)- Validator now warns on unknown frontmatter fields (PR #2399)
- Prospector gained scrape result validation and selector fallback guidance (PR #2421)
- Worktree branch guard added to miner agent (PR #1682)
Other pipeline improvements: no-cosmetic-changes rule for the miner, duplicate section and deprecated heading checks in the validator, circular mapping warnings when source_frame appears in applies_to, and a kaizen self-improvement guard with principles doc.
Steering Notes
- “Mappings” was the wrong word. The rename to “entries” was driven by user feedback: the term “mapping” confused people who expected a geographic or data-mapping tool. “Entry” is neutral and accurate.
- Structural enrichment vocabulary was designed casuals-first. The plan explicitly chose “embodied patterns” over the academic term “image schemas” because “image” misleadingly suggests something visual. The felt, bodily quality of these patterns is what matters.
- Ops reports fell behind. The digest pipeline didn’t run after March 18, likely because the session cadence shifted to longer, less frequent runs. Cost visibility was lost for the second half of the week.
What’s Next
- Summary enrichment pass: add a one-line
summaryfield to every entry for card views and search results - Dangling references project wrapping up: ~50 entries still missing from the
relatedgraph - Ops pipeline needs attention: no reports generated since March 18
- Site: card-based entry browsing (Layout B design)
2026-W11 — From 13 entries to 739: the week the pipeline came online
From 13 entries to 739: the week the pipeline came online
Week 11 was the inflection point. The project went from a hand-curated seed catalog to a full agent-driven pipeline producing hundreds of entries per day. The schema was overhauled, the monorepo consolidated, observability stood up, and six import projects ran concurrently. By Sunday the catalog had 739 entries, 145 frames, and 21 categories.
By the Numbers
- 474 entries added in seven days, up from 13 at week start. Cost: $241.75 total, roughly $0.51 per entry.
- 460 agent runs across the week. The miner (opus) dominated at $179.87 (74% of spend). The smelter (haiku) handled 118 runs for just $3.95 — the cheapest agent per run by far.
- 50 PRs merged, 50 issues closed. The auto-merge workflow went live mid-week, cutting manual merge overhead to near zero.
- Peak day: 193 entries on March 13, the day the pipeline hit full stride with multiple import projects running in parallel.
What Shipped
Content — six import projects running concurrently:
- Lakoff-Johnson MWLB canon (cognitive linguistics core)
- Jungian archetypes (PR #901 prospected, entries #945-#955 mined — shadow, self, persona, anima/animus, great mother, wise old man, senex, shapeshifter)
- Dead metaphors worth resurrecting (PR #900 — bankrupt, muscle, shell, kernel, daemon, spam, patch, silo)
- Fantasy-mythology-folklore (ouroboros, excalibur, damocles-sword, gordian-knot, pyrrhic-victory, pandemonium, cerberus, and more)
- Patterns of Software / Cathedral & Bazaar (software-habitability, piecemeal-growth, the-quality-without-a-name)
- Hacker Laws (PR #1235 prospected)
Schema v2 (PR #1458):
- Five-kind taxonomy: metaphor, pattern, archetype, paradigm, mental-model
- New fields:
applies_to,grounding(proven/established/folk/contested),provenance - Reclassified 41 paradigms to mental-model, 2 to metaphor (PR #1459)
- Added
catalog/works/for source text provenance tracking (PR #1362)
Infrastructure:
- Monorepo consolidation (PR #531) — agents repo merged into main, metaphorex.org launched
- Observability and kaizen system (PR #1193) — ops reports, digest.py, kaizen issue template
- Auto-merge on
approvedlabel (.github/workflows) - Split licensing: CC BY-SA 4.0 for content, MIT for code
- Marginalia-inspired site theme
Pipeline & Kaizen
The full agent squad came online this week. Six agents were created or substantially rewritten:
- Miner — extracts entries from playbooks. 197 runs, the workhorse.
- Assayer — reviews and refines miner output. 123 runs on sonnet.
- Smelter — mechanical cleanup (frontmatter normalization, formatting). 118 runs on haiku, the most cost-efficient agent.
- Prospector — researches new sources, builds playbooks and manifests. 9 runs on opus.
- Surveyor — validates prospector output before mining begins. 7 runs.
- Fixer — applies kaizen fixes to agent prompts and scripts. 1 run (kaizen backlog was empty most of the week).
The /work orchestrator command was built to dispatch agents in sequence: smelt → assay → mine → prospect, with a kaizen triage phase.
Session and identity management took shape. The project moved from a single workspace (-workspace-metaphorex) to a second workspace (-workspace-m4x-factory) mid-week, establishing the pattern of separate working directories for different operational contexts. GitHub auth and bot identity setup appeared in multiple sessions as the crew configuration system was bootstrapped — laying groundwork for agents to operate under their own GitHub identities via the /configure command and agent-identity skill.
Bug fixes:
- survey.py: fixed detection of
needs-surveylabel and REST sub_issues API (PR #943, issue #1369) - Auto-merge workflow: added missing
--repoflag (PR #1365)
18 new scripts landed, including digest.py (ops/changelog generation), validate.py improvements, survey.py (work queue), stats.py (cost accounting from issue comments), and several backfill utilities for the schema migration.
Steering Notes
Key decisions from session logs (March 9 steering session):
- Em-dash ban as style norm. “Presence of em-dash is considered proof of AI-slop-ness.” Established as editorial guidance — agents must use periods, colons, or shorter sentences instead.
- Authorship attribution policy. Seed content re-attributed to
fshotrather than source authors, after weighing competing arguments about credit vs. provenance. - Security category created as standalone (not merged with risk). “Just create security, not risk, for now.”
- Frame roles simplified. Initial design was too complex for systematic enumeration. Backtracked to simpler guidance after discussion: “that’s too complex, please backtrack.”
- Gold-standard entries identified.
the-commons.mdandfirewall.mdselected as style exemplars after explicit evaluation of the seed catalog. - Eval hypothesis planted. Late-week session explored whether LLMs with catalog access outperform those without — designed as a milestone series to test as the catalog grows. Led to embeddings pipeline and eval framework design docs.
- Dotfile management with chezmoi discussed as a way to track user/system-level improvements across sessions.
What’s Next
- Hacker Laws import project queued (prospected, not yet mined)
- Content enrichment pass at 47% (transfers + limits for existing entries)
- Eval framework design docs written — implementation pending catalog growth
- Kaizen backlog empty — pipeline running clean, friction not yet accumulating at scale