"complementary yet partially redundant contributions mapped members, metabolite pools, plant outcomes and rendered community performance resilient to single-member loss"
@@ -746,9 +730,8 @@
-
The complete Bacillus-dominated SynCom recovers both plant-growth metabolites and antimicrobial chemistries, giving a combined greenhouse phenotype of rice growth promotion plus Rhizoctonia solani sheath-blight suppression.
-
+
The complete SynCom concurrently promoted rice growth and suppressed sheath blight under the tested greenhouse conditions. Its culture metabolome contained both growth- and antimicrobial-associated features. These observations do not establish colonization facilitation, field efficacy, or an equivalent benefit from adding duckweed itself.
@@ -898,6 +878,45 @@
Evidence
+
+ Knowledge gaps & discussions (1)
+
+
+
+ KNOWLEDGE_GAP
+ OPEN
+ Which metabolic contributions causally explain the greenhouse plant benefits?
+
+
The complete primary main text supports dropout-dependent functional contributions and positive greenhouse outcomes, but not genetic necessity or in-plant chemical confirmation. Individual strain abundances during coculture were not measured; contribution scores are not abundance data. The source also conflicts about unique versus shared auxin production and about duckweed-comparison disease effects versus unmeasured agronomic outcomes. Do not resolve these by selecting a favorable sentence. No ecological mutualism, resource competition or colonization-facilitation type is assigned merely from benefit to rice. The unqualified 2,3-butanediol feature does not establish a specific stereoisomer. Canonical input taxonomy is preserved, but its four role placeholders do not resolve eight strain identities; issue1759 tracks non-graph corrections. No field efficacy or general safety is certified.
+
+
Attaches to: ecological_interactions#Division-of-Labor Growth Promotion, ecological_interactions#Antimicrobial Biocontrol of Sheath Blight, ecological_interactions#Concurrent Rice Growth Promotion and Sheath Blight Suppression
+
+
+
+
+ 1 evidence item(s)
+
+
+
+
this study is limited to greenhouse conditions and does not yet establish genetic necessity for the proposed metabolite-to-phenotype links.
+
Explicit primary limitation separates plant efficacy from the proposed chemical mechanisms.
+
+
+
+
+
+
+
+
@@ -1102,7 +1121,7 @@
Evidence
(function() {
var intId = "interaction:0";
- var intType = "MUTUALISM";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1110,8 +1129,6 @@
Evidence
metabolites.push("acetoin");
- metabolites.push("2,3-butanediol");
-
var processes = [];
@@ -1138,7 +1155,7 @@
Evidence
(function() {
var intId = "interaction:1";
- var intType = "COMPETITION";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1170,7 +1187,7 @@
Evidence
(function() {
var intId = "interaction:2";
- var intType = "COLONIZATION_FACILITATION";
+ var intType = "UNKNOWN";
var metabolites = [];
diff --git a/history/records/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture/2026-10-07T161709Z-codex-df136a.yaml b/history/records/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture/2026-10-07T161709Z-codex-df136a.yaml
new file mode 100644
index 000000000..c098c082d
--- /dev/null
+++ b/history/records/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture/2026-10-07T161709Z-codex-df136a.yaml
@@ -0,0 +1,27 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml
+ slug: Rhodopseudomonas_Ecoli_CrossFeeding_Coculture
+session:
+ id: 2026-10-07T161709Z-codex-df136a
+ timestamp: '2026-10-07T16:17:09Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1755
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain positive ammonium CROSS_FEEDING and its existing arrow with donor/recipient
+ scope.; Retain positive organic-acid CROSS_FEEDING and its arrow, excluding unsupported
+ ethanol/formate carbon transfer.; Retain reciprocal exchange, distinguishing engineered
+ donor and adapted recipient contexts.
+ details: Source-based self-adversarial review; reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
diff --git a/history/records/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture/2026-10-07T161709Z-codex-e461c4.yaml b/history/records/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture/2026-10-07T161709Z-codex-e461c4.yaml
new file mode 100644
index 000000000..51b2d22e0
--- /dev/null
+++ b/history/records/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture/2026-10-07T161709Z-codex-e461c4.yaml
@@ -0,0 +1,28 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml
+ slug: Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture
+session:
+ id: 2026-10-07T161709Z-codex-e461c4
+ timestamp: '2026-10-07T16:17:09Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1756
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain mineral-mediated electron storage without direct donor-recipient nutrient
+ CROSS_FEEDING.; Retain light-driven oxidation and both existing directions, correcting
+ discharge terminology.; Retain reduction and both existing directions, correcting charge
+ terminology and removing transport misannotation.; Retain the observed reusable reservoir
+ without SYNTROPHY or perpetual-cycle claims; remove secondary editorial evidence.
+ details: Source-based self-adversarial review; reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
diff --git a/history/records/Rice_Acid_Soil_Bioinoculant_SynCom/2026-10-07T161709Z-codex-bda27b.yaml b/history/records/Rice_Acid_Soil_Bioinoculant_SynCom/2026-10-07T161709Z-codex-bda27b.yaml
new file mode 100644
index 000000000..e37c86a4d
--- /dev/null
+++ b/history/records/Rice_Acid_Soil_Bioinoculant_SynCom/2026-10-07T161709Z-codex-bda27b.yaml
@@ -0,0 +1,28 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml
+ slug: Rice_Acid_Soil_Bioinoculant_SynCom
+session:
+ id: 2026-10-07T161709Z-codex-bda27b
+ timestamp: '2026-10-07T16:17:09Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1757
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain measured host-carbon-supported proliferation; qualify its existing mitigation
+ arrow as a hypothesis.; Retain reported extracellular protonation/Al mitigation, with
+ downstream mediation explicitly uncertain.; Retain the proposed legacy-P pathway as HYPOTHESIZED/PARTIAL,
+ not quantified uptake.; Retain the primary 26.36% field-yield result, removing commentary
+ from graph evidence.
+ details: Source-based self-adversarial review; reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
diff --git a/history/records/Rice_Duckweed_Bacillus_SynCom/2026-10-07T161709Z-codex-2828bb.yaml b/history/records/Rice_Duckweed_Bacillus_SynCom/2026-10-07T161709Z-codex-2828bb.yaml
new file mode 100644
index 000000000..d170c0a0c
--- /dev/null
+++ b/history/records/Rice_Duckweed_Bacillus_SynCom/2026-10-07T161709Z-codex-2828bb.yaml
@@ -0,0 +1,28 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml
+ slug: Rice_Duckweed_Bacillus_SynCom
+session:
+ id: 2026-10-07T161709Z-codex-2828bb
+ timestamp: '2026-10-07T16:17:09Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1758
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain complementary growth-associated contributions as PARTIAL without MUTUALISM
+ or unverified stereochemistry.; Retain observed biocontrol and positive disease-index
+ result without COMPETITION or compound-specific causal certainty.; Retain the concurrent
+ greenhouse phenotype without COLONIZATION_FACILITATION or field/duckweed-intervention
+ generalization.
+ details: Source-based self-adversarial review; reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
diff --git a/kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml b/kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml
index f982ee90a..caf77bb83 100644
--- a/kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml
+++ b/kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml
@@ -68,10 +68,10 @@ taxonomy:
- *id001
ecological_interactions:
- name: Ammonium Cross-Feeding By Nitrogen-Fixing R. palustris
- description: >
- Rhodopseudomonas palustris fixes dinitrogen and excretes ammonium as the
- essential nitrogen source for E. coli in the anaerobic synthetic
- mutualism.
+ description: 'In the tested anaerobic cocultures, nitrogen-fixing R. palustris supplies ammonium required by E.
+ coli. Effective exchange depends on the donor and recipient context: engineered ammonium-excreting partners
+ support growth, whereas WT-based emergence depends on recipient adaptation. This is not a claim that every wild-type
+ pairing readily supports the same exchange.'
interaction_type: CROSS_FEEDING
scope: PAIRWISE
source_taxon:
@@ -100,20 +100,21 @@ ecological_interactions:
label: nitrogen fixation
downstream:
- target: Reciprocal Carbon-Nitrogen Cross-Feeding
- description: >
- Ammonium excreted by nitrogen-fixing R. palustris supplies the nitrogen
- currency needed by E. coli in the reciprocal coculture.
+ description: Ammonium transfer supports E. coli nitrogen acquisition and thereby its contribution to reciprocal
+ coculture growth in the tested donor/recipient contexts; the rate and emergence of this exchange are strain
+ dependent.
evidence:
- reference: PMID:32788711
supports: SUPPORT
evidence_source: IN_VITRO
snippet: R. palustris fixes dinitrogen gas (N2) via the enzyme nitrogenase and excretes ammonium (NH4+)
- explanation: Supports R. palustris as the nitrogen-fixing ammonium donor.
+ explanation: Supports the ammonium-transfer direction; donor and recipient context is qualified from the primary
+ Results and Discussion.
- name: E. coli Fermentation Product Cross-Feeding
- description: >
- E. coli ferments glucose and excretes organic acids that serve as essential
- carbon sources for R. palustris, forming the carbon-transfer half of the
- reciprocal exchange.
+ description: E. coli fermentation supplies acetate, lactate and succinate that R. palustris can use as carbon
+ sources in the studied cocultures. The paper excludes formate from these consumed organic-acid carbon sources;
+ ethanol excretion is not evidence that ethanol supplies the partner. This is the carbon-transfer half of the
+ demonstrated reciprocal exchange.
interaction_type: CROSS_FEEDING
scope: PAIRWISE
source_taxon:
@@ -133,17 +134,21 @@ ecological_interactions:
label: fermentation
downstream:
- target: Reciprocal Carbon-Nitrogen Cross-Feeding
- description: >
- E. coli fermentation products provide the essential carbon flow to
- R. palustris that balances R. palustris ammonium transfer back to E. coli.
+ description: The usable organic-acid products of E. coli fermentation supply carbon to R. palustris, enabling
+ the carbon-transfer arm of the reciprocal carbon/nitrogen exchange; not every excreted fermentation product
+ is a partner carbon source.
evidence:
- reference: PMID:32788711
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: E. coli ferments glucose, a carbon source that R. palustris cannot consume, and excretes ethanol and organic acids
- explanation: Supports E. coli fermentation-product excretion for R. palustris.
+ snippet: The organic acids, with the exception of formate, serve as the sole carbon sources for R. palustris
+ explanation: The primary passage directly specifies organic-acid carbon use and excludes formate. Ethanol excretion
+ alone does not establish ethanol transfer.
- name: Reciprocal Carbon-Nitrogen Cross-Feeding
- description: R. palustris supplies ammonium while E. coli supplies fermentation products.
+ description: Reciprocal exchange of ammonium and usable organic-acid carbon supports the tested R. palustris-E.
+ coli cocultures. Engineered donor contexts and adapted recipient contexts are distinct routes to coexistence,
+ not a universal wild-type phenotype. Enhanced recipient uptake is the authors mechanistic interpretation of
+ emergence; no new gene-design or feedback node is added here.
interaction_type: CROSS_FEEDING
scope: COMMUNITY_LEVEL
metabolites:
@@ -157,14 +162,19 @@ ecological_interactions:
id: GO:0009399
label: nitrogen fixation
evidence:
- - *id001
- reference: PMID:32788711
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: Engineered R. palustris excretes essential nitrogen as NH4+ to E. coli, while E. coli excretes
- essential carbon as fermentation products to R. palustris.
- explanation: Supports ammonium transfer from the nitrogen-fixing R. palustris
- partner as one leg of the reciprocal cross-feeding interaction.
+ snippet: Previously we engineered a cross-feeding coculture between N2-fixing Rhodopseudomonas palustris and
+ fermentative Escherichia coli.
+ explanation: Supports the defined synthetic community design and represented community context.
+ - reference: PMID:32788711
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: Engineered R. palustris excretes essential nitrogen as NH4+ to E. coli, while E. coli excretes essential
+ carbon as fermentation products to R. palustris.
+ explanation: Supports ammonium transfer from the nitrogen-fixing R. palustris partner as one leg of the reciprocal
+ cross-feeding interaction.
environmental_factors:
- name: defined synthetic community design
value: Two-member coculture based on nitrogen transfer from R. palustris and carbon-rich fermentation
@@ -229,3 +239,31 @@ growth_media:
evidence_source: IN_VITRO
snippet: shaken at 150 rpm beneath a 60 W incandescent bulb (750 lumens)
explanation: Grown at 30 °C, 150 rpm shaking under incandescent light.
+discussions:
+- discussion_id: reciprocal_exchange_strain_context
+ prompt: How general is reciprocal exchange across donor and recipient backgrounds?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Ammonium Cross-Feeding By Nitrogen-Fixing R. palustris
+ - ecological_interactions#E. coli Fermentation Product Cross-Feeding
+ - ecological_interactions#Reciprocal Carbon-Nitrogen Cross-Feeding
+ rationale: The complete primary manuscript distinguishes engineered ammonium donors from WT-based emergence and
+ shows that recipient adaptation can enable coculture growth without increased donor ammonium excretion. Retain
+ both observed transfer directions, but do not generalize growth rates, readiness of exchange or inferred uptake
+ feedback to arbitrary wild-type pairings. Species-level canonical taxonomy is unchanged. No new genetic design
+ or experimental protocol is curated.
+ evidence:
+ - reference: PMID:32788711
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: multiple combinations of recipient and producer genotypes can lead to stable coexistence
+ explanation: Discussion limits coexistence to genotype/environment combinations, rather than all pairings.
+curation_history:
+- timestamp: '2026-10-07T16:17:08Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: Retain positive ammonium CROSS_FEEDING and its existing arrow with donor/recipient scope.; Retain positive
+ organic-acid CROSS_FEEDING and its arrow, excluding unsupported ethanol/formate carbon transfer.; Retain reciprocal
+ exchange, distinguishing engineered donor and adapted recipient contexts. Issue#1755; reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
+ llm_assisted: true
diff --git a/kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml b/kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml
index 51ee3ab15..3550cd16f 100644
--- a/kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml
+++ b/kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml
@@ -113,22 +113,11 @@ taxonomy:
explanation: Supports the role of G. sulfurreducens in reversing TIE-1-driven magnetite oxidation in coculture.
ecological_interactions:
- name: Magnetite-Mediated Electron Sharing
- description: >
- Rhodopseudomonas palustris TIE-1 withdraws electrons from magnetite during
- phototrophic Fe(II) oxidation, while Geobacter sulfurreducens returns
- electrons to magnetite through anaerobic Fe(III) reduction.
- interaction_type: CROSS_FEEDING
- scope: PAIRWISE
- source_taxon:
- preferred_term: Rhodopseudomonas palustris TIE-1
- term:
- id: NCBITaxon:395960
- label: Rhodopseudomonas palustris TIE-1
- target_taxon:
- preferred_term: Geobacter sulfurreducens
- term:
- id: NCBITaxon:35554
- label: Geobacter sulfurreducens
+ description: 'The two recorded bacteria exchange electrons with a shared mixed-valence magnetite reservoir: R.
+ palustris TIE-1 withdraws electrons during phototrophic Fe(II) oxidation, whereas G. sulfurreducens supplies
+ electrons during Fe(III) reduction. This is mineral-mediated redox cycling, not a direct nutrient transfer from
+ TIE-1 to Geobacter.'
+ scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: magnetite
term:
@@ -143,17 +132,10 @@ ecological_interactions:
term:
id: CHEBI:29034
label: iron(3+)
- biological_processes:
- - preferred_term: iron ion transport
- term:
- id: GO:0006826
- label: iron ion transport
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,
- reusable mineral electron-storage system (the "battery").
+ description: Opposed microbial electron withdrawal and supply allow magnetite to function as the shared redox
+ reservoir under the tested externally controlled conditions.
evidence:
- reference: PMID:25814583
supports: SUPPORT
@@ -165,22 +147,20 @@ ecological_interactions:
evidence_source: IN_VITRO
snippet: bioavailable as electron sinks and electron sources
explanation: Supports magnetite acting as a shared electron sink and source in the coculture.
-- name: Phototrophic Magnetite Fe(II) Oxidation
- description: >
- Under light, R. palustris TIE-1 oxidizes Fe(II) in magnetite nanoparticles,
- decreasing the reduced fraction of the mixed-valence mineral.
- interaction_type: NICHE_PARTITIONING
- scope: PAIRWISE
- source_taxon:
- preferred_term: Rhodopseudomonas palustris TIE-1
+ participating_taxa:
+ - preferred_term: Rhodopseudomonas palustris TIE-1
term:
id: NCBITaxon:395960
label: Rhodopseudomonas palustris TIE-1
- target_taxon:
- preferred_term: Geobacter sulfurreducens
+ - preferred_term: Geobacter sulfurreducens
term:
id: NCBITaxon:35554
label: Geobacter sulfurreducens
+- name: Phototrophic Magnetite Fe(II) Oxidation
+ description: Under light, R. palustris TIE-1 oxidizes magnetite Fe(II), withdrawing stored electrons and discharging
+ the mineral. In the coculture cycle this is one community redox step, not a demonstrated pairwise fitness benefit
+ or resource-partitioning experiment.
+ scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: magnetite
term:
@@ -197,37 +177,31 @@ ecological_interactions:
label: photosynthesis
downstream:
- target: Anaerobic Magnetite Fe(III) Reduction
- description: >
- Light-driven oxidation of magnetite Fe(II) to Fe(III) supplies the
- oxidized Fe(III) that G. sulfurreducens subsequently uses as its anaerobic
- electron acceptor.
+ description: Oxidation regenerates magnetite Fe(III) that Geobacter can subsequently reduce when electron donor
+ is supplied under the tested reducing conditions; the observed cycle depends on external conditions.
- target: Biogeochemical Battery Function
- description: >
- TIE-1 phototrophic Fe(II) oxidation is one half of the reversible redox
- cycling that charges magnetite toward its oxidized state.
+ description: Phototrophic Fe(II) oxidation withdraws electrons from magnetite and discharges the mineral reservoir;
+ it does not charge an oxidized electron store.
evidence:
- reference: PMID:25814583
supports: SUPPORT
evidence_source: IN_VITRO
snippet: Rhodopseudomonas palustris TIE-1 oxidizes magnetite (Fe3O4) nanoparticles using light energy
explanation: Supports light-driven magnetite oxidation by TIE-1.
-- name: Anaerobic Magnetite Fe(III) Reduction
- description: >
- Geobacter sulfurreducens reduces Fe(III) in magnetite, reversing the
- TIE-1-driven oxidation and restoring the mineral's reduced electron-storage
- capacity.
- interaction_type: NICHE_PARTITIONING
- scope: PAIRWISE
- source_taxon:
- preferred_term: Geobacter sulfurreducens
- term:
- id: NCBITaxon:35554
- label: Geobacter sulfurreducens
- target_taxon:
- preferred_term: Rhodopseudomonas palustris TIE-1
+ participating_taxa:
+ - preferred_term: Rhodopseudomonas palustris TIE-1
term:
id: NCBITaxon:395960
label: Rhodopseudomonas palustris TIE-1
+ - preferred_term: Geobacter sulfurreducens
+ term:
+ id: NCBITaxon:35554
+ label: Geobacter sulfurreducens
+- name: Anaerobic Magnetite Fe(III) Reduction
+ description: G. sulfurreducens reduces magnetite Fe(III), storing supplied electrons as reduced Fe(II) and charging
+ the mineral. The demonstrated reversal requires suitable electron-donor and environmental conditions; it is
+ not evidence of direct reciprocal nutrient exchange.
+ scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: magnetite
term:
@@ -241,33 +215,32 @@ ecological_interactions:
term:
id: CHEBI:29033
label: iron(2+)
- biological_processes:
- - preferred_term: iron ion transport
- term:
- id: GO:0006826
- label: iron ion transport
downstream:
- target: Phototrophic Magnetite Fe(II) Oxidation
- description: >
- G. sulfurreducens reduction of magnetite Fe(III) regenerates the reduced
- Fe(II) electron donor for TIE-1, closing the reversible redox loop (the
- process is reversible in co-cultures).
+ description: Reduction regenerates magnetite Fe(II) that TIE-1 can oxidize during a subsequent illuminated phase,
+ closing the experimentally demonstrated conditional redox cycle.
- target: Biogeochemical Battery Function
- description: >
- Fe(III) reduction is the complementary half-reaction that restores the
- mineral's reduced electron-storage capacity, making the magnetite store
- reusable.
+ description: Fe(III) reduction charges magnetite with electrons and restores the reduced electron reservoir
+ for later phototrophic discharge.
evidence:
- reference: PMID:25814583
supports: SUPPORT
evidence_source: IN_VITRO
snippet: reversible in co-cultures by the anaerobic Fe(III)-reducing bacterium Geobacter sulfurreducens
explanation: Supports G. sulfurreducens-mediated reversal of magnetite oxidation in coculture.
+ participating_taxa:
+ - preferred_term: Rhodopseudomonas palustris TIE-1
+ term:
+ id: NCBITaxon:395960
+ label: Rhodopseudomonas palustris TIE-1
+ - preferred_term: Geobacter sulfurreducens
+ term:
+ id: NCBITaxon:35554
+ label: Geobacter sulfurreducens
- name: Biogeochemical Battery Function
- description: >
- The paired Fe(II)-oxidizing and Fe(III)-reducing activities make magnetite
- function as a reusable mineral electron-storage system for the coculture.
- interaction_type: SYNTROPHY
+ description: 'Repeated microbial reduction and oxidation make magnetite a reusable electron reservoir in the tested
+ cocultures: reduction charges it and oxidation discharges it. External light and electron-donor supply drive
+ the cycle; this is not a self-sustaining loop or a demonstrated syntrophic fitness relationship.'
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: magnetite
@@ -280,11 +253,15 @@ ecological_interactions:
evidence_source: IN_VITRO
snippet: effectively rendering magnetite a naturally occurring battery
explanation: Supports the emergent biogeochemical battery function.
- - reference: doi:10.1126/science.aaa4834
- supports: SUPPORT
- evidence_source: IN_VITRO
- snippet: magnetite, which contains both Fe(II) and Fe(III), can serve as both an electron acceptor and donor
- explanation: Supports the community-level mineral electron-storage mechanism.
+ participating_taxa:
+ - preferred_term: Rhodopseudomonas palustris TIE-1
+ term:
+ id: NCBITaxon:395960
+ label: Rhodopseudomonas palustris TIE-1
+ - preferred_term: Geobacter sulfurreducens
+ term:
+ id: NCBITaxon:35554
+ label: Geobacter sulfurreducens
environmental_factors:
- name: Magnetite nanoparticles
value: mixed-valence Fe3O4 mineral substrate
@@ -425,3 +402,36 @@ metal_notes: >
Iron is the central mineral redox element in this coculture. Magnetite-bound
Fe(II) and Fe(III) serve as electron-source and electron-sink pools for the
paired Fe-metabolizing bacteria.
+discussions:
+- discussion_id: magnetite_redox_not_direct_crossfeeding
+ prompt: Which ecological benefits follow from the demonstrated mineral redox cycle?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Magnetite-Mediated Electron Sharing
+ - ecological_interactions#Phototrophic Magnetite Fe(II) Oxidation
+ - ecological_interactions#Anaerobic Magnetite Fe(III) Reduction
+ - ecological_interactions#Biogeochemical Battery Function
+ rationale: The full primary paper supports repeated coculture redox reversals with externally controlled light
+ and electron-donor conditions. Preserve the real feedback directions, but distinguish mineral electron storage
+ from direct nutrient cross-feeding, competition-based niche partitioning and product-removal syntrophy. Current
+ SYNTROPHY does not require obligacy; the missing evidence is the relevant metabolic/fitness feedback. Redox
+ chemistry is not iron-ion transport. The DOI cache contains an editorial summary, so graph evidence now uses
+ the primary PMID abstract. Non-graph functional roles remain for issue1759.
+ evidence:
+ - reference: PMID:25814583
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: This process is reversible in co-cultures
+ explanation: Primary abstract supports reversal, not direct nutrient exchange or self-sustaining reciprocal
+ fitness.
+curation_history:
+- timestamp: '2026-10-07T16:17:08Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: Retain mineral-mediated electron storage without direct donor-recipient nutrient CROSS_FEEDING.; Retain
+ light-driven oxidation and both existing directions, correcting discharge terminology.; Retain reduction and
+ both existing directions, correcting charge terminology and removing transport misannotation.; Retain the observed
+ reusable reservoir without SYNTROPHY or perpetual-cycle claims; remove secondary editorial evidence. Issue#1756;
+ reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
+ llm_assisted: true
diff --git a/kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml b/kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml
index 0b66e81b7..7186d1876 100644
--- a/kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml
+++ b/kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml
@@ -50,34 +50,11 @@ taxonomy:
evidence:
- *id001
ecological_interactions:
-- name: Al-Resistant Rice Rhizosphere SynCom Assembly
- description: >
- Highly aluminium-resistant bacterial strains isolated from the rice rhizosphere were assembled
- into a synthetic community for acidic-soil bioinoculation tests.
- scope: COMMUNITY_LEVEL
- biological_processes:
- - preferred_term: response to metal ion
- term:
- id: GO:0010038
- label: response to metal ion
- downstream:
- - target: Rhizodeposited Carbon-Fueled SynCom Proliferation
- description: >
- The assembled Al-resistant SynCom entered the rice rhizosphere, where host rhizodeposition
- supported its successful proliferation.
- evidence:
- - reference: PMID:37783790
- supports: SUPPORT
- evidence_source: IN_VIVO
- snippet: a synthetic community composed of highly Al-resistant bacterial strains isolated
- from the rice rhizosphere
- explanation: >
- Identifies the acidic-soil bioinoculant as a SynCom assembled from highly aluminium-resistant
- bacteria isolated from the rice rhizosphere.
- name: Rhizodeposited Carbon-Fueled SynCom Proliferation
- description: >
- The rice SynCom used rhizodeposited carbon from the host plant to proliferate successfully in
- the rhizosphere under acidic-soil conditions.
+ description: 'The rice SynCom used rhizodeposited carbon from the host plant to proliferate successfully in the
+ rhizosphere under acidic-soil conditions.
+
+ '
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: growth
@@ -86,20 +63,22 @@ ecological_interactions:
label: growth
downstream:
- target: Extracellular Al-Toxicity Mitigation
- description: >
- SynCom proliferation in the rice rhizosphere preceded community-level mitigation of soil
- acidification and aluminium toxicity.
+ description: 'HYPOTHESIZED: root-carbon-supported proliferation supplies an active community capable of extracellular
+ acid/Al mitigation. The accessible primary abstract reports both processes but does not isolate proliferation
+ as the mediator; chronology alone is not causal proof.'
evidence:
- reference: PMID:37783790
supports: SUPPORT
evidence_source: IN_VIVO
snippet: The synthetic community harvested rhizodeposited carbon for successful proliferation
- explanation: >
- Links rice root carbon deposition to successful proliferation of the introduced SynCom.
+ explanation: 'Links rice root carbon deposition to successful proliferation of the introduced SynCom.
+
+ '
- name: Extracellular Al-Toxicity Mitigation
- description: >
- The proliferating rice SynCom mitigated soil acidification and aluminium toxicity through an
- extracellular protonation mechanism.
+ description: 'The proliferating rice SynCom mitigated soil acidification and aluminium toxicity through an extracellular
+ protonation mechanism.
+
+ '
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: aluminium(3+)
@@ -113,24 +92,25 @@ ecological_interactions:
label: response to metal ion
downstream:
- target: Topsoil Legacy Phosphorus Usage
- description: >
- Relief of acidic-soil aluminium stress was part of the plant-microbe coordination that
- enabled greater use of legacy phosphorus in topsoil.
+ description: 'HYPOTHESIZED: mitigation of acidic-soil Al stress could help plant-microbe coordination improve
+ access to legacy phosphorus. This direction is an authors proposed route, not quantitatively resolved mediation
+ in the accessible abstract.'
- target: Acidic-Field Rice Yield Increase
- description: >
- Reduced soil acidification and aluminium toxicity contributed to the SynCom-mediated rice
- yield increase measured in acidic fields.
+ description: 'PARTIAL: reduced acidification and Al toxicity are proposed contributors to the positive SynCom
+ field-yield response, but the accessible abstract does not separate their contribution from other community
+ effects.'
evidence:
- reference: PMID:37783790
supports: SUPPORT
evidence_source: IN_VIVO
snippet: mitigated soil acidification and Al toxicity through extracellular protonation
- explanation: >
- Supports the acid-soil and aluminium-toxicity mitigation step in the rice SynCom mechanism.
+ explanation: 'Supports the acid-soil and aluminium-toxicity mitigation step in the rice SynCom mechanism.
+
+ '
- name: Topsoil Legacy Phosphorus Usage
- description: >
- Functional coordination between rice and the SynCom increased access to topsoil legacy
- phosphorus under acidic field conditions.
+ description: 'HYPOTHESIZED: plant-SynCom coordination offers a route to greater use of legacy phosphorus in acidic
+ topsoil. The accessible primary abstract presents this as a promising application, not a quantified phosphorus
+ flux or an isolated causal mediator of yield.'
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: phosphorus
@@ -139,21 +119,19 @@ ecological_interactions:
label: phosphorus atom
downstream:
- target: Acidic-Field Rice Yield Increase
- description: >
- Improved use of legacy topsoil phosphorus helped connect Al-toxicity resistance to the
- observed acidic-field yield response.
+ description: 'HYPOTHESIZED: improved legacy-phosphorus access could contribute to yield, but the accessible
+ abstract does not demonstrate that this pathway mediates the measured 26.36% field response.'
evidence:
- reference: PMID:37783790
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VIVO
- snippet: The functional coordination between plants and microbes offers a promising way
- to increase the usage of legacy phosphorus in topsoil.
- explanation: >
- Links the rice-SynCom coordination mechanism to enhanced use of legacy phosphorus in topsoil.
+ snippet: The functional coordination between plants and microbes offers a promising way to increase the usage
+ of legacy phosphorus in topsoil.
+ explanation: Primary abstract proposes improved legacy-phosphorus usage; it does not quantify flux or isolate
+ this mediator of yield.
- name: Acidic-Field Rice Yield Increase
- description: >
- The Al-resistant rhizosphere SynCom increased rice yield in acidic fields and improved growth,
- yield, soil-acidity resistance, and aluminium-toxicity resistance.
+ description: The primary study reports a 26.36% rice-yield increase with the Al-resistant SynCom in acidic fields.
+ This positive intervention outcome is distinct from proof of any single phosphorus- or Al-mediated causal pathway.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: growth
@@ -161,13 +139,13 @@ ecological_interactions:
id: GO:0040007
label: growth
evidence:
- - *id001
- reference: PMID:37783790
supports: SUPPORT
evidence_source: IN_VIVO
snippet: increased rice yield by 26.36% in acidic fields
- explanation: >
- Quantifies the field-scale yield response to inoculation with the Al-resistant rice SynCom.
+ explanation: 'Quantifies the field-scale yield response to inoculation with the Al-resistant rice SynCom.
+
+ '
environmental_factors:
- name: defined synthetic community design
value: Carefully selected rhizosphere-competent bacterial strains composed the rice bioinoculant SynCom.
@@ -203,3 +181,35 @@ related_ingredients:
explanation: >
Identifies topsoil legacy phosphorus as a nutrient pool made more usable by rice-SynCom
functional coordination.
+discussions:
+- discussion_id: acid_soil_mediation_access_limit
+ prompt: How much of the field-yield benefit is mediated by Al mitigation versus phosphorus access?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Rhizodeposited Carbon-Fueled SynCom Proliferation
+ - ecological_interactions#Extracellular Al-Toxicity Mitigation
+ - ecological_interactions#Topsoil Legacy Phosphorus Usage
+ - ecological_interactions#Acidic-Field Rice Yield Increase
+ rationale: Only the primary abstract and limited publisher preview/caption were accessible, not the complete primary
+ main text or supplements. The abstract directly supports root-carbon use, extracellular protonation/Al mitigation
+ and the field-yield result. It does not separate their mediation or quantify the proposed legacy-phosphorus
+ route. Retain the four existing directions as explicitly uncertain interpretations, not causal certification
+ from sequence alone. The commentary PMID:38324131 is not independent primary mechanistic evidence. Generic membership
+ and non-graph phosphorus claims remain issue1759.
+ evidence:
+ - reference: PMID:37783790
+ supports: PARTIAL
+ evidence_source: IN_VIVO
+ snippet: The functional coordination between plants and microbes offers a promising way to increase the usage
+ of legacy phosphorus in topsoil.
+ explanation: The wording supports a proposed opportunity, not resolved flux or mediation.
+curation_history:
+- timestamp: '2026-10-07T16:17:08Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: Retain measured host-carbon-supported proliferation; qualify its existing mitigation arrow as a hypothesis.;
+ Retain reported extracellular protonation/Al mitigation, with downstream mediation explicitly uncertain.; Retain
+ the proposed legacy-P pathway as HYPOTHESIZED/PARTIAL, not quantified uptake.; Retain the primary 26.36% field-yield
+ result, removing commentary from graph evidence. Issue#1757; reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
+ llm_assisted: true
diff --git a/kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml b/kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml
index 02331d7b5..2686e4c39 100644
--- a/kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml
+++ b/kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml
@@ -151,27 +151,24 @@ taxonomy:
explanation: Documents polyketide-based antagonism specialization
ecological_interactions:
- name: Division-of-Labor Growth Promotion
- description: Individual strains within the SynCom specialize in auxin production and siderophore-linked
- iron mobilization, complementing each other for rice growth promotion. These complementary yet partially
- redundant contributions render community performance resilient to single-member loss.
- interaction_type: MUTUALISM
+ description: 'The eight-member SynCom shows complementary, partly redundant metabolic contributions in member-dropout
+ and omics comparisons. These support a division-of-labor interpretation associated with rice growth promotion.
+ PARTIAL: specific metabolite-to-plant effects and reciprocal fitness among the bacteria are not established
+ by those comparisons.'
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: indole-3-acetic acid
term:
id: CHEBI:16411
label: indole-3-acetic acid
- notes: Auxin produced by specialist member(s) for rice growth promotion
+ notes: Reported growth-associated metabolite; its individual causal contribution to the plant phenotype remains
+ unresolved.
- preferred_term: acetoin
term:
id: CHEBI:15688
label: acetoin
- notes: Volatile organic compound contributing to plant growth promotion
- - preferred_term: 2,3-butanediol
- term:
- id: CHEBI:16982
- label: (R,R)-butane-2,3-diol
- notes: Volatile organic compound contributing to plant growth promotion
+ notes: Reported growth-associated metabolite; its individual causal contribution to the plant phenotype remains
+ unresolved.
biological_processes:
- preferred_term: plant growth
term:
@@ -179,28 +176,30 @@ ecological_interactions:
label: growth
downstream:
- target: Concurrent Rice Growth Promotion and Sheath Blight Suppression
- description: >
- Recovery of the full plant-growth metabolite suite contributes the
- growth-promotion arm of the complete SynCom's multi-trait greenhouse
- phenotype.
+ description: 'PARTIAL: the complementary growth-associated metabolic pool is proposed to contribute to the complete
+ SynCom greenhouse growth phenotype. Dropout/omics associations do not establish genetic necessity or in-plant
+ chemical mediation.'
evidence:
- reference: PMID:41736136
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VIVO
- snippet: complementary yet partially redundant contributions mapped members, metabolite pools, plant
- outcomes and rendered community performance resilient to single-member loss
- explanation: Documents complementary growth promotion through division of labor
+ snippet: complementary yet partially redundant contributions mapped members, metabolite pools, plant outcomes
+ and rendered community performance resilient to single-member loss
+ explanation: Supports complementary contributions and a division-of-labor interpretation, not reciprocal bacterial
+ fitness or chemical necessity.
- name: Antimicrobial Biocontrol of Sheath Blight
- description: SynCom members produce lipopeptides (surfactin, bacillomycin, fengycin) and polyketides
- (difficidin) that suppress Rhizoctonia solani sheath blight, reducing the final disease index by 70%.
- interaction_type: COMPETITION
+ description: 'SynCom treatment suppressed R. solani sheath blight, with about 70% reduction of the final disease
+ index in the tested greenhouse comparison. PARTIAL: lipopeptide/polyketide-associated features and dropout phenotypes
+ suggest contributing chemistries, but the individual compounds are not established as necessary causes of this
+ plant outcome. Antagonism is not itself proof of resource competition.'
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: surfactin
term:
id: CHEBI:29681
label: surfactin
- notes: Lipopeptide antibiotic contributing to biocontrol
+ notes: Reported antimicrobial-associated metabolite; individual necessity for greenhouse disease suppression
+ is unresolved.
biological_processes:
- preferred_term: defense response to fungus
term:
@@ -208,35 +207,34 @@ ecological_interactions:
label: defense response to fungus
downstream:
- target: Concurrent Rice Growth Promotion and Sheath Blight Suppression
- description: >
- The antimicrobial lipopeptide and polyketide arm contributes the
- Rhizoctonia solani suppression component of the complete SynCom's
- multi-trait greenhouse phenotype.
+ description: 'PARTIAL: the antimicrobial-associated component is proposed to contribute to the complete SynCom
+ disease-suppression phenotype; the observed plant protection is stronger evidence than the assignment of that
+ protection to individual compounds.'
evidence:
- reference: PMID:41736136
supports: SUPPORT
evidence_source: IN_VIVO
- snippet: SynCom concurrently promoted rice growth and suppressed sheath blight caused by Rhizoctonia
- solani, reducing the final disease index by 70% without detectable phytotoxicity
- explanation: Documents 70% disease index reduction through antimicrobial metabolites
+ snippet: SynCom concurrently promoted rice growth and suppressed sheath blight caused by Rhizoctonia solani,
+ reducing the final disease index by 70% without detectable phytotoxicity
+ explanation: Supports the positive greenhouse disease-index outcome, not causal attribution to specific antimicrobial
+ metabolites.
- name: Concurrent Rice Growth Promotion and Sheath Blight Suppression
- description: >
- The complete Bacillus-dominated SynCom recovers both plant-growth metabolites
- and antimicrobial chemistries, giving a combined greenhouse phenotype of
- rice growth promotion plus Rhizoctonia solani sheath-blight suppression.
- interaction_type: COLONIZATION_FACILITATION
+ description: The complete SynCom concurrently promoted rice growth and suppressed sheath blight under the tested
+ greenhouse conditions. Its culture metabolome contained both growth- and antimicrobial-associated features.
+ These observations do not establish colonization facilitation, field efficacy, or an equivalent benefit from
+ adding duckweed itself.
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: indole-3-acetic acid
term:
id: CHEBI:16411
label: indole-3-acetic acid
- notes: Auxin included in the full plant-growth metabolite suite recovered by the complete SynCom.
+ notes: Reported culture-metabolome feature, not an independently established mediator of the greenhouse outcome.
- preferred_term: surfactin
term:
id: CHEBI:29681
label: surfactin
- notes: Antimicrobial lipopeptide included in the antimicrobial chemistries recovered by the complete SynCom.
+ notes: Reported culture-metabolome feature, not an independently established mediator of the greenhouse outcome.
biological_processes:
- preferred_term: plant growth
term:
@@ -250,22 +248,23 @@ ecological_interactions:
- reference: PMID:41736136
supports: SUPPORT
evidence_source: IN_VIVO
- snippet: SynCom concurrently promoted rice growth and suppressed sheath blight caused by Rhizoctonia
- solani, reducing the final disease index by 70% without detectable phytotoxicity
- explanation: >
- Supports the combined greenhouse endpoint produced by the complete
- eight-member Bacillus SynCom.
+ snippet: SynCom concurrently promoted rice growth and suppressed sheath blight caused by Rhizoctonia solani,
+ reducing the final disease index by 70% without detectable phytotoxicity
+ explanation: 'Supports the combined greenhouse endpoint produced by the complete eight-member Bacillus SynCom.
+
+ '
- reference: PMID:41736136
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: >
- the complete SynCom uniquely recovered the full suite of plant-growth
- metabolites (e.g., indole-3-acetic acid, acetoin/2,3-butanediol) together
- with antimicrobial chemistries (e.g., surfactin, bacillomycin, fengycin,
+ snippet: 'the complete SynCom uniquely recovered the full suite of plant-growth metabolites (e.g., indole-3-acetic
+ acid, acetoin/2,3-butanediol) together with antimicrobial chemistries (e.g., surfactin, bacillomycin, fengycin,
difficidin)
- explanation: >
- Links the complete SynCom to both the plant-growth metabolite pool and the
- antimicrobial chemistry pool measured in leave-one-member perturbations.
+
+ '
+ explanation: 'Links the complete SynCom to both the plant-growth metabolite pool and the antimicrobial chemistry
+ pool measured in leave-one-member perturbations.
+
+ '
environmental_factors:
- name: Host Plant
value: Oryza sativa (rice)
@@ -341,3 +340,36 @@ growth_media:
snippet: each of the eight Bacillus isolates was first cultured independently in LB broth at 28 °C
with shaking (180 rpm) until reaching mid-log phase
explanation: Bacillus SynCom members grown in LB at 28 °C, 180 rpm to mid-log phase before assembly.
+discussions:
+- discussion_id: duckweed_chemical_and_ecological_scope
+ prompt: Which metabolic contributions causally explain the greenhouse plant benefits?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Division-of-Labor Growth Promotion
+ - ecological_interactions#Antimicrobial Biocontrol of Sheath Blight
+ - ecological_interactions#Concurrent Rice Growth Promotion and Sheath Blight Suppression
+ rationale: The complete primary main text supports dropout-dependent functional contributions and positive greenhouse
+ outcomes, but not genetic necessity or in-plant chemical confirmation. Individual strain abundances during coculture
+ were not measured; contribution scores are not abundance data. The source also conflicts about unique versus
+ shared auxin production and about duckweed-comparison disease effects versus unmeasured agronomic outcomes.
+ Do not resolve these by selecting a favorable sentence. No ecological mutualism, resource competition or colonization-facilitation
+ type is assigned merely from benefit to rice. The unqualified 2,3-butanediol feature does not establish a specific
+ stereoisomer. Canonical input taxonomy is preserved, but its four role placeholders do not resolve eight strain
+ identities; issue1759 tracks non-graph corrections. No field efficacy or general safety is certified.
+ evidence:
+ - reference: PMID:41736136
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: this study is limited to greenhouse conditions and does not yet establish genetic necessity for the
+ proposed metabolite-to-phenotype links.
+ explanation: Explicit primary limitation separates plant efficacy from the proposed chemical mechanisms.
+curation_history:
+- timestamp: '2026-10-07T16:17:08Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: Retain complementary growth-associated contributions as PARTIAL without MUTUALISM or unverified stereochemistry.;
+ Retain observed biocontrol and positive disease-index result without COMPETITION or compound-specific causal
+ certainty.; Retain the concurrent greenhouse phenotype without COLONIZATION_FACILITATION or field/duckweed-intervention
+ generalization. Issue#1758; reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
+ llm_assisted: true
diff --git a/reports/causal_graph_review/README.md b/reports/causal_graph_review/README.md
index 0ef57e950..68d6b3182 100644
--- a/reports/causal_graph_review/README.md
+++ b/reports/causal_graph_review/README.md
@@ -5,6 +5,24 @@ source-based self-adversarial review. These records are not independent approval
or proof that every graph is complete. The current inventory and summary distinguish
`reviewed`, `pending` and `needs_research`.
+## Batch94: Exchange And Plant Mechanism Boundaries
+
+Four records retain 14 nodes and 13 existing directions; experimental SynCom
+assembly and its arrow are removed. Reciprocal nutrient exchange remains
+strain-bounded, and the real magnetite cycle remains with reduction charging
+and oxidation discharging. Acid-soil phosphorus mediation and rice-duckweed
+chemical mediation remain hypotheses, while measured plant benefits remain
+positive. Complete E. coli and magnetite primary main texts and fresh duckweed
+PMC text were read; acid-soil review is abstract/limited-preview bounded.
+All 923 baseline caches and non-graph record blocks are preserved. Issues
+#1755-#1758 track graph repairs; #1759 requires separate non-graph curation.
+[Decisions](decisions/20261007-four-records-batch94.yaml),
+[provenance](cache-provenance-20261007-batch94.json),
+[validation](validation-20261007-batch94.json), and
+[self-adversarial review](adversarial-review-20261007-batch94.yaml) state
+the source and execution limits; self-review is not independent approval.
+No new topology or paid Edison submission was used.
+
## Batch91: Interaction Semantics Re-Review
[Decisions](decisions/20261007-five-records-batch91.yaml),
diff --git a/reports/causal_graph_review/adversarial-review-20261007-batch94.yaml b/reports/causal_graph_review/adversarial-review-20261007-batch94.yaml
new file mode 100644
index 000000000..c507a8c99
--- /dev/null
+++ b/reports/causal_graph_review/adversarial-review-20261007-batch94.yaml
@@ -0,0 +1,217 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: 65716e7454538e9749b65bcbbb6fc233b6c6b8f8
+scope:
+- kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml
+- kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml
+- kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml
+- kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml
+decision_ledger: reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
+validation_report: reports/causal_graph_review/validation-20261007-batch94.json
+findings:
+- issue: 1755
+ severity: P2
+ status: addressed_in_this_change
+ finding: Bound R. palustris-E. coli cross-feeding to tested recipient and donor contexts
+ disposition: Close only after protected-main merge.
+- issue: 1756
+ severity: P2
+ status: addressed_in_this_change
+ finding: Correct magnetite battery charging and mineral-mediated interaction scope
+ disposition: Close only after protected-main merge.
+- issue: 1757
+ severity: P2
+ status: addressed_in_this_change
+ finding: Separate acid-soil SynCom assembly and phosphorus hypotheses from measured outcomes
+ disposition: Close only after protected-main merge.
+- issue: 1758
+ severity: P2
+ status: addressed_in_this_change
+ finding: Bound rice-duckweed SynCom mechanism labels to greenhouse and dropout evidence
+ disposition: Close only after protected-main merge.
+- issue: 1759
+ severity: P2
+ status: open_non_graph_follow_up
+ finding: Reconcile batch94 non-graph member identities, functional roles and plant mechanism claims
+ disposition: Separate non-graph curation remains required.
+adversarial_checks:
+- Fresh both-root baseline preceded papers. All four whole records,15originalnodes and14arrows accounted for;14nodes13existingdirections
+ retained, one assembly node/arrow removed. No new topology.
+- E.coli-R.palustris reciprocal CROSS_FEEDING remains positive, with donor/recipient scope. Consumed organic acids
+ are distinguished from formate and ethanol excretion. Initial dry-run quote proof encountered a PDF page/figure
+ boundary; the replacement quote directly supports acid use and exclusion of formate, and passes independent primary/cache
+ matching. No genetic design or feedback extension.
+- Magnetite reduction charges and oxidation discharges. Preserve the real reversible coculture cycle, not just an
+ acyclic simplification. External light/electron-donor conditions bound the cycle. Mineral redox is not direct
+ nutrient transfer, iron-ion transport, a resource-competition experiment or demonstrated syntrophic metabolic/fitness
+ feedback. Current SYNTROPHY does not require obligacy. Both recorded taxa remain explicit; primary PMID evidence
+ replaces the secondary editorial quote.
+- Acid-soil assembly is experimental design and remains in that section, not an interaction node. Root-carbon use,
+ extracellular protonation/Al mitigation and26.36%field yield remain positive. The primary abstract describes legacyP
+ as promising; keep phosphorus PARTIAL and four mediation directions explicitly uncertain. Complete main text was
+ not read and commentary does not substitute for it.
+- 'Rice-duckweed full-text limitations constrain the graph: positive greenhouse growth/disease endpoints remain,
+ metabolite-to-phenotype mediation is PARTIAL. Dropout contributions are not bacterial abundance, reciprocal fitness,
+ competition or colonization facilitation. Unqualified2,3-butanediol does not establish the existing specific stereoisomer,
+ so that graph grounding is removed rather than replaced by a guessed CURIE. Source conflicts about auxin roles
+ and duckweed-comparison outcomes remain unresolved; no field efficacy or general safety claim.'
+- Two complete primary main texts and one fresh PMC main body read, plus primary acid-soil abstract/limited preview.
+ Only E.coli page2/Figure1 visually inspected; no general supplement, raw-data or figure-pixel certification.21graph/new-discussion
+ quotations freshly matched to independent source text and unchanged caches; lexical agreement is not entailment.
+ Failed empty eScholarship/EuropePMC XML/pypdf attempts are not successful full-text access. No challenge bypass.
+- All923baselinecaches,456otherrecords, prior histories/decisions and all non-graph raw blocks preserved. Four append-only
+ histories record the changes. Explicit-participant fixture adds magnetite; legacy census changes are measured,
+ not evidence for ecology. Existing source-cache licensing and provenance are not rewritten.
+- Eight new tests and864combined regressions pass, plus focused schema/strict/term/reference/snippet/history gates.
+ All56network warnings unchanged, zero structural defects. Exact HTML-description coverage and deterministic rendering
+ are not browser screenshots. Reference checks ran on macOS, not Linux; issue1091 remains. Loader1703 remains outside
+ certification.
+- Ignored/hidden-inclusive local dedup and fresh all-state issue bodies recorded with exclusions; comments/PRs not
+ exhaustive. Graph repairs1755-1758 remain open until protected-main merge;1759 remains a separate non-graph issue.
+ Self-adversarial COMMENT is not independent approval. No Edison spend, new wet-lab protocol, branch-protection
+ bypass or corpus-completion claim.
+verification:
+ combined_regressions: 864 passed in 277.19s (0:04:37)
+ new_regression_tests: 8
+ total_recorded_gate_outputs: 42
+ primary_graph_snippet_proof:
+ graph_quotations: 17
+ new_discussion_quotations: 4
+ fresh_primary_matches: 21
+ retained_nodes: 14
+ removed_nodes: 1
+ retained_arrows: 13
+ removed_arrows: 1
+ new_nodes_or_directions: 0
+ scope: Two primary complete main texts plus fresh PMC main text; acid primary abstract only. All snippets literal-normalized
+ matched; not automatic entailment or figure-pixel certification.
+ references: Four full-record CLI and local snippet checks executed on macOS,not Linux; DOI-cache casing issue1091
+ remains. Literal matches do not establish entailment; acid-soil primary is abstract bounded. CLI Total checks
+ counts issues,not executed checks. Loader1703 not certified.
+ snippet_counts_by_record:
+ kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml:
+ MATCH: 14
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml:
+ MATCH: 23
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml:
+ MATCH: 10
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml:
+ MATCH: 14
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ full_corpus_snippet_audit:
+ counts:
+ records: 460
+ total: 8937
+ categories:
+ MATCH: 8802
+ RENDERING: 20
+ ASSEMBLED: 1
+ WEAK: 0
+ MISMATCH: 38
+ NOCONTENT: 76
+ caveat: Both-root informational audit exit0 is not clean-corpus certification; literal matches are not entailment.
+ network:
+ existing_findings_preserved: 56
+ added_findings: {}
+ removed_findings: {}
+ interpretation: One assembly node/arrow removed;14nodes13directions retained. All56warnings unchanged,zero structural
+ defects.
+ tested_file_sha256:
+ reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml: 1a3f0d13141bfcad2d7e5b67ea8f7997b48ef2e29d83e87c2bbd7a049f19df8b
+ tests/test_causal_review_batch94.py: 6ab007d1b2cedbb01f716dcd79e48540820d728b34d4d0dc0db5734685150b2d
+ tests/test_participating_taxa.py: b9b7dcf113a826071d3c40ebec416d29d05558ba8e242ccce42e75a8e9868efd
+ reports/causal_graph_review/README.md: e182a508947486d4720cff4797c432aaf61fd148e78d9bcb07eaae345fe2726f
+ reports/causal_graph_review/cache-provenance-20261007-batch94.json: bef11b8060a53bedd74dd9b80737b329401ca014a4bbf14b2e148b79510300bc
+ kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml: 4c797dbaa4c2fe4d6627839b90da2a1b4adb5e0185bec3606120860268913ad3
+ kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml: 21ea769fcc97b50c66ad0fd3ba76cca647ae23fde4a34ce2b7d1aea81bc69378
+ kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml: c5ad3b426974ce6bb56386d0a624bbf325f9764a86afdd3b1f59989196033113
+ kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml: 6d924ddcd1a9baf67a149de2d91aaeacafdd57113f5df61b97c5ec04e5e09a4e
+ unchanged_records: 456
+ unchanged_caches: 923
+ immutable_prior_history_and_decision_files: 752
+ cache_changes: []
+ edison:
+ required_for_this_repair: false
+ required_for_unresolved_extensions: false
+ provider_submissions: 0
+ credits_spent: 0
+ dry_runs: []
+ repair_scope: Bound existing nodes/directions and remove assembly node; no new topology.
+ post_commit_docs_current: Separate publication gate, not preasserted.
+participant_census:
+ measurements:
+ baseline:
+ records: 460
+ with_community_level: 397
+ mixed: 126
+ community_level_only: 271
+ taxa: 1525
+ credited_solely_by_the_rule: 1251
+ current:
+ records: 460
+ with_community_level: 397
+ mixed: 125
+ community_level_only: 272
+ taxa: 1525
+ credited_solely_by_the_rule: 1253
+ delta:
+ records: 0
+ with_community_level: 0
+ mixed: -1
+ community_level_only: 1
+ taxa: 0
+ credited_solely_by_the_rule: 2
+ interpretation: Magnetite redox steps are now community-scoped with both existing taxa named. This legacy connectivity
+ census is not evidence of ecological mechanism or added community membership.
+corpus:
+ records: 460
+ nodes: 1418
+ edges: 579
+ review_status_counts:
+ needs_research: 48
+ pending: 120
+ reviewed: 292
+limitations:
+- Four whole records,15originalnodes and14originalarrows reviewed.14nodes and13existingdirections remain; experimental
+ assembly node/arrow removed. No new topology or Edison submission/spend.
+- Fresh complete E.coli NSF-hosted author manuscript read; rendered page2/Figure1 inspected, not all figure pixels/supplements.
+ EuropePMC XML failedHTTP500; eScholarship PDF response was empty; neither counted as full text. Failed pypdf extraction
+ replaced by successful PyMuPDF extraction. PubMed challenge not bypassed.
+- Magnetite primary author-upload main text read through public ResearchGate browser extraction, including captions
+ but not figure pixels/supplements. Earlier adjacent Science article and later citing works are excluded. Primary
+ abstract quotes freshly matched; DOI cache editorial summary is not primary evidence. All caches preserved, no
+ copyrighted full text added.
+- Acid-soil primary abstract and limited preview/caption only; complete main/supplement text not read. Existing
+ mediation directions remain explicitly uncertain, phosphorus PARTIAL, measured field yield SUPPORT. Commentary
+ is not primary mechanistic evidence.
+- Duckweed fresh complete PMC main text and embedded captions read; no supplement/raw-data/figure-pixel review.
+ Positive greenhouse effects retained, individual chemical necessity and abundance dynamics unresolved. Internal
+ auxin/abundance/duckweed-comparison reporting conflicts not adjudicated. No field efficacy or safety certification.
+- All923baselinecaches and456otherrecords preserved. Four histories appended. All non-graph raw blocks and canonical
+ taxonomy labels/IDs unchanged. Magnetite community participants explicitly name the two existing taxa, not direct
+ cross-feeding beneficiaries.
+- Ignored/hidden-inclusive local dedup excludes.git/docs/site/references_cache; relevant caches separately inspected.
+ All-state issue titles/bodies refreshed, matching23/319/1093 previously read. Comments/PRs not exhaustively searched.
+ Repairs1755-1758 close only after protected-main merge; non-graph1759 stays open.
+- Self-adversarial review is not independent approval or corpus completion. Existing loader1703 and DOI-case1091
+ limitations remain. Prior denied/pending Edison scopes unchanged. Validation and publication results are not preasserted.
diff --git a/reports/causal_graph_review/cache-provenance-20261007-batch94.json b/reports/causal_graph_review/cache-provenance-20261007-batch94.json
new file mode 100644
index 000000000..a3c21eb3d
--- /dev/null
+++ b/reports/causal_graph_review/cache-provenance-20261007-batch94.json
@@ -0,0 +1,85 @@
+{
+ "changes": [],
+ "baseline_files_preserved": 923,
+ "primary_artifacts": {
+ "/private/tmp/communitymech-batch94/acid-comment-metadata.json": "c3cc80bd39a4cb2528f61d352a0cb23a505f60b4b1ccbc519a071b41c7fcaa77",
+ "/private/tmp/communitymech-batch94/acid-comment-primary.txt": "3ff1c8fb2c018fdd51dcf84006acd524bd3ff5ee5c495a1eba6b5331d3475b7a",
+ "/private/tmp/communitymech-batch94/acid-metadata.json": "8299785dd61651b5e594573938f549be365c1cd89d190e0ad24d28cbd5f7eec7",
+ "/private/tmp/communitymech-batch94/acid-primary.txt": "c4dd821c9cf3d375b8f82c9d1f370f4c8613883e31b9289d380d161b92905bba",
+ "/private/tmp/communitymech-batch94/baseline.json": "5b8d914876013bce95556abbc0dbd324dbd3d435e6276498b5f5e8336645f364",
+ "/private/tmp/communitymech-batch94/created-issues.json": "deef6940b0cd869f23c18809775d6fb300f941543de3c143cf6fdbca4f343824",
+ "/private/tmp/communitymech-batch94/duckweed-metadata.json": "1c28000d9e1c56c5e3cccdafe73237865050ed0ed6897873d82565de7f6c6089",
+ "/private/tmp/communitymech-batch94/duckweed-primary.txt": "089b7980eb7b16119f882b54ece45e015e37ea2e513c0ff7d4b1b9ca6cc1959a",
+ "/private/tmp/communitymech-batch94/duckweed-primary.xml": "0c09c4a21155bf940c79786bf8b7504b60978162f80b4d12cb3b83128c203269",
+ "/private/tmp/communitymech-batch94/duckweed-tables.txt": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
+ "/private/tmp/communitymech-batch94/ecoli-metadata.json": "95bdc0c7d7ff0c8e8a8852d6c43b45ef2921b965d86a497ea66011261b8c49a7",
+ "/private/tmp/communitymech-batch94/ecoli-nsf-primary.pdf": "601baef2a307eb710410f0f928abc53bf3b7ece44730a3d264a7df704f27ff51",
+ "/private/tmp/communitymech-batch94/ecoli-nsf-primary.txt": "92083071439b8bb5e68613dfd43c3c3d9b38469094a6ef41c20f2cbd0c01e6de",
+ "/private/tmp/communitymech-batch94/ecoli-nsf-receipt.json": "bd6d8f9c3f2bcf5f055760e6a3846bc9d9d9f6a5e12d3b829c359605f37fd0d0",
+ "/private/tmp/communitymech-batch94/ecoli-page-1.png": "34a4d6634587f9f573edc90abc9b406932078bcba8ea4afe78155ddde39f6443",
+ "/private/tmp/communitymech-batch94/ecoli-page-10.png": "fd367e930f439225f2ec516c172a140bbee83a9589183e295ba7ba06a40457c7",
+ "/private/tmp/communitymech-batch94/ecoli-page-2.png": "982a1bb7b5f6b53e1ccad60022d1437e50fee0876ae5503dfde626b6ebcdb1df",
+ "/private/tmp/communitymech-batch94/ecoli-primary.pdf": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "/private/tmp/communitymech-batch94/ecoli-primary.txt": "1f25e390e18d822fc5a894aa1390d8699addd14a9349d1a0805e7c2300297fcb",
+ "/private/tmp/communitymech-batch94/issue-dedup-current.json": "b8eff0bf8cdb0b28b58b828dfc67b8bdf7d4427811c66eb925386650ed9bcddd",
+ "/private/tmp/communitymech-batch94/issue-matches.json": "507e31c5e9a7c2530b79377e3fd236490ba067d710f3f30629e4bc191cb03682",
+ "/private/tmp/communitymech-batch94/issues.json": "4e70f0f1906d544d3c14185dbd0f634f700bc27dffb82464e4c6de7fa7d3c9b3",
+ "/private/tmp/communitymech-batch94/local-matches.txt": "74e40eee716901b0a81d7ea1ab077c5afd4933f39d81d92104a397a3906d6fbd",
+ "/private/tmp/communitymech-batch94/magnetite-main-extraction.json": "4386bf0bc781d567acbf202ce63efc175029d4d48cb173f52f0eee72142dc154",
+ "/private/tmp/communitymech-batch94/magnetite-main.txt": "bd477ee686572c728a6d8c84159a8708d67e0306d71b7af420352c072c9aae82",
+ "/private/tmp/communitymech-batch94/magnetite-metadata.json": "7d725a2d04caa0ba7f25af946cde3cfdcd228de2049242bebc81e7693f374e2d",
+ "/private/tmp/communitymech-batch94/magnetite-primary.txt": "3021c48449f0688e075234a3ef026fb883fc82052d8eebdc4d20392af264c65f",
+ "/private/tmp/communitymech-batch94/magnetite-web-middle.txt": "2564ca9864c24a5c9c1c2e1f6e61ac0b5b9483be3361ce65f136330a98b336c7",
+ "/private/tmp/communitymech-batch94/magnetite-web-rest.txt": "258a850a65456c2c7f671adcda2248a1948cda1fd0e8a1c9c9162ab2934a835c",
+ "/private/tmp/communitymech-batch94/magnetite-web-start.txt": "4ac522653efe85878009cb96b2f961cc23b92a57274321b0e767920df4a4cb62",
+ "/private/tmp/communitymech-batch94/primary-manifest.json": "6e6beb07dab8796ccef744b9a7668446da58e2d8f3a7b171aa7f03149b0aacdd",
+ "references_cache/PMID_25814583.md": "be347d43d79206ebe41f7824a63c2b4cc82262ed1cf734b868fa6ff2daa60a02",
+ "references_cache/PMID_32788711.txt": "3362c86a34ae197355b8bb00d99c27436ae048ac7d94e85a184f4a47cea9601a",
+ "references_cache/PMID_37783790.txt": "30293162f06e10a2e0affd5a3cd76aa6a7e9d9de5fc84f36cdc2811b019960bd",
+ "references_cache/PMID_41736136.md": "2fabc3418ce2497156923fe85127fa40082a70e2529b8e84bf0858509fad8e9a"
+ },
+ "source_access": [
+ {
+ "reference": "PMID:32788711",
+ "url": "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A32788711+AND+SRC%3AMED&format=json&resultType=core",
+ "accessed_scope": "Abstract only; complete main body not retrieved through Europe PMC."
+ },
+ {
+ "reference": "PMID:25814583",
+ "url": "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A25814583+AND+SRC%3AMED&format=json&resultType=core",
+ "accessed_scope": "Abstract only; complete main body not retrieved through Europe PMC."
+ },
+ {
+ "reference": "PMID:37783790",
+ "url": "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A37783790+AND+SRC%3AMED&format=json&resultType=core",
+ "accessed_scope": "Abstract only; complete main body not retrieved through Europe PMC."
+ },
+ {
+ "reference": "PMID:38324131",
+ "url": "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A38324131+AND+SRC%3AMED&format=json&resultType=core",
+ "accessed_scope": "Abstract only; complete main body not retrieved through Europe PMC."
+ },
+ {
+ "reference": "PMID:41736136",
+ "url": "https://www.ebi.ac.uk/europepmc/webservices/rest/PMC12961787/fullTextXML",
+ "accessed_scope": "Complete fresh PMC main body and embedded captions read; no figure pixels/supplements/raw data."
+ },
+ {
+ "reference": "PMID:32788711",
+ "url": "https://par.nsf.gov/servlets/purl/10202873",
+ "accessed_scope": "Complete13-page author manuscript read; page2 visually inspected."
+ },
+ {
+ "reference": "PMID:25814583",
+ "url": "https://www.researchgate.net/publication/274258204_Redox_cycling_of_FeII_and_FeIII_in_magnetite_by_Fe-metabolizing_bacteria",
+ "accessed_scope": "Complete primary main-text browser lines313-1747 read, including captions, excluding adjacent/citing articles; no figure pixels/supplement."
+ }
+ ],
+ "limitations": [
+ "Four whole records,15originalnodes and14originalarrows reviewed.14nodes and13existingdirections remain; experimental assembly node/arrow removed. No new topology or Edison submission/spend.",
+ "Fresh complete E.coli NSF-hosted author manuscript read; rendered page2/Figure1 inspected, not all figure pixels/supplements. EuropePMC XML failedHTTP500; eScholarship PDF response was empty; neither counted as full text. Failed pypdf extraction replaced by successful PyMuPDF extraction. PubMed challenge not bypassed.",
+ "Magnetite primary author-upload main text read through public ResearchGate browser extraction, including captions but not figure pixels/supplements. Earlier adjacent Science article and later citing works are excluded. Primary abstract quotes freshly matched; DOI cache editorial summary is not primary evidence. All caches preserved, no copyrighted full text added.",
+ "Acid-soil primary abstract and limited preview/caption only; complete main/supplement text not read. Existing mediation directions remain explicitly uncertain, phosphorus PARTIAL, measured field yield SUPPORT. Commentary is not primary mechanistic evidence.",
+ "Duckweed fresh complete PMC main text and embedded captions read; no supplement/raw-data/figure-pixel review. Positive greenhouse effects retained, individual chemical necessity and abundance dynamics unresolved. Internal auxin/abundance/duckweed-comparison reporting conflicts not adjudicated. No field efficacy or safety certification."
+ ]
+}
diff --git a/reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml b/reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
new file mode 100644
index 000000000..16ff09196
--- /dev/null
+++ b/reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
@@ -0,0 +1,680 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: 65716e7454538e9749b65bcbbb6fc233b6c6b8f8
+baseline_commit: 65716e7454538e9749b65bcbbb6fc233b6c6b8f8
+base_tree: b3c1c6c0fe29cbb70f0d74d34b0ab3a420a82f73
+pre_source_baseline_sha256: 5b8d914876013bce95556abbc0dbd324dbd3d435e6276498b5f5e8336645f364
+issues:
+- 1755
+- 1756
+- 1757
+- 1758
+unresolved_research_issues: []
+unresolved_non_graph_issues:
+- 1759
+issue_deduplication:
+ all_state_issue_titles_and_bodies: 1019
+ matching_issues:
+ - 23
+ - 319
+ - 1093
+ ignored_hidden_local_search: true
+source_access:
+- reference: PMID:32788711
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A32788711+AND+SRC%3AMED&format=json&resultType=core
+ accessed_scope: Abstract only; complete main body not retrieved through Europe PMC.
+- reference: PMID:25814583
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A25814583+AND+SRC%3AMED&format=json&resultType=core
+ accessed_scope: Abstract only; complete main body not retrieved through Europe PMC.
+- reference: PMID:37783790
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A37783790+AND+SRC%3AMED&format=json&resultType=core
+ accessed_scope: Abstract only; complete main body not retrieved through Europe PMC.
+- reference: PMID:38324131
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A38324131+AND+SRC%3AMED&format=json&resultType=core
+ accessed_scope: Abstract only; complete main body not retrieved through Europe PMC.
+- reference: PMID:41736136
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC12961787/fullTextXML
+ accessed_scope: Complete fresh PMC main body and embedded captions read; no figure pixels/supplements/raw data.
+- reference: PMID:32788711
+ url: https://par.nsf.gov/servlets/purl/10202873
+ accessed_scope: Complete13-page author manuscript read; page2 visually inspected.
+- reference: PMID:25814583
+ url: https://www.researchgate.net/publication/274258204_Redox_cycling_of_FeII_and_FeIII_in_magnetite_by_Fe-metabolizing_bacteria
+ accessed_scope: Complete primary main-text browser lines313-1747 read, including captions, excluding adjacent/citing
+ articles; no figure pixels/supplement.
+primary_artifacts:
+ /private/tmp/communitymech-batch94/acid-comment-metadata.json: c3cc80bd39a4cb2528f61d352a0cb23a505f60b4b1ccbc519a071b41c7fcaa77
+ /private/tmp/communitymech-batch94/acid-comment-primary.txt: 3ff1c8fb2c018fdd51dcf84006acd524bd3ff5ee5c495a1eba6b5331d3475b7a
+ /private/tmp/communitymech-batch94/acid-metadata.json: 8299785dd61651b5e594573938f549be365c1cd89d190e0ad24d28cbd5f7eec7
+ /private/tmp/communitymech-batch94/acid-primary.txt: c4dd821c9cf3d375b8f82c9d1f370f4c8613883e31b9289d380d161b92905bba
+ /private/tmp/communitymech-batch94/baseline.json: 5b8d914876013bce95556abbc0dbd324dbd3d435e6276498b5f5e8336645f364
+ /private/tmp/communitymech-batch94/created-issues.json: deef6940b0cd869f23c18809775d6fb300f941543de3c143cf6fdbca4f343824
+ /private/tmp/communitymech-batch94/duckweed-metadata.json: 1c28000d9e1c56c5e3cccdafe73237865050ed0ed6897873d82565de7f6c6089
+ /private/tmp/communitymech-batch94/duckweed-primary.txt: 089b7980eb7b16119f882b54ece45e015e37ea2e513c0ff7d4b1b9ca6cc1959a
+ /private/tmp/communitymech-batch94/duckweed-primary.xml: 0c09c4a21155bf940c79786bf8b7504b60978162f80b4d12cb3b83128c203269
+ /private/tmp/communitymech-batch94/duckweed-tables.txt: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
+ /private/tmp/communitymech-batch94/ecoli-metadata.json: 95bdc0c7d7ff0c8e8a8852d6c43b45ef2921b965d86a497ea66011261b8c49a7
+ /private/tmp/communitymech-batch94/ecoli-nsf-primary.pdf: 601baef2a307eb710410f0f928abc53bf3b7ece44730a3d264a7df704f27ff51
+ /private/tmp/communitymech-batch94/ecoli-nsf-primary.txt: 92083071439b8bb5e68613dfd43c3c3d9b38469094a6ef41c20f2cbd0c01e6de
+ /private/tmp/communitymech-batch94/ecoli-nsf-receipt.json: bd6d8f9c3f2bcf5f055760e6a3846bc9d9d9f6a5e12d3b829c359605f37fd0d0
+ /private/tmp/communitymech-batch94/ecoli-page-1.png: 34a4d6634587f9f573edc90abc9b406932078bcba8ea4afe78155ddde39f6443
+ /private/tmp/communitymech-batch94/ecoli-page-10.png: fd367e930f439225f2ec516c172a140bbee83a9589183e295ba7ba06a40457c7
+ /private/tmp/communitymech-batch94/ecoli-page-2.png: 982a1bb7b5f6b53e1ccad60022d1437e50fee0876ae5503dfde626b6ebcdb1df
+ /private/tmp/communitymech-batch94/ecoli-primary.pdf: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
+ /private/tmp/communitymech-batch94/ecoli-primary.txt: 1f25e390e18d822fc5a894aa1390d8699addd14a9349d1a0805e7c2300297fcb
+ /private/tmp/communitymech-batch94/issue-dedup-current.json: b8eff0bf8cdb0b28b58b828dfc67b8bdf7d4427811c66eb925386650ed9bcddd
+ /private/tmp/communitymech-batch94/issue-matches.json: 507e31c5e9a7c2530b79377e3fd236490ba067d710f3f30629e4bc191cb03682
+ /private/tmp/communitymech-batch94/issues.json: 4e70f0f1906d544d3c14185dbd0f634f700bc27dffb82464e4c6de7fa7d3c9b3
+ /private/tmp/communitymech-batch94/local-matches.txt: 74e40eee716901b0a81d7ea1ab077c5afd4933f39d81d92104a397a3906d6fbd
+ /private/tmp/communitymech-batch94/magnetite-main-extraction.json: 4386bf0bc781d567acbf202ce63efc175029d4d48cb173f52f0eee72142dc154
+ /private/tmp/communitymech-batch94/magnetite-main.txt: bd477ee686572c728a6d8c84159a8708d67e0306d71b7af420352c072c9aae82
+ /private/tmp/communitymech-batch94/magnetite-metadata.json: 7d725a2d04caa0ba7f25af946cde3cfdcd228de2049242bebc81e7693f374e2d
+ /private/tmp/communitymech-batch94/magnetite-primary.txt: 3021c48449f0688e075234a3ef026fb883fc82052d8eebdc4d20392af264c65f
+ /private/tmp/communitymech-batch94/magnetite-web-middle.txt: 2564ca9864c24a5c9c1c2e1f6e61ac0b5b9483be3361ce65f136330a98b336c7
+ /private/tmp/communitymech-batch94/magnetite-web-rest.txt: 258a850a65456c2c7f671adcda2248a1948cda1fd0e8a1c9c9162ab2934a835c
+ /private/tmp/communitymech-batch94/magnetite-web-start.txt: 4ac522653efe85878009cb96b2f961cc23b92a57274321b0e767920df4a4cb62
+ /private/tmp/communitymech-batch94/primary-manifest.json: 6e6beb07dab8796ccef744b9a7668446da58e2d8f3a7b171aa7f03149b0aacdd
+ references_cache/PMID_25814583.md: be347d43d79206ebe41f7824a63c2b4cc82262ed1cf734b868fa6ff2daa60a02
+ references_cache/PMID_32788711.txt: 3362c86a34ae197355b8bb00d99c27436ae048ac7d94e85a184f4a47cea9601a
+ references_cache/PMID_37783790.txt: 30293162f06e10a2e0affd5a3cd76aa6a7e9d9de5fc84f36cdc2811b019960bd
+ references_cache/PMID_41736136.md: 2fabc3418ce2497156923fe85127fa40082a70e2529b8e84bf0858509fad8e9a
+primary_graph_snippet_count: 17
+snippet_checks:
+- record: Rhodopseudomonas_Ecoli_CrossFeeding_Coculture
+ node: Ammonium Cross-Feeding By Nitrogen-Fixing R. palustris
+ evidence_index: 0
+ reference: PMID:32788711
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/ecoli-nsf-primary.txt
+ cache_artifact: references_cache/PMID_32788711.txt
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rhodopseudomonas_Ecoli_CrossFeeding_Coculture
+ node: E. coli Fermentation Product Cross-Feeding
+ evidence_index: 0
+ reference: PMID:32788711
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/ecoli-nsf-primary.txt
+ cache_artifact: references_cache/PMID_32788711.txt
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rhodopseudomonas_Ecoli_CrossFeeding_Coculture
+ node: Reciprocal Carbon-Nitrogen Cross-Feeding
+ evidence_index: 0
+ reference: PMID:32788711
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/ecoli-nsf-primary.txt
+ cache_artifact: references_cache/PMID_32788711.txt
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rhodopseudomonas_Ecoli_CrossFeeding_Coculture
+ node: Reciprocal Carbon-Nitrogen Cross-Feeding
+ evidence_index: 1
+ reference: PMID:32788711
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/ecoli-nsf-primary.txt
+ cache_artifact: references_cache/PMID_32788711.txt
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture
+ node: Magnetite-Mediated Electron Sharing
+ evidence_index: 0
+ reference: PMID:25814583
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/magnetite-primary.txt
+ cache_artifact: references_cache/PMID_25814583.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture
+ node: Magnetite-Mediated Electron Sharing
+ evidence_index: 1
+ reference: PMID:25814583
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/magnetite-primary.txt
+ cache_artifact: references_cache/PMID_25814583.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture
+ node: Phototrophic Magnetite Fe(II) Oxidation
+ evidence_index: 0
+ reference: PMID:25814583
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/magnetite-primary.txt
+ cache_artifact: references_cache/PMID_25814583.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture
+ node: Anaerobic Magnetite Fe(III) Reduction
+ evidence_index: 0
+ reference: PMID:25814583
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/magnetite-primary.txt
+ cache_artifact: references_cache/PMID_25814583.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture
+ node: Biogeochemical Battery Function
+ evidence_index: 0
+ reference: PMID:25814583
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/magnetite-primary.txt
+ cache_artifact: references_cache/PMID_25814583.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rice_Acid_Soil_Bioinoculant_SynCom
+ node: Rhizodeposited Carbon-Fueled SynCom Proliferation
+ evidence_index: 0
+ reference: PMID:37783790
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/acid-primary.txt
+ cache_artifact: references_cache/PMID_37783790.txt
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rice_Acid_Soil_Bioinoculant_SynCom
+ node: Extracellular Al-Toxicity Mitigation
+ evidence_index: 0
+ reference: PMID:37783790
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/acid-primary.txt
+ cache_artifact: references_cache/PMID_37783790.txt
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rice_Acid_Soil_Bioinoculant_SynCom
+ node: Topsoil Legacy Phosphorus Usage
+ evidence_index: 0
+ reference: PMID:37783790
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/acid-primary.txt
+ cache_artifact: references_cache/PMID_37783790.txt
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rice_Acid_Soil_Bioinoculant_SynCom
+ node: Acidic-Field Rice Yield Increase
+ evidence_index: 0
+ reference: PMID:37783790
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/acid-primary.txt
+ cache_artifact: references_cache/PMID_37783790.txt
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rice_Duckweed_Bacillus_SynCom
+ node: Division-of-Labor Growth Promotion
+ evidence_index: 0
+ reference: PMID:41736136
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/duckweed-primary.txt
+ cache_artifact: references_cache/PMID_41736136.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rice_Duckweed_Bacillus_SynCom
+ node: Antimicrobial Biocontrol of Sheath Blight
+ evidence_index: 0
+ reference: PMID:41736136
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/duckweed-primary.txt
+ cache_artifact: references_cache/PMID_41736136.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rice_Duckweed_Bacillus_SynCom
+ node: Concurrent Rice Growth Promotion and Sheath Blight Suppression
+ evidence_index: 0
+ reference: PMID:41736136
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/duckweed-primary.txt
+ cache_artifact: references_cache/PMID_41736136.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rice_Duckweed_Bacillus_SynCom
+ node: Concurrent Rice Growth Promotion and Sheath Blight Suppression
+ evidence_index: 1
+ reference: PMID:41736136
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/duckweed-primary.txt
+ cache_artifact: references_cache/PMID_41736136.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+discussion_snippet_checks:
+- record: Rhodopseudomonas_Ecoli_CrossFeeding_Coculture
+ node: reciprocal_exchange_strain_context
+ evidence_index: 0
+ reference: PMID:32788711
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/ecoli-nsf-primary.txt
+ cache_artifact: references_cache/PMID_32788711.txt
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture
+ node: magnetite_redox_not_direct_crossfeeding
+ evidence_index: 0
+ reference: PMID:25814583
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/magnetite-primary.txt
+ cache_artifact: references_cache/PMID_25814583.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rice_Acid_Soil_Bioinoculant_SynCom
+ node: acid_soil_mediation_access_limit
+ evidence_index: 0
+ reference: PMID:37783790
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/acid-primary.txt
+ cache_artifact: references_cache/PMID_37783790.txt
+ scope: Fresh primary quotation match; does not alone establish entailment.
+- record: Rice_Duckweed_Bacillus_SynCom
+ node: duckweed_chemical_and_ecological_scope
+ evidence_index: 0
+ reference: PMID:41736136
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch94/duckweed-primary.txt
+ cache_artifact: references_cache/PMID_41736136.md
+ scope: Fresh primary quotation match; does not alone establish entailment.
+cache_changes: []
+edison:
+ required_for_this_repair: false
+ required_for_unresolved_extensions: false
+ provider_submissions: 0
+ credits_spent: 0
+ dry_runs: []
+ repair_scope: Bound existing nodes/directions and remove assembly node; no new topology.
+limitations:
+- Four whole records,15originalnodes and14originalarrows reviewed.14nodes and13existingdirections remain; experimental
+ assembly node/arrow removed. No new topology or Edison submission/spend.
+- Fresh complete E.coli NSF-hosted author manuscript read; rendered page2/Figure1 inspected, not all figure pixels/supplements.
+ EuropePMC XML failedHTTP500; eScholarship PDF response was empty; neither counted as full text. Failed pypdf extraction
+ replaced by successful PyMuPDF extraction. PubMed challenge not bypassed.
+- Magnetite primary author-upload main text read through public ResearchGate browser extraction, including captions
+ but not figure pixels/supplements. Earlier adjacent Science article and later citing works are excluded. Primary
+ abstract quotes freshly matched; DOI cache editorial summary is not primary evidence. All caches preserved, no
+ copyrighted full text added.
+- Acid-soil primary abstract and limited preview/caption only; complete main/supplement text not read. Existing
+ mediation directions remain explicitly uncertain, phosphorus PARTIAL, measured field yield SUPPORT. Commentary
+ is not primary mechanistic evidence.
+- Duckweed fresh complete PMC main text and embedded captions read; no supplement/raw-data/figure-pixel review.
+ Positive greenhouse effects retained, individual chemical necessity and abundance dynamics unresolved. Internal
+ auxin/abundance/duckweed-comparison reporting conflicts not adjudicated. No field efficacy or safety certification.
+- All923baselinecaches and456otherrecords preserved. Four histories appended. All non-graph raw blocks and canonical
+ taxonomy labels/IDs unchanged. Magnetite community participants explicitly name the two existing taxa, not direct
+ cross-feeding beneficiaries.
+- Ignored/hidden-inclusive local dedup excludes.git/docs/site/references_cache; relevant caches separately inspected.
+ All-state issue titles/bodies refreshed, matching23/319/1093 previously read. Comments/PRs not exhaustively searched.
+ Repairs1755-1758 close only after protected-main merge; non-graph1759 stays open.
+- Self-adversarial review is not independent approval or corpus completion. Existing loader1703 and DOI-case1091
+ limitations remain. Prior denied/pending Edison scopes unchanged. Validation and publication results are not preasserted.
+records:
+- path: kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml
+ id: CommunityMech:000092
+ original_sha256: f5d6629e75ec30fb1243b0d6afe11df10d85b8b0f35f361ff628aa1636cc3ff6
+ record_sha256: 4c797dbaa4c2fe4d6627839b90da2a1b4adb5e0185bec3606120860268913ad3
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
+ scope: Whole record and every existing node/direction reviewed, including source-access limits. Not exhaustive
+ new-mechanism discovery or non-graph certification.
+ summary: Retain positive ammonium CROSS_FEEDING and its existing arrow with donor/recipient scope.; Retain positive
+ organic-acid CROSS_FEEDING and its arrow, excluding unsupported ethanol/formate carbon transfer.; Retain reciprocal
+ exchange, distinguishing engineered donor and adapted recipient contexts.
+ node_decisions:
+ - node: Ammonium Cross-Feeding By Nitrogen-Fixing R. palustris
+ rationale: Retain positive ammonium CROSS_FEEDING and its existing arrow with donor/recipient scope.
+ - node: E. coli Fermentation Product Cross-Feeding
+ rationale: Retain positive organic-acid CROSS_FEEDING and its arrow, excluding unsupported ethanol/formate carbon
+ transfer.
+ - node: Reciprocal Carbon-Nitrogen Cross-Feeding
+ rationale: Retain reciprocal exchange, distinguishing engineered donor and adapted recipient contexts.
+ removed_node_decisions: []
+ renamed_nodes: {}
+ edges_before:
+ - &id001
+ source: Ammonium Cross-Feeding By Nitrogen-Fixing R. palustris
+ target: Reciprocal Carbon-Nitrogen Cross-Feeding
+ description: 'Ammonium excreted by nitrogen-fixing R. palustris supplies the nitrogen currency needed by E.
+ coli in the reciprocal coculture.
+
+ '
+ - &id003
+ source: E. coli Fermentation Product Cross-Feeding
+ target: Reciprocal Carbon-Nitrogen Cross-Feeding
+ description: 'E. coli fermentation products provide the essential carbon flow to R. palustris that balances
+ R. palustris ammonium transfer back to E. coli.
+
+ '
+ edges_after:
+ - &id002
+ source: Ammonium Cross-Feeding By Nitrogen-Fixing R. palustris
+ target: Reciprocal Carbon-Nitrogen Cross-Feeding
+ description: Ammonium transfer supports E. coli nitrogen acquisition and thereby its contribution to reciprocal
+ coculture growth in the tested donor/recipient contexts; the rate and emergence of this exchange are strain
+ dependent.
+ - &id004
+ source: E. coli Fermentation Product Cross-Feeding
+ target: Reciprocal Carbon-Nitrogen Cross-Feeding
+ description: The usable organic-acid products of E. coli fermentation supply carbon to R. palustris, enabling
+ the carbon-transfer arm of the reciprocal carbon/nitrogen exchange; not every excreted fermentation product
+ is a partner carbon source.
+ retained_edge_decisions:
+ - before: *id001
+ after: *id002
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ - before: *id003
+ after: *id004
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ removed_edge_decisions: []
+ references:
+ - PMID:32788711
+ issues:
+ - 1755
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture/2026-10-07T161709Z-codex-df136a.yaml
+- path: kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml
+ id: CommunityMech:000268
+ original_sha256: e424a5853face56216b0c3e50877d1fee4192a666aa653826a7dac77077d9706
+ record_sha256: 21ea769fcc97b50c66ad0fd3ba76cca647ae23fde4a34ce2b7d1aea81bc69378
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
+ scope: Whole record and every existing node/direction reviewed, including source-access limits. Not exhaustive
+ new-mechanism discovery or non-graph certification.
+ summary: Retain mineral-mediated electron storage without direct donor-recipient nutrient CROSS_FEEDING.; Retain
+ light-driven oxidation and both existing directions, correcting discharge terminology.; Retain reduction and
+ both existing directions, correcting charge terminology and removing transport misannotation.; Retain the observed
+ reusable reservoir without SYNTROPHY or perpetual-cycle claims; remove secondary editorial evidence.
+ node_decisions:
+ - node: Magnetite-Mediated Electron Sharing
+ rationale: Retain mineral-mediated electron storage without direct donor-recipient nutrient CROSS_FEEDING.
+ - node: Phototrophic Magnetite Fe(II) Oxidation
+ rationale: Retain light-driven oxidation and both existing directions, correcting discharge terminology.
+ - node: Anaerobic Magnetite Fe(III) Reduction
+ rationale: Retain reduction and both existing directions, correcting charge terminology and removing transport
+ misannotation.
+ - node: Biogeochemical Battery Function
+ rationale: Retain the observed reusable reservoir without SYNTROPHY or perpetual-cycle claims; remove secondary
+ editorial evidence.
+ removed_node_decisions: []
+ renamed_nodes: {}
+ edges_before:
+ - &id005
+ source: Magnetite-Mediated Electron Sharing
+ 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, reusable mineral electron-storage system (the "battery").
+
+ '
+ - &id007
+ source: Phototrophic Magnetite Fe(II) Oxidation
+ target: Anaerobic Magnetite Fe(III) Reduction
+ description: 'Light-driven oxidation of magnetite Fe(II) to Fe(III) supplies the oxidized Fe(III) that G. sulfurreducens
+ subsequently uses as its anaerobic electron acceptor.
+
+ '
+ - &id009
+ source: Phototrophic Magnetite Fe(II) Oxidation
+ target: Biogeochemical Battery Function
+ description: 'TIE-1 phototrophic Fe(II) oxidation is one half of the reversible redox cycling that charges magnetite
+ toward its oxidized state.
+
+ '
+ - &id011
+ source: Anaerobic Magnetite Fe(III) Reduction
+ target: Phototrophic Magnetite Fe(II) Oxidation
+ description: 'G. sulfurreducens reduction of magnetite Fe(III) regenerates the reduced Fe(II) electron donor
+ for TIE-1, closing the reversible redox loop (the process is reversible in co-cultures).
+
+ '
+ - &id013
+ source: Anaerobic Magnetite Fe(III) Reduction
+ target: Biogeochemical Battery Function
+ description: 'Fe(III) reduction is the complementary half-reaction that restores the mineral''s reduced electron-storage
+ capacity, making the magnetite store reusable.
+
+ '
+ edges_after:
+ - &id006
+ source: Magnetite-Mediated Electron Sharing
+ target: Biogeochemical Battery Function
+ description: Opposed microbial electron withdrawal and supply allow magnetite to function as the shared redox
+ reservoir under the tested externally controlled conditions.
+ - &id008
+ source: Phototrophic Magnetite Fe(II) Oxidation
+ target: Anaerobic Magnetite Fe(III) Reduction
+ description: Oxidation regenerates magnetite Fe(III) that Geobacter can subsequently reduce when electron donor
+ is supplied under the tested reducing conditions; the observed cycle depends on external conditions.
+ - &id010
+ source: Phototrophic Magnetite Fe(II) Oxidation
+ target: Biogeochemical Battery Function
+ description: Phototrophic Fe(II) oxidation withdraws electrons from magnetite and discharges the mineral reservoir;
+ it does not charge an oxidized electron store.
+ - &id012
+ source: Anaerobic Magnetite Fe(III) Reduction
+ target: Phototrophic Magnetite Fe(II) Oxidation
+ description: Reduction regenerates magnetite Fe(II) that TIE-1 can oxidize during a subsequent illuminated phase,
+ closing the experimentally demonstrated conditional redox cycle.
+ - &id014
+ source: Anaerobic Magnetite Fe(III) Reduction
+ target: Biogeochemical Battery Function
+ description: Fe(III) reduction charges magnetite with electrons and restores the reduced electron reservoir
+ for later phototrophic discharge.
+ retained_edge_decisions:
+ - before: *id005
+ after: *id006
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ - before: *id007
+ after: *id008
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ - before: *id009
+ after: *id010
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ - before: *id011
+ after: *id012
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ - before: *id013
+ after: *id014
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ removed_edge_decisions: []
+ references:
+ - PMID:25814583
+ issues:
+ - 1756
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture/2026-10-07T161709Z-codex-e461c4.yaml
+- path: kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml
+ id: CommunityMech:000109
+ original_sha256: 9c66a1a3fa4dca91611441fb4f452e0fd22847e3db403cd8a70f7dc8526173da
+ record_sha256: c5ad3b426974ce6bb56386d0a624bbf325f9764a86afdd3b1f59989196033113
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
+ scope: Whole record and every existing node/direction reviewed, including source-access limits. Not exhaustive
+ new-mechanism discovery or non-graph certification.
+ summary: Retain measured host-carbon-supported proliferation; qualify its existing mitigation arrow as a hypothesis.;
+ Retain reported extracellular protonation/Al mitigation, with downstream mediation explicitly uncertain.; Retain
+ the proposed legacy-P pathway as HYPOTHESIZED/PARTIAL, not quantified uptake.; Retain the primary 26.36% field-yield
+ result, removing commentary from graph evidence.
+ node_decisions:
+ - node: Rhizodeposited Carbon-Fueled SynCom Proliferation
+ rationale: Retain measured host-carbon-supported proliferation; qualify its existing mitigation arrow as a hypothesis.
+ - node: Extracellular Al-Toxicity Mitigation
+ rationale: Retain reported extracellular protonation/Al mitigation, with downstream mediation explicitly uncertain.
+ - node: Topsoil Legacy Phosphorus Usage
+ rationale: Retain the proposed legacy-P pathway as HYPOTHESIZED/PARTIAL, not quantified uptake.
+ - node: Acidic-Field Rice Yield Increase
+ rationale: Retain the primary 26.36% field-yield result, removing commentary from graph evidence.
+ removed_node_decisions:
+ - node: Al-Resistant Rice Rhizosphere SynCom Assembly
+ rationale: SynCom assembly is an experimental design operation, not an ecological interaction; design fields
+ remain unchanged.
+ renamed_nodes: {}
+ edges_before:
+ - source: Al-Resistant Rice Rhizosphere SynCom Assembly
+ target: Rhizodeposited Carbon-Fueled SynCom Proliferation
+ description: 'The assembled Al-resistant SynCom entered the rice rhizosphere, where host rhizodeposition supported
+ its successful proliferation.
+
+ '
+ - &id015
+ source: Rhizodeposited Carbon-Fueled SynCom Proliferation
+ target: Extracellular Al-Toxicity Mitigation
+ description: 'SynCom proliferation in the rice rhizosphere preceded community-level mitigation of soil acidification
+ and aluminium toxicity.
+
+ '
+ - &id017
+ source: Extracellular Al-Toxicity Mitigation
+ target: Topsoil Legacy Phosphorus Usage
+ description: 'Relief of acidic-soil aluminium stress was part of the plant-microbe coordination that enabled
+ greater use of legacy phosphorus in topsoil.
+
+ '
+ - &id019
+ source: Extracellular Al-Toxicity Mitigation
+ target: Acidic-Field Rice Yield Increase
+ description: 'Reduced soil acidification and aluminium toxicity contributed to the SynCom-mediated rice yield
+ increase measured in acidic fields.
+
+ '
+ - &id021
+ source: Topsoil Legacy Phosphorus Usage
+ target: Acidic-Field Rice Yield Increase
+ description: 'Improved use of legacy topsoil phosphorus helped connect Al-toxicity resistance to the observed
+ acidic-field yield response.
+
+ '
+ edges_after:
+ - &id016
+ source: Rhizodeposited Carbon-Fueled SynCom Proliferation
+ target: Extracellular Al-Toxicity Mitigation
+ description: 'HYPOTHESIZED: root-carbon-supported proliferation supplies an active community capable of extracellular
+ acid/Al mitigation. The accessible primary abstract reports both processes but does not isolate proliferation
+ as the mediator; chronology alone is not causal proof.'
+ - &id018
+ source: Extracellular Al-Toxicity Mitigation
+ target: Topsoil Legacy Phosphorus Usage
+ description: 'HYPOTHESIZED: mitigation of acidic-soil Al stress could help plant-microbe coordination improve
+ access to legacy phosphorus. This direction is an authors proposed route, not quantitatively resolved mediation
+ in the accessible abstract.'
+ - &id020
+ source: Extracellular Al-Toxicity Mitigation
+ target: Acidic-Field Rice Yield Increase
+ description: 'PARTIAL: reduced acidification and Al toxicity are proposed contributors to the positive SynCom
+ field-yield response, but the accessible abstract does not separate their contribution from other community
+ effects.'
+ - &id022
+ source: Topsoil Legacy Phosphorus Usage
+ target: Acidic-Field Rice Yield Increase
+ description: 'HYPOTHESIZED: improved legacy-phosphorus access could contribute to yield, but the accessible
+ abstract does not demonstrate that this pathway mediates the measured 26.36% field response.'
+ retained_edge_decisions:
+ - before: *id015
+ after: *id016
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ - before: *id017
+ after: *id018
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ - before: *id019
+ after: *id020
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ - before: *id021
+ after: *id022
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ removed_edge_decisions:
+ - source: Al-Resistant Rice Rhizosphere SynCom Assembly
+ target: Rhizodeposited Carbon-Fueled SynCom Proliferation
+ description: 'The assembled Al-resistant SynCom entered the rice rhizosphere, where host rhizodeposition supported
+ its successful proliferation.
+
+ '
+ rationale: Assembly is an experimental operation; removing it does not remove the supported host-carbon interaction.
+ references:
+ - PMID:37783790
+ issues:
+ - 1757
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Rice_Acid_Soil_Bioinoculant_SynCom/2026-10-07T161709Z-codex-bda27b.yaml
+- path: kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml
+ id: CommunityMech:000058
+ original_sha256: f71e8a3df37a7a0643990561f99b34bfeb6d9bd5ad7090ea119e79047b873597
+ record_sha256: 6d924ddcd1a9baf67a149de2d91aaeacafdd57113f5df61b97c5ec04e5e09a4e
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml
+ scope: Whole record and every existing node/direction reviewed, including source-access limits. Not exhaustive
+ new-mechanism discovery or non-graph certification.
+ summary: Retain complementary growth-associated contributions as PARTIAL without MUTUALISM or unverified stereochemistry.;
+ Retain observed biocontrol and positive disease-index result without COMPETITION or compound-specific causal
+ certainty.; Retain the concurrent greenhouse phenotype without COLONIZATION_FACILITATION or field/duckweed-intervention
+ generalization.
+ node_decisions:
+ - node: Division-of-Labor Growth Promotion
+ rationale: Retain complementary growth-associated contributions as PARTIAL without MUTUALISM or unverified stereochemistry.
+ - node: Antimicrobial Biocontrol of Sheath Blight
+ rationale: Retain observed biocontrol and positive disease-index result without COMPETITION or compound-specific
+ causal certainty.
+ - node: Concurrent Rice Growth Promotion and Sheath Blight Suppression
+ rationale: Retain the concurrent greenhouse phenotype without COLONIZATION_FACILITATION or field/duckweed-intervention
+ generalization.
+ removed_node_decisions: []
+ renamed_nodes: {}
+ edges_before:
+ - &id023
+ source: Division-of-Labor Growth Promotion
+ target: Concurrent Rice Growth Promotion and Sheath Blight Suppression
+ description: 'Recovery of the full plant-growth metabolite suite contributes the growth-promotion arm of the
+ complete SynCom''s multi-trait greenhouse phenotype.
+
+ '
+ - &id025
+ source: Antimicrobial Biocontrol of Sheath Blight
+ target: Concurrent Rice Growth Promotion and Sheath Blight Suppression
+ description: 'The antimicrobial lipopeptide and polyketide arm contributes the Rhizoctonia solani suppression
+ component of the complete SynCom''s multi-trait greenhouse phenotype.
+
+ '
+ edges_after:
+ - &id024
+ source: Division-of-Labor Growth Promotion
+ target: Concurrent Rice Growth Promotion and Sheath Blight Suppression
+ description: 'PARTIAL: the complementary growth-associated metabolic pool is proposed to contribute to the complete
+ SynCom greenhouse growth phenotype. Dropout/omics associations do not establish genetic necessity or in-plant
+ chemical mediation.'
+ - &id026
+ source: Antimicrobial Biocontrol of Sheath Blight
+ target: Concurrent Rice Growth Promotion and Sheath Blight Suppression
+ description: 'PARTIAL: the antimicrobial-associated component is proposed to contribute to the complete SynCom
+ disease-suppression phenotype; the observed plant protection is stronger evidence than the assignment of that
+ protection to individual compounds.'
+ retained_edge_decisions:
+ - before: *id023
+ after: *id024
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ - before: *id025
+ after: *id026
+ rationale: Existing direction retained with source-specific experimental or hypothesis limits; no new edge.
+ removed_edge_decisions: []
+ references:
+ - PMID:41736136
+ issues:
+ - 1758
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Rice_Duckweed_Bacillus_SynCom/2026-10-07T161709Z-codex-2828bb.yaml
diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv
index 41447931d..fa9c44037 100644
--- a/reports/causal_graph_review/inventory.tsv
+++ b/reports/causal_graph_review/inventory.tsv
@@ -336,10 +336,10 @@ kb/communities/Rammelsberg_Cobalt_Nickel_Tailings.yaml CommunityMech:000057 cf9d
kb/communities/Rhizorhabdus_Cupriavidus_BDE47_Degradation_SynCom.yaml CommunityMech:000388 5b74bd01d770c894a9dd65240bf47b4754d997013fa2681a63abf653a1fb82d0 3 2 93.3 reports/causal_graph_review/decisions/20261007-four-records-batch93.yaml reviewed
kb/communities/Rhodococcus_Acinetobacter_RAMC_Mixed_Plastic_Upcycling_SynCom.yaml CommunityMech:000412 583655d32e85bb7a2786ba99f814f00b83dde9a5dca8e3d3b6d0b4f38ab28d46 1 0 65.0 reports/causal_graph_review/decisions/20261007-four-records-batch93.yaml reviewed
kb/communities/Rhodococcus_Pseudomonas_PPOW_Consortium.yaml CommunityMech:000371 8e36a499934681939a8905e7044d7951646ef4efe7ed0cf5cfb37d4ce95e9171 1 0 65.0 reports/causal_graph_review/decisions/20261007-four-records-batch93.yaml reviewed
-kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml CommunityMech:000092 f5d6629e75ec30fb1243b0d6afe11df10d85b8b0f35f361ff628aa1636cc3ff6 3 2 100.0 pending
-kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml CommunityMech:000268 e424a5853face56216b0c3e50877d1fee4192a666aa653826a7dac77077d9706 4 5 100.0 pending
-kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml CommunityMech:000109 9c66a1a3fa4dca91611441fb4f452e0fd22847e3db403cd8a70f7dc8526173da 5 5 100.0 pending
-kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml CommunityMech:000058 f71e8a3df37a7a0643990561f99b34bfeb6d9bd5ad7090ea119e79047b873597 3 2 100.0 pending
+kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml CommunityMech:000092 4c797dbaa4c2fe4d6627839b90da2a1b4adb5e0185bec3606120860268913ad3 3 2 100.0 reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml reviewed
+kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml CommunityMech:000268 21ea769fcc97b50c66ad0fd3ba76cca647ae23fde4a34ce2b7d1aea81bc69378 4 5 90.0 reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml reviewed
+kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml CommunityMech:000109 c5ad3b426974ce6bb56386d0a624bbf325f9764a86afdd3b1f59989196033113 4 4 100.0 reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml reviewed
+kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml CommunityMech:000058 6d924ddcd1a9baf67a149de2d91aaeacafdd57113f5df61b97c5ec04e5e09a4e 3 2 90.0 reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml reviewed
kb/communities/Rice_FSQN_Rhizosphere_Microbiome_SynCom.yaml CommunityMech:000419 be926207b3e99ec9dae97be3b8f0cac07462d7e3a9adcba2305a1efe481c5470 2 0 60.0 pending
kb/communities/Rice_P_Uptake_Intercropping_SynCom4.yaml CommunityMech:000110 63b0b68299b50bb4320f5742dda52f4a3e12af8d0693a66870b5b1c3a08f0525 3 2 100.0 pending
kb/communities/Richmond_Mine_AMD_Biofilm.yaml CommunityMech:000059 07aa61256b6d27eefa38c3dfe3b04f80fe9eee68e7df75f07c91326e3e2e4291 7 3 100.0 pending
diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json
index 325727287..7bb79981e 100644
--- a/reports/causal_graph_review/summary.json
+++ b/reports/causal_graph_review/summary.json
@@ -2,14 +2,14 @@
"scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.",
"semantic_review_rule": "Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.",
"records": 460,
- "nodes": 1419,
- "edges": 580,
+ "nodes": 1418,
+ "edges": 579,
"records_without_nodes": 8,
"records_without_edges": 174,
"review_status_counts": {
"needs_research": 48,
- "pending": 124,
- "reviewed": 288
+ "pending": 120,
+ "reviewed": 292
},
"structural_defects": [],
"network_audit": [
diff --git a/reports/causal_graph_review/validation-20261007-batch94.json b/reports/causal_graph_review/validation-20261007-batch94.json
new file mode 100644
index 000000000..04834a9d7
--- /dev/null
+++ b/reports/causal_graph_review/validation-20261007-batch94.json
@@ -0,0 +1,1090 @@
+{
+ "base_commit": "65716e7454538e9749b65bcbbb6fc233b6c6b8f8",
+ "scope": [
+ "kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml",
+ "kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml",
+ "kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml",
+ "kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml"
+ ],
+ "results": [
+ {
+ "check": "focused",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "pytest",
+ "-q",
+ "tests/test_causal_review_batch94.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/focused.log",
+ "log_sha256": "fd615ad0d948f15c5ef386e15a027fb0cbf90a6a68799d09ecb628b90c2e4176",
+ "output_tail": "........ [100%]\n8 passed in 1.44s\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch94/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-strict.tsv",
+ "kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-strict.log",
+ "log_sha256": "26455a22cf7b91a9ec306b6db2a99d5dae6b2493a91272d5689c0f161a1eec27",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch94/src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /private/tmp/communitymech-batch94/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-strict.tsv\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-references.log",
+ "log_sha256": "9da83ade07cc8e5723941ed13a98c0bd2c96d69064c0714c1c9f97beb8959ec4",
+ "output_tail": "Validating kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n",
+ "explained_output_tail": "Validating kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-snippets.log",
+ "log_sha256": "872637a69e95b3997368edea80eba5db2a2155e0ac9344b758394dcf97491410",
+ "output_tail": "# 14 evidence snippets scanned across 1 files\n MATCH 14\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-rank.log",
+ "log_sha256": "65e451ccc89e9825dd0260a5b0d8ec118f1df7e3ee08fdc739f4983b3bb0c331",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000092\",\n \"name\": \"Rhodopseudomonas-E. coli Cross-Feeding Coculture\",\n \"score\": 100.0,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [],\n \"path\": \"kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture/2026-10-07T161709Z-codex-df136a.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch94/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-strict.tsv",
+ "kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-strict.log",
+ "log_sha256": "8b91e543b3bfc6d81930d664c7b02d495d19ca969026bc8a73b54bc51a09387f",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch94/src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /private/tmp/communitymech-batch94/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-strict.tsv\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-references.log",
+ "log_sha256": "e7726eb992f01ede23e29201bd7e8fe5aa259fbc41b907527902638087c35e7b",
+ "output_tail": "Validating kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n",
+ "explained_output_tail": "Validating kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-snippets.log",
+ "log_sha256": "06a536479395cd60c7eab504952fd1ebaea7cd4609924c29d687dbc4183c3686",
+ "output_tail": "# 23 evidence snippets scanned across 1 files\n MATCH 23\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-rank.log",
+ "log_sha256": "eaf28d30dc76543220eb47ca8010a57061df27f102bdb8127893f0ba5ceaff30",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000268\",\n \"name\": \"Rhodopseudomonas-Geobacter Magnetite Redox Coculture\",\n \"score\": 90.0,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 4,\n \"downstream_edges\": 5,\n \"interaction_evidence\": 5,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture/2026-10-07T161709Z-codex-e461c4.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Rice_Acid_Soil_Bioinoculant_SynCom-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Acid_Soil_Bioinoculant_SynCom-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Rice_Acid_Soil_Bioinoculant_SynCom-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch94/Rice_Acid_Soil_Bioinoculant_SynCom-strict.tsv",
+ "kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Acid_Soil_Bioinoculant_SynCom-strict.log",
+ "log_sha256": "b90c6365c80fef6ed0fdb28b3fd067f527f31894ade700e1cddfc4d05e73e691",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch94/src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /private/tmp/communitymech-batch94/Rice_Acid_Soil_Bioinoculant_SynCom-strict.tsv\n"
+ },
+ {
+ "check": "Rice_Acid_Soil_Bioinoculant_SynCom-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Acid_Soil_Bioinoculant_SynCom-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Rice_Acid_Soil_Bioinoculant_SynCom-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Acid_Soil_Bioinoculant_SynCom-references.log",
+ "log_sha256": "9d81456c5bef74ad4a742c64018f5b627789e7bb9c8750a8973f8ac593503162",
+ "output_tail": "Validating kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n",
+ "explained_output_tail": "Validating kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n"
+ },
+ {
+ "check": "Rice_Acid_Soil_Bioinoculant_SynCom-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Acid_Soil_Bioinoculant_SynCom-snippets.log",
+ "log_sha256": "1835af07ebf0373785ca2d25de18c6984a3cbcfdec0d2610f1d8437504408710",
+ "output_tail": "# 10 evidence snippets scanned across 1 files\n MATCH 10\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n"
+ },
+ {
+ "check": "Rice_Acid_Soil_Bioinoculant_SynCom-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Acid_Soil_Bioinoculant_SynCom-rank.log",
+ "log_sha256": "221f41824ffede7abcc41300128d491735263c80808a69eccd7893f741743238",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000109\",\n \"name\": \"Rice Acid Soil Bioinoculant SynCom\",\n \"score\": 100.0,\n \"taxonomy\": 1,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 4,\n \"downstream_edges\": 4,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [],\n \"path\": \"kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Rice_Acid_Soil_Bioinoculant_SynCom-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Rice_Acid_Soil_Bioinoculant_SynCom/2026-10-07T161709Z-codex-bda27b.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Acid_Soil_Bioinoculant_SynCom-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Rice_Duckweed_Bacillus_SynCom-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Duckweed_Bacillus_SynCom-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Rice_Duckweed_Bacillus_SynCom-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch94/Rice_Duckweed_Bacillus_SynCom-strict.tsv",
+ "kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Duckweed_Bacillus_SynCom-strict.log",
+ "log_sha256": "1b54db4feea8d70a6093fd1ce17c6b41b2f794b4e857d9a647e1435a3855cdd1",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch94/src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /private/tmp/communitymech-batch94/Rice_Duckweed_Bacillus_SynCom-strict.tsv\n"
+ },
+ {
+ "check": "Rice_Duckweed_Bacillus_SynCom-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Duckweed_Bacillus_SynCom-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Rice_Duckweed_Bacillus_SynCom-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Duckweed_Bacillus_SynCom-references.log",
+ "log_sha256": "61370342ccbbe5d004365d37bddafdf1e4ef1b3c4b969058e68b26d21d8a9ef4",
+ "output_tail": "Validating kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n",
+ "explained_output_tail": "Validating kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n"
+ },
+ {
+ "check": "Rice_Duckweed_Bacillus_SynCom-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Duckweed_Bacillus_SynCom-snippets.log",
+ "log_sha256": "872637a69e95b3997368edea80eba5db2a2155e0ac9344b758394dcf97491410",
+ "output_tail": "# 14 evidence snippets scanned across 1 files\n MATCH 14\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n"
+ },
+ {
+ "check": "Rice_Duckweed_Bacillus_SynCom-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Duckweed_Bacillus_SynCom-rank.log",
+ "log_sha256": "d10ee7097be8e64e8b9e5f54d8c003803a6687a9462c700af334fb9873ee65be",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000058\",\n \"name\": \"Rice-Duckweed Bacillus Biocontrol SynCom\",\n \"score\": 90.0,\n \"taxonomy\": 4,\n \"connected_taxa\": 4,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Rice_Duckweed_Bacillus_SynCom-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Rice_Duckweed_Bacillus_SynCom/2026-10-07T161709Z-codex-2828bb.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/Rice_Duckweed_Bacillus_SynCom-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "inventory",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "reports/causal_graph_review/build_inventory.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/inventory.log",
+ "log_sha256": "f850ac1bc513689856a85d410f88782a8f36a60ca195991fd79fb2b5d2a914e0",
+ "output_tail": "{\n \"scope\": \"Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.\",\n \"semantic_review_rule\": \"Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.\",\n \"records\": 460,\n \"nodes\": 1418,\n \"edges\": 579,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 174,\n \"review_status_counts\": {\n \"needs_research\": 48,\n \"pending\": 120,\n \"reviewed\": 292\n },\n \"structural_defects\": []\n}\n"
+ },
+ {
+ "check": "network",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "communitymech.cli",
+ "audit-network",
+ "--json"
+ ],
+ "exit_code": 1,
+ "expected_exit_codes": [
+ 1
+ ],
+ "log": "/private/tmp/communitymech-batch94/network.log",
+ "log_sha256": "8febc2a966f5c2b51cd59095a8877c8773cd1e9383e5214bcdc3832c5858c097",
+ "output_tail": " \"total_genomes\": 17191,\n \"is_reclassified\": false,\n \"mapping_source\": \"kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25)\"\n },\n \"notes\": \"The eLife panel denotes this P. aeruginosa mutant as strain 5; represented at species level for ontology stability.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"mexZ\"\n },\n \"abundance_value\": \"Full-factorial SynCom panel member 5\",\n \"evidence\": [\n {\n \"reference\": \"PMID:42153623\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Strains 1\\u20138 (as labeled in the main text) correspond, in order, to mutants pAOV, PA14, NfxB, ParR- CAZ, mexZ, OrfN, NfxB- CAZ, and MDR6- CAZ\",\n \"explanation\": \"Maps the source's strain numbers to the eight P. aeruginosa mutant labels.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pseudomonas aeruginosa mexZ' has no interactions\"\n }\n ],\n \"Sclerotinia_Sclerotia_12Strain_Biocontrol_SynCom\": [\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Twelve-Strain SynCom Suppression of Sclerotinia Sclerotia\",\n \"interaction_index\": 0,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n },\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Trinickia MC Key Contribution to Sclerotia Mortality\",\n \"interaction_index\": 1,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n }\n ],\n \"Space_Habitat_SevenMember_Stress_Tolerance_SynCom\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Acinetobacter radioresistens 50V1\",\n \"taxon_id\": \"NCBITaxon:40216\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Acinetobacter radioresistens 50V1\",\n \"term\": {\n \"id\": \"NCBITaxon:40216\",\n \"label\": \"Acinetobacter radioresistens\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate came from the preflight Mars Odyssey Orbiter; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"50V1\",\n \"genome_accession\": \"GCA_002834555.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Acinetobacter radioresistens | 50V1 | Preflight Mars Odyssey Orbiter | \\u2013 | Mccoy et al., 2012 | GCA_002834555.1 | TSYB/TSYA | 37 \\u00b0C | 16\\u201318 h\",\n \"explanation\": \"Identifies A. radioresistens 50V1 as a consortium member and gives its spacecraft-associated source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Acinetobacter radioresistens 50V1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Micrococcus luteus W4-Al-K1\",\n \"taxon_id\": \"NCBITaxon:1270\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Micrococcus luteus W4-Al-K1\",\n \"term\": {\n \"id\": \"NCBITaxon:1270\",\n \"label\": \"Micrococcus luteus\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from an ISS aluminum-case touch array; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"W4-Al-K1\",\n \"genome_accession\": \"GCA_057816565.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Micrococcus luteus | W4-Al-K1 | ISS, Touch Array Aluminum Case | - | Kr\\u00e4mer et al., 2025 | GCA_057816565.1 | NB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies M. luteus W4-Al-K1 as a consortium member and gives its ISS source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Micrococcus luteus W4-Al-K1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"taxon_id\": \"NCBITaxon:64702\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"term\": {\n \"id\": \"NCBITaxon:64702\",\n \"label\": \"Propionibacterium cyclohexanicum\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. cyclohexanicum type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"TA-12T\",\n \"genome_accession\": \"GCA_900111365\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"16859\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Propionibacterium cyclohexanicum | TA-12 T | Spoilt Orange Juice | DSM 16859 T | Kusano et al., 1997 | GCA_900111365 | BHI, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies P. cyclohexanicum TA-12T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Propionibacterium cyclohexanicum TA-12T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pseudomonas antarctica CMS 35T\",\n \"taxon_id\": \"NCBITaxon:219572\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pseudomonas antarctica CMS 35T\",\n \"term\": {\n \"id\": \"NCBITaxon:219572\",\n \"label\": \"Pseudomonas antarctica\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. antarctica type strain as a biosafety-level-1 Pseudomonas surrogate.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"CMS 35T\",\n \"genome_accession\": \"GCA_010634845\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"15318\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pseudomonas antarctica | CMS 35 T | Antarctica | DSM 15318 T | Reddy et al., 2004 | GCA_010634845 | TSYB/TSYA | Ambient | 12\\u201316 h\",\n \"explanation\": \"Identifies P. antarctica CMS 35T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pseudomonas antarctica CMS 35T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Staphylococcus capitis K1-2-2-23\",\n \"taxon_id\": \"NCBITaxon:29388\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Staphylococcus capitis K1-2-2-23\",\n \"term\": {\n \"id\": \"NCBITaxon:29388\",\n \"label\": \"Staphylococcus capitis\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from ISS V2A steel; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"K1-2-2-23\",\n \"genome_accession\": \"GCA_025272695\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"111179\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Staphylococcus capitis | K1-2-2-23 | ISS, V2A Steel | DSM 111179 | Sobisch et al., 2019 | GCA_025272695 | TSYB/TSYA | 37 \\u00b0C | 16\\u201324 h\",\n \"explanation\": \"Identifies S. capitis K1-2-2-23 as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Staphylococcus capitis K1-2-2-23' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Streptococcus halotolerans HTS9T\",\n \"taxon_id\": \"NCBITaxon:1814128\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Streptococcus halotolerans HTS9T\",\n \"term\": {\n \"id\": \"NCBITaxon:1814128\",\n \"label\": \"Streptococcus halotolerans\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the S. halotolerans type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"HTS9T\",\n \"genome_accession\": \"GCA_001598035\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"101996\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Streptococcus halotolerans | HTS9 T | Respiratory Tract of Marmota himalayana | DSM 101996 T | Niu et al., 2016 | GCA_001598035 | 2xLB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies S. halotolerans HTS9T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Streptococcus halotolerans HTS9T' has no interactions\"\n }\n ]\n}\n"
+ },
+ {
+ "check": "just-network-json",
+ "command": [
+ "just",
+ "audit-network-json"
+ ],
+ "exit_code": 2,
+ "expected_exit_codes": [
+ 2
+ ],
+ "log": "/private/tmp/communitymech-batch94/just-network-json.log",
+ "log_sha256": "8595db43420d3f0a01c57acd6ad733a531a72e962486d20b4e1c2840dda55bff",
+ "output_tail": "uv run communitymech audit-network --json\nerror: Failed to spawn: `communitymech`\n Caused by: No such file or directory (os error 2)\nerror: recipe `audit-network-json` failed on line 574 with exit code 2\n"
+ },
+ {
+ "check": "rank-all",
+ "command": [
+ "just",
+ "rank-causal-graphs"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/rank-all.log",
+ "log_sha256": "df9253676f1b4905fad1789d6e3fc13a0b7fb8ab1409f93f8185bd704032446c",
+ "output_tail": "ities/Soybean_N_Fixation_sfSynCom.yaml\tCommunityMech:000064\tSoybean N-Fixation Simplified SynCom\t4\t4\t0\t3\t2\t3\t\t0\t0\n402\t100.0\tkb/communities/Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.yaml\tCommunityMech:000267\tSphingobium-Rhodococcus Lignin-Dimer Valorization Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n403\t100.0\tkb/communities/Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.yaml\tCommunityMech:000326\tStaphylococcus-Candida Context-Dependent Biofilm Coculture\t2\t2\t0\t6\t2\t13\t\t0\t0\n404\t100.0\tkb/communities/Stordalen_Mire_Methylotrophic_Methanogenesis_Community.yaml\tCommunityMech:000254\tStordalen Mire Methylotrophic Methanogenesis Community\t3\t3\t0\t4\t4\t9\t\t0\t0\n405\t100.0\tkb/communities/Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.yaml\tCommunityMech:000335\tStreptomyces A2-A5-A11-M7 Pesticide-Bioremediation Consortium\t4\t4\t0\t4\t2\t5\t\t0\t0\n406\t100.0\tkb/communities/Subsurface_Carboxydocella_CO_Aquifer_Community.yaml\tCommunityMech:000251\tSubsurface Carboxydocella CO-Oxidation Aquifer Community\t1\t1\t0\t5\t2\t5\t\t0\t0\n407\t100.0\tkb/communities/Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.yaml\tCommunityMech:000312\tSuillus clintonianus-Bacillus altitudinis Thiamine Cross-Feeding SynCom\t3\t3\t0\t4\t3\t4\t\t0\t0\n408\t100.0\tkb/communities/Sulfide_Spring_Autotrophic_CPR_Biofilm.yaml\tCommunityMech:000222\tSulfide Spring Autotrophic CPR-Hosting Biofilm\t3\t3\t0\t3\t2\t4\t\t0\t0\n409\t100.0\tkb/communities/SynComBac10_Chicken_Intestinal_SynCom.yaml\tCommunityMech:000127\tSynComBac10 Chicken Intestinal SynCom\t3\t3\t0\t3\t2\t3\t\t0\t0\n410\t100.0\tkb/communities/SynCom_ARC_Peanut_Aflatoxin_Nodulation.yaml\tCommunityMech:000314\tSynCom ARC Peanut Aflatoxin-Control and Nodulation-Coupling Community\t5\t5\t0\t3\t2\t3\t\t0\t0\n411\t100.0\tkb/communities/SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.yaml\tCommunityMech:000278\tSynCom BsBv Cigar Tobacco Leaf Fermentation\t2\t2\t0\t3\t2\t3\t\t0\t0\n412\t100.0\tkb/communities/SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.yaml\tCommunityMech:000285\tSynCom + Chlorella sorokiniana Biogas-slurry Coupling System\t2\t2\t0\t5\t3\t5\t\t0\t0\n413\t100.0\tkb/communities/SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.yaml\tCommunityMech:000302\tSynCom MetG2 Rhizobacteria Sugarcane Stress Resilience\t2\t2\t0\t3\t2\t4\t\t0\t0\n414\t100.0\tkb/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml\tCommunityMech:000283\tSesame-flavor Baijiu Fuqu SynCom (13-genus)\t13\t13\t0\t3\t2\t3\t\t0\t0\n415\t100.0\tkb/communities/SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.yaml\tCommunityMech:000272\tSynCom Y Agrobacterium-Bacillus Biofilm Biocontrol Co-culture\t2\t2\t0\t4\t2\t6\t\t0\t0\n416\t100.0\tkb/communities/Synechococcus_Azotobacter_Photoproduction_Mutualism.yaml\tCommunityMech:000207\tSynechococcus-Azotobacter Photoproduction Mutualism\t2\t2\t0\t3\t2\t6\t\t0\t0\n417\t100.0\tkb/communities/Synechococcus_Bacillus_SPC.yaml\tCommunityMech:000065\tSynechococcus-Bacillus Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n418\t100.0\tkb/communities/Synechococcus_Ecoli_SPC.yaml\tCommunityMech:000066\tSynechococcus-E.coli Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n419\t100.0\tkb/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml\tCommunityMech:000198\tSynechococcus-Halomonas Light-Driven PHB Coculture\t2\t2\t0\t3\t2\t6\t\t0\t0\n420\t100.0\tkb/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml\tCommunityMech:000167\tSynechococcus-Pseudomonas Phototrophic PHA and DNT Coculture\t2\t2\t0\t4\t2\t8\t\t0\t0\n421\t100.0\tkb/communities/Synechococcus_Saccharomyces_SPC.yaml\tCommunityMech:000067\tSynechococcus-Saccharomyces Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n422\t100.0\tkb/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml\tCommunityMech:000211\tSynechococcus-Shewanella D-Lactate Biophotovoltaic Consortium\t2\t2\t0\t3\t2\t6\t\t0\t0\n423\t100.0\tkb/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml\tCommunityMech:000149\tSynthetic Lichen Synechococcus-Rhodotorula Coculture\t2\t2\t0\t3\t2\t4\t\t0\t0\n424\t100.0\tkb/communities/Syntrophobacter_Methanobacterium_Syntrophy.yaml\tCommunityMech:000068\tSyntrophobacter-Methanobacterium Syntrophic Consortium\t2\t2\t0\t3\t3\t8\t\t0\t0\n425\t100.0\tkb/communities/Syntrophobacter_Methanospirillum_Syntrophy.yaml\tCommunityMech:000069\tSyntrophobacter-Methanospirillum Syntrophic Consortium\t2\t2\t0\t3\t3\t5\t\t0\t0\n426\t100.0\tkb/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml\tCommunityMech:000189\tSyntrophomonas-Methanococcus Butyrate Growth Coordination Coculture\t2\t2\t0\t3\t2\t6\t\t0\t0\n427\t100.0\tkb/communities/Syntrophomonas_Methanospirillum_Syntrophy.yaml\tCommunityMech:000070\tSyntrophomonas-Methanospirillum Syntrophic Consortium\t2\t2\t0\t3\t3\t7\t\t0\t0\n428\t100.0\tkb/communities/Syntrophus_Benzoate_Degrader.yaml\tCommunityMech:000071\tSyntrophus Benzoate Degrader\t2\t2\t0\t3\t2\t6\t\t0\t0\n429\t100.0\tkb/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml\tCommunityMech:000187\tSyntrophus-Methanospirillum Gentianae Benzoate Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n430\t100.0\tkb/communities/THOR_Rhizosphere_Model_Community.yaml\tCommunityMech:000079\tTHOR Rhizosphere Model Community\t3\t3\t0\t4\t2\t5\t\t0\t0\n431\t100.0\tkb/communities/TYQ1_Nematode_Biocontrol_SynCom.yaml\tCommunityMech:000072\tTYQ1 Nematode Biocontrol SynCom\t8\t8\t0\t4\t4\t4\t\t0\t0\n432\t100.0\tkb/communities/Teosinte_Maize_Biofertilizer_SynCom7.yaml\tCommunityMech:000100\tTeosinte-Derived Maize Biofertilizer SynCom7\t4\t4\t0\t6\t2\t12\t\t0\t0\n433\t100.0\tkb/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml\tCommunityMech:000259\tThalassiosira-Marinobacter Marine Snow Coculture\t2\t2\t0\t4\t2\t10\t\t0\t0\n434\t100.0\tkb/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml\tCommunityMech:000162\tThalassiosira-Ruegeria Phycosphere Coculture\t2\t2\t0\t3\t2\t4\t\t0\t0\n435\t100.0\tkb/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml\tCommunityMech:000182\tThermacetogenium-Methanothermobacter Acetate Oxidation Coculture\t2\t2\t0\t3\t2\t8\t\t0\t0\n436\t100.0\tkb/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml\tCommunityMech:000282\tThermophilic Lignocellulose-degrading Composting SynCom\t5\t5\t0\t3\t2\t3\t\t0\t0\n437\t100.0\tkb/communities/Thermophilic_Pyrite_QS_Consortium.yaml\tCommunityMech:000073\tThermophilic Pyrite Quorum Sensing Consortium\t3\t3\t0\t6\t2\t14\t\t0\t0\n438\t100.0\tkb/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml\tCommunityMech:000186\tThermotoga-Methanocaldococcus Hyperthermophilic Syntrophy\t2\t2\t0\t3\t2\t8\t\t0\t0\n439\t100.0\tkb/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml\tCommunityMech:000239\tThiocyanate-Degrading Afipia and Thiobacillus Bioreactor Community\t3\t3\t0\t3\t2\t3\t\t0\t0\n440\t100.0\tkb/communities/Tinto_River_Iron_Cycling_Community.yaml\tCommunityMech:000074\tTinto River Iron Cycling Community\t6\t6\t0\t5\t3\t6\t\t0\t0\n441\t100.0\tkb/communities/Tobacco_Chemotactic_Biocontrol_SynCom.yaml\tCommunityMech:000106\tTobacco Chemotactic Biocontrol SynCom\t2\t2\t0\t3\t2\t4\t\t0\t0\n442\t100.0\tkb/communities/Tomato_Oxylipin_SynCom3.yaml\tCommunityMech:000107\tTomato Oxylipin-Protective SynCom3\t3\t3\t0\t3\t2\t4\t\t0\t0\n443\t100.0\tkb/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml\tCommunityMech:000112\tTribromophenol Anaerobic Bioremediation SynCom\t3\t3\t0\t4\t3\t5\t\t0\t0\n444\t100.0\tkb/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml\tCommunityMech:000188\tTrichococcus-Syntrophomonas-Methanospirillum Butyrate Coculture\t3\t3\t0\t3\t2\t6\t\t0\t0\n445\t100.0\tkb/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml\tCommunityMech:000205\tTrichoderma-E. coli Cellulosic Isobutanol Coculture\t2\t2\t0\t3\t2\t5\t\t0\t0\n446\t100.0\tkb/communities/Trichoderma_Lactate_Platform.yaml\tCommunityMech:000075\tTrichoderma Lactate Platform for SCFA Production\t3\t3\t0\t3\t2\t3\t\t0\t0\n447\t100.0\tkb/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml\tCommunityMech:000270\tTrichoderma-Streptomyces Filamentous Cellulose Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n448\t100.0\tkb/communities/Trichodesmium_Alteromonas_Marine_Consortium.yaml\tCommunityMech:000147\tTrichodesmium-Alteromonas Marine Consortium\t3\t3\t0\t3\t2\t5\t\t0\t0\n449\t100.0\tkb/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml\tCommunityMech:000337\tTropidoatractus magnetotacticus Magnetotactic Ciliate Tripartite Syntrophy\t3\t3\t0\t4\t2\t9\t\t0\t0\n450\t100.0\tkb/communities/Urine_Nitrification_SynCom.yaml\tCommunityMech:000117\tUrine Nitrification Synthetic Microbial Community\t5\t5\t0\t3\t2\t5\t\t0\t0\n451\t100.0\tkb/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml\tCommunityMech:000213\tVariovorax-Cryptococcus Vitamin Cross-Feeding Microcosm\t2\t2\t0\t3\t2\t4\t\t0\t0\n452\t100.0\tkb/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml\tCommunityMech:000328\tWaste-Sludge Electro-Fermentation Biofilm-Suspension Community\t5\t5\t0\t4\t2\t6\t\t0\t0\n453\t100.0\tkb/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.yaml\tCommunityMech:000098\tWatermelon Rhizosphere Fusarium-Protective SynCom8\t2\t2\t0\t3\t2\t7\t\t0\t0\n454\t100.0\tkb/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml\tCommunityMech:000255\tWetland Oxygen-Sulfate Greenhouse Gas Microcosm Community\t3\t3\t0\t3\t2\t6\t\t0\t0\n455\t100.0\tkb/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.yaml\tCommunityMech:000118\tWheat Straw Biogas Pretreatment SynCom\t4\t4\t0\t3\t2\t4\t\t0\t0\n456\t100.0\tkb/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml\tCommunityMech:000354\tYarrowia lipolytica Division-of-Labor Lipid Consortium\t2\t2\t0\t3\t2\t3\t\t0\t0\n457\t100.0\tkb/communities/Yogurt_TwoSpecies_Starter_Culture.yaml\tCommunityMech:000164\tYogurt Two-Species Starter Culture\t2\t2\t0\t4\t2\t9\t\t0\t0\n458\t100.0\tkb/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml\tCommunityMech:000210\tZymomonas-E. coli Exometabolomics-Designed Obligate Mutualism\t2\t2\t0\t3\t2\t6\t\t0\t0\n459\t100.0\tkb/communities/hCom2_Complex_Gut_Microbiome.yaml\tCommunityMech:000123\thCom2 Complex Gut Microbiome\t1\t1\t0\t3\t2\t3\t\t0\t0\n460\t100.0\tkb/communities/mCAFEs_Brachypodium_RCC.yaml\tCommunityMech:000078\tm-CAFEs Brachypodium Reduced Complexity Consortia\t10\t10\t0\t6\t2\t11\t\t0\t0\nPYTHONPATH=src uv run python scripts/rank_causal_graph_readiness.py \n"
+ },
+ {
+ "check": "render",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "communitymech.render"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/render.log",
+ "log_sha256": "81571960d138cb3208b90d6a4c816b64826eee35daa9c681a5563539fea92843",
+ "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch94/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch94/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch94/docs/index.html\n"
+ },
+ {
+ "check": "render-repeat",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "communitymech.render"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/render-repeat.log",
+ "log_sha256": "81571960d138cb3208b90d6a4c816b64826eee35daa9c681a5563539fea92843",
+ "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch94/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch94/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch94/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch94/docs/index.html\n"
+ },
+ {
+ "check": "connectivity-survey",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-c",
+ "import json,pathlib,runpy\nfn=runpy.run_path('tests/test_community_level_connectivity_credit.py')['_survey']\nresult={}\nfor name,root in [('baseline',pathlib.Path('/private/tmp/communitymech-causal-batch93')),('current',pathlib.Path.cwd())]:\n paths=sorted(p for r in ['kb/communities','data/isolates'] for p in (root/r).rglob('*.yaml'))\n assert len(paths)==460\n fn.__globals__['record_files']=lambda:paths\n result[name]=fn()\nprint(json.dumps(result))\n"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/connectivity-survey.log",
+ "log_sha256": "89dabbed543ca0caaf8dccd47725396634cc1c9a1b7876cf1dab8d6b84fc5a4a",
+ "output_tail": "{\"baseline\": {\"records\": 460, \"with_community_level\": 397, \"mixed\": 126, \"community_level_only\": 271, \"taxa\": 1525, \"credited_solely_by_the_rule\": 1251}, \"current\": {\"records\": 460, \"with_community_level\": 397, \"mixed\": 125, \"community_level_only\": 272, \"taxa\": 1525, \"credited_solely_by_the_rule\": 1253}}\n"
+ },
+ {
+ "check": "regressions",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "pytest",
+ "-q",
+ "tests/test_causal_review_batch10.py",
+ "tests/test_causal_review_batch11.py",
+ "tests/test_causal_review_batch12.py",
+ "tests/test_causal_review_batch13.py",
+ "tests/test_causal_review_batch14.py",
+ "tests/test_causal_review_batch15.py",
+ "tests/test_causal_review_batch16.py",
+ "tests/test_causal_review_batch17.py",
+ "tests/test_causal_review_batch18.py",
+ "tests/test_causal_review_batch19.py",
+ "tests/test_causal_review_batch20.py",
+ "tests/test_causal_review_batch21.py",
+ "tests/test_causal_review_batch22.py",
+ "tests/test_causal_review_batch23.py",
+ "tests/test_causal_review_batch24.py",
+ "tests/test_causal_review_batch25.py",
+ "tests/test_causal_review_batch27.py",
+ "tests/test_causal_review_batch28.py",
+ "tests/test_causal_review_batch29.py",
+ "tests/test_causal_review_batch30.py",
+ "tests/test_causal_review_batch31.py",
+ "tests/test_causal_review_batch32.py",
+ "tests/test_causal_review_batch33.py",
+ "tests/test_causal_review_batch34.py",
+ "tests/test_causal_review_batch35.py",
+ "tests/test_causal_review_batch36.py",
+ "tests/test_causal_review_batch37.py",
+ "tests/test_causal_review_batch38.py",
+ "tests/test_causal_review_batch39.py",
+ "tests/test_causal_review_batch40.py",
+ "tests/test_causal_review_batch41.py",
+ "tests/test_causal_review_batch42.py",
+ "tests/test_causal_review_batch43.py",
+ "tests/test_causal_review_batch44.py",
+ "tests/test_causal_review_batch45.py",
+ "tests/test_causal_review_batch46.py",
+ "tests/test_causal_review_batch47.py",
+ "tests/test_causal_review_batch48.py",
+ "tests/test_causal_review_batch49.py",
+ "tests/test_causal_review_batch5.py",
+ "tests/test_causal_review_batch50.py",
+ "tests/test_causal_review_batch51.py",
+ "tests/test_causal_review_batch52.py",
+ "tests/test_causal_review_batch53.py",
+ "tests/test_causal_review_batch54.py",
+ "tests/test_causal_review_batch55.py",
+ "tests/test_causal_review_batch56.py",
+ "tests/test_causal_review_batch57.py",
+ "tests/test_causal_review_batch58.py",
+ "tests/test_causal_review_batch59.py",
+ "tests/test_causal_review_batch6.py",
+ "tests/test_causal_review_batch60.py",
+ "tests/test_causal_review_batch61.py",
+ "tests/test_causal_review_batch62.py",
+ "tests/test_causal_review_batch63.py",
+ "tests/test_causal_review_batch64.py",
+ "tests/test_causal_review_batch65.py",
+ "tests/test_causal_review_batch66.py",
+ "tests/test_causal_review_batch67.py",
+ "tests/test_causal_review_batch68.py",
+ "tests/test_causal_review_batch69.py",
+ "tests/test_causal_review_batch7.py",
+ "tests/test_causal_review_batch70.py",
+ "tests/test_causal_review_batch71.py",
+ "tests/test_causal_review_batch72.py",
+ "tests/test_causal_review_batch73.py",
+ "tests/test_causal_review_batch74.py",
+ "tests/test_causal_review_batch75.py",
+ "tests/test_causal_review_batch76.py",
+ "tests/test_causal_review_batch77.py",
+ "tests/test_causal_review_batch78.py",
+ "tests/test_causal_review_batch79.py",
+ "tests/test_causal_review_batch8.py",
+ "tests/test_causal_review_batch80.py",
+ "tests/test_causal_review_batch81.py",
+ "tests/test_causal_review_batch82.py",
+ "tests/test_causal_review_batch83.py",
+ "tests/test_causal_review_batch84.py",
+ "tests/test_causal_review_batch85.py",
+ "tests/test_causal_review_batch86.py",
+ "tests/test_causal_review_batch87.py",
+ "tests/test_causal_review_batch88.py",
+ "tests/test_causal_review_batch89.py",
+ "tests/test_causal_review_batch9.py",
+ "tests/test_causal_review_batch90.py",
+ "tests/test_causal_review_batch91.py",
+ "tests/test_causal_review_batch92.py",
+ "tests/test_causal_review_batch93.py",
+ "tests/test_causal_review_batch94.py",
+ "tests/test_site_audit_fixes.py",
+ "tests/test_causal_review_inventory.py",
+ "tests/test_rank_causal_graph_readiness.py",
+ "tests/test_network_auditor.py",
+ "tests/test_participating_taxa.py",
+ "tests/test_causal_descriptions_are_published.py",
+ "tests/test_published_pages_name_real_records.py",
+ "tests/test_reference_validator_actually_validates.py",
+ "tests/test_snippet_audit_artefact_classes.py",
+ "tests/test_reference_error_annotation.py",
+ "tests/test_community_level_connectivity_credit.py",
+ "tests/test_no_paywalled_text_in_repo.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/regressions.log",
+ "log_sha256": "bad471cccc627204077dc8ece461db33092de37990d86cd2fba819e9e7b5126b",
+ "output_tail": "........................................................................ [ 8%]\n........................................................................ [ 16%]\n........................................................................ [ 25%]\n........................................................................ [ 33%]\n........................................................................ [ 41%]\n........................................................................ [ 50%]\n........................................................................ [ 58%]\n........................................................................ [ 66%]\n........................................................................ [ 75%]\n........................................................................ [ 83%]\n........................................................................ [ 91%]\n........................................................................ [100%]\n864 passed in 277.19s (0:04:37)\n"
+ },
+ {
+ "check": "black",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black",
+ "--check",
+ "tests/test_causal_review_batch94.py",
+ "tests/test_participating_taxa.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/black.log",
+ "log_sha256": "b9cf511501d306d2bd8355ccb165c8ddc0a6fdd62d7c72c4a7b1795cf8934c8c",
+ "output_tail": "All done! \u2728 \ud83c\udf70 \u2728\n2 files would be left unchanged.\n"
+ },
+ {
+ "check": "ruff",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/wCcxEYRM4HeHgwYPZemHX/bin/ruff",
+ "check",
+ "tests/test_causal_review_batch94.py",
+ "tests/test_participating_taxa.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/ruff.log",
+ "log_sha256": "82b3e6a6c090a57601d22943bd23fca9218d1031dbe5a7b754092f9a156b4f18",
+ "output_tail": "All checks passed!\n"
+ },
+ {
+ "check": "audit-snippets-all",
+ "command": [
+ "just",
+ "audit-snippets"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/audit-snippets-all.log",
+ "log_sha256": "4ccb4006592041168ef8d58630b35349dfa897b7b983b059fbfb4190c9c8af26",
+ "output_tail": "# 8937 evidence snippets scanned across 460 files\n MATCH 8802\n RENDERING 20\n ASSEMBLED 1\n WEAK 0\n MISMATCH 38\n NOCONTENT 76\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n 19 (19 hard) kb/communities/DCPP_DBS4_DCP4_DCP11d_Degradation_SynCom.yaml\n 15 (15 hard) kb/communities/Fucoidan_Seven_Degrader_Combinatorial_SynCom.yaml\n 3 (3 hard) kb/communities/Coscinodiscus_Synthetic_Community.yaml\n 1 (1 hard) kb/communities/Altered_Schaedler_Flora_Gnotobiotic_Mouse_Community.yaml\nuv run python scripts/evidence_snippet_audit.py \n"
+ },
+ {
+ "check": "diff-check",
+ "command": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/diff-check.log",
+ "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "output_tail": ""
+ },
+ {
+ "check": "focused-final",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "pytest",
+ "-q",
+ "tests/test_causal_review_batch94.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch94/focused-final.log",
+ "log_sha256": "323005844338d62c2928711bcd0cf4fe5e182ecce1df3d8847afc61c642e6bb0",
+ "output_tail": "........ [100%]\n8 passed in 3.78s\n"
+ }
+ ],
+ "limitations": [
+ "Four whole records,15originalnodes and14originalarrows reviewed.14nodes and13existingdirections remain; experimental assembly node/arrow removed. No new topology or Edison submission/spend.",
+ "Fresh complete E.coli NSF-hosted author manuscript read; rendered page2/Figure1 inspected, not all figure pixels/supplements. EuropePMC XML failedHTTP500; eScholarship PDF response was empty; neither counted as full text. Failed pypdf extraction replaced by successful PyMuPDF extraction. PubMed challenge not bypassed.",
+ "Magnetite primary author-upload main text read through public ResearchGate browser extraction, including captions but not figure pixels/supplements. Earlier adjacent Science article and later citing works are excluded. Primary abstract quotes freshly matched; DOI cache editorial summary is not primary evidence. All caches preserved, no copyrighted full text added.",
+ "Acid-soil primary abstract and limited preview/caption only; complete main/supplement text not read. Existing mediation directions remain explicitly uncertain, phosphorus PARTIAL, measured field yield SUPPORT. Commentary is not primary mechanistic evidence.",
+ "Duckweed fresh complete PMC main text and embedded captions read; no supplement/raw-data/figure-pixel review. Positive greenhouse effects retained, individual chemical necessity and abundance dynamics unresolved. Internal auxin/abundance/duckweed-comparison reporting conflicts not adjudicated. No field efficacy or safety certification.",
+ "All923baselinecaches and456otherrecords preserved. Four histories appended. All non-graph raw blocks and canonical taxonomy labels/IDs unchanged. Magnetite community participants explicitly name the two existing taxa, not direct cross-feeding beneficiaries.",
+ "Ignored/hidden-inclusive local dedup excludes.git/docs/site/references_cache; relevant caches separately inspected. All-state issue titles/bodies refreshed, matching23/319/1093 previously read. Comments/PRs not exhaustively searched. Repairs1755-1758 close only after protected-main merge; non-graph1759 stays open.",
+ "Self-adversarial review is not independent approval or corpus completion. Existing loader1703 and DOI-case1091 limitations remain. Prior denied/pending Edison scopes unchanged. Validation and publication results are not preasserted."
+ ],
+ "reference_validator_version": "0.1.7",
+ "snippet_counts_by_record": {
+ "kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml": {
+ "MATCH": 14,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml": {
+ "MATCH": 23,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml": {
+ "MATCH": 10,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml": {
+ "MATCH": 14,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ }
+ },
+ "unchanged_record_files": 456,
+ "unchanged_cache_files": 923,
+ "unchanged_raw_blocks": 56,
+ "cache_changes": [],
+ "edison": {
+ "required_for_this_repair": false,
+ "required_for_unresolved_extensions": false,
+ "provider_submissions": 0,
+ "credits_spent": 0,
+ "dry_runs": [],
+ "repair_scope": "Bound existing nodes/directions and remove assembly node; no new topology."
+ },
+ "primary_artifacts": {
+ "/private/tmp/communitymech-batch94/acid-comment-metadata.json": "c3cc80bd39a4cb2528f61d352a0cb23a505f60b4b1ccbc519a071b41c7fcaa77",
+ "/private/tmp/communitymech-batch94/acid-comment-primary.txt": "3ff1c8fb2c018fdd51dcf84006acd524bd3ff5ee5c495a1eba6b5331d3475b7a",
+ "/private/tmp/communitymech-batch94/acid-metadata.json": "8299785dd61651b5e594573938f549be365c1cd89d190e0ad24d28cbd5f7eec7",
+ "/private/tmp/communitymech-batch94/acid-primary.txt": "c4dd821c9cf3d375b8f82c9d1f370f4c8613883e31b9289d380d161b92905bba",
+ "/private/tmp/communitymech-batch94/baseline.json": "5b8d914876013bce95556abbc0dbd324dbd3d435e6276498b5f5e8336645f364",
+ "/private/tmp/communitymech-batch94/created-issues.json": "deef6940b0cd869f23c18809775d6fb300f941543de3c143cf6fdbca4f343824",
+ "/private/tmp/communitymech-batch94/duckweed-metadata.json": "1c28000d9e1c56c5e3cccdafe73237865050ed0ed6897873d82565de7f6c6089",
+ "/private/tmp/communitymech-batch94/duckweed-primary.txt": "089b7980eb7b16119f882b54ece45e015e37ea2e513c0ff7d4b1b9ca6cc1959a",
+ "/private/tmp/communitymech-batch94/duckweed-primary.xml": "0c09c4a21155bf940c79786bf8b7504b60978162f80b4d12cb3b83128c203269",
+ "/private/tmp/communitymech-batch94/duckweed-tables.txt": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
+ "/private/tmp/communitymech-batch94/ecoli-metadata.json": "95bdc0c7d7ff0c8e8a8852d6c43b45ef2921b965d86a497ea66011261b8c49a7",
+ "/private/tmp/communitymech-batch94/ecoli-nsf-primary.pdf": "601baef2a307eb710410f0f928abc53bf3b7ece44730a3d264a7df704f27ff51",
+ "/private/tmp/communitymech-batch94/ecoli-nsf-primary.txt": "92083071439b8bb5e68613dfd43c3c3d9b38469094a6ef41c20f2cbd0c01e6de",
+ "/private/tmp/communitymech-batch94/ecoli-nsf-receipt.json": "bd6d8f9c3f2bcf5f055760e6a3846bc9d9d9f6a5e12d3b829c359605f37fd0d0",
+ "/private/tmp/communitymech-batch94/ecoli-page-1.png": "34a4d6634587f9f573edc90abc9b406932078bcba8ea4afe78155ddde39f6443",
+ "/private/tmp/communitymech-batch94/ecoli-page-10.png": "fd367e930f439225f2ec516c172a140bbee83a9589183e295ba7ba06a40457c7",
+ "/private/tmp/communitymech-batch94/ecoli-page-2.png": "982a1bb7b5f6b53e1ccad60022d1437e50fee0876ae5503dfde626b6ebcdb1df",
+ "/private/tmp/communitymech-batch94/ecoli-primary.pdf": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "/private/tmp/communitymech-batch94/ecoli-primary.txt": "1f25e390e18d822fc5a894aa1390d8699addd14a9349d1a0805e7c2300297fcb",
+ "/private/tmp/communitymech-batch94/issue-dedup-current.json": "b8eff0bf8cdb0b28b58b828dfc67b8bdf7d4427811c66eb925386650ed9bcddd",
+ "/private/tmp/communitymech-batch94/issue-matches.json": "507e31c5e9a7c2530b79377e3fd236490ba067d710f3f30629e4bc191cb03682",
+ "/private/tmp/communitymech-batch94/issues.json": "4e70f0f1906d544d3c14185dbd0f634f700bc27dffb82464e4c6de7fa7d3c9b3",
+ "/private/tmp/communitymech-batch94/local-matches.txt": "74e40eee716901b0a81d7ea1ab077c5afd4933f39d81d92104a397a3906d6fbd",
+ "/private/tmp/communitymech-batch94/magnetite-main-extraction.json": "4386bf0bc781d567acbf202ce63efc175029d4d48cb173f52f0eee72142dc154",
+ "/private/tmp/communitymech-batch94/magnetite-main.txt": "bd477ee686572c728a6d8c84159a8708d67e0306d71b7af420352c072c9aae82",
+ "/private/tmp/communitymech-batch94/magnetite-metadata.json": "7d725a2d04caa0ba7f25af946cde3cfdcd228de2049242bebc81e7693f374e2d",
+ "/private/tmp/communitymech-batch94/magnetite-primary.txt": "3021c48449f0688e075234a3ef026fb883fc82052d8eebdc4d20392af264c65f",
+ "/private/tmp/communitymech-batch94/magnetite-web-middle.txt": "2564ca9864c24a5c9c1c2e1f6e61ac0b5b9483be3361ce65f136330a98b336c7",
+ "/private/tmp/communitymech-batch94/magnetite-web-rest.txt": "258a850a65456c2c7f671adcda2248a1948cda1fd0e8a1c9c9162ab2934a835c",
+ "/private/tmp/communitymech-batch94/magnetite-web-start.txt": "4ac522653efe85878009cb96b2f961cc23b92a57274321b0e767920df4a4cb62",
+ "/private/tmp/communitymech-batch94/primary-manifest.json": "6e6beb07dab8796ccef744b9a7668446da58e2d8f3a7b171aa7f03149b0aacdd",
+ "references_cache/PMID_25814583.md": "be347d43d79206ebe41f7824a63c2b4cc82262ed1cf734b868fa6ff2daa60a02",
+ "references_cache/PMID_32788711.txt": "3362c86a34ae197355b8bb00d99c27436ae048ac7d94e85a184f4a47cea9601a",
+ "references_cache/PMID_37783790.txt": "30293162f06e10a2e0affd5a3cd76aa6a7e9d9de5fc84f36cdc2811b019960bd",
+ "references_cache/PMID_41736136.md": "2fabc3418ce2497156923fe85127fa40082a70e2529b8e84bf0858509fad8e9a"
+ },
+ "immutable_prior_history_and_decision_files": 752,
+ "primary_graph_snippet_proof": {
+ "graph_quotations": 17,
+ "new_discussion_quotations": 4,
+ "fresh_primary_matches": 21,
+ "retained_nodes": 14,
+ "removed_nodes": 1,
+ "retained_arrows": 13,
+ "removed_arrows": 1,
+ "new_nodes_or_directions": 0,
+ "scope": "Two primary complete main texts plus fresh PMC main text; acid primary abstract only. All snippets literal-normalized matched; not automatic entailment or figure-pixel certification."
+ },
+ "network_delta": {
+ "existing_findings_preserved": 56,
+ "added_findings": {},
+ "removed_findings": {},
+ "interpretation": "One assembly node/arrow removed;14nodes13directions retained. All56warnings unchanged,zero structural defects."
+ },
+ "render_determinism": true,
+ "published_description_coverage": {
+ "pages": 456,
+ "nodes": 1404,
+ "arrows": 571
+ },
+ "render_scope": "Deterministic rendering and exact HTML-description parser, not browser screenshots; postcommit docs-current separately required.",
+ "participant_census": {
+ "measurements": {
+ "baseline": {
+ "records": 460,
+ "with_community_level": 397,
+ "mixed": 126,
+ "community_level_only": 271,
+ "taxa": 1525,
+ "credited_solely_by_the_rule": 1251
+ },
+ "current": {
+ "records": 460,
+ "with_community_level": 397,
+ "mixed": 125,
+ "community_level_only": 272,
+ "taxa": 1525,
+ "credited_solely_by_the_rule": 1253
+ }
+ },
+ "delta": {
+ "records": 0,
+ "with_community_level": 0,
+ "mixed": -1,
+ "community_level_only": 1,
+ "taxa": 0,
+ "credited_solely_by_the_rule": 2
+ },
+ "interpretation": "Magnetite redox steps are now community-scoped with both existing taxa named. This legacy connectivity census is not evidence of ecological mechanism or added community membership."
+ },
+ "full_corpus_snippet_counts": {
+ "records": 460,
+ "total": 8937,
+ "categories": {
+ "MATCH": 8802,
+ "RENDERING": 20,
+ "ASSEMBLED": 1,
+ "WEAK": 0,
+ "MISMATCH": 38,
+ "NOCONTENT": 76
+ }
+ },
+ "full_corpus_snippet_audit_caveat": "Both-root informational audit exit0 is not clean-corpus certification; literal matches are not entailment.",
+ "corpus": {
+ "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.",
+ "records": 460,
+ "nodes": 1418,
+ "edges": 579,
+ "records_without_nodes": 8,
+ "records_without_edges": 174,
+ "review_status_counts": {
+ "needs_research": 48,
+ "pending": 120,
+ "reviewed": 292
+ },
+ "structural_defects": []
+ },
+ "tested_file_sha256": {
+ "reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml": "1a3f0d13141bfcad2d7e5b67ea8f7997b48ef2e29d83e87c2bbd7a049f19df8b",
+ "tests/test_causal_review_batch94.py": "6ab007d1b2cedbb01f716dcd79e48540820d728b34d4d0dc0db5734685150b2d",
+ "tests/test_participating_taxa.py": "b9b7dcf113a826071d3c40ebec416d29d05558ba8e242ccce42e75a8e9868efd",
+ "reports/causal_graph_review/README.md": "e182a508947486d4720cff4797c432aaf61fd148e78d9bcb07eaae345fe2726f",
+ "reports/causal_graph_review/cache-provenance-20261007-batch94.json": "bef11b8060a53bedd74dd9b80737b329401ca014a4bbf14b2e148b79510300bc",
+ "kb/communities/Rhodopseudomonas_Ecoli_CrossFeeding_Coculture.yaml": "4c797dbaa4c2fe4d6627839b90da2a1b4adb5e0185bec3606120860268913ad3",
+ "kb/communities/Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml": "21ea769fcc97b50c66ad0fd3ba76cca647ae23fde4a34ce2b7d1aea81bc69378",
+ "kb/communities/Rice_Acid_Soil_Bioinoculant_SynCom.yaml": "c5ad3b426974ce6bb56386d0a624bbf325f9764a86afdd3b1f59989196033113",
+ "kb/communities/Rice_Duckweed_Bacillus_SynCom.yaml": "6d924ddcd1a9baf67a149de2d91aaeacafdd57113f5df61b97c5ec04e5e09a4e"
+ },
+ "pre_research_baseline": {
+ "base_commit": "65716e7454538e9749b65bcbbb6fc233b6c6b8f8",
+ "base_tree": "b3c1c6c0fe29cbb70f0d74d34b0ab3a420a82f73",
+ "research_worktree": "/private/tmp/communitymech-causal-batch93",
+ "checks": [
+ {
+ "name": "rank",
+ "command": [
+ "just",
+ "rank-causal-graphs"
+ ],
+ "exit_code": 0,
+ "expected_exit_code": 0,
+ "log": "/private/tmp/communitymech-batch94/baseline-rank.log",
+ "sha256": "4ec622593f9e171fe381ff01d4d22d6e51f2d2fc530784800e836c53a600a910"
+ },
+ {
+ "name": "just-network",
+ "command": [
+ "just",
+ "audit-network-json"
+ ],
+ "exit_code": 2,
+ "expected_exit_code": 2,
+ "log": "/private/tmp/communitymech-batch94/baseline-just-network.log",
+ "sha256": "8595db43420d3f0a01c57acd6ad733a531a72e962486d20b4e1c2840dda55bff"
+ },
+ {
+ "name": "network",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "communitymech.cli",
+ "audit-network",
+ "--json"
+ ],
+ "exit_code": 1,
+ "expected_exit_code": 1,
+ "log": "/private/tmp/communitymech-batch94/baseline-network.log",
+ "sha256": "8febc2a966f5c2b51cd59095a8877c8773cd1e9383e5214bcdc3832c5858c097"
+ },
+ {
+ "name": "downstream",
+ "command": [
+ "rg",
+ "--no-ignore",
+ "--hidden",
+ "-n",
+ "downstream:",
+ "kb/communities",
+ "data/isolates",
+ "--glob",
+ "*.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_code": 0,
+ "log": "/private/tmp/communitymech-batch94/baseline-downstream.log",
+ "sha256": "2305d2b1ee24ff92da83d8dd4ea64fc17becdad1996cbf862b9945493fae6561"
+ }
+ ],
+ "baseline_sha256": "5b8d914876013bce95556abbc0dbd324dbd3d435e6276498b5f5e8336645f364"
+ },
+ "reference_validator_caveat": "Four full-record CLI and local snippet checks executed on macOS,not Linux; DOI-cache casing issue1091 remains. Literal matches do not establish entailment; acid-soil primary is abstract bounded. CLI Total checks counts issues,not executed checks. Loader1703 not certified.",
+ "status": "verified_existing_graph_repairs_with_source_access_limits",
+ "total_recorded_gate_outputs": 42
+}
diff --git a/tests/test_causal_review_batch94.py b/tests/test_causal_review_batch94.py
new file mode 100644
index 000000000..c438457f6
--- /dev/null
+++ b/tests/test_causal_review_batch94.py
@@ -0,0 +1,136 @@
+"""Bound nutrient exchange and plant benefits to the evidence actually available."""
+
+import hashlib
+from pathlib import Path
+
+import yaml
+
+ROOT = Path(__file__).resolve().parents[1]
+LEDGER = ROOT / "reports/causal_graph_review/decisions/20261007-four-records-batch94.yaml"
+
+
+def records():
+ ledger = yaml.safe_load(LEDGER.read_text())
+ rows = ledger["records"]
+ return ledger, rows, [yaml.safe_load((ROOT / r["path"]).read_text()) for r in rows]
+
+
+def test_reciprocal_exchange_directions_and_strain_context():
+ _, _, docs = records()
+ nitrogen, carbon, combined = docs[0]["ecological_interactions"]
+ assert all(n["interaction_type"] == "CROSS_FEEDING" for n in [nitrogen, carbon, combined])
+ assert (
+ nitrogen["source_taxon"]["term"]["id"]
+ == carbon["target_taxon"]["term"]["id"]
+ == "NCBITaxon:1076"
+ )
+ assert (
+ nitrogen["target_taxon"]["term"]["id"]
+ == carbon["source_taxon"]["term"]["id"]
+ == "NCBITaxon:562"
+ )
+ assert "recipient adaptation" in nitrogen["description"]
+ assert "not a universal wild-type phenotype" in combined["description"]
+ assert [n["downstream"][0]["target"] for n in [nitrogen, carbon]] == [combined["name"]] * 2
+
+
+def test_carbon_transfer_excludes_unverified_products():
+ _, _, docs = records()
+ carbon = docs[0]["ecological_interactions"][1]
+ assert "acetate, lactate and succinate" in carbon["description"]
+ assert "excludes formate" in carbon["description"]
+ assert "ethanol excretion is not evidence" in carbon["description"]
+ assert "exception of formate" in carbon["evidence"][0]["snippet"]
+
+
+def test_magnetite_real_cycle_and_charge_direction():
+ _, _, docs = records()
+ sharing, oxidation, reduction, battery = docs[1]["ecological_interactions"]
+ assert oxidation["downstream"][0]["target"] == reduction["name"]
+ assert reduction["downstream"][0]["target"] == oxidation["name"]
+ assert "discharges" in oxidation["downstream"][1]["description"]
+ assert "charges magnetite with electrons" in reduction["downstream"][1]["description"]
+ assert "External light and electron-donor supply" in battery["description"]
+ assert sum(len(n.get("downstream", [])) for n in [sharing, oxidation, reduction, battery]) == 5
+
+
+def test_magnetite_community_scope_and_primary_provenance():
+ _, _, docs = records()
+ for node in docs[1]["ecological_interactions"]:
+ assert node["scope"] == "COMMUNITY_LEVEL"
+ assert "interaction_type" not in node
+ assert "source_taxon" not in node and "target_taxon" not in node
+ assert {t["term"]["id"] for t in node["participating_taxa"]} == {
+ "NCBITaxon:395960",
+ "NCBITaxon:35554",
+ }
+ assert all(e["reference"] == "PMID:25814583" for e in node["evidence"])
+ assert "GO:0006826" not in str(node)
+ assert "does not require obligacy" in docs[1]["discussions"][0]["rationale"]
+
+
+def test_acid_soil_measured_yield_and_uncertain_mediation():
+ _, _, docs = records()
+ doc = docs[2]
+ carbon, mitigation, phosphorus, outcome = doc["ecological_interactions"]
+ assert all("Assembly" not in n["name"] for n in doc["ecological_interactions"])
+ assert "assembly_strategy" in doc["engineering_design"]
+ assert phosphorus["description"].startswith("HYPOTHESIZED:")
+ assert phosphorus["evidence"][0]["supports"] == "PARTIAL"
+ assert "26.36%" in outcome["description"]
+ assert outcome["evidence"][0]["supports"] == "SUPPORT"
+ assert all(
+ e["description"].startswith(("HYPOTHESIZED:", "PARTIAL:"))
+ for n in [carbon, mitigation, phosphorus]
+ for e in n["downstream"]
+ )
+ assert "not the complete primary main text" in doc["discussions"][0]["rationale"]
+
+
+def test_duckweed_efficacy_is_not_chemical_or_field_certification():
+ _, _, docs = records()
+ growth, control, outcome = docs[3]["ecological_interactions"]
+ assert all("interaction_type" not in n for n in [growth, control, outcome])
+ assert growth["evidence"][0]["supports"] == "PARTIAL"
+ assert control["evidence"][0]["supports"] == "SUPPORT"
+ assert "70%" in control["description"]
+ assert all(n["downstream"][0]["description"].startswith("PARTIAL:") for n in [growth, control])
+ assert all(m["term"]["id"] != "CHEBI:16982" for m in growth["metabolites"])
+ assert "field efficacy" in outcome["description"]
+ gap = docs[3]["discussions"][0]
+ assert "were not measured" in gap["rationale"] and "conflicts" in gap["rationale"]
+ assert "genetic necessity" in gap["evidence"][0]["snippet"]
+
+
+def test_complete_dispositions_without_new_topology():
+ _, rows, docs = records()
+ assert sum(len(r["node_decisions"]) for r in rows) == 14
+ assert sum(len(r["removed_node_decisions"]) for r in rows) == 1
+ assert sum(len(r["edges_before"]) for r in rows) == 14
+ assert sum(len(r["removed_edge_decisions"]) for r in rows) == 1
+ assert sum(len(r["retained_edge_decisions"]) for r in rows) == 13
+ for row, doc in zip(rows, docs, strict=True):
+ assert {r["node"] for r in row["node_decisions"]} == {
+ n["name"] for n in doc["ecological_interactions"]
+ }
+ assert not row["renamed_nodes"]
+ for decision in row["retained_edge_decisions"]:
+ assert all(decision["before"][k] == decision["after"][k] for k in ["source", "target"])
+ assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"]
+
+
+def test_source_history_and_unresolved_scope():
+ ledger, rows, docs = records()
+ checks = ledger["snippet_checks"] + ledger["discussion_snippet_checks"]
+ assert len(checks) == 21
+ assert all(c["cache_matched"] and c["independent_primary_match"] for c in checks)
+ assert ledger["primary_graph_snippet_count"] == 17 and ledger["cache_changes"] == []
+ assert ledger["issues"] == [1755, 1756, 1757, 1758]
+ assert ledger["unresolved_non_graph_issues"] == [1759]
+ assert not ledger["independent_approval"]
+ assert ledger["edison"]["provider_submissions"] == ledger["edison"]["credits_spent"] == 0
+ assert ledger["edison"]["dry_runs"] == []
+ for row, doc in zip(rows, docs, strict=True):
+ assert row["curation_events_added"] == len(row["history_files"]) == 1
+ assert doc["curation_history"][-1]["llm_assisted"]
+ assert (ROOT / row["history_files"][0]).is_file()
diff --git a/tests/test_participating_taxa.py b/tests/test_participating_taxa.py
index 9284dd5db..70c337d1c 100644
--- a/tests/test_participating_taxa.py
+++ b/tests/test_participating_taxa.py
@@ -385,6 +385,7 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example):
"Rammelsberg_Cobalt_Nickel_Tailings.yaml",
"Rhodococcus_Acinetobacter_RAMC_Mixed_Plastic_Upcycling_SynCom.yaml",
"Rhodococcus_Pseudomonas_PPOW_Consortium.yaml",
+ "Rhodopseudomonas_Geobacter_Magnetite_Redox_Coculture.yaml",
"Rifle_Aquifer_Bioanode_EET_Community.yaml",
"SF356_Cellulose_Degrader.yaml",
"SO3_BS3_Lithium_Battery_Bioleaching_Consortium.yaml",