Referenced-Figure Pages + Relationship Map (~16 people) — Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: Create ~16 entity-person pages for figures referenced within the corpus, each with a structured relationship: type, forming a Fuller-centered relationship map.
Architecture: Reuses the person-entity model + adds a controlled relationship: frontmatter field, a mirrored relationship-<type> tag, a ## Relationship to Fuller narrative section, and a prose link to r-buckminster-fuller (not in See Also). See Also holds only reciprocated figure↔work and figure↔person links. Registered in the unified fuller-people.md.
Tech Stack: Markdown; Python for registry/index generation and lint checks (this repo's grep is ugrep with atypical flags — prefer Python); /wiki:lint for verification. No code, no unit tests.
Note on TDD: Content task. Each task's verify step is a Python inspection or the reciprocity/lint check. Commit in sub-batches.
Working directory: repo root /Volumes/Storage/belmendo/Projects/buckyverse.org; wiki root .wiki/; branch pluck/imp-16-referenced-people-relationships.
relationship: controlled vocabulary: collaborator · influence-on-fuller · influenced-by-fuller · friend · family · contemporary · rival-critic · forebear
The figure table (slug, relationship, source anchor — CONV = compiled-from: conversation):
| Figure | slug | relationship | source anchor |
|---|---|---|---|
| Albert Einstein | albert-einstein | influence-on-fuller | ../../raw/repos/nine-chains-to-the-moon.md |
| Anne Hewlett Fuller | anne-hewlett-fuller | family | CONV |
| Lloyd Kahn | lloyd-kahn | contemporary | ../../raw/repos/dome-cookbook-of-geodesic-geometry.md |
| Isamu Noguchi | isamu-noguchi | friend | ../../raw/repos/we-are-all-astronauts.md |
| John Cage | john-cage | contemporary | ../../raw/repos/the-experimenters.md |
| Josef Albers | josef-albers | contemporary | ../../raw/repos/the-experimenters.md |
| Marshall McLuhan | marshall-mcluhan | influence-on-fuller | ../../raw/repos/i-seem-to-be-a-verb.md |
| Frank Lloyd Wright | frank-lloyd-wright | contemporary | CONV |
| Le Corbusier | le-corbusier | contemporary | CONV |
| Norbert Wiener | norbert-wiener | influence-on-fuller | CONV |
| Margaret Fuller | margaret-fuller | family | CONV |
| John McHale | john-mchale | collaborator | ../../raw/repos/world-design-science-decade-document-1.md |
| Merce Cunningham | merce-cunningham | contemporary | ../../raw/repos/the-experimenters.md |
| Thomas Edison | thomas-edison | forebear | CONV |
| Henry Ford | henry-ford | forebear | CONV |
| Leonardo da Vinci | leonardo-da-vinci | forebear | CONV |
Authorship-style tag: about-buckminster-fuller for family/collaborators/close figures (Anne Hewlett Fuller, Margaret Fuller, John McHale, Isamu Noguchi); fuller-adjacent for the rest. Plus entity-person and relationship-<type>.
Task 1: Validate figures + source anchors
Files: none written — produces the confirmed mapping.
- Step 1: Confirm each work-anchor pointer resolves and each figure is corpus-attested
cd /Volumes/Storage/belmendo/Projects/buckyverse.org/.wiki
for p in raw/repos/nine-chains-to-the-moon.md raw/repos/dome-cookbook-of-geodesic-geometry.md raw/repos/we-are-all-astronauts.md raw/repos/the-experimenters.md raw/repos/i-seem-to-be-a-verb.md raw/repos/world-design-science-decade-document-1.md; do
[ -f "$p" ] && echo "OK $p" || echo "MISS $p"
done
[ -f wiki/topics/r-buckminster-fuller.md ] && echo "OK Fuller node" || echo "MISS Fuller node"
- Step 2: Re-confirm none of the 16 already have a person page (dedup)
cd /Volumes/Storage/belmendo/Projects/buckyverse.org/.wiki
for s in albert-einstein anne-hewlett-fuller lloyd-kahn isamu-noguchi john-cage josef-albers marshall-mcluhan frank-lloyd-wright le-corbusier norbert-wiener margaret-fuller john-mchale merce-cunningham thomas-edison henry-ford leonardo-da-vinci; do
[ -f "wiki/topics/$s.md" ] && echo "EXISTS (skip): $s"
done; echo "dedup check done"
Expected: no EXISTS lines.
- Step 3: No commit (mapping only).
Task 2: Establish the template (exemplar: Albert Einstein)
Files:
-
Create:
.wiki/wiki/topics/albert-einstein.md -
Modify:
.wiki/wiki/topics/nine-chains-to-the-moon.md(reciprocal back-link) -
Step 1: Write the exemplar page
Create .wiki/wiki/topics/albert-einstein.md:
---
title: "Albert Einstein"
category: topic
sources:
- ../../raw/repos/nine-chains-to-the-moon.md
created: 2026-07-01
updated: 2026-07-01
verified: 2026-07-01
relationship: influence-on-fuller
tags: [entity-person, relationship-influence-on-fuller, fuller-adjacent, physics, relativity]
aliases: ["Albert Einstein", "Einstein"]
confidence: medium
volatility: cold
compiled-from: sources
summary: "German-born theoretical physicist (1879–1955) whose relativity Fuller sought to popularize in Nine Chains to the Moon — the source of the much-repeated, never-confirmed story of Einstein endorsing Fuller's lay account of his theories."
---
# Albert Einstein
> German-born theoretical physicist (1879–1955), author of the theories of relativity — and, in Fuller's story, the scientist whose work Fuller dared to explain to a lay audience.
<2–3 reworded sentences: Einstein's stature; how relativity and the physics of energy shaped Fuller's "energetic" worldview.>
## Relationship to Fuller
**Relationship: influence on Fuller.** In *Nine Chains to the Moon* (1938) Fuller included a lay account of Einstein's theories, and later told the much-repeated — but never independently confirmed — story that Einstein, on meeting him, said "Young man, you amaze me…" Whatever the truth of the anecdote, Einstein's relativity and the primacy of energy over static matter are woven into Fuller's synergetic, "energy-as-number" cosmology. See [[r-buckminster-fuller|R. Buckminster Fuller]] for the other side of the relationship.
## See Also
- [[nine-chains-to-the-moon|Nine Chains to the Moon]] ([Nine Chains to the Moon](nine-chains-to-the-moon.md)) — the book that recounts Fuller's engagement with Einstein's theories
## Sources
- [Nine Chains to the Moon (source reference)](../../raw/repos/nine-chains-to-the-moon.md) — the work documenting the Einstein connection
(Confirm the Fuller link [[r-buckminster-fuller|...]] sits in the body, not in ## See Also.)
- Step 2: Reciprocal work→figure back-link
Add to nine-chains-to-the-moon.md's ## See Also (create it before ## Sources if absent):
- [[albert-einstein|Albert Einstein]] ([Albert Einstein](albert-einstein.md)) — the physicist whose theories this book popularizes
- Step 3: Verify + commit
cd /Volumes/Storage/belmendo/Projects/buckyverse.org/.wiki
python3 - <<'PY'
t=open("wiki/topics/albert-einstein.md",encoding="utf-8").read()
import re
sa=re.search(r'## See Also(.*?)## Sources', t, re.S).group(1)
print("relationship field:", re.search(r'^relationship:\s*(\S+)', t, re.M).group(1))
print("fuller link in See Also (should be False):", "r-buckminster-fuller" in sa)
print("fuller link in body (should be True):", "r-buckminster-fuller" in t)
PY
cd /Volumes/Storage/belmendo/Projects/buckyverse.org
git add .wiki/wiki/topics/albert-einstein.md .wiki/wiki/topics/nine-chains-to-the-moon.md
git commit -m "feat: referenced-figure page — Albert Einstein (exemplar)"
Task 3: Write the remaining figure pages (batch)
Files:
- Create:
.wiki/wiki/topics/<figure-slug>.mdfor each remaining figure. - Modify: each figure's work anchor topic (
## See Alsoreciprocal) where the source is a work (not CONV).
For each remaining figure, run this procedure. Commit in ~2 sub-batches of ~8.
-
Step 1: Per-figure — write the page using the Task 2 template. Requirements:
-
category: topic;relationship: <type>(from the table);sources:= the work anchor ORcompiled-from: conversation(omitsources:; every page needsvolatility: cold+verified: 2026-07-01+ eithersources:orcompiled-from: conversation). -
tags =
entity-person+relationship-<type>+about-buckminster-fuller/fuller-adjacent(per the table note) + 1–3 topic tags. -
2–3 sentence reworded description (no fabricated biographical detail).
-
## Relationship to Fuller— open with**Relationship: <plain type>.**, then the specific relationship narrative, grounded in the corpus/general knowledge. Include a body link[[r-buckminster-fuller|R. Buckminster Fuller]].
Relationship notes to ground each: Noguchi (lifelong friend; chrome bust; Fuller & Sadao/Noguchi ties); Cage/Albers/Cunningham (Black Mountain colleagues); McHale (co-directed the World Design Science Decade / co-authored WDSD Doc 1); McLuhan (media-theory kinship; I Seem to Be a Verb made with the Medium is the Massage designers Agel & Fiore); Le Corbusier / Frank Lloyd Wright (architectural contemporaries Fuller measured himself against); Wiener (cybernetics/systems influence); Anne Hewlett Fuller (wife; the Stockade/4D years; her father Willard's roof system); Margaret Fuller (his transcendentalist great-aunt, an ancestral inspiration); Edison/Ford (industrial-production forebears behind "shelter produced like automobiles"); Leonardo da Vinci (the "Leonardo of our time" comparison). -
## See Also— bidirectional to the work anchor (if any) + 1–2 related people/topics;## Sources(the raw pointer, or "Compiled from general knowledge and corpus mentions; no single work anchors this figure." for CONV). -
Step 2: Per-figure — reciprocal work→figure back-link (only for work-anchored figures)
Add - [[<slug>|<Name>]] ([<Name>](<slug>.md)) — <relation> to the anchor work's ## See Also. Work anchors: dome-cookbook-of-geodesic-geometry (Lloyd Kahn), we-are-all-astronauts (Isamu Noguchi), the-experimenters (Cage, Albers, Cunningham), i-seem-to-be-a-verb (McLuhan), world-design-science-decade-document-1 (McHale). CONV figures have no work reciprocal — link them to ≥1 related person page instead (reciprocated), so they aren't orphans.
- Step 3: Commit each sub-batch
cd /Volumes/Storage/belmendo/Projects/buckyverse.org
git add .wiki/wiki/topics/
git commit -m "feat: referenced-figure pages — batch (<names>)"
- Step 4: Verify the full set
cd /Volumes/Storage/belmendo/Projects/buckyverse.org/.wiki
python3 - <<'PY'
import glob, re
VOCAB={"collaborator","influence-on-fuller","influenced-by-fuller","friend","family","contemporary","rival-critic","forebear"}
figs=[f for f in glob.glob("wiki/topics/*.md") if re.search(r'^relationship:', open(f,encoding="utf-8").read(), re.M)]
print("figures with relationship field:", len(figs))
for f in figs:
t=open(f,encoding="utf-8").read()
rel=re.search(r'^relationship:\s*(\S+)',t,re.M).group(1)
if rel not in VOCAB: print("BAD relationship:", f, rel)
if 'compiled-from: conversation' not in t and not re.search(r'^sources:',t,re.M): print("NO SOURCE:", f)
if 'r-buckminster-fuller' not in t: print("NO FULLER LINK:", f)
print("check done")
PY
Task 4: Update the registry (fuller-people.md)
Files:
-
Modify:
.wiki/wiki/references/fuller-people.md -
Step 1: Regenerate the alphabetical People list from all entity-person pages (Python — avoids ugrep quirks):
cd /Volumes/Storage/belmendo/Projects/buckyverse.org/.wiki
python3 - <<'PY'
import glob, re
rows=[]
for f in glob.glob("wiki/topics/*.md"):
if f.endswith("_index.md"): continue
t=open(f,encoding="utf-8").read()
if 'entity-person' not in t: continue
title=re.search(r'^title:\s*"(.*)"',t,re.M).group(1)
slug=f.split("/")[-1][:-3]
rows.append((title,f"- [{title}](../topics/{slug}.md)"))
rows.sort(key=lambda r:r[0].lower())
body="\n".join(r[1] for r in rows); n=len(rows)
f="wiki/references/fuller-people.md"; t=open(f,encoding="utf-8").read()
t=re.sub(r'## People\n\n.*?\n\n## See Also', "## People\n\n"+body+"\n\n## See Also", t, count=1, flags=re.S)
t=re.sub(r'\((\d+)\) — biographers', f'({n}) — biographers', t)
t=re.sub(r'summary: "\d+ people', f'summary: "{n} people', t)
open(f,"w",encoding="utf-8").write(t)
print("registry people now:", n)
PY
- Step 2: Commit
cd /Volumes/Storage/belmendo/Projects/buckyverse.org
git add .wiki/wiki/references/fuller-people.md
git commit -m "feat: add ~16 referenced-figure pages to fuller-people.md registry"
Task 5: Update indexes + provenance
Files: Modify .wiki/wiki/topics/_index.md, .wiki/_index.md, .wiki/log.md
- Step 1: Add the figure rows to the topics index (Python):
cd /Volumes/Storage/belmendo/Projects/buckyverse.org/.wiki
python3 - <<'PY'
import re
slugs="albert-einstein anne-hewlett-fuller lloyd-kahn isamu-noguchi john-cage josef-albers marshall-mcluhan frank-lloyd-wright le-corbusier norbert-wiener margaret-fuller john-mchale merce-cunningham thomas-edison henry-ford leonardo-da-vinci".split()
rows=[]
for s in slugs:
t=open(f"wiki/topics/{s}.md",encoding="utf-8").read()
title=re.search(r'^title:\s*"(.*)"',t,re.M).group(1)
summ=re.search(r'^summary:\s*"(.*)"',t,re.M).group(1)
conf=re.search(r'^confidence:\s*(\w+)',t,re.M).group(1)
rows.append(f"| [{title}]({s}.md) | {summ} | {conf} | 2026-07-01 |")
idx="wiki/topics/_index.md"; t=open(idx,encoding="utf-8").read()
t=t.replace("\n\n## Recent Changes","\n"+"\n".join(rows)+"\n\n## Recent Changes",1)
t=t.replace("## Recent Changes\n\n",
f"## Recent Changes\n\n- 2026-07-01: Compiled {len(rows)} referenced-figure pages (entity-person, relationship map) [IMP-16]\n",1)
open(idx,"w",encoding="utf-8").write(t)
print("figure rows added:", len(rows), "| table rows:", t.count("\n| ["))
PY
- Step 2: Bump master stats + Recent Changes
In .wiki/_index.md: raise - Articles: 192 compiled wiki articles by the number created (e.g. 192 → 208 for 16); set Last compiled: 2026-07-01; add:
- 2026-07-01: Compiled 16 referenced-figure entity pages (entity-person + relationship: field) mapping Fuller's relationships → wiki/topics/ + fuller-people.md registry [IMP-16]
- Step 3: Append to log.md
## [2026-07-01] compile | 16 referenced-figure pages (entity-person, relationship map) + work back-links + registry [IMP-16]
- Step 4: Commit
cd /Volumes/Storage/belmendo/Projects/buckyverse.org
git add .wiki/wiki/topics/_index.md .wiki/_index.md .wiki/log.md
git commit -m "feat: index + provenance for referenced-figure pages"
Task 6: Lint and fix
Files: whatever the checks flag.
- Step 1: Broken-link + source + reciprocity + relationship-vocab check (Python):
cd /Volumes/Storage/belmendo/Projects/buckyverse.org/.wiki
python3 - <<'PY'
import glob, re, os
VOCAB={"collaborator","influence-on-fuller","influenced-by-fuller","friend","family","contemporary","rival-critic","forebear"}
def sa(t):
m=re.search(r'^## See Also\s*(.*?)(?=^## |\Z)', t, re.M|re.S)
return re.findall(r'\]\(([a-z0-9-]+)\.md\)', m.group(1)) if m else []
pages={os.path.basename(f)[:-3]:open(f,encoding="utf-8").read() for f in glob.glob("wiki/topics/*.md") if not f.endswith("_index.md")}
figs=[s for s,t in pages.items() if re.search(r'^relationship:',t,re.M)]
broken=[(s,x) for s in figs for x in sa(pages[s]) if x not in pages]
nonrecip=[(s,x) for s in figs for x in sa(pages[s]) if x in pages and s not in sa(pages[x])]
badrel=[(s,re.search(r'^relationship:\s*(\S+)',pages[s],re.M).group(1)) for s in figs if re.search(r'^relationship:\s*(\S+)',pages[s],re.M).group(1) not in VOCAB]
badsrc=[s for s in figs if 'compiled-from: conversation' not in pages[s] and not re.search(r'^sources:',pages[s],re.M)]
print("figures:", len(figs))
print("broken:", broken or "none")
print("bad relationship values:", badrel or "none")
print("no-source figures:", badsrc or "none")
print("non-reciprocal:", nonrecip or "none")
PY
-
Step 2: Fix every non-reciprocal / broken / bad-value item, re-run Step 1 until clean.
-
Step 3: Run
/wiki:lint --localand confirm 0 broken links, 0 dangling sources, See Also bidirectional, indexes/counts consistent. SetLast lint: 2026-07-01in.wiki/_index.md. -
Step 4: Commit fixups
cd /Volumes/Storage/belmendo/Projects/buckyverse.org
git add .wiki && git commit -m "chore: wiki lint fixups for referenced-figure pages"
Task 7: Re-file the deferred follow-ups
Files: Modify work/IMPROVEMENTS.md (via the dev-xp_work improve: record flow, on the base branch during pluck housekeeping).
-
Step 1: Record two
improve:items (onmain):- Referenced-figure long tail — the lesser-mentioned figures (Sontag, Warhol, Rauschenberg, Gropius, Duchamp, Tesla, Salk, Whitehead, Kepler, Russell, Chomsky, …), same
entity-person+relationship:model. - Backfill
relationship:onto the existing 61 person pages so the whole people graph is relationship-typed and fully mappable.
- Referenced-figure long tail — the lesser-mentioned figures (Sontag, Warhol, Rauschenberg, Gropius, Duchamp, Tesla, Salk, Whitehead, Kepler, Russell, Chomsky, …), same
-
Step 2: Commit (handled by the record flow).
Verification checklist (whole plan)
- ~14–16 referenced-figure
entity-personpages, each with a validrelationship:value +relationship-<type>tag +## Relationship to Fullersection. - Each figure links to
r-buckminster-fullerin the body (not See Also); See Also holds only reciprocated figure↔work / figure↔person links. - Each page has resolvable
sources:ORcompiled-from: conversation. -
fuller-people.mdregistry regenerated; indexes + master count (+~16) + log updated. -
/wiki:lint --localclean. - Long-tail + relationship-backfill-of-61 re-filed as follow-ups.