Skip to content

log_llm wiki memory template

Chris Sweet edited this page Jun 25, 2026 · 38 revisions

Log — llm-wiki-memory-template

Chronological record of wiki activity.

[2026-05-20] create | Wiki initialized

  • 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 than wiki/<repo>.wiki/ to avoid semantic collision with the template's wiki/ scaffolding directory; consequence: Home_<repo> up: "[[WIKI-INDEX]]" is a deliberate dangling reference for this layout
  • Ready for first ingest

[2026-05-20] ingest | Initial knowledge dump of template pattern, mechanisms, lessons, limitations

  • 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; treated criticizes: 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-untyped on every page

[2026-05-23] ingest | Governance — three-tier model for proliferating variants

  • 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-template main after 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.sh does not exist on main. Flagged status: aspirational with 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 in instantiate.sh) as a wiki/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.
  • 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.template vs claude-md-snippet.md pair (instantiate.sh path vs setup.sh --seed-memory path). 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-template cited 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.

[2026-05-31] ingest | Test Harness — structural CI for template changes (PR #10)

  • by: Chris Sweet via claude-code
  • Filed Test-Harness in the Mechanisms category to document the bash test harness in chrissweet/llm-wiki-memory-template add-test-harness, currently open as PR #10 against template main (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.sh discovery); 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 on ubuntu-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); jq installed on Linux only; two-pass run for clean per-category output via if: always().
  • Explains how to extend the harness with a new stage (pick a category, create tests/<category>/<name>/, write idempotent patch.sh and assertions.sh using the assert / assert_eq / assert_contains helpers; 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_FILES contract (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-Reconciliation in Omniscient_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: aspirational and extends: "[[Three-Operations]]".

[2026-06-01] lint | Multi-Agent-Write-Protocol redesign: push-time-only + SessionStart

  • 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 local main like normal; a thin wiki-push wrapper 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_start mechanism 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_write into a single wiki_push entry point plus an agent_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 new integration/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 on ubuntu-latest and macos-latest. The prototype lives on chrissweet/llm-wiki-memory-template:multi-agent-write-protocol-proto, branched off the add-test-harness branch 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).

[2026-06-12] ingest | Lessons-Learned-From-model_fusion — field report + verification table

  • 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.template not CLAUDE.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 template main as commit 2018186. Nine wiki pages still described the pipeline as aspirational with banners and "(not yet implemented)" parentheticals. Rewrote Knowledge-Graph-Pipeline (removed banner, switched status: to implemented, 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 in ALWAYS_FILES; derived projects do not auto-receive it on update-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 under features/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-untyped on every page.

[2026-06-12] lint | refresh Lessons-Learned-From-model_fusion to HEAD 88f4624 + bidirectional fixes

  • by: Chris Sweet via claude-code
  • User-requested review of Lessons-Learned-From-model_fusion. Page declared verification against fc2472a (2026-06-04); fc2472a does not resolve in crcresearch/llm-wiki-memory-template (likely fork-local). Refreshed against actual HEAD 88f4624 (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.template but not wired into init-wiki.sh page-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-self behavior 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 adding analysis and decision types 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).

[2026-06-12] lint | Home sync — add model_fusion pages, refresh KG status

  • 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/. The web_forager derived 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 on log_web_forager.md from 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 via wiki_push's mechanical union-merge for log_* files. Currently nothing in the agent overlay sources protocol.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: analysis page 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-writer and feedback-wiki-write-default-multi-writer to 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_start and wiki_push into 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).

[2026-06-13] lint | Reconcile classifications after cluster + PR6 land

  • 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 matches Edge-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-self per 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 #26 references that Priscila cleaned up in e48f7d4); (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.

[2026-06-13] lint | Fix dead wikilinks to personal-memory paths + sync Home with new Lesson page

  • 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.

[2026-06-18] ingest | Lesson-Gitignore-Anchor-Propagation — .gitignore anchors travel with the file

  • 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-Mem up to template HEAD 80e2ee6. The template's .gitignore shipped a dev-self block with leading-slash entries (/CLAUDE.md, /.claude/settings.json, /.claude/hooks/, /wiki/llm-wiki-memory-template.wiki/). Because .gitignore is in Sync-Flow's ALWAYS_FILES, update-from-template.sh copied 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 of git check-ignore CLAUDE.md reporting "ignored" with no obvious cause. Block also silently re-introduced itself on every future update-from-template.sh run.
  • Fix PR #39: moved the dev-self entries out of the tracked .gitignore into .git/info/exclude, written idempotently by scripts/instantiate.sh --dev-self with BEGIN/END markers. Derived repos auto-heal on the next sync (new template .gitignore no 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) and related: "[[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 as git 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.sh create-mode, the overlay setup.sh). New surface is principally the orchestrator, a YAML grants reader, the adoption-log writer, and two small helpers (lw_copy_if_absent, a jq deep-merge in scripts/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-run against a public repository that has not yet adopted. Names crcresearch/FUNSD as a concrete candidate for the second layer (Python + DVC, defaults to main, has its own scripts/ and LICENSE, no wiki). markov_embeddings_and_rag is 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.yml when new TOUCH categories appear (REFUSE-unknown is the safer default), and the cheap path to unadopt.sh that the managed-block discipline opens up.
  • Cross-references in frontmatter: derived_from Multi-Agent-Write-Protocol, Agent-Overlays, Implementation-Status; related Knowledge-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 of adopt.sh exists 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_rag was "a repo that has adopted the pattern manually", which misrepresents the history: markov_embeddings_and_rag is 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) against markov_embeddings_and_rag as 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's init-wiki.sh absorbing refinements (F1 fix, shared-lib refactor) that the prototype never received.
  • Corrected framing: running adopt.sh --dry-run against 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-Engineering as 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). Running adopt.sh --dry-run against 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 entire scripts/lib/*.sh shared 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 consume scripts/lib/ rather than open-code their logic).
  • Insight worth recording: adopt.sh --dry-run doubles as a derived-project drift detector. Complementary to update-from-template.sh's scoped file sync, which only knows about ALWAYS_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's ADD_ALLOWLIST and update-from-template.sh's ALWAYS_FILES are parallel arrays for the same conceptual surface ("template-owned files"). They already diverge (the update list includes wiki/agents/README.md, wiki/agents/wiki-write-protocol.md, and the whole scripts/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 overlay setup.sh scripts. 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; update overwrites, adopt ADDs without overwrite) and TEMPLATE_HOST_OWNED (host owns content; update ignores, adopt classifies via grants). Both scripts source the manifest.
  • Deferred to after feature/adopt-sh matures so the current PR stays scoped to "ship adopt's own surface" without bundling a refactor of merged update-from-template.sh semantics. 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.

[2026-06-25] ingest | OKF-Alignment-Ideas — working analysis of Google's Open Knowledge Format v0.1

  • 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.md convention 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 7c79ef2 push + 3b9b603 revert): pushed a temporary OKF-Link-Test.md with five link forms and a non-namespaced log.md, scraped rendered HTML via curl, removed both. Results: only [[wikilink]] form gets GitHub Wiki's class="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/, .md suffix routes to raw.githubusercontent.com not rendered HTML); log.md renders correctly at /wiki/log so 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: analysis per 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: analysis pages 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 dedicated OKF-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 with derived_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).

Clone this wiki locally