Extend drift check to mech_shared.yaml; retire schema-pin - #247
Merged
Conversation
Add directed `downstream` causal edges to the four existing ecological_interactions of CommunityMech:000268, from the Edison causal-graph run (PaperQA3; PMID:25814583 Byrne et al. 2015 Science, + doi:10.1126/science.aaa4834). Wiring — the reversible magnetite "battery" loop: - Phototrophic Magnetite Fe(II) Oxidation -> Anaerobic Magnetite Fe(III) Reduction (TIE-1 photo-oxidation of Fe(II) supplies the Fe(III) acceptor G. sulfurreducens reduces). - Anaerobic Magnetite Fe(III) Reduction -> Phototrophic Magnetite Fe(II) Oxidation (Geobacter regenerates the Fe(II) donor for TIE-1; reversible in co-cultures) — closing the 2<->3 redox loop. - Phototrophic ... Oxidation, Anaerobic ... Reduction, and Magnetite-Mediated Electron Sharing all -> Biogeochemical Battery Function (the two half-reactions + electron sharing constitute the emergent, reusable mineral electron store). InteractionDownstream carries target + causal description only; evidence stays on the parent nodes (existing PMID:25814583 snippets). Schema validates; no new snippets or terms. Record HTML page regenerated. First causal record curated via a normal `just research-community-causal` run after the .env-precedence fix (#245) — no `env -u` workaround. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fold the shared LinkML module mech_shared.yaml into the shared-reference drift check and retire its self-referential sha256 pin (same fix as the id-label set): - check_vendored_sync.sh: add a path-mapped entry for src/*/schema/mech_shared.yaml (local glob -> hub src/culturemech/schema/...). Now diffs 6 files against CultureBotAI/CultureMech@<.vendored_canon_ref>; pinned ref already carries it, no ref bump. Verified 6-file OK. - Retire verify-/refresh-schema-pin + SHARED_SCHEMA_MODULE; delete src/communitymech/schema/.mech_shared.sha256. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR updates CommunityMech’s “hub-and-spoke” vendoring guardrails by extending the drift check to include mech_shared.yaml and removing the now-redundant self-referential sha256 pin mechanism.
Changes:
- Extend
scripts/check_vendored_sync.shto diffsrc/*/schema/mech_shared.yamlagainst the hub’ssrc/culturemech/schema/mech_shared.yaml, and report a total checked-file count. - Retire the
verify-schema-pin/refresh-schema-pinjust targets and deletesrc/communitymech/schema/.mech_shared.sha256. - Add “downstream effects” edges to one community record and update the rendered HTML page accordingly.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
scripts/check_vendored_sync.sh |
Adds path-mapped vendored-file drift checks for mech_shared.yaml and improves reporting. |
src/communitymech/schema/.mech_shared.sha256 |
Removes the self-generated sha256 pin file. |
justfile |
Removes schema-pin recipes and documents the new drift-check coverage. |
kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml |
Adds downstream: causal links for several ecological interactions. |
docs/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.html |
Updates rendered docs to reflect the new downstream interaction flows. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+59
to
+70
| glob="${entry%%|*}"; hubf="${entry#*|}" | ||
| local="" | ||
| for cand in $glob; do [ -f "$cand" ] && local="$cand" && break; done | ||
| if [ -z "$local" ]; then echo "MISSING: no local file matching $glob"; fail=1; continue; fi | ||
| url="https://github.com/ghraw/${CANON_REPO}/${REF}/${hubf}" | ||
| if ! curl -fsSL "$url" -o "$tmp"; then | ||
| echo "ERROR: could not fetch $hubf from ${CANON_REPO}@${REF:0:8} ($url)"; fail=1; continue | ||
| fi | ||
| if ! cmp -s "$tmp" "$local"; then | ||
| echo "DRIFT: $local differs from ${CANON_REPO}@${REF:0:8}:$hubf"; fail=1 | ||
| fi | ||
| checked=$((checked + 1)) |
Comment on lines
+146
to
+150
| downstream: | ||
| - target: Biogeochemical Battery Function | ||
| description: > | ||
| Magnetite-mediated electron sharing between the phototrophic Fe(II) | ||
| oxidizer and the anaerobic Fe(III) reducer manifests as the emergent, |
realmarcin
added a commit
that referenced
this pull request
Jul 31, 2026
…rcer gap (#278) (#279) Three additions to §3, all re-verified against the four repos and the claw issue tracker on 2026-07-30 before being written down. **Records the settled architecture, because the alternative was tried and reverted.** claw PR #21 moved the id-label canonical source into culturebotai-claw on 2026-07-22 and was reverted by claw PR #22 on 2026-07-25 as off-model for claw-as-mirror. The settled design (claw #19, restated in #22) is that CultureMech is the hub and claw/shared/idlabel is a passive mirror, with both directions covered — spokes against hub via CultureMech's audit_vendored_fleet.sh, and mirror against hub via claw's matches-hub job, which claw PR #24 put on a nightly schedule (closing claw #23; until then it fired only on claw-side changes and so could never notice the hub moving). CommunityMech never carried the reverted scheme — CANON_REPO here is CultureBotAI/CultureMech and .vendored_canon_ref is 6be694f3, matching MIM and TraitMech — so this paragraph guards against re-proposing it rather than correcting anything. **Closes out the check_vendored_sync.sh drift** TraitMech's backlog had flagged against CommunityMech specifically: the three spokes now carry byte-identical copies (sha256 f05b5ad6…) against the same pin, converged by TraitMech #182 alongside CommunityMech #247 and MIM #157. **Records the gap that surfaced while checking it, filed as #278.** Neither guard covers check_vendored_sync.sh or .vendored_canon_ref themselves. The script doing the checking exists only in the three spokes and never in the hub, so there is no canonical copy to diff it against — a one-copy edit to the checker would go unnoticed by exactly the mechanism designed to catch one-copy edits. Verified: all three spokes at f05b5ad6…, CultureMech has no such file, and audit_vendored_fleet.sh correspondingly lives only in the hub. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Folds
mech_shared.yamlinto the shared-reference drift check and retires its self-referential sha256 pin — same fix applied to the id-label set.check_vendored_sync.sh: path-mapped entry sosrc/*/schema/mech_shared.yamlis diffed against the hub'ssrc/culturemech/schema/mech_shared.yaml. Now 6 files; no.vendored_canon_refbump (the pinned ref already carries it). VerifiedOK: all 6 vendored files match ...@6be694f3.verify-/refresh-schema-pin+SHARED_SCHEMA_MODULE; delete.mech_shared.sha256.Companion PRs: CultureMech #112, MIM #157, TraitMech.
🤖 Generated with Claude Code