-
Notifications
You must be signed in to change notification settings - Fork 2
log_llm wiki memory template
Chris Sweet edited this page Jun 25, 2026
·
38 revisions
type: index up: "Home_llm-wiki-memory-template"
Chronological record of wiki activity.
- by: Chris Sweet via claude-code
- Scaffolded wiki structure with namespaced navigation files (Home, index, log, SCHEMA) authored to match the canonical create-mode output of
wiki/init-wiki.sh - Wiki cloned to sibling path
../llm-wiki-memory-template.wiki/rather thanwiki/<repo>.wiki/to avoid semantic collision with the template'swiki/scaffolding directory; consequence:Home_<repo>up: "[[WIKI-INDEX]]"is a deliberate dangling reference for this layout - Ready for first ingest
- by: Chris Sweet via claude-code
- Authored 18 content pages across five categories: foundation (5: Wiki-LLM-Pattern, Three-Operations, Template-vs-Derived-Projects, Agent-Overlays, Typed-Edges-and-Frontmatter), mechanisms (6: Knowledge-Graph-Pipeline, Verification-Gate, Discipline-Gates, PostToolUse-Hook, Log-Entry-Attribution, Sync-Flow), lessons (3: Parallel-File-Drift, Hook-Type-Matters, Validation-Methodology), limitations (3: Prompt-Injection-Residual, Inverse-Edges-Missing, Untested-Overlays), and applied examples (1: Microelectronics-Tutor-Demo)
- Captured the substance of merged PRs: PR #1 (discipline gates, verification gate, PostToolUse hook) and PR #4 (log entry attribution, one-commit-per-entry), including the review feedback patterns and post-mortem lessons surfaced during structural + behavioral testing
- Filed three open limitations explicitly: prompt-injection residual risk (not pattern-specific), missing edge inverses (issue #3, surfaced during PR #4 behavioral testing), and untested non-Claude-Code overlays (Cursor, none)
- Used typed edges (
extends:,criticizes:,supports:) wherever the relationship is clear; treatedcriticizes:as the right edge from a Limitation page to the concept it limits, and from a Lesson page to the prior approach it corrects - Index updated with all 18 pages organized by category; every page has at least 2 outbound links and a See also section
- Verification gate criteria all pass: index updated, log entry being appended (this one), cross-references bidirectional, frontmatter present and non-
untypedon every page
- by: Chris Sweet via claude-code
- Filed Governance in the Foundation category in response to the wiki-llm pattern spreading beyond the base template into specialized variants (chrissweet/llm-wiki-tutor-template, with codebase-onboarding and grant-authoring siblings under discussion after the symposium demo and SIMBA collaboration)
- The page extends Template-vs-Derived-Projects by introducing a third tier (variant template) between the base and an instantiated project; the placement rule, fork-vs-flag criteria, rebase discipline, graduation trigger, and ownership / drift detection all derive from the three-tier model
- Cross-references the existing Sync-Flow for the ALWAYS_FILES contract (escalated one tier — variants rebase from base the same way derived projects rebase from variants) and Lesson-Parallel-File-Drift for the same footgun escalated to the variant tier
- Three open questions flagged for resolution as the variant population grows beyond two or three: variant discovery, versioning (pin to SHA vs HEAD), cross-variant features
- Home and Index updated in the Foundation category adjacent to Template-vs-Derived-Projects
[2026-05-31] lint | Reconcile wiki with template code; flag KG aspirational; fix none-overlay framing
- by: Chris Sweet via claude-code
- Audited the wiki against
crcresearch/llm-wiki-memory-templatemainafter reading all 24 pages. Triggered by an MVP-planning exercise that needed accurate references to template wiki pages. - Three substantive drifts found, all corrected in commit 8601db0:
-
Knowledge-Graph-Pipeline was described as implemented across 8 pages; reality is
scripts/kg/build-graph.shdoes not exist onmain. Flaggedstatus: aspirationalwith a "NOT YET IMPLEMENTED" banner; the design content preserved. Citations on the 7 dependent pages (Home, index, SCHEMA, Wiki-LLM-Pattern, Three-Operations, Typed-Edges-and-Frontmatter, Limitation-Inverse-Edges-Missing) softened to "designed, not yet implemented". -
Limitation-Untested-Overlays and Agent-Overlays misframed
--agent=none(a no-install flag ininstantiate.sh) as awiki/agents/none/overlay. Reframed; minimal mode now described accurately as no-install. Also fixed: the claim that the README uses the phrase "untested-live"; actual README uses "Shipped but not yet validated" and "Likewise unvalidated". -
Sync-Flow's ALWAYS_FILES section mixed contents from four arrays and listed
scripts/kg/*.sh(nonexistent). Section rewritten to accurately describe all five arrays (ALWAYS_FILES, CLAUDE_FILES, CURSOR_FILES, ONE_SHOT_FILES, SUBSTITUTE_FILES) with file lists from the current sync scripts.
-
Knowledge-Graph-Pipeline was described as implemented across 8 pages; reality is
- New pages: Implementation-Status (single normative source for real vs aspirational) and Wiki-Corrections-Log (append-only record of drift fixes). Home and Index gained a "Governance and meta" section linking both.
- Withdrew an earlier flag against Lesson-Parallel-File-Drift on full re-read: the page accurately describes the
CLAUDE.md.templatevsclaude-md-snippet.mdpair (instantiate.shpath vssetup.sh --seed-memorypath). No edit needed there. - Verification debts noted in Wiki-Corrections-Log but not resolved this round: Applied-Example-Microelectronics-Tutor-Demo status staleness (page predates the 2026-05-19 talk; today is 2026-05-31); the permission-model claims in Limitation-Prompt-Injection-Residual; the existence of
chrissweet/llm-wiki-tutor-templatecited by Governance. - Convention note: this lint entry is filed retroactively. The Verification Gate criterion "log entry appended" was missed in the 8601db0 commit cycle; the convention requires one commit per log entry, so this entry is its own commit and references the prior content commit by SHA.
- by: Chris Sweet via claude-code
- Filed Test-Harness in the Mechanisms category to document the bash test harness in
chrissweet/llm-wiki-memory-templateadd-test-harness, currently open as PR #10 against templatemain(addresses issue #5). - The page covers: what the harness validates (the structural half of Lesson-Validation-Methodology); architecture (sandbox + per-stage
patch.sh+assertions.sh+run.shdiscovery); the smoke test against real template state; six e2e stages against a simulated derivative with MVP patches applied; 91 total assertions on bash 3.2-compatible code. - Documents the GitHub Actions workflow at
.github/workflows/test-harness.yml: matrix onubuntu-latest+macos-latest(macOS is load-bearing for catching symlink path resolution and bash 3.2 array-init bugs that do not surface on Linux);jqinstalled on Linux only; two-pass run for clean per-category output viaif: always(). - Explains how to extend the harness with a new stage (pick a category, create
tests/<category>/<name>/, write idempotentpatch.shandassertions.shusing theassert/assert_eq/assert_containshelpers; harness auto-discovers by directory; no CI workflow change needed for a new stage). - Calls out parts missing from the MVP feature report: the harness covers stages 2 and 5 plus Agent-Instance assertions in stage 1, all currently slated for deferral in the trimmed MVP; the harness does NOT yet cover Sync-Flow's
ALWAYS_FILEScontract (PR #1 hit exactly this; a smoke-test addition is filed as a follow-up). - Updated Implementation-Status with a new "In review (open PR)" bucket and listed the harness there. Home and Index updated in the Mechanisms section.
- Verification gate: index updated, log entry being appended (this one), cross-references bidirectional (Test-Harness has frontmatter
extends: "[[Lesson-Validation-Methodology]]"and is reachable from Home, index, Implementation-Status, and the See also sections of Lesson-Validation-Methodology-adjacent pages via the wiki graph), frontmatter present and non-untyped.
[2026-05-31] ingest | Multi-Agent-Write-Protocol — collision-free wiki writes for multi-agent setups
- by: Chris Sweet via claude-code
- Filed Multi-Agent-Write-Protocol in the Mechanisms category as a new aspirational design page. The protocol prevents push-level collisions by construction: each agent writes via its own contribution branch, attempts a merge against current
main, and either pushes cleanly or re-plans its writes semantically before retrying. No separate reconciler agent; the writing agent reconciles its own attempts. - Prior-art class: Optimistic Concurrency Control with semantic retry. Roots in Bayou (Xerox PARC, 1995) and the saga pattern's compensating actions. The novel application is the LLM agent as the retry's semantic resolver.
- Key design choices documented: union-merge for index and log files via
.gitattributes(mechanical, not semantic), three-way merge for non-overlapping content (also mechanical), semantic resolution only when the same lines of the same section are touched by both agents. Conflict classification matters because we do not want to invoke expensive LLM reasoning for "we both appended a line to the index." - Failure modes covered: livelock (K=3 retry cap then escalate to human), network faults (standard git retry semantics), stale working branches (re-fetch in step 3), name collisions (treated as full-overlap semantic conflicts).
- Implementation-Status updated: page listed under Aspirational. A deterministic prototype is in progress at
Omniscient_2/scripts/multi-agent-write-protocol-proto/exercising seven scenarios (different pages, different sections, same section, index union, log append, push race, livelock retry). LLM-driven prototype and template reference implementation are deferred until the deterministic prototype validates the mechanics. - Subsumes most of
Future-Contribution-and-ReconciliationinOmniscient_2.wiki: the status-lifecycle approach proposed there was for a single-reconciler-agent model; this protocol distributes reconciliation to each writing agent and removes the need for status fields, curator metadata, and a dedicated reconciler. - Home and Index updated in the Mechanisms section.
- Verification gate: index updated, log entry being appended (this one), cross-references bidirectional (the spec page links to and is linked from Verification-Gate, Sync-Flow, PostToolUse-Hook, Lesson-Hook-Type-Matters, Three-Operations, Knowledge-Graph-Pipeline, and Implementation-Status), frontmatter present with
status: aspirationalandextends: "[[Three-Operations]]".
- by: Chris Sweet via claude-code
- Rewrote Multi-Agent-Write-Protocol to reflect a new design after the per-agent-branch original was found to be insufficiently transparent: agents had to know about working branches, and "push" meant "merge into main" rather than standard
git push. The redesign is push-time-only: agents work directly on localmainlike normal; a thinwiki-pushwrapper handles conflict resolution only when an optimistic push is rejected. Standard git from the outside; LLM-driven semantic resolver in the middle. - The complementary
session_startmechanism kept (the user emphasised it): fetch + fast-forward pull + report incoming commits, with clean deferral (no auto-rebase) on divergence. - Prototype consequences: collapsed
agent_prepare/agent_publish/agent_writeinto a singlewiki_pushentry point plus anagent_session_start. Rewrote 7 existing scenarios for the new shape; added 2 scenarios for SessionStart (08-session-start-auto-pull, 09-session-start-divergent). Integrated with the test harness so all 9 scenarios run as harness assertions under a newintegration/wiki-write-protocol/test. - Test status: 9/9 PASS standalone (
run-all.sh); 99/99 PASS in the full harness (./scripts/test-mvp/run.sh); CI green onubuntu-latestandmacos-latest. The prototype lives onchrissweet/llm-wiki-memory-template:multi-agent-write-protocol-proto, branched off theadd-test-harnessbranch that is the head of upstream PR #10. - Implementation-Status updated to reflect the new design and the prototype's CI-green location. No changes to Home or index (the page name is unchanged).
- by: Chris Sweet via claude-code
- New page Lessons-Learned-From-model_fusion. Filed as a sister to Applied-Example-Microelectronics-Tutor-Demo: a second empirical test of the template from a different domain (NIR + PAD pharma analytics, 43 wiki pages, 24 experiments, ~5 months of active curation in
PaperAnalyticalDeviceND/model_fusion) - Contains a verification table of 12 implementation-gap recommendations against current template HEAD
fc2472a(2026-06-04): 0 fully addressed; 2 partial (#1 SessionStart auto-loads content not just reminder; #9 mechanical reciprocal-edge enforcement); 10 still missing (UserPromptSubmit/Stop hooks, analysis+decision page types, primary_wiki + cross-wiki rules, compounding-ratio metric, lint scheduling, Claude-memory vs wiki boundary, project-typed SCHEMA, CLAUDE.md re-injection, filing footer) - Each recommendation labelled with empirical motivation (specifically: what fell through the cracks in the model_fusion session that the recommendation would have caught)
- Cross-references Lesson-Hook-Type-Matters (all proposed hooks are command-type per this lesson), Lesson-Parallel-File-Drift (drift caveats called out for each multi-file recommendation), Limitation-Inverse-Edges-Missing (recommendation #9 builds on this existing limitation), Verification-Gate and Discipline-Gates (existing mechanisms the recommendations complement rather than replace)
- Includes the "recursive bootstrap problem" finding: cloning the template repo lands contributors without llm-wiki context (no
wiki/<repo>.wiki/,CLAUDE.md.templatenotCLAUDE.md, no hooks installed). Proposed fix: dev-mode bootstrap that clones the template's own GitHub Wiki locally, with gitignore + allowlist exclusion preventing leakage into derived projects - Updates the index Applied-examples section with the new entry
- Provenance section names the three derived projects sampled (
chrissweet/AI_skills,PaperAnalyticalDeviceND/annotated_chemopad,PaperAnalyticalDeviceND/model_fusion) and the methodology section spells out how readers can repeat the empirical verification on their own project's state
[2026-06-12] lint | KG pipeline aspirational → implemented; bidirectional back-references; example cleanup
- by: Chris Sweet via claude-code
- Audit scope: scanned all 28 wiki pages for orphans, dead links, missing frontmatter, untyped pages, index gaps, naming-convention deviations, special-file integrity, and bidirectional asymmetry. Health overall: good. No orphans, no missing frontmatter on content pages, no index gaps, no convention violations.
- Stale-claim correction: PR #14 shipped
scripts/kg/(rdflib + pyshacl, in-process KG pipeline) to templatemainas commit2018186. Nine wiki pages still described the pipeline as aspirational with banners and "(not yet implemented)" parentheticals. Rewrote Knowledge-Graph-Pipeline (removed banner, switchedstatus:toimplemented, corrected architecture from Fuseki to rdflib + pyshacl, added a "Distribution to derived projects" section). Updated Implementation-Status, Wiki-LLM-Pattern, Three-Operations, Typed-Edges-and-Frontmatter, SCHEMA_llm-wiki-memory-template, Limitation-Inverse-Edges-Missing, Sync-Flow, and the index to match. - Honest report:
scripts/kg/is not inALWAYS_FILES; derived projects do not auto-receive it onupdate-from-template.sh. Documented this as a distribution gap on both Knowledge-Graph-Pipeline and Sync-Flow, with the likely path being an opt-in feature underfeatures/kg/(RFC #13 framework). - Example cleanup: Wiki-LLM-Pattern line 23 used the placeholder example
[Markov-Chain-v5c2](Markov-Chain-v5c2)(a finding-naming illustration). Replaced with[Lesson-Hook-Type-Matters](Lesson-Hook-Type-Matters)so the example points to a real wiki page. - Bidirectional fixes: ~70 asymmetric A→B pairs found; the high-value ~15 concept ↔ lesson/limitation pairs were patched. Index/log roll-ups (Implementation-Status, Wiki-Corrections-Log) intentionally left one-way. See Wiki-Corrections-Log entry for the full list.
- Carry-forward debts (still open from 2026-05-31): Applied-Example-Microelectronics-Tutor-Demo staleness; Limitation-Prompt-Injection-Residual permission-model claims; Governance citation of
chrissweet/llm-wiki-tutor-template. - Verification gate: index updated (KG row description rephrased), log entry being appended (this one), cross-references bidirectional for the patched subset, frontmatter present and non-
untypedon every page.
- by: Chris Sweet via claude-code
- User-requested review of Lessons-Learned-From-model_fusion. Page declared verification against
fc2472a(2026-06-04);fc2472adoes not resolve incrcresearch/llm-wiki-memory-template(likely fork-local). Refreshed against actual HEAD88f4624(2026-06-12, "instantiate.sh: add --dev-self flag (#25)"). Three commits between snapshot and HEAD touch the field report: PR #14 (KG pipeline shipped), PR #16 (Edge-Types vocabulary), PR #25 (--dev-self). - Page updates: headline tally refreshed (0 / 3 / 9 + recursive-bootstrap RESOLVED); table row 9 refined (inverse vocabulary shipped in
wiki/Edge-Types.md.templatebut not wired intoinit-wiki.shpage-type list, PostToolUse does not enforce); body #9(a) rewritten to reference the shipped vocabulary and the shipped KG pipeline rather than designed-but-pending; "The recursive bootstrap problem" section flipped to "RESOLVED in PR #25" with the--dev-selfbehavior enumerated; Provenance section path corrected (/TCF/→/CRS_research/, the only real checkout) and the unresolvable SHA flagged. - Bidirectional back-references added on 5 of 10 unreciprocated
related:entries: Applied-Example-Microelectronics-Tutor-Demo (sister page), Lesson-Hook-Type-Matters, Lesson-Parallel-File-Drift, Lesson-Validation-Methodology, Limitation-Inverse-Edges-Missing. Other 5 (Verification-Gate, Discipline-Gates, Three-Operations, PostToolUse-Hook, Implementation-Status) intentionally one-way per the morning's heavy-roll-up rule. - Wiki-Corrections-Log appended with the second-pass entry under today's date.
- Verification gate: index unchanged (page already listed), log entry being appended (this one), bidirectional links patched for the high-value subset, frontmatter unchanged and non-
untyped.
[2026-06-12] ingest | Analysis-of-model_fusion-Recommendations — assessment of the 12 recommendations
- by: Chris Sweet via claude-code
- New page Analysis-of-model_fusion-Recommendations filed in response to the user's question "do you agree with the assessment, and what parts would bring the greatest value?" after the same-day refresh of Lessons-Learned-From-model_fusion.
- Verdict: largely agree with the field report's diagnostic frame. Endorses the high-value cluster (#1 SessionStart auto-load, #4 analysis/decision page types, #8 Claude-memory vs wiki boundary, #9(b) reciprocal-edge enforcement). Pushes back on #10 (project-typed SCHEMA risks variant proliferation per Governance), #6 (compounding ratio belongs in lint over the KG, not a hook), #11 (CLAUDE.md re-injection overlaps with auto-compact), and #2 (UserPromptSubmit synthesis hook has false-positive risk).
-
Dogfood note. Filed with
type: analysis, which is not in the SCHEMA's declared type list. This is the point: recommendation #4 in the field report argues for addinganalysisanddecisiontypes precisely because pages like this have nowhere clean to land. The page is empirical evidence for the recommendation it endorses. SCHEMA violation acknowledged in the page body. When #4 ships, the violation closes itself. - Index updated under Applied examples (immediately after the field report entry). Field report's See-also section gains a back-reference to this analysis.
- Verification gate: index updated, log entry being appended (this one), bidirectional links (Lessons-Learned-From-model_fusion ↔ Analysis-of-model_fusion-Recommendations) in place, frontmatter present (the violation is the type, not the structure).
- by: Chris Sweet via claude-code
- Lint pass after PR #32 opened (Home category-nav convention). Health overall: very clean — no orphans, no dead links, no missing frontmatter, no index gaps. Two drifts found on Home_llm-wiki-memory-template, both from earlier-today ingests/lint that didn't update Home.
- Stale claim: Home line 29 said Knowledge-Graph-Pipeline is "designed, not yet implemented" — the morning's KG aspirational → implemented correction (commit
6cd8197) updated 9 pages but missed Home. Refreshed to match the form on Index ("PR #14:scripts/kg/, rdflib + pyshacl in-process; SPARQL over wiki frontmatter, optional Fuseki"). - Missing entries: Lessons-Learned-From-model_fusion and Analysis-of-model_fusion-Recommendations were both filed earlier today and added to Index's Applied examples; Home was not. Both qualify as representative-link material per PR #32's category-level rule. Added under Applied examples on Home with one-line descriptions matching Index.
- Dogfood: this is the first lint pass under PR #32's convention (even though #32 itself has not yet merged). The fix-pattern — Home updated alongside Index when significant category-level changes land — is exactly what the new Verification Gate criterion will enforce mechanically once #32 lands.
- Carry-forward debts unchanged: tutor-demo staleness, prompt-injection page's permission claims, Governance's tutor-template citation.
- Verification gate: index unchanged (entries already present, this is a Home sync), log entry being appended (this one), Wiki-Corrections-Log entry added under today's date.
[2026-06-12] ingest | Analysis-of-Wiki-Push-Race-Pattern — empirical motivation for wiring Multi-Agent-Write-Protocol
- by: Chris Sweet via claude-code
- New page Analysis-of-Wiki-Push-Race-Pattern filed in response to a 2026-06-12 production collision in
wiki/web_forager.wiki/. Theweb_foragerderived project has 3-4 human+agent teams writing concurrently; Csweet1's push was rejected after Omegaice advanced remote by 20 commits in the interim; recovery required ~3 minutes of manual rebase (conflict onlog_web_forager.mdfrom same-date entries). - Verdict: the Multi-Agent-Write-Protocol prototype at
scripts/multi-agent-write-protocol-proto/(shipped PR #11, 9/9 CI scenarios green) handles exactly this collision shape automatically viawiki_push's mechanical union-merge forlog_*files. Currently nothing in the agent overlay sourcesprotocol.sh; the only callers are the 9 CI scenarios. The proto is implemented but not wired. - Reclassification: Multi-Agent-Write-Protocol's banner rewritten from "design + prototype only" to "design + prototype shipped, production wiring is the gap." Implementation-Status's row updated to name the wiring as the specific gap, not the design.
- Second
type: analysispage filed (after Analysis-of-model_fusion-Recommendations); both acknowledge the SCHEMA violation PR #29 will close. - Cross-references: Multi-Agent-Write-Protocol gains See-also entry to this page; Analysis-of-model_fusion-Recommendations and Lesson-Validation-Methodology gain back-refs as sister/related pages.
- Index updated under Applied examples (immediately after Analysis-of-model_fusion-Recommendations). Home updated per PR #32's category-level rule: the page is significant enough to merit a Home representative-link slot.
- Memory side: saved
project-web-forager-wiki-multi-writerandfeedback-wiki-write-default-multi-writerto personal Claude memory (per-user, not wiki pages) so future sessions default to "multi-writer matters now" for any llm-wiki-template-derived wiki. - Follow-up: PR6 (deferred to a separate planning round) will wire
agent_session_startandwiki_pushinto the agent overlay's actual write path, rename the proto directory, and add the pre-push hook. - Verification gate: index updated, log entry being appended (this one), Wiki-Corrections-Log entry added, bidirectional links in place, frontmatter present (type: analysis acknowledged as PR #29 dogfood).
- by: Chris Sweet via claude-code
- Reconciliation pass after the model_fusion-cluster PRs (#28-#32) merged on 2026-06-12 and PR6 (#33, wiki-write-protocol rename) opened with CI green on 2026-06-13. Several classifications in Implementation-Status, Multi-Agent-Write-Protocol, and Limitation-Inverse-Edges-Missing were still in their pre-merge form. Brought them to current state.
- Implementation-Status: five new Implemented rows for PRs #28-#32 (Memory boundary, analysis+decision page types, SessionStart auto-load, inverse-edge vocabulary, Home category-nav). Each names the specific files that landed and the Analysis-of-model_fusion-Recommendations recommendation it closes. The Aspirational Multi-Agent-Write-Protocol row split into three: production wiring (PR7, planned), inverse-edge upstream SHACL spec (deferred), inverse-edge PostToolUse write-time check (deferred). New In-review row for PR #33.
- Multi-Agent-Write-Protocol banner: appended a 2026-06-13 line citing PR #33 and the PR6/PR7 housekeeping-then-wiring split.
-
Limitation-Inverse-Edges-Missing: substantively rewritten. Title now "(Partially Closed)". Proposed-fix table updated from the original snake-case proposal (
extended-by:) to the camelCase form that actually shipped (extendedBy) and matchesEdge-Types.md.template. New "What remains" section names the upstream SHACL gap and the optional PostToolUse check. - Wiki-Corrections-Log: receipt entry appended for today's reconciliation.
- Three carry-forward debts unchanged: tutor-demo staleness, prompt-injection page's permission claims, Governance's tutor-template citation.
- Verification gate: index unchanged (no new pages), log entry being appended (this one), Wiki-Corrections-Log entry added under 2026-06-13, bidirectional links unchanged (the rewrite affects existing pages, no new outbound edges), frontmatter unchanged.
[2026-06-13] ingest | Lesson-Template-Contribution-Discipline — promote local lessons to wiki memory
- by: Chris Sweet via claude-code
- New page Lesson-Template-Contribution-Discipline filed in response to user observation: lessons learned during template development should live in wiki memory rather than per-user local Claude memory, so they travel with the repo on a fresh clone (via
--dev-selfper PR #25) instead of evaporating with the local checkout. - Captures four rationalizations and their empirical incidents: (1) defaulting to single-writer when web_forager proved multi-writer empirically; (2) introducing speculative "Option C" integrations the user did not propose (MCP overreach in PR7's first draft); (3) hardcoding speculative PR numbers in code comments (PR #28's stale
#26references that Priscila cleaned up ine48f7d4); (4) adding structural assertions that lock historical state rather than catching behaviour regressions (PR6's three rename-locking assertions). - Style matches existing Lesson-* pages: synthesis type, empirical-motivation framing, each pattern has a named PR/incident citation. Cross-references Discipline-Gates (sister concept at the wiki-write layer rather than the contribution layer), Lesson-Parallel-File-Drift, Lesson-Validation-Methodology, Analysis-of-Wiki-Push-Race-Pattern, Multi-Agent-Write-Protocol.
- Discipline-Gates See-also gains a back-reference to this new page so readers find both layers.
- Index updated under Lessons learned (immediately after Lesson-Validation-Methodology).
- After this lands, the four corresponding entries in personal Claude memory (
feedback_wiki_write_default_multi_writer.md,feedback_pr_scope_stays_in_discussed_bounds.md,feedback_dont_hardcode_speculative_pr_numbers.md,feedback_test_assertions_test_behavior_not_state.md) can be deleted — the lessons now live where they survive a clean pull. - Verification gate: index updated, log entry being appended (this one), bidirectional links in place (Discipline-Gates ↔ Lesson-Template-Contribution-Discipline), frontmatter present.
- by: Chris Sweet via claude-code
- Two findings from a routine lint after the Lesson-Template-Contribution-Discipline ingest. Health otherwise clean: no orphans, no other dead links, no missing frontmatter, no index gaps.
-
Dead wikilinks (log file): yesterday's log entry for the model_fusion analysis ingest used
[[project-web-forager-wiki-multi-writer]]and[[feedback-wiki-write-default-multi-writer]]syntax to reference personal Claude memory file names. They are not wiki pages; the wikilink syntax was an error that tripped the lint pass. Replaced with backticked plain text plus an explanatory note that these are per-user personal memory, not wiki pages. - Home missing the new Lesson page: Lesson-Template-Contribution-Discipline was filed earlier today and added to Index but not to Home. Per PR #32's category-level rule, a new Lesson page joining an existing category (3 prior Lesson-* pages) warrants a Home representative-link slot. Added under Lessons learned, fourth entry.
- Verification gate: index unchanged (the new page was already added in the prior ingest), log entry being appended (this one), bidirectional links unchanged, frontmatter unchanged.
- by: Chris Sweet via claude-code
- New page Lesson-Gitignore-Anchor-Propagation filed in response to an external bug report (2026-06-18) from a contributor syncing
AI-Sci-Disc-Memup to template HEAD80e2ee6. The template's.gitignoreshipped a dev-self block with leading-slash entries (/CLAUDE.md,/.claude/settings.json,/.claude/hooks/,/wiki/llm-wiki-memory-template.wiki/). Because.gitignoreis in Sync-Flow'sALWAYS_FILES,update-from-template.shcopied it verbatim into every derived repo, where the anchors then matched the derived project's own paths. - Mostly latent (tracked files are unaffected by
.gitignore), but bites three cases: projects that legitimately track.claude/hooks/, paths untracked at the moment of sync, and the general confusion ofgit check-ignore CLAUDE.mdreporting "ignored" with no obvious cause. Block also silently re-introduced itself on every futureupdate-from-template.shrun. - Fix PR #39: moved the dev-self entries out of the tracked
.gitignoreinto.git/info/exclude, written idempotently byscripts/instantiate.sh --dev-selfwith BEGIN/END markers. Derived repos auto-heal on the next sync (new template.gitignoreno longer has the block, hash differs, script overwrites local copy). - Root cause classified as "scope-sensitive content shipped through a scope-preserving channel" — cousin of Lesson-Parallel-File-Drift (same content in two files) but distinct (same file in two scopes). Page draws the contrast explicitly and proposes a pattern-recognition question for future PRs: does the path I am ignoring exist in every clone? If no, the entry does not belong in the tracked file.
- Cross-references added bidirectionally: See-also entries on Sync-Flow, Lesson-Parallel-File-Drift, and Lesson-Template-Contribution-Discipline. Frontmatter uses
criticizes: "[[Sync-Flow]]"(the contract that made the leak real) andrelated: "[[Lesson-Parallel-File-Drift]]"(the sister footgun). - Home and Index updated under "Lessons learned" — fifth Lesson-* page, joins an existing category that already has Home representation per PR #32's category-level rule.
- Verification gate: index updated, log entry being appended (this one), bidirectional links in place across four pages, frontmatter present and non-
untyped, no numerical claims to scope, honest reporting (the bug report's three "bite cases" are reproduced verbatim rather than softened).
[2026-06-24] ingest | Adopt-Existing-Repo-Design — synthesized design for additive overlay on existing repos
- by: Priscila Saboia Moreira via claude-code
- New page Adopt-Existing-Repo-Design filed to consolidate the design conversation under issue #6 (
adopt.sh: let an existing repository adopt llm-wiki-memory). Synthesises three contributions: the original issue body (separate script, non-destructive guarantees, distribution asgit clone && ./adopt.sh), and two comments from @hegu-1 on 2026-06-16 and 2026-06-17 that reframed the safety contract. - Load-bearing reframe from hegu-1: never-touch should be computed, not enumerated. Invert the model: maintain an allowlist of what adopt is allowed to create, and treat every pre-existing file as host-owned by default. The host writes a grants file (
.llm-wiki-adopt-grants.yml) declaring which existing files adopt may touch and under what discipline (managed-block,append-only,merge); adopt reads it but never writes it, because the tool requesting permission cannot mint the permission. - Captured concretely in three lists (ADD allowlist owned by the template; TOUCH grants owned by the host; NEVER-TOUCH computed as
existing − grants − additions), a worked dry-run report format that classifies every affected path so the refusals are legible, and a reusability table showing most of the machinery already exists from the bash-lib refactor (lw_inject_block,lw_name_from_origin,lw_install_feature,init-wiki.shcreate-mode, the overlaysetup.sh). New surface is principally the orchestrator, a YAML grants reader, the adoption-log writer, and two small helpers (lw_copy_if_absent, ajqdeep-merge inscripts/lib/json.sh). - Two-layer test approach proposed: a controlled hermetic fixture at
scripts/test/tests/integration/adopt-shape/exercising every TOUCH/REFUSE class, plus a real-repo--dry-runagainst a public repository that has not yet adopted. Names crcresearch/FUNSD as a concrete candidate for the second layer (Python + DVC, defaults tomain, has its ownscripts/and LICENSE, no wiki).markov_embeddings_and_ragis positioned as a separate kind of test: a repo that adopted manually, useful for catching divergence between the manual adoption practice and the automated one. - Three open questions surfaced and left unresolved: the ergonomics of granting CLAUDE.md (default template vs. require hand-authored grants file), forward compatibility of
.llm-wiki-adopt-grants.ymlwhen new TOUCH categories appear (REFUSE-unknown is the safer default), and the cheap path tounadopt.shthat the managed-block discipline opens up. - Cross-references in frontmatter:
derived_fromMulti-Agent-Write-Protocol, Agent-Overlays, Implementation-Status;relatedKnowledge-Graph-Pipeline. Filed under index "Mechanisms" alongside other in-design pages. - Verification gate: index updated, log entry being appended (this one), frontmatter present and non-
untyped, honest scoping (everything design-stage is labelled as such; no claim that any line ofadopt.shexists yet), no numerical claims to fact-check.
[2026-06-25] lint | Correct test-case framing on Adopt-Existing-Repo-Design (markov_embeddings_and_rag is the prototype, not a manual adoption)
- by: Priscila Saboia Moreira via claude-code
- One-paragraph correction to the "Test approach" section of Adopt-Existing-Repo-Design. Original text said
markov_embeddings_and_ragwas "a repo that has adopted the pattern manually", which misrepresents the history:markov_embeddings_and_ragis the prototype where the llm-wiki-memory pattern was originally explored, and the template was extracted from it and then evolved separately. They share an idea ancestor, not a sync relationship. - Found while running the first build of
scripts/adopt.sh(stub, ADD-only classification) againstmarkov_embeddings_and_ragas a dry-run test target. The stub reported one REFUSE (wiki/init-wiki.sh, host-modified) and one SKIP (llm-wiki.md, byte-identical). My first interpretation of the REFUSE ("local customisation, or template evolved past the host") missed the actual cause: parallel evolution from a common ancestor, with the template'sinit-wiki.shabsorbing refinements (F1 fix, shared-lib refactor) that the prototype never received. - Corrected framing: running
adopt.sh --dry-runagainst the prototype surfaces divergence between two parallel evolutions of the same idea, not "the prototype matches the template" — neither is canonical for the other. Useful as a drift-spotting test, distinct from the real "host repo adopting the template" case that needs a third repo. - No other claim on the page depended on the wrong framing, so the correction is scoped to one paragraph; the rest of the design (three lists, grants model, dry-run report, reusability table) stands unchanged.
- Verification gate: corrected paragraph isolated to "Test approach"; index unchanged (page still in design); log entry being appended (this one); honest reporting (the misframing is named, not euphemised); no numerical claims.
[2026-06-25] ingest | Add team-ai-Engineering as fourth test-case category on Adopt-Existing-Repo-Design (derived-and-drifted)
- by: Priscila Saboia Moreira via claude-code
- One-paragraph addition to the "Test approach" section of Adopt-Existing-Repo-Design. Records
team-ai-Engineeringas a fourth distinct test case: a repository that was instantiated from the template, but at a moment before later template-side changes landed (the shared bash-lib refactor in particular). Runningadopt.sh --dry-runagainst it surfaces drift in a derived project, ADD for new template files the derived lacks, REFUSE for files the template rewrote since instantiation. - Empirical finding from the same dry-run session: against
team-ai-Engineering, the stub reported 7 ADDs (the entirescripts/lib/*.shshared lib, which post-dates the instantiation), 6 SKIPs (llm-wiki.md, the agent gates, the feature-flag entry scripts — files unchanged since instantiation), and 3 REFUSEs (wiki/init-wiki.sh,scripts/update-from-template.sh,scripts/check-template-version.sh— all rewired in the bash-lib refactor to consumescripts/lib/rather than open-code their logic). - Insight worth recording:
adopt.sh --dry-rundoubles as a derived-project drift detector. Complementary toupdate-from-template.sh's scoped file sync, which only knows aboutALWAYS_FILES; adopt's classification surfaces template changes regardless of whether they sit in the sync list. - The four cases now documented on the page (virgin via FUNSD; prototype via markov_embeddings_and_rag; derived-and-drifted via team-ai-Engineering; hermetic fixture as Layer 1) cover the realistic surface adopt.sh has to be honest about. Concluding sentence in the test-approach paragraph names this scope explicitly so future readers know it is intentional, not opportunistic.
- Verification gate: addition isolated to "Test approach"; index unchanged; log entry being appended (this one); honest scoping (no claim that team-ai-Engineering will receive an actual update from this dry-run, only that the report exists and is informative); no numerical claims requiring fact-check (counts above come from the dry-run output in the session, reproducible by re-running the stub).
[2026-06-25] ingest | Record deferred follow-up on Adopt-Existing-Repo-Design (manifest consolidation with update-from-template)
- by: Priscila Saboia Moreira via claude-code
- One-bullet addition to the "Open questions" section of Adopt-Existing-Repo-Design. Captures a concern Priscila raised during the TOUCH-grants iteration of
feature/adopt-sh:adopt.sh'sADD_ALLOWLISTandupdate-from-template.sh'sALWAYS_FILESare parallel arrays for the same conceptual surface ("template-owned files"). They already diverge (the update list includeswiki/agents/README.md,wiki/agents/wiki-write-protocol.md, and the wholescripts/wiki-write-protocol/*tree; adopt's stub list does not). Adding a new template file today requires editing both arrays correctly, or one drifts past the other. - Same anti-pattern that PR #42 (James, shared bash lib) consolidated for
instantiate.sh,update-from-template.sh, and the overlaysetup.shscripts. Re-introducing it via adopt.sh would undo that discipline. - Agreed direction (recorded on the page; not yet implemented): single source of truth in
scripts/lib/template-manifest.sh. Two categories:TEMPLATE_SHARED_INFRA(canonical template content;updateoverwrites,adoptADDs without overwrite) andTEMPLATE_HOST_OWNED(host owns content;updateignores,adoptclassifies via grants). Both scripts source the manifest. - Deferred to after
feature/adopt-shmatures so the current PR stays scoped to "ship adopt's own surface" without bundling a refactor of mergedupdate-from-template.shsemantics. Follow-up should be its own issue + PR with explicit review. - Verification gate: addition isolated to "Open questions"; no claim that the consolidation has been built; index unchanged; log entry being appended (this one); honest naming of the divergence already present rather than glossed.
- by: Chris Sweet via claude-code
- New page OKF-Alignment-Ideas (type: analysis, third in the wiki) filed in response to the user's question whether Google's OKF v0.1 spec is useful for this template. Read the actual spec (451 lines), not just the blog post.
- Earlier review of just the blog post had two material errors I corrected on re-reading: (1) OKF DOES define a
log.mdconvention at §7 (newest-first, ISO date headings, bold-prefix prose entries); my first comparison said "no log convention." (2) OKF's untyped edges are a deliberate design choice at §5.3 ("relationship is conveyed by the surrounding prose, not by the link itself"), not an omission. Both corrections are surfaced in the analysis page so future sessions don't repeat the blog-only mistake. - Empirical GitHub Wiki link-rendering test (commits
7c79ef2push +3b9b603revert): pushed a temporaryOKF-Link-Test.mdwith five link forms and a non-namespacedlog.md, scraped rendered HTML via curl, removed both. Results: only[[wikilink]]form gets GitHub Wiki'sclass="internal present"existence-check marker; OKF's recommended[name](/path/file.md)form is inherently broken (leading slash routes to github.com root not /wiki/,.mdsuffix routes to raw.githubusercontent.com not rendered HTML);log.mdrenders correctly at/wiki/logso the namespacing was never a GitHub Wiki requirement (the user confirmed it was for Obsidian-vault aggregation). - Analysis covers three vectors: (1) frontmatter additions
description,resource,okf_version: "0.1"are free wins; (2) reserved filenames have three options of which "drop namespacing + move Obsidian aggregation from flat-vault to subdirectory-per-wiki" is recommended; (3) cross-link syntax options of which "migrate body links to[[wikilinks]]" is recommended (works in both GitHub Wiki AND Obsidian, gets ~80% of OKF compatibility without a transform). Defers: OKF export script unless external exchange becomes a real ask; upstream typed-edge proposal unless OKF gets adoption traction. Rejects: flipping log direction; dropping verification gate / write protocol / KG; abandoning GitHub Wiki. - Cross-references added bidirectionally (5 back-refs): See-also entries on Typed-Edges-and-Frontmatter, Wiki-LLM-Pattern, Sync-Flow, Knowledge-Graph-Pipeline, Lesson-Parallel-File-Drift. Filing meta-note: the page is
type: analysisper the post-PR #28 page-type vocabulary; no back-ref on SCHEMA itself since SCHEMA is the meta-target the analysis proposes amending, not a peer. - Home and Index updated under Applied examples (the conventional landing for
type: analysispages in this wiki, alongside the two prior analysis pages). - Open follow-ups noted on the page: confirm Obsidian-vault migration acceptability with user; test GitHub Wiki
[[Page-Name|Display]]piped form; inventory cross-links before any syntax migration; choose where the OKF compatibility statement lives (SCHEMA subsection vs llm-wiki.md vs dedicatedOKF-Compatibility.md). - Verification gate: index updated, log entry being appended (this one), bidirectional links in place across five target pages, frontmatter present and non-
untyped(analysis type withderived_from:field per the post-PR #28 convention), no numerical claims to scope (all citations of file counts and percentages are qualitative), honest reporting (the two blog-only errors are named as my errors rather than softened).
- by: Chris Sweet via claude-code
- Extended OKF-Alignment-Ideas with a fourth vector covering the import direction (external OKF bundle → our wiki) after the user flagged that Priscila's in-progress
scripts/adopt.sh(design at Adopt-Existing-Repo-Design) will support adopting OKF memory bundles as initial wiki content. Earlier draft covered only compatibility (us as producer) and export (us → OKF); the import direction was missing. - Vector 4 names why this strengthens earlier recommendations: reserved-filename alignment (vector 2) becomes load-bearing rather than cosmetic because OKF bundles arrive with
index.md/log.mdat canonical paths; cross-link syntax migration (vector 3) loses its remaining alternative because OKF's[name](/path/file.md)form is empirically broken in GitHub Wiki rendering and[[wikilink]]is the only viable normalisation target; frontmatter superset (vector 1) earns its keep because imported OKF concepts arrive with exactly the six reserved fields the superset adopts. - Sketches a plausible
adopt.sh --seed-from-okf=<bundle-path>flow: validate per OKF §9 conformance, copy into the wiki sub-repo, rewrite body cross-links mechanically, opt-in frontmatter back-fill from cross-link inference withtype: untypedfallback, and a wiki-corrections-log entry documenting the rewrite. Explicitly names what this does NOT justify: coupling source-of-truth to OKF wire format, standing reverse export, or bypassing the adoption manifest. - One new conclusion item ("vector 4 strengthens vectors 2 and 3"). Three new open follow-ups: link-syntax translation target on import (full path vs basename), frontmatter back-fill inference policy (lossy vs conservative), citation reconciliation across OKF's
# Citationsbody section vs oursource:frontmatter edge. - Cross-references added bidirectionally: frontmatter
related:edge from OKF-Alignment-Ideas to Adopt-Existing-Repo-Design, See-also entries on both pages. Addedadopt-shtag to OKF-Alignment-Ideas frontmatter. - Verification gate: index unchanged (no new pages, vector 4 added to existing page), log entry being appended (this one), bidirectional links in place across Adopt-Existing-Repo-Design ↔ OKF-Alignment-Ideas, frontmatter still non-
untyped, no numerical claims to scope, honest reporting (the "vector 4 was missing from the first draft" framing is named as a gap rather than backfilled silently).
- by: Chris Sweet via claude-code
- Extended OKF-Alignment-Ideas with a fifth vector after the user pointed at the
agent-commsfeature (PR #44) and itsscripts/agent-comms/ask.shclone-and-invoke primitive. Vector 5 generalises the federation pattern (discover → clone →claude -p) from "template-derived peers only" to "any cloneable OKF bundle that declares itself viaokf_version: "0.1"in its rootindex.md." - The vector names two small affordances needed: (1) the federation index rebuild Action projects synthetic Cards from OKF bundle root frontmatter (
provenance: "okf"to distinguish fromCard_<repo>.md-authored entries); (2) optional OKF-aware preamble injection inask.shfor query targets that declareokf_version(the LLM has no CLAUDE.md or SCHEMA when cd'd into a pure OKF bundle, only the bundle's own files). - Imports vs queries are now framed explicitly as complementary directions, not alternatives: vector 4 (
adopt.sh --seed-from-okf) is "absorb the bundle's knowledge once and evolve from there"; vector 5 (ask.shagainst an OKF bundle) is "read but don't absorb, cache the clone not the answers." A repo can do both: seed from one OKF bundle and federate against many others. - New conclusion paragraph: vector 5 widens federation reach by a few lines of rebuild-Action code, unlocking query against the entire OKF ecosystem once vector 1's frontmatter superset is in place.
- Two new open follow-ups: federation index projection rules for pure OKF bundles (likely same
nd-llm-wikitopic + trusted-owner allowlist already used for cross-org agent discovery), and the OKF-aware preamble forask.sh. - Added
agent-commsto the page's frontmatter tags. Two new external See-also entries pointing at the agent-comms wiki (Comms-Feature-Design and Agent-Federation-Pattern); cross-wiki refs go via full URL because GitHub Wiki and Obsidian wikilinks don't resolve across wikis. Back-references in the agent-comms wiki are deliberately not added by this update; that's a separate write to a separate repo and warrants explicit ask before reaching across. - Verification gate: index unchanged (no new pages, vector 5 added to existing page), log entry being appended (this one), bidirectional links in place within this wiki, cross-wiki refs documented as one-direction, frontmatter still non-
untyped, no numerical claims to scope, honest reporting (the cross-wiki back-ref gap is named not silently dropped).
- by: Priscila Saboia Moreira via claude-code
- Two changes file what was learned during the Tier-1 fixture pass on
feature/adopt-sh(2026-06-25, branch HEAD57457db). - (1) Added a "Decision: advisory abort when host is already adopted" section to Adopt-Existing-Repo-Design. Records the composite detector (Signal A:
llm-wiki.mdbyte-identical to template; Signal B:wiki/agents/discipline-gates.mdbyte-identical; Signal C:wiki/init-wiki.shpresent), the 2-of-3 threshold and why it sits there (one is too weak; three is too strict, the team-ai-Engineering case has Signal B drifted), the--forceescape hatch, and the empirical classifications observed against the six real repos available locally on 2026-06-25 (FUNSD 0/3 virgin; team-ai-Engineering 3/3 advisory abort; markov_embeddings_and_rag 2/3 advisory abort; pad-analytics-workshop, pad-ml-pipeline, tai_ner 0/3 virgin). All four "already adopted" classifications are correct; the detector protects them from invoking their drifted overlays. - (2) New page Lesson-Bash32-Empty-Array-Hazard. Records the macOS bash 3.2 +
set -ubug where"${arr[@]}"of a never-pushed empty declared array firesunbound variable, the asymmetricTOUCH_MISSINGfixture that surfaced it, thebash -xtrace from Priscila's macOS shell that pinpointed the exact line (scripts/adopt.sh:434), the single-site fix (commit57457db), and the audit of the other fiveset -euo pipefailscripts in the codebase that confirmed every other"${arr[@]}"expansion was already guarded. The lesson also names the meta-point: the bug had been latent in the GRANT WARNINGS block since the start offeature/adopt-sh; only the new fixture's asymmetric-empty grant shape on macOS CI reached the buggy line. - End-to-end verification on macOS bash 3.2.57: virgin host scratch clone,
.llm-wiki-adopt-grants.ymlgranting.claude/settings.json: mergeon an absent target. Post-fix:RC=0, GRANT WARNINGS emitted naming.claude/settings.json, manifest written,.claude/not silently created. The exact failure mode observed pre-fix is gone. - Cross-references in frontmatter: new Lesson page
criticizes:Adopt-Existing-Repo-Design; both linked from index under "Lessons" with one-line hooks. - Verification gate: index updated, log entry being appended (this one); no projection-as-fact (all classifications above came from actual dry-run output on 2026-06-25, all assertions from real test runs); commit
57457dband CI run28204993130are concrete references reproducible bygit show/gh run view; no numerical claim that depends on a hypothetical future run.
[2026-06-25] lint | Expand Adopt-Existing-Repo-Design empirical table from 6 repos to 10 (verified, not projected)
- by: Priscila Saboia Moreira via claude-code
- The empirical-classifications table on Adopt-Existing-Repo-Design's advisory-abort section initially listed six repos. Priscila pushed on the discipline check: had I actually run dry-run against everything I claimed? Audit revealed three gaps.
- (1) FUNSD was listed as 0/3 virgin but never run this session; the line was inherited from the design doc's original test-approach paragraph. Cloned
crcresearch/FUNSDinto scratch, ran dry-run, confirmed 0/3 with 21 ADDs. Now real, not projected. - (2) Three locally-checked-out repos had been skipped:
CSE-60868(0/3 virgin, 21 ADDs),llm-wiki-branch-test(3/3 derived with 7 host-modified REFUSEs, advisory abort), and the template itselfllm-wiki-memory-template(rejected with "target is the template itself" -- explicit self-target guard before the classifier runs). - (3) Rephrased the table to ten rows total, separated virgin/derived/self-target visually, and added a paragraph naming the two real-shell
--applyruns that backed the verified path (Linuxpad-analytics-workshopscratch clone; macOS bash 3.2.57 virgin with the asymmetricTOUCH_MISSINGgrant pattern). The table now states only outcomes observed in real script output, not design-doc projections. - Also tightened the Tier-1 fixture
adopt-apply-touch-missing-target: dropped one inert assertion that became trivially true after two earlier simplifications (single-grant form no longer references CLAUDE.md, so a "GRANT WARNINGS does NOT list CLAUDE.md" check could not be triggered by any mutation). Re-drove three independent mutations on the post-simplification fixture; remaining 7 assertions all discriminate. Committed as7f3f3d6. - Verification gate: every classification cell now references a dry-run output reproducible by re-running
bash scripts/adopt.sh --target=<repo>against the named host; the test-suite refinement is reproducible bybash scripts/test/run.sh adopt-apply-touch-missing-target; no projection-as-fact; log entry being appended (this one).
- by: Chris Sweet via claude-code
- Extended the typed-edges entry in OKF-Alignment-Ideas's "Other deltas" section to add a third posture (c): repackage
Edge-Types.mdas a self-contained "OKF Typed Edges Extension v0.1" that any OKF tool can opt into without OKF v0.1 changes. Mirrors how RDFa, microdata, and Schema.org evolved as layered extensions on top of HTML. - Prior draft had only (a) documented local extension and (b) upstream proposal. Posture (c) names the artifact path: a spec document built on the existing Edge-Types content, the KG pipeline's existing SHACL shapes file as the machine-checkable form, plus a small conformance section covering inverse-edge materialisation. Reframes (b) as a downstream move that follows (c) once the companion spec has receipts, rather than as a parallel option.
- Also strengthened the ontology framing: the entry now names the full vocabulary (forward predicates, inverses from PR #29, page-type vocabulary) and points at
wiki/Edge-Types.md.templateas the de-facto companion spec we just don't currently label as one. - No new cross-references, no new follow-ups, no Home/Index changes; this is an expansion of an existing bullet, not a new section.
- Verification gate: index unchanged, log entry being appended (this one), bidirectional links unchanged, frontmatter unchanged, no numerical claims to scope, honest reporting (posture (c) is named as new thinking, not retroactively framed as obvious).