diff --git a/docs/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.html b/docs/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.html
index cb4d2b4c9..6d877edbe 100644
--- a/docs/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.html
+++ b/docs/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.html
@@ -616,11 +616,10 @@
"confers colonization resistance against Salmonella enterica serovar Typhimurium"
+ "provided colonization resistance against S. Tm infection, albeit not to the degree of a conventional complex microbiota."
@@ -652,9 +645,8 @@ C. cellulolyticum uses cellobiose as the carbon and energy source and produces metabolic byproducts that support D. vulgaris Hildenborough and G. sulfurreducens.
+ Cellobiose fermentation by C. cellulolyticum supported the maintained three-species anaerobic chemostat community. Cellobiose depletion, acetate accumulation, sulfate consumption and fumarate reduction support trophic coupling. Individual metabolite allocations in the carbon/electron-flow model remain estimates, not independently traced interspecies fluxes; the exact hydrogen-versus-ethanol contribution to D. vulgaris was unresolved.
G. sulfurreducens depends on C. cellulolyticum metabolic products while fumarate is supplied as its electron acceptor.
+ G. sulfurreducens persisted with C. cellulolyticum fermentation products and supplied fumarate. Fumarate depletion, residual acetate and succinate production support fumarate-linked respiration and acceptor limitation. Acetate use and its species-specific allocation are interpreted through the metabolic model; the source does not directly trace every exchange or establish absolute exclusion of alternate interspecies routes.
"growth of C. cellulolyticum and D. vulgaris were electron donor limited"
@@ -947,7 +939,7 @@ "G. sulfurreducens was electron acceptor limited"
@@ -970,11 +962,9 @@ The curated donor-to-partner causal edges rest on the abstract statement that the partners "derived carbon and energy from the metabolic products" of C. cellulolyticum; the primary full text (doi:10.1186/1471-2180-10-149) was not retrievable, so the exact exchanged metabolites and any sulfate/fumarate-removal or inhibitor perturbation evidence remain unresolved. Products reported for a related two-species C. cellulolyticum / G. sulfurreducens fuel-cell system (acetate, ethanol, H2) must NOT be imported here without exact-system verification.
-
+ The complete exact-system primary main text is now inspected, superseding the prior full-text-access limitation. It reports bulk cellobiose, acetate, fumarate/succinate and sulfate measurements, qPCR and microscopy supporting the maintained trophic community. Hydrogen and ethanol transfer could not be distinguished, and species-specific carbon/electron allocations were modeled. The later OptCom study of the same composition predicts a different hydrogen/ethanol allocation under biomass objectives and an assumed hydrogen recipient; those predictions are not new measured transfer. Elevated-fumarate upsets and possible succinate inhibition remain associated observations, not selective perturbation proof. No products from the separate two-species fuel-cell system are imported, and the modeled fourth-member extension is not part of this community.
D. vulgaris and G. sulfurreducens derived carbon and energy from the metabolic products
- The cross-feeding is stated only at the level of "metabolic products" without naming the exact exchanged compounds — the basis for filing this as a knowledge gap.
+ Supports trophic dependence; the now-inspected main text constrains the unresolved flux allocation rather than leaving all named products unknown.
@@ -1453,7 +1443,7 @@ The R2A community FBA model predicted that dominant Pantoea sp. YR343 exports more metabolite classes than it receives from the other R2A community members.
+ HYPOTHESIZED - In the three-member R2A community FBA model, Pantoea sp. YR343 exports predicted organic acids, purine derivatives and biogenic amines that could support other modeled members, Pseudomonas sp. GM17 and Sphingobium sp. AP49. This is a constrained, gapfilled model conditioned on endpoint 16S proportions; pathway proteins support metabolic capacity, not measured exchange flux or proof that export caused long-term persistence.
-
In MOPS-glucose minimal medium, Pseudomonas sp. GM17 dominated while Variovorax sp. CF313, Rhizobium sp. CF142, and Sphingobium sp. AP49 persisted in stable proportions.
+
In MOPS-glucose, GM17 dominated while CF313, CF142 and AP49 persisted in consistent relative proportions from approximately passage 4. This positive coexistence result does not establish obligate mutualism or niche partitioning. The paper also predicts MOPS-specific exchanges, but their missing graph structure requires separate causal research and must not be borrowed from the distinct R2A model.
@@ -1138,9 +1130,8 @@
Evidence
-
In R2A complex medium, Pantoea sp. YR343, Pseudomonas sp. GM17, and Sphingobium sp. AP49 dominated the 16S profile, while metaproteomics also detected notable viable Bacillus sp. BC15.
+
In R2A, YR343, GM17 and AP49 dominated the 16S profile, with stable coexistence reported from passage 10 and YR343 most abundant after 15 passages. Metaproteomics recovered notable BC15 proteins and different YR343 proportions. Sporulation-related detection bias and relic DNA were proposed explanations; protein-relative abundance is not a direct viable-cell count or proof of a uniform four-strain abundance ranking.
@@ -1249,6 +1240,25 @@
Associated Datasets
+
+ Knowledge gaps & discussions (1)
+
+
+
+ KNOWLEDGE_GAP
+ OPEN
+ Which exact-system measurements distinguish the observed outcome from the proposed mechanism?
+
+
Keep the controlled medium-dependent assembly and persistent survivor patterns, including slow-growing CF142 in MOPS. Separate the ten-strain experimental inoculum from the four-member MOPS and three-member R2A models. Endpoint proportions constrain the FBA model, so model agreement is not an independent demonstration of assembly causation. Metaproteomics supports pathways but does not measure exchange flux. Agar inhibition and liquid coexistence can differ because of positive interactions or culture conditions; neither explanation was selectively isolated. Purine alkaloid and aromatase inhibitor are not valid equivalents for the two predicted generic metabolite classes, so those groundings are removed without inventing specific compounds. The omitted MOPS exchange structure remains needs_research pending scoped causal research; prior removal of analysis-workflow arrows remains intact.
+
+
Attaches to: ecological_interactions#Medium-Dependent Serial-Passage Selection, ecological_interactions#Pairwise Growth Phenotypes on R2A Agar, ecological_interactions#Pantoea-Centered R2A Metabolite Export, ecological_interactions#MOPS Minimal-Medium Four-Strain Coexistence, ecological_interactions#R2A Pantoea-Dominated Stable Community
+
+
+
+
+
+
+
@@ -1579,7 +1589,7 @@
Evidence
(function() {
var intId = "interaction:0";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
@@ -1592,7 +1602,7 @@
Evidence
nodes.push({
id: intId,
- label: "Medium-Dependent Stable Community Assembly",
+ label: "Medium-Dependent Serial-Passage Selection",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1607,7 +1617,7 @@
Evidence
(function() {
var intId = "interaction:1";
- var intType = "COMPETITION";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
@@ -1620,7 +1630,7 @@
Evidence
nodes.push({
id: intId,
- label: "Selective Antagonism During Assembly",
+ label: "Pairwise Growth Phenotypes on R2A Agar",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1654,10 +1664,6 @@
Evidence
metabolites.push("organic acid");
- metabolites.push("purine derivative");
-
- metabolites.push("biogenic amine");
-
var processes = [];
@@ -1681,16 +1687,11 @@
Evidence
- var tgtKey = "Sphingobium sp. AP49";
- if (taxonNodeIds[tgtKey]) {
- links.push({ source: intId, target: taxonNodeIds[tgtKey] });
- }
-
})();
(function() {
var intId = "interaction:3";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
@@ -1735,7 +1736,7 @@
Evidence
(function() {
var intId = "interaction:4";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
diff --git a/history/records/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium/2026-10-07T044213Z-codex-ac464a.yaml b/history/records/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium/2026-10-07T044213Z-codex-ac464a.yaml
new file mode 100644
index 000000000..55236b65b
--- /dev/null
+++ b/history/records/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium/2026-10-07T044213Z-codex-ac464a.yaml
@@ -0,0 +1,25 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml
+ slug: Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium
+session:
+ id: 2026-10-07T044213Z-codex-ac464a
+ timestamp: '2026-10-07T04:42:13Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1644
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Qualify the guild handoff and introductory evidence; preserve measured redox-dependent
+ performance while missing outcome nodes remain research work.
+ details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
diff --git a/history/records/OMM12_Gnotobiotic_Mouse_Gut_Community/2026-10-07T044213Z-codex-8f671e.yaml b/history/records/OMM12_Gnotobiotic_Mouse_Gut_Community/2026-10-07T044213Z-codex-8f671e.yaml
new file mode 100644
index 000000000..87c5db11f
--- /dev/null
+++ b/history/records/OMM12_Gnotobiotic_Mouse_Gut_Community/2026-10-07T044213Z-codex-8f671e.yaml
@@ -0,0 +1,27 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml
+ slug: OMM12_Gnotobiotic_Mouse_Gut_Community
+session:
+ id: 2026-10-07T044213Z-codex-8f671e
+ timestamp: '2026-10-07T04:42:13Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1645
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain the repeat-dose intervention and bounded improvement arrow without a biotic-facilitation
+ classification.; Retain resistance while distinguishing 12-member and expanded-community
+ outcomes; remove unisolated competition annotation.; Preserve multisite establishment
+ with qPCR/detection limits; remove the context-only resistance arrow.
+ details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
diff --git a/history/records/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model/2026-10-07T044214Z-codex-34f478.yaml b/history/records/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model/2026-10-07T044214Z-codex-34f478.yaml
new file mode 100644
index 000000000..e0cf5b7e4
--- /dev/null
+++ b/history/records/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model/2026-10-07T044214Z-codex-34f478.yaml
@@ -0,0 +1,29 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml
+ slug: ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model
+session:
+ id: 2026-10-07T044214Z-codex-34f478
+ timestamp: '2026-10-07T04:42:14Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1646
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain both donor-to-partner arrows using full-text measurements while separating
+ modeled flux allocations.; Replace reciprocal-syntrophy overclaim with experimentally
+ supported trophic dependence and unresolved donor proportions.; Retain fumarate-linked
+ dependence and repair the fumarate grounding without claiming directly traced acetate
+ flux.; Bound inferred donor/acceptor limitation and possible succinate effects; update
+ the stale full-text-access discussion.
+ details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
diff --git a/history/records/ORNL_PMI_Populus_PD10_SynCom/2026-10-07T044214Z-codex-9249b5.yaml b/history/records/ORNL_PMI_Populus_PD10_SynCom/2026-10-07T044214Z-codex-9249b5.yaml
new file mode 100644
index 000000000..649a6736f
--- /dev/null
+++ b/history/records/ORNL_PMI_Populus_PD10_SynCom/2026-10-07T044214Z-codex-9249b5.yaml
@@ -0,0 +1,30 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml
+ slug: ORNL_PMI_Populus_PD10_SynCom
+session:
+ id: 2026-10-07T044214Z-codex-9249b5
+ timestamp: '2026-10-07T04:42:14Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1647
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain two condition-to-assembly arrows while distinguishing MOPS and R2A stabilization
+ times.; Preserve agar inhibition and promotion without treating them as demonstrated liquid-assembly
+ mechanisms.; Retain explicitly hypothesized R2A support arrow; bound FBA evidence, include
+ the modeled partners and remove two incorrect chemical groundings.; Preserve four-strain
+ MOPS coexistence without niche overclaim; missing exchange topology remains research work.;
+ Preserve R2A survivor and BC15 protein results without equating assays or proving viable-cell
+ counts.
+ details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
diff --git a/kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml b/kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml
index ce9269001..73460ee9e 100644
--- a/kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml
+++ b/kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml
@@ -125,12 +125,12 @@ taxonomy:
Supports Legionella-affiliated lower-abundance bins as monitored
biosafety-relevant members of the consortium.
ecological_interactions:
-- name: Nitrifier Guild Metabolic Handoff
- description: >
- The consortium contains ammonia-oxidizing and nitrite-oxidizing guilds
- whose sequential nitrogen transformations were monitored under aerobic and
- anoxic redox conditions; Nitrosospira represented the dominant AOB MAG and
- Nitrobacter represented an NOB MAG in the starting material.
+- name: Putative Nitrifier Guild Metabolic Handoff
+ description: PARTIAL - Starting-material Nitrosospira and Nitrobacter MAGs support ammonia- and nitrite-oxidizing
+ guild potential, but do not resolve an active, exclusive donor-recipient flux. Aerobic cultures showed consistent
+ net ammonia removal and nitrate accumulation only after about day 30; anoxic cultures accumulated ammonia. These
+ measured consortium outcomes do not demonstrate nitrification under anoxia or assign the aerobic flux solely
+ to the two starting dominant guilds.
interaction_type: CROSS_FEEDING
scope: COMMUNITY_LEVEL
participating_taxa:
@@ -156,15 +156,21 @@ ecological_interactions:
id: CHEBI:17632
label: nitrate
evidence:
+ - reference: PMID:41457319
+ supports: PARTIAL
+ evidence_source: OTHER
+ snippet: 'ammonia-oxidizing bacteria (AOB) and nitrite-oxidizing bacteria (NOB) that rely on metabolic handoffs
+ to carry out nitrification
+
+ '
+ explanation: This introductory account of nitrifier guild handoffs supplies biological background, not a direct
+ transfer assay for the two MAGs in this consortium.
- reference: PMID:41457319
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: >
- ammonia-oxidizing bacteria (AOB) and nitrite-oxidizing bacteria (NOB)
- that rely on metabolic handoffs to carry out nitrification
- explanation: >
- Supports the curated community-level nitrifier guild interaction in the
- wastewater consortium.
+ snippet: All cultures accumulated ammonia over 4 weeks, with only aerobic cultures reducing ammonia levels thereafter.
+ explanation: Supports the redox-dependent consortium performance boundary; it does not identify a taxon-resolved
+ handoff.
growth_media:
- name: synthetic pond water aerobic nitrifying culture
atmosphere: AEROBIC
@@ -265,3 +271,27 @@ external_resources:
evidence_source: COMPUTATIONAL
snippet: "DOI: 10.1128/aem.01984-25"
explanation: Supports the DOI assigned to the source article.
+discussions:
+- discussion_id: nitrifier_redox_performance_and_member_attribution
+ prompt: Which exact-system measurements distinguish the observed outcome from the proposed mechanism?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ posed_by: codex
+ posed_date: '2026-10-07'
+ rationale: Retain the observed aerobic ammonia-removal outcome after the lag, anoxic ammonia accumulation, and
+ positive nitrogen-cycling gene potential. An initial aerobic ammonia decrease was followed by rebound before
+ consistent net removal after day 30. Nitrosospira and Nitrobacter declined in aerobic abundance and mapped RNA;
+ Nitrobacter nitrogen-gene RNA was not detected, and other populations could contribute. Gene presence and amoC
+ transcription alone do not establish complete ammonia-monooxygenase activity. Periodic oxygen supply, pH change
+ and alternative nitrogen sources are proposed contributors, not isolated mediators. The bulk ammonia assay does
+ not distinguish NH3 from NH4+. Missing redox-dependent endpoint nodes require separate source-backed causal
+ research; the existing one-node graph remains needs_research.
+ attaches_to:
+ - ecological_interactions#Putative Nitrifier Guild Metabolic Handoff
+curation_history:
+- timestamp: '2026-10-07T04:42:12Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Qualify the guild handoff and introductory evidence; preserve measured redox-dependent performance while
+ missing outcome nodes remain research work. Issue #1644; reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml'
+ llm_assisted: true
diff --git a/kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml b/kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml
index 5acaa1b3d..d6d60f447 100644
--- a/kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml
+++ b/kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml
@@ -75,10 +75,11 @@ taxonomy:
explanation: Provides direct evidence from Table 2 for named OMM12 member strains.
ecological_interactions:
- name: Double-Dose OMM12 Engraftment
- description: A standardized frozen mixture of the 12 OMM strains can be
- gavaged into germ-free mice, and repeating the application 72 h after the
- initial inoculation improves stable community composition and engraftment.
- interaction_type: COLONIZATION_FACILITATION
+ description: A second frozen OMM12 inoculum application 72 h after the first improved establishment across the
+ participating germ-free mouse facilities, including more reliable detection of the slow-colonizing Muribaculum
+ intestinale YL27. This is a tested dosing-protocol improvement, not demonstrated biotic facilitation by one
+ member. Some strains remained below fecal qPCR detection in some samples, and the facility cohorts were not
+ a fully matched randomized comparison.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: interspecies interaction between organisms
@@ -87,22 +88,23 @@ ecological_interactions:
label: biological process involved in interspecies interaction between organisms
downstream:
- target: Reproducible Multi-Strain Intestinal Colonization
- description: The optimized double-dose frozen inoculum protocol enables
- reproducible de novo association of germ-free mice with the full OMM12
- synthetic community.
+ description: The repeat application after 72 h improved reproducibility of OMM12 establishment, particularly
+ YL27 detection, relative to the single-dose protocol. This supports a protocol-to-colonization effect in the
+ studied facility cohorts, not guaranteed detection of every strain or isolation of the effects of dose, timing
+ and gut redox.
evidence:
- reference: PMID:31998276
supports: SUPPORT
evidence_source: IN_VIVO
- snippet: We show that a second application of the OMM12 strains after 72 h leads to a
- more stable community composition than a single application.
- explanation: Supports the 72 h repeat-dose protocol as an OMM12 engraftment
- improvement.
+ snippet: We show that a second application of the OMM12 strains after 72 h leads to a more stable community
+ composition than a single application.
+ explanation: Supports the observed repeat-dose protocol improvement; neither all-12 detection in every sample
+ nor a specific member-mediated mechanism follows.
- name: Colonization Resistance Against Salmonella
- description: OMM12 was designed to provide conventional-like colonization resistance against Salmonella
- enterica serovar Typhimurium in gnotobiotic mice, making it useful for dissecting microbe-microbe and
- host-microbe mechanisms that prevent pathogen expansion.
- interaction_type: COMPETITION
+ description: The 12-member OMM12 community provided colonization resistance against Salmonella enterica serovar
+ Typhimurium in gnotobiotic mice, but less than a conventional complex microbiota. Conventional-like resistance
+ belongs to the expanded version with three added facultative anaerobic bacteria, not to this 12-member community.
+ The phenotype is retained without assigning a uniquely established competition mechanism.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: interspecies interaction between organisms
@@ -113,24 +115,22 @@ ecological_interactions:
- reference: PMID:27869789
supports: SUPPORT
evidence_source: IN_VIVO
- snippet: confers colonization resistance against Salmonella enterica serovar Typhimurium
- explanation: Supports pathogen-resistance as a primary ecological function of the designed community.
+ snippet: provided colonization resistance against S. Tm infection, albeit not to the degree of a conventional
+ complex microbiota.
+ explanation: The primary abstract explicitly supports resistance by the 12-member community and its lower degree
+ than conventional microbiota; the improved expanded community is a separate condition.
- name: Reproducible Multi-Strain Intestinal Colonization
- description: OMM12 can reproducibly colonize germ-free mice across different animal facilities, and
- individual strain abundances can be resolved by strain-specific qPCR. This makes the consortium a
- standardized model for comparing mouse microbiome experiments.
- interaction_type: COLONIZATION_FACILITATION
+ description: OMM12 was established in multiple germ-free mouse facilities, with strain-resolved fecal 16S rRNA
+ gene-copy qPCR monitoring. The repeat-dose protocol improved reproducibility and YL27 establishment, but some
+ other strains were undetected in some samples and facility differences persisted. Gene-copy counts per volume
+ of extracted DNA are not viable cell counts or uniformly fecal-mass-normalized abundance. Compositional reproducibility
+ alone does not establish functional equivalence or increased pathogen resistance.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: multi-organism process
term:
id: GO:0044419
label: biological process involved in interspecies interaction between organisms
- downstream:
- - target: Colonization Resistance Against Salmonella
- description: Stable multi-strain Oligo-MM12 colonization supplies the
- defined community context in which the consortium resists expansion of
- Salmonella enterica serovar Typhimurium.
evidence:
- reference: PMID:31998276
supports: SUPPORT
@@ -141,7 +141,8 @@ ecological_interactions:
supports: SUPPORT
evidence_source: IN_VIVO
snippet: Absolute abundance of each strain was determined by a strain-specific qPCR assay
- explanation: Supports strain-resolved monitoring of the defined community.
+ explanation: Supports strain-specific qPCR monitoring; the Methods normalize 16S gene copies to extracted DNA
+ volume, not viable cells, and fecal weight was not available for every sample.
environmental_factors:
- name: Germ-free mouse host
value: Axenic mice colonized with OMM12
@@ -203,3 +204,31 @@ growth_media:
evidence_source: IN_VITRO
snippet: Media used for cultivation were kept under anoxic conditions
explanation: Establishes anaerobic (anoxic) cultivation of the OMM12 strains.
+discussions:
+- discussion_id: omm12_composition_dose_and_resistance_boundaries
+ prompt: Which exact-system measurements distinguish the observed outcome from the proposed mechanism?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ posed_by: codex
+ posed_date: '2026-10-07'
+ rationale: Preserve the positive repeat-dose establishment and 12-member resistance results. The protocol study
+ compared staged facility cohorts and did not isolate a member-mediated redox mechanism; early colonizers lowering
+ gut redox is proposed. Double inoculation improved YL27 detection while four other strains remained variably
+ undetected. Facility-associated variation persisted, and compositional similarity was not a functional challenge
+ assay. The 2016 primary abstract distinguishes OMM12 resistance from conventional-like resistance of the version
+ expanded by three facultative anaerobes; full infection Methods were not inspected because the publisher provides
+ subscription preview only. Remove the context-only colonization-to-resistance arrow rather than treating the
+ two separate studies as a mediation experiment.
+ attaches_to:
+ - ecological_interactions#Double-Dose OMM12 Engraftment
+ - ecological_interactions#Colonization Resistance Against Salmonella
+ - ecological_interactions#Reproducible Multi-Strain Intestinal Colonization
+curation_history:
+- timestamp: '2026-10-07T04:42:13Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Retain the repeat-dose intervention and bounded improvement arrow without a biotic-facilitation classification.;
+ Retain resistance while distinguishing 12-member and expanded-community outcomes; remove unisolated competition
+ annotation.; Preserve multisite establishment with qPCR/detection limits; remove the context-only resistance
+ arrow. Issue #1645; reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml'
+ llm_assisted: true
diff --git a/kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml b/kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml
index 8c6947221..128c729c1 100644
--- a/kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml
+++ b/kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml
@@ -148,8 +148,10 @@ taxonomy:
explanation: Supports presence of G. sulfurreducens in the continuous culture.
ecological_interactions:
- name: Cellobiose Fermentation Supports Partner Growth
- description: C. cellulolyticum uses cellobiose as the carbon and energy source and produces
- metabolic byproducts that support D. vulgaris Hildenborough and G. sulfurreducens.
+ description: Cellobiose fermentation by C. cellulolyticum supported the maintained three-species anaerobic chemostat
+ community. Cellobiose depletion, acetate accumulation, sulfate consumption and fumarate reduction support trophic
+ coupling. Individual metabolite allocations in the carbon/electron-flow model remain estimates, not independently
+ traced interspecies fluxes; the exact hydrogen-versus-ethanol contribution to D. vulgaris was unresolved.
interaction_type: CROSS_FEEDING
scope: COMMUNITY_LEVEL
source_taxon:
@@ -169,18 +171,15 @@ ecological_interactions:
label: fermentation
downstream:
- target: Sulfate-Linked Dependence of D. vulgaris
- description: >
- C. cellulolyticum cellobiose-fermentation products are the carbon/energy
- (electron-donor) source D. vulgaris consumes while reducing its supplied
- sulfate acceptor; the fermentation cross-feeding is required for
- D. vulgaris's sulfate-linked growth. (Abstract-level / directly implied,
- not perturbation-demonstrated.)
+ description: C. cellulolyticum fermentation supplies carbon and reducing equivalents that support D. vulgaris
+ growth with supplied sulfate. Maintained coculture and sulfate depletion support this dependence under the
+ tested medium; hydrogen/ethanol partitioning is proposed rather than selectively measured, and reciprocal
+ obligate dependence of the fermenter is not established.
- target: Fumarate-Linked Dependence of G. sulfurreducens
- description: >
- The same fermentation products support G. sulfurreducens, which reduces
- its supplied fumarate acceptor; the cross-feeding is required for its
- fumarate-linked growth. (Abstract-level / directly implied, not
- perturbation-demonstrated.)
+ description: Fermentation-derived substrates support G. sulfurreducens growth with supplied fumarate; measured
+ acetate availability, fumarate depletion and succinate formation support the trophic interpretation. The allocation
+ of acetate specifically to G. sulfurreducens is model-based rather than isotope-traced, so the arrow does
+ not assert an independently measured donor-recipient flux.
evidence:
- reference: doi:10.1186/1471-2180-10-149
supports: SUPPORT
@@ -193,9 +192,12 @@ ecological_interactions:
snippet: D. vulgaris and G. sulfurreducens derived carbon and energy from the metabolic products
explanation: Supports cross-feeding from C. cellulolyticum fermentation products to both partners.
- name: Sulfate-Linked Dependence of D. vulgaris
- description: D. vulgaris Hildenborough depends on C. cellulolyticum metabolic products while
- sulfate is supplied as its electron acceptor.
- interaction_type: SYNTROPHY
+ description: D. vulgaris Hildenborough persisted using fermentation-derived nutrients with sulfate supplied as
+ electron acceptor. Sulfate was depleted but remained available, supporting electron-donor limitation. Hydrogen
+ and ethanol were proposed donors, but their relative transfer could not be distinguished by the measurements.
+ This is supported trophic dependence under the tested medium, not proof of reciprocal obligate syntrophy with
+ C. cellulolyticum.
+ interaction_type: CROSS_FEEDING
scope: PAIRWISE
source_taxon:
preferred_term: Clostridium cellulolyticum
@@ -229,8 +231,10 @@ ecological_interactions:
snippet: provided with sulfate and fumarate respectively as electron acceptors
explanation: Supports sulfate as the electron acceptor paired with D. vulgaris in the abstract.
- name: Fumarate-Linked Dependence of G. sulfurreducens
- description: G. sulfurreducens depends on C. cellulolyticum metabolic products while fumarate
- is supplied as its electron acceptor.
+ description: G. sulfurreducens persisted with C. cellulolyticum fermentation products and supplied fumarate. Fumarate
+ depletion, residual acetate and succinate production support fumarate-linked respiration and acceptor limitation.
+ Acetate use and its species-specific allocation are interpreted through the metabolic model; the source does
+ not directly trace every exchange or establish absolute exclusion of alternate interspecies routes.
interaction_type: CROSS_FEEDING
scope: PAIRWISE
source_taxon:
@@ -246,8 +250,8 @@ ecological_interactions:
metabolites:
- preferred_term: fumarate
term:
- id: CHEBI:18012
- label: fumaric acid
+ id: CHEBI:29806
+ label: fumarate(2-)
evidence:
- reference: doi:10.1186/1471-2180-10-149
supports: SUPPORT
@@ -260,9 +264,11 @@ ecological_interactions:
snippet: provided with sulfate and fumarate respectively as electron acceptors
explanation: Supports fumarate as the electron acceptor paired with G. sulfurreducens in the abstract.
- name: Electron Donor and Acceptor Limitation
- description: Metabolic modeling indicated C. cellulolyticum and D. vulgaris were electron-donor
- limited, while G. sulfurreducens was electron-acceptor limited.
- interaction_type: NICHE_PARTITIONING
+ description: Residual-substrate measurements and carbon/electron modeling indicated cellobiose limitation for
+ C. cellulolyticum, electron-donor limitation for D. vulgaris and fumarate-acceptor limitation for G. sulfurreducens.
+ This is an experimentally informed inference, not demonstrated ecological niche partitioning. Elevated-fumarate
+ trials were associated with succinate accumulation and culture upset, but selective succinate causation was
+ not isolated.
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: cellobiose
@@ -275,19 +281,21 @@ ecological_interactions:
label: sulfate
- preferred_term: fumarate
term:
- id: CHEBI:18012
- label: fumaric acid
+ id: CHEBI:29806
+ label: fumarate(2-)
evidence:
- reference: doi:10.1186/1471-2180-10-149
- supports: SUPPORT
- evidence_source: IN_VITRO
+ supports: PARTIAL
+ evidence_source: COMPUTATIONAL
snippet: growth of C. cellulolyticum and D. vulgaris were electron donor limited
- explanation: Supports electron-donor limitation for C. cellulolyticum and D. vulgaris.
+ explanation: Supports the limitation interpretation from a model informed by measured residual substrates, not
+ a direct resource-competition or selective limitation-rescue experiment.
- reference: doi:10.1186/1471-2180-10-149
- supports: SUPPORT
- evidence_source: IN_VITRO
+ supports: PARTIAL
+ evidence_source: COMPUTATIONAL
snippet: G. sulfurreducens was electron acceptor limited
- explanation: Supports electron-acceptor limitation for G. sulfurreducens.
+ explanation: Supports the limitation interpretation from a model informed by measured residual substrates, not
+ a direct resource-competition or selective limitation-rescue experiment.
environmental_factors:
- name: Anaerobic continuous-culture operation
value: continuous culture
@@ -426,29 +434,35 @@ metal_notes: >
abstract-supported record.
discussions:
- discussion_id: kg-ornl-exchanged-products-and-edge-strength
- prompt: >
- Which exact C. cellulolyticum fermentation products are transferred to
- D. vulgaris and G. sulfurreducens, and is the electron-acceptor to
- cross-feeding coupling perturbation-demonstrated rather than only
- abstract-level implied?
+ prompt: Which donor-recipient fluxes and limitation mechanisms can be resolved beyond the measured bulk substrates
+ and model estimates?
kind: KNOWLEDGE_GAP
status: OPEN
attaches_to:
- ecological_interactions#Sulfate-Linked Dependence of D. vulgaris
- ecological_interactions#Fumarate-Linked Dependence of G. sulfurreducens
- rationale: >
- The curated donor-to-partner causal edges rest on the abstract statement that
- the partners "derived carbon and energy from the metabolic products" of
- C. cellulolyticum; the primary full text (doi:10.1186/1471-2180-10-149) was not
- retrievable, so the exact exchanged metabolites and any sulfate/fumarate-removal
- or inhibitor perturbation evidence remain unresolved. Products reported for a
- related two-species C. cellulolyticum / G. sulfurreducens fuel-cell system
- (acetate, ethanol, H2) must NOT be imported here without exact-system
- verification.
+ rationale: The complete exact-system primary main text is now inspected, superseding the prior full-text-access
+ limitation. It reports bulk cellobiose, acetate, fumarate/succinate and sulfate measurements, qPCR and microscopy
+ supporting the maintained trophic community. Hydrogen and ethanol transfer could not be distinguished, and species-specific
+ carbon/electron allocations were modeled. The later OptCom study of the same composition predicts a different
+ hydrogen/ethanol allocation under biomass objectives and an assumed hydrogen recipient; those predictions are
+ not new measured transfer. Elevated-fumarate upsets and possible succinate inhibition remain associated observations,
+ not selective perturbation proof. No products from the separate two-species fuel-cell system are imported, and
+ the modeled fourth-member extension is not part of this community.
evidence:
- reference: doi:10.1186/1471-2180-10-149
supports: PARTIAL
evidence_source: IN_VITRO
snippet: D. vulgaris and G. sulfurreducens derived carbon and energy from the metabolic products
- explanation: The cross-feeding is stated only at the level of "metabolic products" without
- naming the exact exchanged compounds — the basis for filing this as a knowledge gap.
+ explanation: Supports trophic dependence; the now-inspected main text constrains the unresolved flux allocation
+ rather than leaving all named products unknown.
+curation_history:
+- timestamp: '2026-10-07T04:42:13Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Retain both donor-to-partner arrows using full-text measurements while separating modeled flux allocations.;
+ Replace reciprocal-syntrophy overclaim with experimentally supported trophic dependence and unresolved donor
+ proportions.; Retain fumarate-linked dependence and repair the fumarate grounding without claiming directly
+ traced acetate flux.; Bound inferred donor/acceptor limitation and possible succinate effects; update the stale
+ full-text-access discussion. Issue #1646; reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml'
+ llm_assisted: true
diff --git a/kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml b/kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml
index f1a3bf8ae..d3ef005b2 100644
--- a/kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml
+++ b/kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml
@@ -287,10 +287,11 @@ taxonomy:
combined and passaged in two different media environments to form stable microbial communities
explanation: Documents membership of defined Populus-derived strains in the PD10 community
ecological_interactions:
-- name: Medium-Dependent Stable Community Assembly
- description: Serial passaging of the same ten-strain Populus rhizosphere inoculum in R2A versus
- MOPS-glucose produced distinct stable communities after the first several growth cycles.
- interaction_type: NICHE_PARTITIONING
+- name: Medium-Dependent Serial-Passage Selection
+ description: Serial passage of the same ten-strain inoculum in MOPS-glucose versus R2A selected distinct persistent
+ communities. The controlled medium comparison supports medium-dependent assembly, not uniquely demonstrated
+ niche partitioning. Main-text trajectories distinguish the MOPS four-strain pattern from passage 4 and R2A stable
+ coexistence from passage 10; the abstract summary of about five cycles is not a universal threshold.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: interspecies interaction between organisms
@@ -299,30 +300,32 @@ ecological_interactions:
label: biological process involved in interspecies interaction between organisms
downstream:
- target: MOPS Minimal-Medium Four-Strain Coexistence
- description: The MOPS-glucose condition selected a stable community dominated by Pseudomonas,
- Variovorax, Rhizobium, and Sphingobium.
+ description: Serial passage in the MOPS-glucose condition selected the persistent Pseudomonas, Variovorax, Rhizobium
+ and Sphingobium assemblage, in contrast to the R2A outcome from the same inoculum. The condition-to-composition
+ effect is supported without isolating nutrient competition from proposed exchange mechanisms.
- target: R2A Pantoea-Dominated Stable Community
- description: The R2A condition selected a community dominated by Pantoea, Pseudomonas,
- Sphingobium, and viable Bacillus biomass.
+ description: Serial passage in the R2A condition selected the Pantoea-dominated 16S assemblage with Pseudomonas
+ and Sphingobium, while metaproteomics also recovered notable Bacillus proteins. The medium effect on community
+ composition is retained without equating protein-relative abundance with directly counted viable biomass.
evidence:
- reference: PMID:33995895
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: In this study, 10 bacterial strains isolated from the Populus deltoides rhizosphere were
- combined and passaged in two different media environments to form stable microbial communities
- explanation: Supports medium-dependent stable-community assembly from a defined ten-strain
- rhizosphere inoculum.
+ snippet: In this study, 10 bacterial strains isolated from the Populus deltoides rhizosphere were combined and
+ passaged in two different media environments to form stable microbial communities
+ explanation: Supports medium-dependent stable-community assembly from a defined ten-strain rhizosphere inoculum.
- reference: PMID:33995895
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: The membership and relative abundances of the strains stabilized after around 5 growth cycles
- and resulted in just a few dominant strains that depended on the medium
+ snippet: The membership and relative abundances of the strains stabilized after around 5 growth cycles and resulted
+ in just a few dominant strains that depended on the medium
explanation: Supports medium-dependent convergence to a few dominant surviving strains.
-- name: Selective Antagonism During Assembly
- description: Pairwise screens showed that Pseudomonas was antagonistic to most other members, while
- Pantoea showed positive interactions with several strains, implicating both competition and
- facilitation in final community selection.
- interaction_type: COMPETITION
+- name: Pairwise Growth Phenotypes on R2A Agar
+ description: R2A agar pairwise screens found GM17-associated inhibition of multiple lawns and YR343-associated
+ growth promotion of CF142 and CF313. These are measured colony phenotypes, not a direct test of their contribution
+ to liquid-community selection or a uniquely established nutrient-competition or antimicrobial mechanism. AP49,
+ CF142 and CF313 still coexisted with GM17 in liquid culture; positive exchanges and the agar-versus-liquid conditions
+ are alternative explanations.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: interspecies interaction between organisms
@@ -342,13 +345,15 @@ ecological_interactions:
- reference: PMID:33995895
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: Pseudomonas sp. GM17 cells were antagonistic to the growth of the majority of the other
- community members, while Pantoea sp. YR343 demonstrated positive interactions with several strains
- explanation: Supports selective antagonism and positive pairwise interactions as experimentally
- screened assembly mechanisms.
+ snippet: Pseudomonas sp. GM17 cells were antagonistic to the growth of the majority of the other community members,
+ while Pantoea sp. YR343 demonstrated positive interactions with several strains
+ explanation: Supports the positive and negative pairwise agar phenotypes. Their mediation of liquid-community
+ assembly was proposed, not directly established by this assay.
- name: Pantoea-Centered R2A Metabolite Export
- description: The R2A community FBA model predicted that dominant Pantoea sp. YR343 exports more
- metabolite classes than it receives from the other R2A community members.
+ description: HYPOTHESIZED - In the three-member R2A community FBA model, Pantoea sp. YR343 exports predicted organic
+ acids, purine derivatives and biogenic amines that could support other modeled members, Pseudomonas sp. GM17
+ and Sphingobium sp. AP49. This is a constrained, gapfilled model conditioned on endpoint 16S proportions; pathway
+ proteins support metabolic capacity, not measured exchange flux or proof that export caused long-term persistence.
interaction_type: CROSS_FEEDING
scope: COMMUNITY_LEVEL
source_taxon:
@@ -356,46 +361,49 @@ ecological_interactions:
term:
id: NCBITaxon:53335
label: Pantoea
- target_taxon:
- preferred_term: Sphingobium sp. AP49
- term:
- id: NCBITaxon:165695
- label: Sphingobium
metabolites:
- preferred_term: organic acid
term:
id: CHEBI:64709
label: organic acid
- - preferred_term: purine derivative
- term:
- id: CHEBI:26385
- label: purine alkaloid
- - preferred_term: biogenic amine
- term:
- id: CHEBI:50790
- label: EC 1.14.14.14 (aromatase) inhibitor
downstream:
- target: R2A Pantoea-Dominated Stable Community
- description: FBA-predicted export by Pantoea provides a computational exchange mechanism for
- R2A community persistence.
+ description: HYPOTHESIZED - Predicted YR343 secretion could provide growth substrates that help sustain the
+ R2A partners. The source proposes this mechanism, but FBA uses final community proportions as inputs and does
+ not independently establish temporal assembly or measured cross-feeding; enzyme detection is not exchange-flux
+ validation.
evidence:
- reference: PMID:33995895
supports: SUPPORT
evidence_source: COMPUTATIONAL
- snippet: In the community model using R2A medium, metabolite exchange can also be predicted. Here,
- the dominant strain Pantoea sp. YR343, based on the 16S rRNA marker data, is expected
- to export a greater range of metabolites than it receives from the other two members of the community
+ snippet: In the community model using R2A medium, metabolite exchange can also be predicted. Here, the dominant
+ strain Pantoea sp. YR343, based on the 16S rRNA marker data, is expected to export a greater range of metabolites
+ than it receives from the other two members of the community
explanation: Supports Pantoea as the dominant modeled metabolite exporter in the R2A community.
- reference: PMID:33995895
supports: SUPPORT
evidence_source: COMPUTATIONAL
- snippet: Organic acids, purine derivatives and biogenic amines are predicted to be excreted and
- support the growth of the other community members
+ snippet: Organic acids, purine derivatives and biogenic amines are predicted to be excreted and support the
+ growth of the other community members
explanation: Identifies the metabolite classes predicted to support other R2A community members.
+ participating_taxa:
+ - preferred_term: Pantoea sp. YR343
+ term:
+ id: NCBITaxon:53335
+ label: Pantoea
+ - preferred_term: Pseudomonas sp. GM17
+ term:
+ id: NCBITaxon:306
+ label: Pseudomonas sp.
+ - preferred_term: Sphingobium sp. AP49
+ term:
+ id: NCBITaxon:165695
+ label: Sphingobium
- name: MOPS Minimal-Medium Four-Strain Coexistence
- description: In MOPS-glucose minimal medium, Pseudomonas sp. GM17 dominated while Variovorax sp. CF313,
- Rhizobium sp. CF142, and Sphingobium sp. AP49 persisted in stable proportions.
- interaction_type: NICHE_PARTITIONING
+ description: In MOPS-glucose, GM17 dominated while CF313, CF142 and AP49 persisted in consistent relative proportions
+ from approximately passage 4. This positive coexistence result does not establish obligate mutualism or niche
+ partitioning. The paper also predicts MOPS-specific exchanges, but their missing graph structure requires separate
+ causal research and must not be borrowed from the distinct R2A model.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: interspecies interaction between organisms
@@ -423,14 +431,14 @@ ecological_interactions:
- reference: PMID:33995895
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: In MOPS medium, Pseudomonas sp. GM17 is the most abundant member along with three other
- strains, Variovorax sp. CF313, Rhizobium sp. CF142 and Sphingobium sp. AP49, that
- persist in consistent proportions
+ snippet: In MOPS medium, Pseudomonas sp. GM17 is the most abundant member along with three other strains, Variovorax
+ sp. CF313, Rhizobium sp. CF142 and Sphingobium sp. AP49, that persist in consistent proportions
explanation: Supports the four-strain MOPS survivor set and its stable coexistence.
- name: R2A Pantoea-Dominated Stable Community
- description: In R2A complex medium, Pantoea sp. YR343, Pseudomonas sp. GM17, and Sphingobium sp.
- AP49 dominated the 16S profile, while metaproteomics also detected notable viable Bacillus sp. BC15.
- interaction_type: NICHE_PARTITIONING
+ description: In R2A, YR343, GM17 and AP49 dominated the 16S profile, with stable coexistence reported from passage
+ 10 and YR343 most abundant after 15 passages. Metaproteomics recovered notable BC15 proteins and different YR343
+ proportions. Sporulation-related detection bias and relic DNA were proposed explanations; protein-relative abundance
+ is not a direct viable-cell count or proof of a uniform four-strain abundance ranking.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: interspecies interaction between organisms
@@ -458,16 +466,16 @@ ecological_interactions:
- reference: PMID:33995895
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: For 16S rRNA gene amplicon sequencing, three members dominate in abundance when grown
- in R2A complex medium, and Pantoea sp. YR343 is the member with highest content
- after 15 passages
+ snippet: For 16S rRNA gene amplicon sequencing, three members dominate in abundance when grown in R2A complex
+ medium, and Pantoea sp. YR343 is the member with highest content after 15 passages
explanation: Supports Pantoea-dominated R2A community membership in the 16S time series.
- reference: PMID:33995895
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: Additionally, there is a notable abundance of Bacillus sp. BC15 not seen in 16S rRNA
- gene amplicon sequencing data.
- explanation: Supports viable Bacillus biomass in the R2A community by metaproteomics.
+ snippet: Additionally, there is a notable abundance of Bacillus sp. BC15 not seen in 16S rRNA gene amplicon
+ sequencing data.
+ explanation: Supports notable BC15 representation in metaproteomics despite low 16S representation, not directly
+ counted viable Bacillus biomass.
cultivation_setup:
- cultivation_mode: BATCH
operating_temperature: 30.0
@@ -601,7 +609,38 @@ curation_history:
- timestamp: '2026-10-02T06:10:22Z'
curator: codex
action: REVIEW_CAUSAL_GRAPH
- changes: Removed three downstream edges that treated community FBA and pairwise
- interaction screening as downstream consequences of the MOPS and R2A survivor
- states.
+ changes: Removed three downstream edges that treated community FBA and pairwise interaction screening as downstream
+ consequences of the MOPS and R2A survivor states.
+ llm_assisted: true
+- timestamp: '2026-10-07T04:42:13Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Retain two condition-to-assembly arrows while distinguishing MOPS and R2A stabilization times.; Preserve
+ agar inhibition and promotion without treating them as demonstrated liquid-assembly mechanisms.; Retain explicitly
+ hypothesized R2A support arrow; bound FBA evidence, include the modeled partners and remove two incorrect chemical
+ groundings.; Preserve four-strain MOPS coexistence without niche overclaim; missing exchange topology remains
+ research work.; Preserve R2A survivor and BC15 protein results without equating assays or proving viable-cell
+ counts. Issue #1647; reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml'
llm_assisted: true
+discussions:
+- discussion_id: pd10_model_assay_and_assembly_boundaries
+ prompt: Which exact-system measurements distinguish the observed outcome from the proposed mechanism?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ posed_by: codex
+ posed_date: '2026-10-07'
+ rationale: Keep the controlled medium-dependent assembly and persistent survivor patterns, including slow-growing
+ CF142 in MOPS. Separate the ten-strain experimental inoculum from the four-member MOPS and three-member R2A
+ models. Endpoint proportions constrain the FBA model, so model agreement is not an independent demonstration
+ of assembly causation. Metaproteomics supports pathways but does not measure exchange flux. Agar inhibition
+ and liquid coexistence can differ because of positive interactions or culture conditions; neither explanation
+ was selectively isolated. Purine alkaloid and aromatase inhibitor are not valid equivalents for the two predicted
+ generic metabolite classes, so those groundings are removed without inventing specific compounds. The omitted
+ MOPS exchange structure remains needs_research pending scoped causal research; prior removal of analysis-workflow
+ arrows remains intact.
+ attaches_to:
+ - ecological_interactions#Medium-Dependent Serial-Passage Selection
+ - ecological_interactions#Pairwise Growth Phenotypes on R2A Agar
+ - ecological_interactions#Pantoea-Centered R2A Metabolite Export
+ - ecological_interactions#MOPS Minimal-Medium Four-Strain Coexistence
+ - ecological_interactions#R2A Pantoea-Dominated Stable Community
diff --git a/reports/causal_graph_review/README.md b/reports/causal_graph_review/README.md
index 454f1f8d1..e09d30ac4 100644
--- a/reports/causal_graph_review/README.md
+++ b/reports/causal_graph_review/README.md
@@ -5,6 +5,35 @@ 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`.
+## Batch78: Redox, Engraftment And Model Evidence
+
+[Decisions](decisions/20261007-four-records-batch78.yaml),
+[validation](validation-20261007-batch78.json) and
+[self-adversarial review](adversarial-review-20261007-batch78.yaml) account for
+13 existing nodes and seven arrows. Four records are repaired, one context-only
+arrow removed, and six bounded trophic, protocol, selection or proposed-support
+arrows retained.
+
+Nitrifier redox-dependent performance, OMM12 resistance and repeat-dose gains,
+the ORNL trophic community and PD10 medium-dependent assembly remain positive
+findings. Model allocations, agar phenotypes, qPCR units and protein evidence
+are distinguished from resolved causal mechanisms. Incorrect PD10 chemical
+groundings are removed while their generic predicted classes remain in prose;
+graph fumarate uses the correct anion grounding.
+
+All 22 graph quotations match fresh primary text and existing caches. Six
+complete primary main bodies and embedded tables were read; the OMM design
+paper remains abstract-bounded. Separate supplements, original figure pixels,
+raw datasets and live KBase model execution were not audited. All 920 caches,
+456 other records, canonical taxa and raw non-graph blocks are preserved.
+
+Missing nitrifier endpoints and PD10 MOPS exchange structure remain
+`needs_research` in #1648/#1649. Two separate Edison dry runs spent no credits;
+scoped paid questions remain unanswered. Repairs #1644-#1647 stay open until
+protected-main merge. Research and metadata #1650 remain open afterward.
+Four append-only histories are included. Self-review is not independent
+approval or corpus completion.
+
## Batch77: Xylan Mediation, Mercury Evidence And Missing Outcomes
[Decisions](decisions/20261007-four-records-batch77.yaml),
diff --git a/reports/causal_graph_review/adversarial-review-20261007-batch78.yaml b/reports/causal_graph_review/adversarial-review-20261007-batch78.yaml
new file mode 100644
index 000000000..114d41741
--- /dev/null
+++ b/reports/causal_graph_review/adversarial-review-20261007-batch78.yaml
@@ -0,0 +1,244 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: 76c0dec3077239bbe236ba6a01e76df3923b6f65
+scope:
+- kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml
+- kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml
+- kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml
+- kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml
+decision_ledger: reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
+validation_report: reports/causal_graph_review/validation-20261007-batch78.json
+findings:
+- issue: 1644
+ severity: P2
+ status: addressed_in_this_change
+ finding: Nitrifier background handoff versus actual redox-dependent performance.
+ disposition: Close only after protected-main merge.
+- issue: 1645
+ severity: P2
+ status: addressed_in_this_change
+ finding: OMM12 versus expanded resistance, protocol detection and context arrow.
+ disposition: Close only after protected-main merge.
+- issue: 1646
+ severity: P2
+ status: addressed_in_this_change
+ finding: ORNL trophic measurements versus flux model and stale source-access gap.
+ disposition: Close only after protected-main merge.
+- issue: 1647
+ severity: P2
+ status: addressed_in_this_change
+ finding: PD10 medium selection, FBA, agar and protein boundaries and incorrect groundings.
+ disposition: Close only after protected-main merge.
+- issue: 1648
+ severity: P2
+ status: unresolved_research
+ finding: Missing nitrifier redox-dependent outcome nodes.
+ disposition: Keep OPEN after repair merge; scoped paid authorization and report inspection remain pending.
+- issue: 1649
+ severity: P2
+ status: unresolved_research
+ finding: Missing distinct MOPS predicted exchange structure.
+ disposition: Keep OPEN after repair merge; scoped paid authorization and report inspection remain pending.
+- issue: 1650
+ severity: P2
+ status: unresolved_non_graph
+ finding: OMM strain/table identity discrepancies and ORNL non-graph medium/assay metadata.
+ disposition: Keep OPEN after graph-repair merge.
+adversarial_checks:
+- Fresh both-root baseline preceded primary-source reading. All four whole records,13existing nodes and7arrows were
+ inspected. One context arrow removed; six causal or explicitly hypothesized arrows retained. No topology invented
+ to satisfy graph density.
+- Nitrifier handoff background is not exact-system transfer measurement. Preserve late aerobic ammonia removal/nitrate
+ accumulation and anoxic ammonia accumulation, with the early decrease/rebound sequence. Gene content and amoC
+ alone do not demonstrate complete enzyme activity, exclusive donor-recipient flux or anoxic nitrification.
+- Preserve the prior45.96% Nitrosospira starting-material abundance correction rather than replacing it with the
+ different short-read week0 percentage. Aerobic guild decline and absent Nitrobacter nitrogen-gene RNA do not prove
+ all nitrification absent; lower-abundance contributors remain possible. Canonical taxa preserved.
+- OMM12 genuinely confers resistance but less than conventional microbiota. The conventional-like result is the
+ expanded community, not the12-member record. Source abstract directly resolves this distinction; publisher subscription
+ access was not bypassed.
+- Retain the repeat-dose protocol-to-establishment arrow and improved YL27 detection. Staged facility cohorts are
+ not a fully matched randomized experiment, every strain is not detected in every sample, and qPCR gene copies
+ per extracted-DNA volume are not viable counts. Compositional similarity is not challenge-function mediation;
+ remove that context arrow.
+- The ORNL exact-system full text is now read, superseding stale access wording. Measured bulk substrate/product
+ chemistry, qPCR and microscopy support the maintained trophic community and both donor-to-partner edges. Carbon/electron
+ allocation, hydrogen/ethanol proportions and alternative transfer routes remain modeled or unresolved.
+- Do not transfer the sulfate-free Desulfovibrio-methanogen syntrophy case or the separate fuel-cell system to this
+ sulfate-supplied community. Cross-feeding does not prove reciprocal obligacy. Elevated-fumarate upset and succinate
+ accumulation do not isolate selective succinate causation. OptCom biomass objectives and assumed hydrogen recipient
+ are not new measured flux, and its fourth-member extension is not a community member.
+- PD10 controlled medium comparison supports two selection-to-survivor arrows. Distinguish MOPS passage4 and R2A
+ passage10 rather than treating the abstract five-cycle summary as exact for both. Maintain the ten-strain experimental
+ inoculum and separate four-/three-member computational subsets.
+- Retain both inhibition and positive pairwise R2A agar phenotypes. GM17-inhibited strains still persist in liquid;
+ positive exchanges and culture-condition differences are alternatives rather than an isolated rescue. Preserve
+ protein evidence for BC15 without claiming directly counted viable biomass or equal 16S/protein rankings.
+- Retain the R2A exchange-support arrow as explicitly hypothesized. FBA is conditioned on endpoint proportions and
+ proteins establish pathway capacity, not actual exchange flux or independent validation of temporal assembly.
+ Include both other modeled partners, not exclusive AP49; remove two chemically incorrect descriptors while preserving
+ generic classes in prose. The dry-run schema guard rejected ungrounded structured descriptors before any record
+ writes.
+- Fresh primary text and existing caches match all22 graph snippets. ChEBI fumarate(2-) was verified at the official
+ entry. Separate supplements, original figure pixels, raw data and executable KBase models were not audited. Early
+ oversized output truncation was not used as evidence of absence; primary main texts and structured tables were
+ reread in bounded chunks.
+- 'Four histories and all raw non-graph blocks,456 other records and920 caches are preserved. Graph-only scope does
+ not certify metadata: OMM strain-name/table disagreements, ORNL medium detail and PD10 seed-culture/metal notes
+ are tracked separately in1650. Prior416/1083/529/543 and the distinct1532/1533 record scope are respected.'
+- Nitrifier endpoint and PD10 MOPS exchange omissions remain needs_research1648/1649. Two one-record Edison LITERATURE
+ dry runs cost zero credits; no actual provider reports or submissions. Scoped questions are unanswered, preselection
+ is not approval, and prior denied/pending scopes are unchanged.
+- Full focused schema/strict/term/reference/snippet/history checks, both-root inventory/network/rank, regression/lint
+ and deterministic rendering outputs are captured. Exact descriptions parsed across456 pages are not browser screenshots.
+ Exact-head COMMENT self-review and postcommit docs-current are separate publication gates. Protected-main merge
+ and branch cleanup are still required; self-review is not independent approval or corpus completion.
+verification:
+ combined_regressions: 696 passed in 202.21s (0:03:22)
+ new_regression_tests: 10
+ schema_strict_terms_history: Passed with actual outputs/digests
+ references: All four full-record reference validators exit0. CLI Total checks counts issues, not executed checks.
+ All22 graph quotations independently match fresh primary XML-extracted text or abstract. All920 caches are unchanged;
+ literal matching is not entailment. Six complete main bodies were read, while the OMM design/infection paper
+ remains public-abstract bounded. No recertification of every cache or non-graph field.
+ snippet_counts_by_record:
+ kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml:
+ MATCH: 15
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml:
+ MATCH: 13
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml:
+ MATCH: 28
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml:
+ MATCH: 29
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ primary_graph_snippet_proof:
+ primary_matched: 22
+ new_nodes_or_arrows: 0
+ complete_main_bodies_read: 6
+ omm_design_abstract_bounded: true
+ separate_supplements_raw_datasets_original_figure_pixels_or_live_kbase_models_audited: false
+ network:
+ existing_findings_preserved: 44
+ added_findings: {}
+ removed_findings: {}
+ interpretation: All44 baseline warnings preserved exactly. Community scope remains aggregate, not resolved member-specific
+ activity. No taxonomy or auditor-rule changes.
+ black_ruff_diff: passed
+ tested_file_sha256:
+ reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml: 5803b1826d23abd55d08addeb735915efbe4906b77096584338e28c200415ea2
+ tests/test_causal_review_batch78.py: 2725914f0db01e44accb4e7cb4241cfb86935a3f17d99c62c1482e417f172ccf
+ kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml: 61a0b16fc00db138fa35884e8f9f170bda3b2cc9092008a9d5098b3600ad920a
+ kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml: 850493028ce860f07a09dccf22edadd16a29743f9ba8c42363c36091ad0a5e38
+ kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml: 151a414766ded2f1c8b094002819c6e620751b6344ef9753d1f3a988c1cf99dd
+ kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml: 339ff13ebe407e9c101499ec4a8ec7618da7079c503e7457152577021ab71a04
+ reports/causal_graph_review/README.md: 9d2535ea11646668c20770637d0028435cdb78e3560f51ee6690c984a6400831
+ unchanged_caches: 920
+ cache_changes: []
+ unchanged_records: 456
+ edison:
+ required_for_this_repair: false
+ required_for_unresolved_extensions: true
+ provider_submissions: 0
+ credits_spent: 0
+ dry_runs:
+ - community_id: CommunityMech:000433
+ job: LITERATURE
+ query_chars: 9473
+ query_sha256: 9cb17046ed5b75af97b0ac4c34efa9851bdc1c17522872c6afde5d900e7b736d
+ meta_path: /private/tmp/communitymech-batch78/edison-nitrifier/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-edison-literature-causal-meta.yaml
+ authorization: Scoped asynchronous question unanswered; preselection is not approval.
+ - community_id: CommunityMech:000047
+ job: LITERATURE
+ query_chars: 15034
+ query_sha256: 024cc9d6f3d0e1209a08a18d3edf8c7b148a942c94717104f06b881aaa3b32bc
+ meta_path: /private/tmp/communitymech-batch78/edison-populus/ORNL_PMI_Populus_PD10_SynCom-edison-literature-causal-meta.yaml
+ authorization: Scoped asynchronous question unanswered; preselection is not approval.
+ post_commit_docs_current: Separate publication gate, not asserted before commit.
+participant_census:
+ measurements:
+ baseline:
+ records: 460
+ with_community_level: 393
+ mixed: 125
+ community_level_only: 268
+ taxa: 1511
+ credited_solely_by_the_rule: 1240
+ current:
+ records: 460
+ with_community_level: 393
+ mixed: 125
+ community_level_only: 268
+ taxa: 1511
+ credited_solely_by_the_rule: 1240
+ delta:
+ records: 0
+ with_community_level: 0
+ mixed: 0
+ community_level_only: 0
+ taxa: 0
+ credited_solely_by_the_rule: 0
+ interpretation: No scope-count change, taxonomy edit, or auditor-rule change. Aggregate outcomes do not establish
+ member-resolved activity.
+corpus:
+ records: 460
+ nodes: 1447
+ edges: 614
+ review_status_counts:
+ needs_research: 30
+ pending: 180
+ reviewed: 250
+limitations:
+- Fresh pre-paper baseline includes460 records and920 caches across both roots with ignored/hidden-independent enumeration.
+ All13 current nodes and7arrows reviewed;13nodes6arrows remain. Four guarded repairs and histories,456 other records
+ and all920 caches unchanged.
+- Six complete primary main bodies read from fresh Europe PMC XML, including embedded captions and structured tables.
+ OMM design/infection paper is public-abstract bounded; Nature subscription preview and PMC reCAPTCHA were respected.
+ No separate supplement, original figure pixels, raw dataset or live KBase model execution was audited.
+- Early oversized cache/combined output truncations do not establish absence. Relevant full primary texts were read
+ in bounded chunks and structured tables read separately. Dry-run metadata fields are parsed structurally; rendering
+ a truncated meta file is not report inspection.
+- Every22 graph quotations independently matches fresh primary text and existing cache. No cache changed or full
+ publication uploaded. Literal matching is not entailment; full-record reference validators and source-based review
+ remain distinct.
+- Nitrifier positive aerobic removal after lag and anoxic ammonia accumulation are preserved. Introductory handoff
+ background is not experimental pair flux; gene potential and amoC expression alone do not establish complete enzyme
+ activity. Missing redox endpoints remain needs_research.
+- OMM12 retains real but lower-than-conventional resistance. Expanded-community conventional-like resistance is
+ not transferred to the12-member record. Repeat-dose improvement remains without all-strain detection guarantees
+ or functional mediation; staged cohorts and qPCR units are explicit.
+- ORNL trophic main text supersedes old access limitation. Bulk substrate and product measurements support both
+ trophic arrows; species allocations and donor proportions remain model estimates. OptCom assumptions and modeled
+ fourth-member extension are not measured three-species flux or membership.
+- PD10 retains medium-dependent survivor selection and proposed R2A substrate support. Endpoint-conditioned FBA
+ and pathway proteins do not independently validate assembly or exchange flux. Agar inhibition/promotion differs
+ from liquid coexistence. Generic predicted metabolite classes do not justify purine-alkaloid or aromatase-inhibitor
+ groundings. Missing MOPS exchange structure remains needs_research.
+- Two separate one-community Edison LITERATURE dry runs used zero provider submissions/credits. Scoped questions
+ remain unanswered; generic authorization and earlier pending/denied scopes are not broadened. No new nodes or
+ arrows added.
+- Dedup reviewed926 all-state issue titles/bodies and99 local matches with ignored/hidden-inclusive search excluding
+ git/docs/site/cache. Matching12/416/592/595/1083/1532/1533 and529/543 read; no exhaustive PR-comment audit. Earlier
+ fixes remain, and1532/1533 concern a different record.
+- Repairs1644-1647 remain OPEN until protected-main merge; research1648/1649 and metadata1650 remain OPEN afterward.
+ Canonical taxa and raw non-graph fields preserved, not certified. Self-adversarial review is not independent approval
+ or corpus completion.
diff --git a/reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml b/reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
new file mode 100644
index 000000000..1b9e782fd
--- /dev/null
+++ b/reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
@@ -0,0 +1,628 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: 76c0dec3077239bbe236ba6a01e76df3923b6f65
+baseline_commit: 76c0dec3077239bbe236ba6a01e76df3923b6f65
+base_tree: 487649ad1cb513fe1cb956be8515a694726cff1a
+pre_source_baseline_sha256: 0e579a9ba031fa3eff014e3274ad9e9b9577cb804a4debd8d2e1ffe81c2ea326
+issues:
+- 1644
+- 1645
+- 1646
+- 1647
+unresolved_non_graph_issues:
+- 1650
+unresolved_research_issues:
+- 1648
+- 1649
+issue_deduplication:
+ all_state_issue_titles_and_bodies: 926
+ ignored_hidden_local_search: true
+ matching_local_files: 99
+ matching_issues:
+ - 12
+ - 416
+ - 529
+ - 543
+ - 592
+ - 595
+ - 1083
+ - 1532
+ - 1533
+primary_artifacts:
+ /private/tmp/communitymech-batch78/baseline.json: 0e579a9ba031fa3eff014e3274ad9e9b9577cb804a4debd8d2e1ffe81c2ea326
+ ? /private/tmp/communitymech-batch78/edison-nitrifier/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-edison-literature-causal-meta.yaml
+ : 248d757e29d1d1173ba4d681cd446479254db39694887bf10410777d02e936ac
+ /private/tmp/communitymech-batch78/edison-populus/ORNL_PMI_Populus_PD10_SynCom-edison-literature-causal-meta.yaml: f3d34e3c779c03a733ab7d7c4d118aaa7dd67996f7acea5f65c29b4d11c5898a
+ /private/tmp/communitymech-batch78/issue-matches.json: c378b9affb7e8288d1c482fe9b885b3ecc57ee2435424ff05c5f1b3c42f4f736
+ /private/tmp/communitymech-batch78/issues.json: a2c1e09a5d9c51331e95ee395fbc46132aa9cafcd3e5dbb1da77d7193a2d0300
+ /private/tmp/communitymech-batch78/local-matches.txt: ae2c6fa961a0237aa7494882764200c965de24c083a190db5932d9a9f03459cd
+ /private/tmp/communitymech-batch78/nitrifier-metadata.json: 2bf55bf1b620792b66c3001ace6160a5ce6c587ae4f80cd861511670d312b237
+ /private/tmp/communitymech-batch78/nitrifier-primary.txt: 0d7c394adc7be6c766e6b61fc13f485d2b7cbda1254f8e65173900124c82c263
+ /private/tmp/communitymech-batch78/nitrifier-primary.xml: e71298b32c2f0db232f6b4ef5fb11831218cc4f0c62df6e41c18e388ad662498
+ /private/tmp/communitymech-batch78/nitrifier-tables.txt: 53db0a29a26055361eff92fcdeb519cecec971c011a4db8c7c75ea8d9addd9ac
+ /private/tmp/communitymech-batch78/omm_design-metadata.json: ad7f7d92aa6f33e19e189afec005fbc206bab946d4dc88f7c375b63687c6b62e
+ /private/tmp/communitymech-batch78/omm_design-primary.txt: 08a247b1137a92638b6933cd15d08f9606ac13a79457c389e841cf8a3ab86a8c
+ /private/tmp/communitymech-batch78/omm_genomes-metadata.json: 12c158b78d873287986204e3499f9c6cbe782e8cc0f5f283c33bbcee91130a51
+ /private/tmp/communitymech-batch78/omm_genomes-primary.txt: 24986d310ef33f5085030ace6b92490e1f3e6c45a6881e1c3600de62992c7319
+ /private/tmp/communitymech-batch78/omm_genomes-primary.xml: 44cb2cad9956742347274ea6154ec004309e2d61326e8625bad0d23617c3531e
+ /private/tmp/communitymech-batch78/omm_genomes-tables.txt: a6cee3b78c5406f673f1360bbaa016ae153e133ba8191543d9a069af31019251
+ /private/tmp/communitymech-batch78/omm_protocol-metadata.json: 40677449aa60d0ee2cc288088bc7eb9f83172fe65d135c5e3a26cf40312f229b
+ /private/tmp/communitymech-batch78/omm_protocol-primary.txt: cffff5cc7d89e7042678c58320817755d15c92deaa9b3cdeafdbcdf0d21c8950
+ /private/tmp/communitymech-batch78/omm_protocol-primary.xml: 308c04e35883e5fbe7a6f38e3ad9926be73c34309cc56460d171cd293e4d6207
+ /private/tmp/communitymech-batch78/omm_protocol-tables.txt: 9197dfe08b30167cce2e82f3cc43e2ed1cf2e0cc67f2badbebdf4f3b5e2dafb9
+ /private/tmp/communitymech-batch78/optcom-metadata.json: 6c31c3cf99741bc8d37bd4ef773258213feda2cf015af7bb84681b485376e4a2
+ /private/tmp/communitymech-batch78/optcom-primary.txt: 2f1b68b9008a302626382b65857ab6b05597835024cdb0c508c42b02ee1c3690
+ /private/tmp/communitymech-batch78/optcom-primary.xml: 593a724116faabc68408d9ca888f0e223024fbd6c996fc336f22184be1bdc6c2
+ /private/tmp/communitymech-batch78/optcom-tables.txt: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
+ /private/tmp/communitymech-batch78/populus-metadata.json: 104c5ebd00ec13a4c12ab59f1af0feec66833918f81f92e5efdecb4c261402c4
+ /private/tmp/communitymech-batch78/populus-primary.txt: 059783975b280476bf82d18171b3314b305cb364e4ecef9377431d210ac3ab7d
+ /private/tmp/communitymech-batch78/populus-primary.xml: 37b236655bf4771e52bf7710670096e367c4e08400f7f4ca7f4126de0fa237f7
+ /private/tmp/communitymech-batch78/populus-tables.txt: 837db081ba0321938ff39e74fd470696f8533f510aa5bf9e09032fcf88d110a2
+ /private/tmp/communitymech-batch78/primary-manifest.json: eea39fc29c7d5224cc7495f6e9cd3a8f943e5c108843b6689528a01ce92da1d0
+ /private/tmp/communitymech-batch78/trophic-metadata.json: 6483086d151770f7e9008d3462c1f069c63cd2d9869d6f04b076ee7135165b3c
+ /private/tmp/communitymech-batch78/trophic-primary.txt: 4938447e3b1a8302438a5fb08ec509727305dc26c4c50a885daa7909f5d589bd
+ /private/tmp/communitymech-batch78/trophic-primary.xml: 63ee4104381ccb9b3d3ac571b07649d1cbc0188deabcd4ce246f8bf7253755f5
+ /private/tmp/communitymech-batch78/trophic-tables.txt: 03dbfb2f2a47ae6d8f17a5902c7573bb00a2741c0b54607e18131ddc5d9cff5a
+primary_urls:
+- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC12838200/fullTextXML
+- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC6965490/fullTextXML
+- https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A27869789+AND+SRC%3AMED&format=json&resultType=core
+- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC5646386/fullTextXML
+- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC2906461/fullTextXML
+- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC3271020/fullTextXML
+- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC8079826/fullTextXML
+- https://www.nature.com/articles/nmicrobiol2016215
+- https://www.ebi.ac.uk/chebi/CHEBI:29806
+primary_graph_snippet_count: 22
+cache_matched_graph_snippet_count: 22
+snippet_checks:
+- record: Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium
+ node: Putative Nitrifier Guild Metabolic Handoff
+ reference: PMID:41457319
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/nitrifier-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium
+ node: Putative Nitrifier Guild Metabolic Handoff
+ reference: PMID:41457319
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/nitrifier-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: OMM12_Gnotobiotic_Mouse_Gut_Community
+ node: Double-Dose OMM12 Engraftment
+ reference: PMID:31998276
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/omm_protocol-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: OMM12_Gnotobiotic_Mouse_Gut_Community
+ node: Colonization Resistance Against Salmonella
+ reference: PMID:27869789
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/omm_design-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: OMM12_Gnotobiotic_Mouse_Gut_Community
+ node: Reproducible Multi-Strain Intestinal Colonization
+ reference: PMID:31998276
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/omm_protocol-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: OMM12_Gnotobiotic_Mouse_Gut_Community
+ node: Reproducible Multi-Strain Intestinal Colonization
+ reference: PMID:31998276
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/omm_protocol-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model
+ node: Cellobiose Fermentation Supports Partner Growth
+ reference: doi:10.1186/1471-2180-10-149
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/trophic-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model
+ node: Cellobiose Fermentation Supports Partner Growth
+ reference: doi:10.1186/1471-2180-10-149
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/trophic-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model
+ node: Sulfate-Linked Dependence of D. vulgaris
+ reference: doi:10.1186/1471-2180-10-149
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/trophic-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model
+ node: Sulfate-Linked Dependence of D. vulgaris
+ reference: doi:10.1186/1471-2180-10-149
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/trophic-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model
+ node: Fumarate-Linked Dependence of G. sulfurreducens
+ reference: doi:10.1186/1471-2180-10-149
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/trophic-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model
+ node: Fumarate-Linked Dependence of G. sulfurreducens
+ reference: doi:10.1186/1471-2180-10-149
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/trophic-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model
+ node: Electron Donor and Acceptor Limitation
+ reference: doi:10.1186/1471-2180-10-149
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/trophic-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model
+ node: Electron Donor and Acceptor Limitation
+ reference: doi:10.1186/1471-2180-10-149
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/trophic-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_PMI_Populus_PD10_SynCom
+ node: Medium-Dependent Serial-Passage Selection
+ reference: PMID:33995895
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/populus-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_PMI_Populus_PD10_SynCom
+ node: Medium-Dependent Serial-Passage Selection
+ reference: PMID:33995895
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/populus-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_PMI_Populus_PD10_SynCom
+ node: Pairwise Growth Phenotypes on R2A Agar
+ reference: PMID:33995895
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/populus-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_PMI_Populus_PD10_SynCom
+ node: Pantoea-Centered R2A Metabolite Export
+ reference: PMID:33995895
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/populus-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_PMI_Populus_PD10_SynCom
+ node: Pantoea-Centered R2A Metabolite Export
+ reference: PMID:33995895
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/populus-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_PMI_Populus_PD10_SynCom
+ node: MOPS Minimal-Medium Four-Strain Coexistence
+ reference: PMID:33995895
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/populus-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_PMI_Populus_PD10_SynCom
+ node: R2A Pantoea-Dominated Stable Community
+ reference: PMID:33995895
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/populus-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+- record: ORNL_PMI_Populus_PD10_SynCom
+ node: R2A Pantoea-Dominated Stable Community
+ reference: PMID:33995895
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifact: /private/tmp/communitymech-batch78/populus-primary.txt
+ method: Whitespace-only comparison with freshly retrieved primary full-text XML extraction or public abstract.
+cache_changes: []
+edison:
+ required_for_this_repair: false
+ required_for_unresolved_extensions: true
+ provider_submissions: 0
+ credits_spent: 0
+ dry_runs:
+ - community_id: CommunityMech:000433
+ job: LITERATURE
+ query_chars: 9473
+ query_sha256: 9cb17046ed5b75af97b0ac4c34efa9851bdc1c17522872c6afde5d900e7b736d
+ meta_path: /private/tmp/communitymech-batch78/edison-nitrifier/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-edison-literature-causal-meta.yaml
+ authorization: Scoped asynchronous question unanswered; preselection is not approval.
+ - community_id: CommunityMech:000047
+ job: LITERATURE
+ query_chars: 15034
+ query_sha256: 024cc9d6f3d0e1209a08a18d3edf8c7b148a942c94717104f06b881aaa3b32bc
+ meta_path: /private/tmp/communitymech-batch78/edison-populus/ORNL_PMI_Populus_PD10_SynCom-edison-literature-causal-meta.yaml
+ authorization: Scoped asynchronous question unanswered; preselection is not approval.
+limitations:
+- Fresh pre-paper baseline includes460 records and920 caches across both roots with ignored/hidden-independent enumeration.
+ All13 current nodes and7arrows reviewed;13nodes6arrows remain. Four guarded repairs and histories,456 other records
+ and all920 caches unchanged.
+- Six complete primary main bodies read from fresh Europe PMC XML, including embedded captions and structured tables.
+ OMM design/infection paper is public-abstract bounded; Nature subscription preview and PMC reCAPTCHA were respected.
+ No separate supplement, original figure pixels, raw dataset or live KBase model execution was audited.
+- Early oversized cache/combined output truncations do not establish absence. Relevant full primary texts were read
+ in bounded chunks and structured tables read separately. Dry-run metadata fields are parsed structurally; rendering
+ a truncated meta file is not report inspection.
+- Every22 graph quotations independently matches fresh primary text and existing cache. No cache changed or full
+ publication uploaded. Literal matching is not entailment; full-record reference validators and source-based review
+ remain distinct.
+- Nitrifier positive aerobic removal after lag and anoxic ammonia accumulation are preserved. Introductory handoff
+ background is not experimental pair flux; gene potential and amoC expression alone do not establish complete enzyme
+ activity. Missing redox endpoints remain needs_research.
+- OMM12 retains real but lower-than-conventional resistance. Expanded-community conventional-like resistance is
+ not transferred to the12-member record. Repeat-dose improvement remains without all-strain detection guarantees
+ or functional mediation; staged cohorts and qPCR units are explicit.
+- ORNL trophic main text supersedes old access limitation. Bulk substrate and product measurements support both
+ trophic arrows; species allocations and donor proportions remain model estimates. OptCom assumptions and modeled
+ fourth-member extension are not measured three-species flux or membership.
+- PD10 retains medium-dependent survivor selection and proposed R2A substrate support. Endpoint-conditioned FBA
+ and pathway proteins do not independently validate assembly or exchange flux. Agar inhibition/promotion differs
+ from liquid coexistence. Generic predicted metabolite classes do not justify purine-alkaloid or aromatase-inhibitor
+ groundings. Missing MOPS exchange structure remains needs_research.
+- Two separate one-community Edison LITERATURE dry runs used zero provider submissions/credits. Scoped questions
+ remain unanswered; generic authorization and earlier pending/denied scopes are not broadened. No new nodes or
+ arrows added.
+- Dedup reviewed926 all-state issue titles/bodies and99 local matches with ignored/hidden-inclusive search excluding
+ git/docs/site/cache. Matching12/416/592/595/1083/1532/1533 and529/543 read; no exhaustive PR-comment audit. Earlier
+ fixes remain, and1532/1533 concern a different record.
+- Repairs1644-1647 remain OPEN until protected-main merge; research1648/1649 and metadata1650 remain OPEN afterward.
+ Canonical taxa and raw non-graph fields preserved, not certified. Self-adversarial review is not independent approval
+ or corpus completion.
+records:
+- path: kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml
+ id: CommunityMech:000433
+ original_sha256: 46957070bdbb0560357ac1bd198673784315576a2a5797b54ccea01dd55f184d
+ record_sha256: 61a0b16fc00db138fa35884e8f9f170bda3b2cc9092008a9d5098b3600ad920a
+ status: needs_research
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
+ scope: Whole record and all existing nodes/arrows; missing endpoint and exchange structures tracked explicitly.
+ Not whole-record certification.
+ summary: Qualify the guild handoff and introductory evidence; preserve measured redox-dependent performance while
+ missing outcome nodes remain research work.
+ renamed_nodes:
+ Nitrifier Guild Metabolic Handoff: Putative Nitrifier Guild Metabolic Handoff
+ node_decisions:
+ - node: Putative Nitrifier Guild Metabolic Handoff
+ original_node: Nitrifier Guild Metabolic Handoff
+ rationale: Qualify the guild handoff and introductory evidence; preserve measured redox-dependent performance
+ while missing outcome nodes remain research work.
+ removed_node_decisions: []
+ edges_before: []
+ edges_after: []
+ retained_edge_decisions: []
+ removed_edge_decisions: []
+ references:
+ - PMID:41457319
+ issues:
+ - 1644
+ - 1648
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium/2026-10-07T044213Z-codex-ac464a.yaml
+ source_review:
+ - source: nitrifier
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC12838200/fullTextXML
+ scope: Primary abstract and complete main body, embedded tables and captions; not separate supplements, raw
+ data or original figure pixels.
+- path: kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml
+ id: CommunityMech:000133
+ original_sha256: 410fdef86f2d9df0febcea39df64b3c69113651f167bbdaaa34f6a54113987e1
+ record_sha256: 850493028ce860f07a09dccf22edadd16a29743f9ba8c42363c36091ad0a5e38
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
+ scope: Whole record and all existing nodes/arrows; missing endpoint and exchange structures tracked explicitly.
+ Not whole-record certification.
+ summary: Retain the repeat-dose intervention and bounded improvement arrow without a biotic-facilitation classification.;
+ Retain resistance while distinguishing 12-member and expanded-community outcomes; remove unisolated competition
+ annotation.; Preserve multisite establishment with qPCR/detection limits; remove the context-only resistance
+ arrow.
+ renamed_nodes: {}
+ node_decisions:
+ - node: Double-Dose OMM12 Engraftment
+ original_node: Double-Dose OMM12 Engraftment
+ rationale: Retain the repeat-dose intervention and bounded improvement arrow without a biotic-facilitation classification.
+ - node: Colonization Resistance Against Salmonella
+ original_node: Colonization Resistance Against Salmonella
+ rationale: Retain resistance while distinguishing 12-member and expanded-community outcomes; remove unisolated
+ competition annotation.
+ - node: Reproducible Multi-Strain Intestinal Colonization
+ original_node: Reproducible Multi-Strain Intestinal Colonization
+ rationale: Preserve multisite establishment with qPCR/detection limits; remove the context-only resistance arrow.
+ removed_node_decisions: []
+ edges_before:
+ - source: Double-Dose OMM12 Engraftment
+ target: Reproducible Multi-Strain Intestinal Colonization
+ description: The optimized double-dose frozen inoculum protocol enables reproducible de novo association of
+ germ-free mice with the full OMM12 synthetic community.
+ - source: Reproducible Multi-Strain Intestinal Colonization
+ target: Colonization Resistance Against Salmonella
+ description: Stable multi-strain Oligo-MM12 colonization supplies the defined community context in which the
+ consortium resists expansion of Salmonella enterica serovar Typhimurium.
+ edges_after:
+ - source: Double-Dose OMM12 Engraftment
+ target: Reproducible Multi-Strain Intestinal Colonization
+ description: The repeat application after 72 h improved reproducibility of OMM12 establishment, particularly
+ YL27 detection, relative to the single-dose protocol. This supports a protocol-to-colonization effect in the
+ studied facility cohorts, not guaranteed detection of every strain or isolation of the effects of dose, timing
+ and gut redox.
+ retained_edge_decisions:
+ - source: Double-Dose OMM12 Engraftment
+ target: Reproducible Multi-Strain Intestinal Colonization
+ description: The repeat application after 72 h improved reproducibility of OMM12 establishment, particularly
+ YL27 detection, relative to the single-dose protocol. This supports a protocol-to-colonization effect in the
+ studied facility cohorts, not guaranteed detection of every strain or isolation of the effects of dose, timing
+ and gut redox.
+ rationale: The repeat application after 72 h improved reproducibility of OMM12 establishment, particularly YL27
+ detection, relative to the single-dose protocol. This supports a protocol-to-colonization effect in the studied
+ facility cohorts, not guaranteed detection of every strain or isolation of the effects of dose, timing and
+ gut redox.
+ removed_edge_decisions:
+ - source: Reproducible Multi-Strain Intestinal Colonization
+ target: Colonization Resistance Against Salmonella
+ description: Stable multi-strain Oligo-MM12 colonization supplies the defined community context in which the
+ consortium resists expansion of Salmonella enterica serovar Typhimurium.
+ rationale: Reproducible colonization supplies study context, not proof that protocol-associated composition
+ mediates Salmonella resistance.
+ references:
+ - PMID:27869789
+ - PMID:31998276
+ issues:
+ - 1645
+ - 1650
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/OMM12_Gnotobiotic_Mouse_Gut_Community/2026-10-07T044213Z-codex-8f671e.yaml
+ source_review:
+ - source: omm_protocol
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC6965490/fullTextXML
+ scope: Primary abstract and complete main body, embedded tables and captions; not separate supplements, raw
+ data or original figure pixels.
+ - source: omm_design
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A27869789+AND+SRC%3AMED&format=json&resultType=core
+ scope: Primary abstract only; full text not available through Europe PMC.
+ - source: omm_genomes
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC5646386/fullTextXML
+ scope: Primary abstract and complete main body, embedded tables and captions; not separate supplements, raw
+ data or original figure pixels.
+- path: kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml
+ id: CommunityMech:000176
+ original_sha256: afbab59187bdd475102e8ec957a1039ef0d09eaf792cf8817285e3a0c73ffd33
+ record_sha256: 151a414766ded2f1c8b094002819c6e620751b6344ef9753d1f3a988c1cf99dd
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
+ scope: Whole record and all existing nodes/arrows; missing endpoint and exchange structures tracked explicitly.
+ Not whole-record certification.
+ summary: Retain both donor-to-partner arrows using full-text measurements while separating modeled flux allocations.;
+ Replace reciprocal-syntrophy overclaim with experimentally supported trophic dependence and unresolved donor
+ proportions.; Retain fumarate-linked dependence and repair the fumarate grounding without claiming directly
+ traced acetate flux.; Bound inferred donor/acceptor limitation and possible succinate effects; update the stale
+ full-text-access discussion.
+ renamed_nodes: {}
+ node_decisions:
+ - node: Cellobiose Fermentation Supports Partner Growth
+ original_node: Cellobiose Fermentation Supports Partner Growth
+ rationale: Retain both donor-to-partner arrows using full-text measurements while separating modeled flux allocations.
+ - node: Sulfate-Linked Dependence of D. vulgaris
+ original_node: Sulfate-Linked Dependence of D. vulgaris
+ rationale: Replace reciprocal-syntrophy overclaim with experimentally supported trophic dependence and unresolved
+ donor proportions.
+ - node: Fumarate-Linked Dependence of G. sulfurreducens
+ original_node: Fumarate-Linked Dependence of G. sulfurreducens
+ rationale: Retain fumarate-linked dependence and repair the fumarate grounding without claiming directly traced
+ acetate flux.
+ - node: Electron Donor and Acceptor Limitation
+ original_node: Electron Donor and Acceptor Limitation
+ rationale: Bound inferred donor/acceptor limitation and possible succinate effects; update the stale full-text-access
+ discussion.
+ removed_node_decisions: []
+ edges_before:
+ - source: Cellobiose Fermentation Supports Partner Growth
+ target: Sulfate-Linked Dependence of D. vulgaris
+ description: 'C. cellulolyticum cellobiose-fermentation products are the carbon/energy (electron-donor) source
+ D. vulgaris consumes while reducing its supplied sulfate acceptor; the fermentation cross-feeding is required
+ for D. vulgaris''s sulfate-linked growth. (Abstract-level / directly implied, not perturbation-demonstrated.)
+
+ '
+ - source: Cellobiose Fermentation Supports Partner Growth
+ target: Fumarate-Linked Dependence of G. sulfurreducens
+ description: 'The same fermentation products support G. sulfurreducens, which reduces its supplied fumarate
+ acceptor; the cross-feeding is required for its fumarate-linked growth. (Abstract-level / directly implied,
+ not perturbation-demonstrated.)
+
+ '
+ edges_after:
+ - source: Cellobiose Fermentation Supports Partner Growth
+ target: Sulfate-Linked Dependence of D. vulgaris
+ description: C. cellulolyticum fermentation supplies carbon and reducing equivalents that support D. vulgaris
+ growth with supplied sulfate. Maintained coculture and sulfate depletion support this dependence under the
+ tested medium; hydrogen/ethanol partitioning is proposed rather than selectively measured, and reciprocal
+ obligate dependence of the fermenter is not established.
+ - source: Cellobiose Fermentation Supports Partner Growth
+ target: Fumarate-Linked Dependence of G. sulfurreducens
+ description: Fermentation-derived substrates support G. sulfurreducens growth with supplied fumarate; measured
+ acetate availability, fumarate depletion and succinate formation support the trophic interpretation. The allocation
+ of acetate specifically to G. sulfurreducens is model-based rather than isotope-traced, so the arrow does
+ not assert an independently measured donor-recipient flux.
+ retained_edge_decisions:
+ - source: Cellobiose Fermentation Supports Partner Growth
+ target: Sulfate-Linked Dependence of D. vulgaris
+ description: C. cellulolyticum fermentation supplies carbon and reducing equivalents that support D. vulgaris
+ growth with supplied sulfate. Maintained coculture and sulfate depletion support this dependence under the
+ tested medium; hydrogen/ethanol partitioning is proposed rather than selectively measured, and reciprocal
+ obligate dependence of the fermenter is not established.
+ rationale: C. cellulolyticum fermentation supplies carbon and reducing equivalents that support D. vulgaris
+ growth with supplied sulfate. Maintained coculture and sulfate depletion support this dependence under the
+ tested medium; hydrogen/ethanol partitioning is proposed rather than selectively measured, and reciprocal
+ obligate dependence of the fermenter is not established.
+ - source: Cellobiose Fermentation Supports Partner Growth
+ target: Fumarate-Linked Dependence of G. sulfurreducens
+ description: Fermentation-derived substrates support G. sulfurreducens growth with supplied fumarate; measured
+ acetate availability, fumarate depletion and succinate formation support the trophic interpretation. The allocation
+ of acetate specifically to G. sulfurreducens is model-based rather than isotope-traced, so the arrow does
+ not assert an independently measured donor-recipient flux.
+ rationale: Fermentation-derived substrates support G. sulfurreducens growth with supplied fumarate; measured
+ acetate availability, fumarate depletion and succinate formation support the trophic interpretation. The allocation
+ of acetate specifically to G. sulfurreducens is model-based rather than isotope-traced, so the arrow does
+ not assert an independently measured donor-recipient flux.
+ removed_edge_decisions: []
+ references:
+ - doi:10.1186/1471-2180-10-149
+ issues:
+ - 1646
+ - 1650
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model/2026-10-07T044214Z-codex-34f478.yaml
+ source_review:
+ - source: trophic
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC2906461/fullTextXML
+ scope: Primary abstract and complete main body, embedded tables and captions; not separate supplements, raw
+ data or original figure pixels.
+ - source: optcom
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC3271020/fullTextXML
+ scope: Primary abstract and complete main body, embedded tables and captions; not separate supplements, raw
+ data or original figure pixels.
+- path: kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml
+ id: CommunityMech:000047
+ original_sha256: c055feb25c84b1a057c53216e1f1312d4666331804585728d816287245a6d24f
+ record_sha256: 339ff13ebe407e9c101499ec4a8ec7618da7079c503e7457152577021ab71a04
+ status: needs_research
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml
+ scope: Whole record and all existing nodes/arrows; missing endpoint and exchange structures tracked explicitly.
+ Not whole-record certification.
+ summary: Retain two condition-to-assembly arrows while distinguishing MOPS and R2A stabilization times.; Preserve
+ agar inhibition and promotion without treating them as demonstrated liquid-assembly mechanisms.; Retain explicitly
+ hypothesized R2A support arrow; bound FBA evidence, include the modeled partners and remove two incorrect chemical
+ groundings.; Preserve four-strain MOPS coexistence without niche overclaim; missing exchange topology remains
+ research work.; Preserve R2A survivor and BC15 protein results without equating assays or proving viable-cell
+ counts.
+ renamed_nodes:
+ Medium-Dependent Stable Community Assembly: Medium-Dependent Serial-Passage Selection
+ Selective Antagonism During Assembly: Pairwise Growth Phenotypes on R2A Agar
+ node_decisions:
+ - node: Medium-Dependent Serial-Passage Selection
+ original_node: Medium-Dependent Stable Community Assembly
+ rationale: Retain two condition-to-assembly arrows while distinguishing MOPS and R2A stabilization times.
+ - node: Pairwise Growth Phenotypes on R2A Agar
+ original_node: Selective Antagonism During Assembly
+ rationale: Preserve agar inhibition and promotion without treating them as demonstrated liquid-assembly mechanisms.
+ - node: Pantoea-Centered R2A Metabolite Export
+ original_node: Pantoea-Centered R2A Metabolite Export
+ rationale: Retain explicitly hypothesized R2A support arrow; bound FBA evidence, include the modeled partners
+ and remove two incorrect chemical groundings.
+ - node: MOPS Minimal-Medium Four-Strain Coexistence
+ original_node: MOPS Minimal-Medium Four-Strain Coexistence
+ rationale: Preserve four-strain MOPS coexistence without niche overclaim; missing exchange topology remains
+ research work.
+ - node: R2A Pantoea-Dominated Stable Community
+ original_node: R2A Pantoea-Dominated Stable Community
+ rationale: Preserve R2A survivor and BC15 protein results without equating assays or proving viable-cell counts.
+ removed_node_decisions: []
+ edges_before:
+ - source: Medium-Dependent Stable Community Assembly
+ target: MOPS Minimal-Medium Four-Strain Coexistence
+ description: The MOPS-glucose condition selected a stable community dominated by Pseudomonas, Variovorax, Rhizobium,
+ and Sphingobium.
+ - source: Medium-Dependent Stable Community Assembly
+ target: R2A Pantoea-Dominated Stable Community
+ description: The R2A condition selected a community dominated by Pantoea, Pseudomonas, Sphingobium, and viable
+ Bacillus biomass.
+ - source: Pantoea-Centered R2A Metabolite Export
+ target: R2A Pantoea-Dominated Stable Community
+ description: FBA-predicted export by Pantoea provides a computational exchange mechanism for R2A community persistence.
+ edges_after:
+ - source: Medium-Dependent Serial-Passage Selection
+ target: MOPS Minimal-Medium Four-Strain Coexistence
+ description: Serial passage in the MOPS-glucose condition selected the persistent Pseudomonas, Variovorax, Rhizobium
+ and Sphingobium assemblage, in contrast to the R2A outcome from the same inoculum. The condition-to-composition
+ effect is supported without isolating nutrient competition from proposed exchange mechanisms.
+ - source: Medium-Dependent Serial-Passage Selection
+ target: R2A Pantoea-Dominated Stable Community
+ description: Serial passage in the R2A condition selected the Pantoea-dominated 16S assemblage with Pseudomonas
+ and Sphingobium, while metaproteomics also recovered notable Bacillus proteins. The medium effect on community
+ composition is retained without equating protein-relative abundance with directly counted viable biomass.
+ - source: Pantoea-Centered R2A Metabolite Export
+ target: R2A Pantoea-Dominated Stable Community
+ description: HYPOTHESIZED - Predicted YR343 secretion could provide growth substrates that help sustain the
+ R2A partners. The source proposes this mechanism, but FBA uses final community proportions as inputs and does
+ not independently establish temporal assembly or measured cross-feeding; enzyme detection is not exchange-flux
+ validation.
+ retained_edge_decisions:
+ - source: Medium-Dependent Serial-Passage Selection
+ target: MOPS Minimal-Medium Four-Strain Coexistence
+ description: Serial passage in the MOPS-glucose condition selected the persistent Pseudomonas, Variovorax, Rhizobium
+ and Sphingobium assemblage, in contrast to the R2A outcome from the same inoculum. The condition-to-composition
+ effect is supported without isolating nutrient competition from proposed exchange mechanisms.
+ rationale: Serial passage in the MOPS-glucose condition selected the persistent Pseudomonas, Variovorax, Rhizobium
+ and Sphingobium assemblage, in contrast to the R2A outcome from the same inoculum. The condition-to-composition
+ effect is supported without isolating nutrient competition from proposed exchange mechanisms.
+ - source: Medium-Dependent Serial-Passage Selection
+ target: R2A Pantoea-Dominated Stable Community
+ description: Serial passage in the R2A condition selected the Pantoea-dominated 16S assemblage with Pseudomonas
+ and Sphingobium, while metaproteomics also recovered notable Bacillus proteins. The medium effect on community
+ composition is retained without equating protein-relative abundance with directly counted viable biomass.
+ rationale: Serial passage in the R2A condition selected the Pantoea-dominated 16S assemblage with Pseudomonas
+ and Sphingobium, while metaproteomics also recovered notable Bacillus proteins. The medium effect on community
+ composition is retained without equating protein-relative abundance with directly counted viable biomass.
+ - source: Pantoea-Centered R2A Metabolite Export
+ target: R2A Pantoea-Dominated Stable Community
+ description: HYPOTHESIZED - Predicted YR343 secretion could provide growth substrates that help sustain the
+ R2A partners. The source proposes this mechanism, but FBA uses final community proportions as inputs and does
+ not independently establish temporal assembly or measured cross-feeding; enzyme detection is not exchange-flux
+ validation.
+ rationale: HYPOTHESIZED - Predicted YR343 secretion could provide growth substrates that help sustain the R2A
+ partners. The source proposes this mechanism, but FBA uses final community proportions as inputs and does
+ not independently establish temporal assembly or measured cross-feeding; enzyme detection is not exchange-flux
+ validation.
+ removed_edge_decisions: []
+ references:
+ - PMID:33995895
+ issues:
+ - 1647
+ - 1649
+ - 1650
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/ORNL_PMI_Populus_PD10_SynCom/2026-10-07T044214Z-codex-9249b5.yaml
+ source_review:
+ - source: populus
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC8079826/fullTextXML
+ scope: Primary abstract and complete main body, embedded tables and captions; not separate supplements, raw
+ data or original figure pixels.
diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv
index 7c2976018..92faac241 100644
--- a/reports/causal_graph_review/inventory.tsv
+++ b/reports/causal_graph_review/inventory.tsv
@@ -275,10 +275,10 @@ kb/communities/Nasal_SynCom_C_Bioreactor.yaml CommunityMech:000395 4bd66811333c6
kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml CommunityMech:000156 2dfcebb0ae5d58d6bedffe10cda2f9c71f2e8866278739376d7e788835859864 3 2 100.0 reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml reviewed
kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml CommunityMech:000243 f483df7d09ad54db2c7ee6ef0e4bcaa8f40aa66a12fc8cb4aa5568c2f84243df 5 0 65.0 reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml reviewed
kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml CommunityMech:000342 b782163d991445cbfabe4645db8c21b3597c0cb40046148fa0f5a208c5342838 1 0 55.0 reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml needs_research
-kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml CommunityMech:000433 46957070bdbb0560357ac1bd198673784315576a2a5797b54ccea01dd55f184d 1 0 63.3 pending
-kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml CommunityMech:000133 410fdef86f2d9df0febcea39df64b3c69113651f167bbdaaa34f6a54113987e1 3 2 100.0 pending
-kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml CommunityMech:000176 afbab59187bdd475102e8ec957a1039ef0d09eaf792cf8817285e3a0c73ffd33 4 2 100.0 pending
-kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml CommunityMech:000047 c055feb25c84b1a057c53216e1f1312d4666331804585728d816287245a6d24f 5 3 100.0 pending
+kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml CommunityMech:000433 61a0b16fc00db138fa35884e8f9f170bda3b2cc9092008a9d5098b3600ad920a 1 0 63.3 reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml needs_research
+kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml CommunityMech:000133 850493028ce860f07a09dccf22edadd16a29743f9ba8c42363c36091ad0a5e38 3 1 90.0 reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml reviewed
+kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml CommunityMech:000176 151a414766ded2f1c8b094002819c6e620751b6344ef9753d1f3a988c1cf99dd 4 2 97.5 reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml reviewed
+kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml CommunityMech:000047 339ff13ebe407e9c101499ec4a8ec7618da7079c503e7457152577021ab71a04 5 3 92.0 reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml needs_research
kb/communities/Oak_Ridge_FRC_Uranium_Nitrate_Groundwater_Community.yaml CommunityMech:000136 c151a2da760528280dbab8bc4c3225ce73841a58f7df24391cbb112af2b84c90 3 2 100.0 pending
kb/communities/Ogataea_Met10_Str3_Sulfur_CrossFeeding_Coculture.yaml CommunityMech:000450 a6b1d3f9f3dd26c371733554918220ff570d308478415e5f8434828237d65f64 3 0 70.0 pending
kb/communities/Okeke_Lu_Cellulolytic_Consortium.yaml CommunityMech:000048 31645319bff71e9bd1c8c4cc884c8fceb10b257457f6f18bc44b0a0c7cbe85ce 3 2 100.0 pending
diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json
index 31ef4cd53..3d8f5c74c 100644
--- a/reports/causal_graph_review/summary.json
+++ b/reports/causal_graph_review/summary.json
@@ -3,13 +3,13 @@
"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": 1447,
- "edges": 615,
+ "edges": 614,
"records_without_nodes": 8,
"records_without_edges": 166,
"review_status_counts": {
- "needs_research": 28,
- "pending": 184,
- "reviewed": 248
+ "needs_research": 30,
+ "pending": 180,
+ "reviewed": 250
},
"structural_defects": [],
"network_audit": [
diff --git a/reports/causal_graph_review/validation-20261007-batch78.json b/reports/causal_graph_review/validation-20261007-batch78.json
new file mode 100644
index 000000000..51f0eec38
--- /dev/null
+++ b/reports/causal_graph_review/validation-20261007-batch78.json
@@ -0,0 +1,1037 @@
+{
+ "base_commit": "76c0dec3077239bbe236ba6a01e76df3923b6f65",
+ "scope": [
+ "kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml",
+ "kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml",
+ "kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml",
+ "kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml"
+ ],
+ "reference_validator_version": "0.1.7",
+ "results": [
+ {
+ "check": "Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch78/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-strict.tsv",
+ "kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-strict.log",
+ "log_sha256": "daa2bff0f6ed5003433ed170bc0fe2470c38ad86ae268076aeaf3afa5200e80b",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch78/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-batch78/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-strict.tsv\n"
+ },
+ {
+ "check": "Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-references.log",
+ "log_sha256": "67005e608c95f642375b057457689a2727dd5d3a28c88820686980985c531ea9",
+ "output_tail": "Validating kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.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/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.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": "Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-snippets.log",
+ "log_sha256": "826e9c1ef5038bfe5995c8f56b27f9f6d8418cb9a40f124b1547f2d75876c305",
+ "output_tail": "# 15 evidence snippets scanned across 1 files\n MATCH 15\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": "Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-rank.log",
+ "log_sha256": "48b55caad18af6f02048c40e8fcc90d0c313b44688ebe46fca1ce19a6087391e",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000433\",\n \"name\": \"Nitrifying Wastewater Ammonia-Oxidizing Consortium\",\n \"score\": 63.3,\n \"taxonomy\": 3,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 1,\n \"ecological_interactions\": 1,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 2,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_interactions\",\n \"downstream\",\n \"disconnected_taxa\"\n ],\n \"path\": \"kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium/2026-10-07T044213Z-codex-ac464a.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "OMM12_Gnotobiotic_Mouse_Gut_Community-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/OMM12_Gnotobiotic_Mouse_Gut_Community-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "OMM12_Gnotobiotic_Mouse_Gut_Community-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch78/OMM12_Gnotobiotic_Mouse_Gut_Community-strict.tsv",
+ "kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/OMM12_Gnotobiotic_Mouse_Gut_Community-strict.log",
+ "log_sha256": "07e739ce98400169e69535f2006da70928c15db32219455d342c7bc054304d29",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch78/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-batch78/OMM12_Gnotobiotic_Mouse_Gut_Community-strict.tsv\n"
+ },
+ {
+ "check": "OMM12_Gnotobiotic_Mouse_Gut_Community-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/OMM12_Gnotobiotic_Mouse_Gut_Community-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "OMM12_Gnotobiotic_Mouse_Gut_Community-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/OMM12_Gnotobiotic_Mouse_Gut_Community-references.log",
+ "log_sha256": "cbe2c26696d39dc1b687f965d55d1631deac98ed3f765cff9d72004d35803447",
+ "output_tail": "Validating kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.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/OMM12_Gnotobiotic_Mouse_Gut_Community.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": "OMM12_Gnotobiotic_Mouse_Gut_Community-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/OMM12_Gnotobiotic_Mouse_Gut_Community-snippets.log",
+ "log_sha256": "6fd22c7b42f139e3b66a27210ad3d8968c80af940879c7074184305812838cca",
+ "output_tail": "# 13 evidence snippets scanned across 1 files\n MATCH 13\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": "OMM12_Gnotobiotic_Mouse_Gut_Community-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/OMM12_Gnotobiotic_Mouse_Gut_Community-rank.log",
+ "log_sha256": "5dadfcf486093dc6a32565b74392756df296958bd1a98a6d831f793d5e39010d",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000133\",\n \"name\": \"OMM12 Gnotobiotic Mouse Gut Community\",\n \"score\": 90.0,\n \"taxonomy\": 1,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 1,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_downstream\"\n ],\n \"path\": \"kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "OMM12_Gnotobiotic_Mouse_Gut_Community-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/OMM12_Gnotobiotic_Mouse_Gut_Community/2026-10-07T044213Z-codex-8f671e.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/OMM12_Gnotobiotic_Mouse_Gut_Community-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch78/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-strict.tsv",
+ "kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-strict.log",
+ "log_sha256": "b8f83e7922bb8792e677a4b582c0f2bad0bf1c5ff2ea37ba11ba03aba3f77d1f",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch78/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-batch78/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-strict.tsv\n"
+ },
+ {
+ "check": "ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-references.log",
+ "log_sha256": "5127b992104b1060c1dae191d8aead8d7d3c87c5fd0a44a3f52e7fb1e6d040e1",
+ "output_tail": "Validating kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.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/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.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": "ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-snippets.log",
+ "log_sha256": "d353a2e438e49543043d94dbd2d275ccc825dad7bb23be8ad43bf853927d2fe3",
+ "output_tail": "# 28 evidence snippets scanned across 1 files\n MATCH 28\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": "ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-rank.log",
+ "log_sha256": "3314e313483de1a047da8f5ff424701b4caa480d239d3c91b29c60eb630db43f",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000176\",\n \"name\": \"ORNL Clostridium-Desulfovibrio-Geobacter Trophic Model Community\",\n \"score\": 97.5,\n \"taxonomy\": 3,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 4,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 8,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model/2026-10-07T044214Z-codex-34f478.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "ORNL_PMI_Populus_PD10_SynCom-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_PMI_Populus_PD10_SynCom-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "ORNL_PMI_Populus_PD10_SynCom-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch78/ORNL_PMI_Populus_PD10_SynCom-strict.tsv",
+ "kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_PMI_Populus_PD10_SynCom-strict.log",
+ "log_sha256": "5668c6b5e2f51c76a739e137e927809c4333c1f8ca9343b8c357da6a34698935",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch78/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-batch78/ORNL_PMI_Populus_PD10_SynCom-strict.tsv\n"
+ },
+ {
+ "check": "ORNL_PMI_Populus_PD10_SynCom-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_PMI_Populus_PD10_SynCom-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "ORNL_PMI_Populus_PD10_SynCom-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_PMI_Populus_PD10_SynCom-references.log",
+ "log_sha256": "5d0989a9f7069727aded4506932d6e5f39d10d5cf605c12b079a60c0ccc31c1f",
+ "output_tail": "Validating kb/communities/ORNL_PMI_Populus_PD10_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/ORNL_PMI_Populus_PD10_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": "ORNL_PMI_Populus_PD10_SynCom-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_PMI_Populus_PD10_SynCom-snippets.log",
+ "log_sha256": "4840e2de4e260572822d66750868f711a6cff9ac07dd8055c04fa45aaf319445",
+ "output_tail": "# 29 evidence snippets scanned across 1 files\n MATCH 29\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": "ORNL_PMI_Populus_PD10_SynCom-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_PMI_Populus_PD10_SynCom-rank.log",
+ "log_sha256": "6cbe6197453a8e75e654ae257ffa55aae095f2bc195e069010aecbcbaa91136e",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000047\",\n \"name\": \"ORNL PMI Populus PD10 SynCom\",\n \"score\": 92.0,\n \"taxonomy\": 10,\n \"connected_taxa\": 10,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 5,\n \"downstream_edges\": 3,\n \"interaction_evidence\": 8,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "ORNL_PMI_Populus_PD10_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/ORNL_PMI_Populus_PD10_SynCom/2026-10-07T044214Z-codex-9249b5.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ORNL_PMI_Populus_PD10_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-batch78/inventory.log",
+ "log_sha256": "7b82644f75ec46066cc6c8936f80894b41a6f4b0e81bc0b2cfa0336824c60333",
+ "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\": 1447,\n \"edges\": 614,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 166,\n \"review_status_counts\": {\n \"needs_research\": 30,\n \"pending\": 180,\n \"reviewed\": 250\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-batch78/network.log",
+ "log_sha256": "dcb33d46aa53f5e1dec55b1cd6463b83d3723e2ebf8c97999c93d0a5f4a2fed1",
+ "output_tail": "{\n \"preferred_term\": \"Legionella MAGs\",\n \"term\": {\n \"id\": \"NCBITaxon:445\",\n \"label\": \"Legionella\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The study detected Legionella-affiliated MAGs and used them in a virulence-gene risk assessment; the source did not assert pathogenicity for a cultured Legionella isolate.\\n\"\n },\n \"abundance_value\": \"Lower-abundance Legionella-affiliated MAGs detected during metagenomic risk assessment.\\n\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41457319\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"COMPUTATIONAL\",\n \"snippet\": \"detection of waterborne pathogens from the Legionella genus\",\n \"explanation\": \"Supports Legionella-affiliated lower-abundance bins as monitored biosafety-relevant members of the consortium.\\n\"\n }\n ]\n },\n \"message\": \"Taxon 'Legionella MAGs' 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": "rank-all",
+ "command": [
+ "just",
+ "rank-causal-graphs"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/rank-all.log",
+ "log_sha256": "5d648ee7537de6316349e2d68913e86a3296c8b9353892e3c706ce96510f397b",
+ "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-batch78/render.log",
+ "log_sha256": "4c9cf14c3c51ecd390693d7228ed1a1956c65d35077eae5dd8dacd898f93aa8d",
+ "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch78/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch78/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch78/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-batch78/render-repeat.log",
+ "log_sha256": "4c9cf14c3c51ecd390693d7228ed1a1956c65d35077eae5dd8dacd898f93aa8d",
+ "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch78/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch78/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch78/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch78/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-batch77')),('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-batch78/connectivity-survey.log",
+ "log_sha256": "52c3470443d3c017a6c5f5ffed2fbb43348feee7fe8afbea853d97b3c39e9ed4",
+ "output_tail": "{\"baseline\": {\"records\": 460, \"with_community_level\": 393, \"mixed\": 125, \"community_level_only\": 268, \"taxa\": 1511, \"credited_solely_by_the_rule\": 1240}, \"current\": {\"records\": 460, \"with_community_level\": 393, \"mixed\": 125, \"community_level_only\": 268, \"taxa\": 1511, \"credited_solely_by_the_rule\": 1240}}\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_batch8.py",
+ "tests/test_causal_review_batch9.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-batch78/regressions.log",
+ "log_sha256": "5b834b4fee8c3b8ab55bac3897a7693209351f791a79787b5c18d67b0f528e02",
+ "output_tail": "........................................................................ [ 10%]\n........................................................................ [ 20%]\n........................................................................ [ 31%]\n........................................................................ [ 41%]\n........................................................................ [ 51%]\n........................................................................ [ 62%]\n........................................................................ [ 72%]\n........................................................................ [ 82%]\n........................................................................ [ 93%]\n................................................ [100%]\n696 passed in 202.21s (0:03:22)\n"
+ },
+ {
+ "check": "black",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black",
+ "--check",
+ "tests/test_causal_review_batch78.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/black.log",
+ "log_sha256": "1a56c7cd8457fd05d978cfbd139d7bfd86e86acaa9b57668e718ef8bccc0cf48",
+ "output_tail": "All done! \u2728 \ud83c\udf70 \u2728\n1 file would be left unchanged.\n"
+ },
+ {
+ "check": "ruff",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/wCcxEYRM4HeHgwYPZemHX/bin/ruff",
+ "check",
+ "tests/test_causal_review_batch78.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/ruff.log",
+ "log_sha256": "82b3e6a6c090a57601d22943bd23fca9218d1031dbe5a7b754092f9a156b4f18",
+ "output_tail": "All checks passed!\n"
+ },
+ {
+ "check": "diff-check",
+ "command": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/diff-check.log",
+ "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "output_tail": ""
+ },
+ {
+ "check": "primary-graph-proof",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-c",
+ "import hashlib,json,pathlib,yaml\nP=pathlib.Path\nledger=yaml.safe_load(P('reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml').read_text())\nfor p,h in ledger['primary_artifacts'].items():\n assert hashlib.sha256(P(p).read_bytes()).hexdigest()==h\nmanifest=json.loads(P('/private/tmp/communitymech-batch78/primary-manifest.json').read_text())\nsources={v['reference']:''.join(P(v['extracted_body']).read_text().split()) for v in manifest.values()}\ncount=0\nfor row in ledger['records']:\n doc=yaml.safe_load(P(row['path']).read_text())\n for n in doc['ecological_interactions']:\n for e in n['evidence']:\n assert ''.join(e['snippet'].split()) in sources[e['reference']]\n count+=1\nassert count==22\nassert sum(len(r['node_decisions']) for r in ledger['records'])==13\nassert sum(len(r['edges_before']) for r in ledger['records'])==7\nassert sum(len(r['edges_after']) for r in ledger['records'])==6\nassert sum(len(r['removed_edge_decisions']) for r in ledger['records'])==1\nassert sum(r['curation_events_added'] for r in ledger['records'])==4\nassert [r['status'] for r in ledger['records']]==['needs_research','reviewed','reviewed','needs_research']\nprint(json.dumps(dict(primary_matched=count,new_nodes_or_arrows=0,complete_main_bodies_read=6,omm_design_abstract_bounded=True,separate_supplements_raw_datasets_original_figure_pixels_or_live_kbase_models_audited=False)))\n"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/primary-graph-proof.log",
+ "log_sha256": "54254a293e7c7772b909183062b4f78382ea63fc4c5fd3bb8c5a18a52ef8b8aa",
+ "output_tail": "{\"primary_matched\": 22, \"new_nodes_or_arrows\": 0, \"complete_main_bodies_read\": 6, \"omm_design_abstract_bounded\": true, \"separate_supplements_raw_datasets_original_figure_pixels_or_live_kbase_models_audited\": false}\n"
+ },
+ {
+ "check": "focused-final",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "pytest",
+ "-q",
+ "tests/test_causal_review_batch78.py",
+ "tests/test_participating_taxa.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch78/focused-final.log",
+ "log_sha256": "f19a5248a96a902b9b3fced90aef4584d72b7d310433892a36ee6ebd55d9fdec",
+ "output_tail": "................... [100%]\n19 passed in 17.01s\n"
+ }
+ ],
+ "limitations": [
+ "Fresh pre-paper baseline includes460 records and920 caches across both roots with ignored/hidden-independent enumeration. All13 current nodes and7arrows reviewed;13nodes6arrows remain. Four guarded repairs and histories,456 other records and all920 caches unchanged.",
+ "Six complete primary main bodies read from fresh Europe PMC XML, including embedded captions and structured tables. OMM design/infection paper is public-abstract bounded; Nature subscription preview and PMC reCAPTCHA were respected. No separate supplement, original figure pixels, raw dataset or live KBase model execution was audited.",
+ "Early oversized cache/combined output truncations do not establish absence. Relevant full primary texts were read in bounded chunks and structured tables read separately. Dry-run metadata fields are parsed structurally; rendering a truncated meta file is not report inspection.",
+ "Every22 graph quotations independently matches fresh primary text and existing cache. No cache changed or full publication uploaded. Literal matching is not entailment; full-record reference validators and source-based review remain distinct.",
+ "Nitrifier positive aerobic removal after lag and anoxic ammonia accumulation are preserved. Introductory handoff background is not experimental pair flux; gene potential and amoC expression alone do not establish complete enzyme activity. Missing redox endpoints remain needs_research.",
+ "OMM12 retains real but lower-than-conventional resistance. Expanded-community conventional-like resistance is not transferred to the12-member record. Repeat-dose improvement remains without all-strain detection guarantees or functional mediation; staged cohorts and qPCR units are explicit.",
+ "ORNL trophic main text supersedes old access limitation. Bulk substrate and product measurements support both trophic arrows; species allocations and donor proportions remain model estimates. OptCom assumptions and modeled fourth-member extension are not measured three-species flux or membership.",
+ "PD10 retains medium-dependent survivor selection and proposed R2A substrate support. Endpoint-conditioned FBA and pathway proteins do not independently validate assembly or exchange flux. Agar inhibition/promotion differs from liquid coexistence. Generic predicted metabolite classes do not justify purine-alkaloid or aromatase-inhibitor groundings. Missing MOPS exchange structure remains needs_research.",
+ "Two separate one-community Edison LITERATURE dry runs used zero provider submissions/credits. Scoped questions remain unanswered; generic authorization and earlier pending/denied scopes are not broadened. No new nodes or arrows added.",
+ "Dedup reviewed926 all-state issue titles/bodies and99 local matches with ignored/hidden-inclusive search excluding git/docs/site/cache. Matching12/416/592/595/1083/1532/1533 and529/543 read; no exhaustive PR-comment audit. Earlier fixes remain, and1532/1533 concern a different record.",
+ "Repairs1644-1647 remain OPEN until protected-main merge; research1648/1649 and metadata1650 remain OPEN afterward. Canonical taxa and raw non-graph fields preserved, not certified. Self-adversarial review is not independent approval or corpus completion.",
+ "Exact HTML-description parser and repeat-render checks, not browser screenshots. Post-commit docs-current is separate."
+ ],
+ "snippet_counts_by_record": {
+ "kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml": {
+ "MATCH": 15,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml": {
+ "MATCH": 13,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml": {
+ "MATCH": 28,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml": {
+ "MATCH": 29,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ }
+ },
+ "unchanged_raw_blocks": 62,
+ "unchanged_record_files": 456,
+ "unchanged_cache_files": 920,
+ "cache_changes": [],
+ "edison": {
+ "required_for_this_repair": false,
+ "required_for_unresolved_extensions": true,
+ "provider_submissions": 0,
+ "credits_spent": 0,
+ "dry_runs": [
+ {
+ "community_id": "CommunityMech:000433",
+ "job": "LITERATURE",
+ "query_chars": 9473,
+ "query_sha256": "9cb17046ed5b75af97b0ac4c34efa9851bdc1c17522872c6afde5d900e7b736d",
+ "meta_path": "/private/tmp/communitymech-batch78/edison-nitrifier/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-edison-literature-causal-meta.yaml",
+ "authorization": "Scoped asynchronous question unanswered; preselection is not approval."
+ },
+ {
+ "community_id": "CommunityMech:000047",
+ "job": "LITERATURE",
+ "query_chars": 15034,
+ "query_sha256": "024cc9d6f3d0e1209a08a18d3edf8c7b148a942c94717104f06b881aaa3b32bc",
+ "meta_path": "/private/tmp/communitymech-batch78/edison-populus/ORNL_PMI_Populus_PD10_SynCom-edison-literature-causal-meta.yaml",
+ "authorization": "Scoped asynchronous question unanswered; preselection is not approval."
+ }
+ ]
+ },
+ "primary_artifacts": {
+ "/private/tmp/communitymech-batch78/baseline.json": "0e579a9ba031fa3eff014e3274ad9e9b9577cb804a4debd8d2e1ffe81c2ea326",
+ "/private/tmp/communitymech-batch78/edison-nitrifier/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium-edison-literature-causal-meta.yaml": "248d757e29d1d1173ba4d681cd446479254db39694887bf10410777d02e936ac",
+ "/private/tmp/communitymech-batch78/edison-populus/ORNL_PMI_Populus_PD10_SynCom-edison-literature-causal-meta.yaml": "f3d34e3c779c03a733ab7d7c4d118aaa7dd67996f7acea5f65c29b4d11c5898a",
+ "/private/tmp/communitymech-batch78/issue-matches.json": "c378b9affb7e8288d1c482fe9b885b3ecc57ee2435424ff05c5f1b3c42f4f736",
+ "/private/tmp/communitymech-batch78/issues.json": "a2c1e09a5d9c51331e95ee395fbc46132aa9cafcd3e5dbb1da77d7193a2d0300",
+ "/private/tmp/communitymech-batch78/local-matches.txt": "ae2c6fa961a0237aa7494882764200c965de24c083a190db5932d9a9f03459cd",
+ "/private/tmp/communitymech-batch78/nitrifier-metadata.json": "2bf55bf1b620792b66c3001ace6160a5ce6c587ae4f80cd861511670d312b237",
+ "/private/tmp/communitymech-batch78/nitrifier-primary.txt": "0d7c394adc7be6c766e6b61fc13f485d2b7cbda1254f8e65173900124c82c263",
+ "/private/tmp/communitymech-batch78/nitrifier-primary.xml": "e71298b32c2f0db232f6b4ef5fb11831218cc4f0c62df6e41c18e388ad662498",
+ "/private/tmp/communitymech-batch78/nitrifier-tables.txt": "53db0a29a26055361eff92fcdeb519cecec971c011a4db8c7c75ea8d9addd9ac",
+ "/private/tmp/communitymech-batch78/omm_design-metadata.json": "ad7f7d92aa6f33e19e189afec005fbc206bab946d4dc88f7c375b63687c6b62e",
+ "/private/tmp/communitymech-batch78/omm_design-primary.txt": "08a247b1137a92638b6933cd15d08f9606ac13a79457c389e841cf8a3ab86a8c",
+ "/private/tmp/communitymech-batch78/omm_genomes-metadata.json": "12c158b78d873287986204e3499f9c6cbe782e8cc0f5f283c33bbcee91130a51",
+ "/private/tmp/communitymech-batch78/omm_genomes-primary.txt": "24986d310ef33f5085030ace6b92490e1f3e6c45a6881e1c3600de62992c7319",
+ "/private/tmp/communitymech-batch78/omm_genomes-primary.xml": "44cb2cad9956742347274ea6154ec004309e2d61326e8625bad0d23617c3531e",
+ "/private/tmp/communitymech-batch78/omm_genomes-tables.txt": "a6cee3b78c5406f673f1360bbaa016ae153e133ba8191543d9a069af31019251",
+ "/private/tmp/communitymech-batch78/omm_protocol-metadata.json": "40677449aa60d0ee2cc288088bc7eb9f83172fe65d135c5e3a26cf40312f229b",
+ "/private/tmp/communitymech-batch78/omm_protocol-primary.txt": "cffff5cc7d89e7042678c58320817755d15c92deaa9b3cdeafdbcdf0d21c8950",
+ "/private/tmp/communitymech-batch78/omm_protocol-primary.xml": "308c04e35883e5fbe7a6f38e3ad9926be73c34309cc56460d171cd293e4d6207",
+ "/private/tmp/communitymech-batch78/omm_protocol-tables.txt": "9197dfe08b30167cce2e82f3cc43e2ed1cf2e0cc67f2badbebdf4f3b5e2dafb9",
+ "/private/tmp/communitymech-batch78/optcom-metadata.json": "6c31c3cf99741bc8d37bd4ef773258213feda2cf015af7bb84681b485376e4a2",
+ "/private/tmp/communitymech-batch78/optcom-primary.txt": "2f1b68b9008a302626382b65857ab6b05597835024cdb0c508c42b02ee1c3690",
+ "/private/tmp/communitymech-batch78/optcom-primary.xml": "593a724116faabc68408d9ca888f0e223024fbd6c996fc336f22184be1bdc6c2",
+ "/private/tmp/communitymech-batch78/optcom-tables.txt": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
+ "/private/tmp/communitymech-batch78/populus-metadata.json": "104c5ebd00ec13a4c12ab59f1af0feec66833918f81f92e5efdecb4c261402c4",
+ "/private/tmp/communitymech-batch78/populus-primary.txt": "059783975b280476bf82d18171b3314b305cb364e4ecef9377431d210ac3ab7d",
+ "/private/tmp/communitymech-batch78/populus-primary.xml": "37b236655bf4771e52bf7710670096e367c4e08400f7f4ca7f4126de0fa237f7",
+ "/private/tmp/communitymech-batch78/populus-tables.txt": "837db081ba0321938ff39e74fd470696f8533f510aa5bf9e09032fcf88d110a2",
+ "/private/tmp/communitymech-batch78/primary-manifest.json": "eea39fc29c7d5224cc7495f6e9cd3a8f943e5c108843b6689528a01ce92da1d0",
+ "/private/tmp/communitymech-batch78/trophic-metadata.json": "6483086d151770f7e9008d3462c1f069c63cd2d9869d6f04b076ee7135165b3c",
+ "/private/tmp/communitymech-batch78/trophic-primary.txt": "4938447e3b1a8302438a5fb08ec509727305dc26c4c50a885daa7909f5d589bd",
+ "/private/tmp/communitymech-batch78/trophic-primary.xml": "63ee4104381ccb9b3d3ac571b07649d1cbc0188deabcd4ce246f8bf7253755f5",
+ "/private/tmp/communitymech-batch78/trophic-tables.txt": "03dbfb2f2a47ae6d8f17a5902c7573bb00a2741c0b54607e18131ddc5d9cff5a"
+ },
+ "network_delta": {
+ "existing_findings_preserved": 44,
+ "added_findings": {},
+ "removed_findings": {},
+ "interpretation": "All44 baseline warnings preserved exactly. Community scope remains aggregate, not resolved member-specific activity. No taxonomy or auditor-rule changes."
+ },
+ "render_determinism": true,
+ "published_description_coverage": {
+ "pages": 456,
+ "nodes": 1433,
+ "arrows": 606
+ },
+ "participant_census": {
+ "measurements": {
+ "baseline": {
+ "records": 460,
+ "with_community_level": 393,
+ "mixed": 125,
+ "community_level_only": 268,
+ "taxa": 1511,
+ "credited_solely_by_the_rule": 1240
+ },
+ "current": {
+ "records": 460,
+ "with_community_level": 393,
+ "mixed": 125,
+ "community_level_only": 268,
+ "taxa": 1511,
+ "credited_solely_by_the_rule": 1240
+ }
+ },
+ "delta": {
+ "records": 0,
+ "with_community_level": 0,
+ "mixed": 0,
+ "community_level_only": 0,
+ "taxa": 0,
+ "credited_solely_by_the_rule": 0
+ },
+ "interpretation": "No scope-count change, taxonomy edit, or auditor-rule change. Aggregate outcomes do not establish member-resolved activity."
+ },
+ "network_warning_count": 44,
+ "corpus": {
+ "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.",
+ "records": 460,
+ "nodes": 1447,
+ "edges": 614,
+ "records_without_nodes": 8,
+ "records_without_edges": 166,
+ "review_status_counts": {
+ "needs_research": 30,
+ "pending": 180,
+ "reviewed": 250
+ },
+ "structural_defects": []
+ },
+ "tested_file_sha256": {
+ "reports/causal_graph_review/decisions/20261007-four-records-batch78.yaml": "5803b1826d23abd55d08addeb735915efbe4906b77096584338e28c200415ea2",
+ "tests/test_causal_review_batch78.py": "2725914f0db01e44accb4e7cb4241cfb86935a3f17d99c62c1482e417f172ccf",
+ "kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml": "61a0b16fc00db138fa35884e8f9f170bda3b2cc9092008a9d5098b3600ad920a",
+ "kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml": "850493028ce860f07a09dccf22edadd16a29743f9ba8c42363c36091ad0a5e38",
+ "kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml": "151a414766ded2f1c8b094002819c6e620751b6344ef9753d1f3a988c1cf99dd",
+ "kb/communities/ORNL_PMI_Populus_PD10_SynCom.yaml": "339ff13ebe407e9c101499ec4a8ec7618da7079c503e7457152577021ab71a04",
+ "reports/causal_graph_review/README.md": "9d2535ea11646668c20770637d0028435cdb78e3560f51ee6690c984a6400831"
+ },
+ "status": "verified_assay_boundary_graph_review",
+ "pre_research_baseline": {
+ "base_commit": "76c0dec3077239bbe236ba6a01e76df3923b6f65",
+ "base_tree": "487649ad1cb513fe1cb956be8515a694726cff1a",
+ "research_worktree": "/private/tmp/communitymech-causal-batch77",
+ "checks": [
+ {
+ "name": "rank",
+ "command": [
+ "just",
+ "rank-causal-graphs"
+ ],
+ "exit_code": 0,
+ "expected_exit_code": 0,
+ "log": "/private/tmp/communitymech-batch78/baseline-rank.log",
+ "sha256": "c133718908efe08df584f44e45eb4f53ca426e9fc0f6b3144d40eefad8841a28",
+ "output_tail": "/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"
+ },
+ {
+ "name": "just-network",
+ "command": [
+ "just",
+ "audit-network-json"
+ ],
+ "exit_code": 2,
+ "expected_exit_code": 2,
+ "log": "/private/tmp/communitymech-batch78/baseline-just-network.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"
+ },
+ {
+ "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-batch78/baseline-network.log",
+ "sha256": "dcb33d46aa53f5e1dec55b1cd6463b83d3723e2ebf8c97999c93d0a5f4a2fed1",
+ "output_tail": " \"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"
+ },
+ {
+ "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-batch78/baseline-downstream.log",
+ "sha256": "81bd7450e7cec62641b1ad0af92877f6aefcc1d1f49490a1781441f6e20a8133",
+ "output_tail": "rial_H2_Consortium.yaml:311: downstream:\nkb/communities/Chlamydomonas_Bacterial_H2_Consortium.yaml:365: downstream:\nkb/communities/Synechococcus_Bacillus_SPC.yaml:120: downstream:\nkb/communities/Synechococcus_Bacillus_SPC.yaml:152: downstream:\nkb/communities/Emiliania_Phaeobacter_Dynamic_Interaction.yaml:143: downstream:\nkb/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml:135: downstream:\nkb/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml:177: downstream:\nkb/communities/Polaromonas_Vanadium_Reduction_Community.yaml:281: downstream:\nkb/communities/Polaromonas_Vanadium_Reduction_Community.yaml:401: downstream:\nkb/communities/Pepper_Phytophthora_SynCom5.yaml:123: downstream:\nkb/communities/Pepper_Phytophthora_SynCom5.yaml:146: downstream:\nkb/communities/Dual_Bacillus_coagulans_Pseudomonas_putida_Lactic_Acid_Coculture.yaml:134: downstream:\nkb/communities/Dual_Bacillus_coagulans_Pseudomonas_putida_Lactic_Acid_Coculture.yaml:189: downstream:\nkb/communities/BioModels_MODEL2204300001_Kefir_Community_Model.yaml:203: downstream:\nkb/communities/PMI_Variovorax_Thermotolerance_Collection.yaml:330: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:138: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:182: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:232: downstream:\nkb/communities/Ferroplasma_Leptospirillum_Syntrophy.yaml:125: downstream:\nkb/communities/Phylogenetically_Diverse_Denitrifying_SynCom.yaml:76: downstream:\nkb/communities/Phylogenetically_Diverse_Denitrifying_SynCom.yaml:95: downstream:\nkb/communities/Phylogenetically_Diverse_Denitrifying_SynCom.yaml:122: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:65: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:98: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:131: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:155: downstream:\n"
+ }
+ ],
+ "baseline_sha256": "0e579a9ba031fa3eff014e3274ad9e9b9577cb804a4debd8d2e1ffe81c2ea326"
+ },
+ "reference_validator_caveat": "All four full-record reference validators exit0. CLI Total checks counts issues, not executed checks. All22 graph quotations independently match fresh primary XML-extracted text or abstract. All920 caches are unchanged; literal matching is not entailment. Six complete main bodies were read, while the OMM design/infection paper remains public-abstract bounded. No recertification of every cache or non-graph field."
+}
diff --git a/tests/test_causal_review_batch78.py b/tests/test_causal_review_batch78.py
new file mode 100644
index 000000000..19707dbd1
--- /dev/null
+++ b/tests/test_causal_review_batch78.py
@@ -0,0 +1,197 @@
+"""Keep observed outcomes distinct from model, protocol and assay overclaims."""
+
+import hashlib
+from pathlib import Path
+
+import yaml
+
+ROOT = Path(__file__).resolve().parents[1]
+LEDGER = ROOT / "reports/causal_graph_review/decisions/20261007-four-records-batch78.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_nitrifier_positive_redox_outcomes_are_not_resolved_guild_flux():
+ _, rows, docs = records()
+ (node,) = docs[0]["ecological_interactions"]
+ assert rows[0]["status"] == "needs_research"
+ assert node["description"].startswith("PARTIAL -")
+ assert "only after about day 30" in node["description"]
+ assert "anoxic cultures accumulated ammonia" in node["description"]
+ assert "do not demonstrate nitrification under anoxia" in node["description"]
+ assert [(e["supports"], e["evidence_source"]) for e in node["evidence"]] == [
+ ("PARTIAL", "OTHER"),
+ ("SUPPORT", "IN_VITRO"),
+ ]
+ assert {t["term"]["id"] for t in node["participating_taxa"]} == {
+ "NCBITaxon:35798",
+ "NCBITaxon:911",
+ }
+ assert "45.96%" in str(docs[0]["taxonomy"])
+
+
+def test_omm12_resistance_is_not_the_expanded_community_outcome():
+ _, _, docs = records()
+ resistance = docs[1]["ecological_interactions"][1]
+ assert "less than a conventional complex microbiota" in resistance["description"]
+ assert "three added facultative anaerobic bacteria" in resistance["description"]
+ assert "interaction_type" not in resistance
+ assert resistance["evidence"][0]["supports"] == "SUPPORT"
+ assert "albeit not to the degree" in resistance["evidence"][0]["snippet"]
+ assert docs[1]["taxonomy"][0]["taxon_term"]["term"]["id"] == "NCBITaxon:2"
+
+
+def test_omm12_repeat_dose_effect_survives_without_context_arrow_or_all12_guarantee():
+ _, _, docs = records()
+ dose, _, colonization = docs[1]["ecological_interactions"]
+ assert len(dose["downstream"]) == 1
+ assert dose["downstream"][0]["target"] == colonization["name"]
+ assert "improved reproducibility" in dose["downstream"][0]["description"]
+ assert "not guaranteed detection of every strain" in dose["downstream"][0]["description"]
+ assert "not a fully matched randomized comparison" in dose["description"]
+ assert "not viable cell counts" in colonization["description"]
+ assert "functional equivalence" in colonization["description"]
+ assert "downstream" not in colonization
+ assert all("interaction_type" not in n for n in docs[1]["ecological_interactions"])
+
+
+def test_trophic_arrows_and_measured_chemistry_remain_with_flux_limits():
+ _, _, docs = records()
+ donor, sulfate, fumarate, _ = docs[2]["ecological_interactions"]
+ assert [e["target"] for e in donor["downstream"]] == [sulfate["name"], fumarate["name"]]
+ assert "sulfate consumption and fumarate reduction" in donor["description"]
+ assert "not independently traced interspecies fluxes" in donor["description"]
+ assert sulfate["interaction_type"] == "CROSS_FEEDING"
+ assert "not proof of reciprocal obligate syntrophy" in sulfate["description"]
+ assert "residual acetate and succinate production" in fumarate["description"]
+ assert all(
+ e["supports"] == "SUPPORT" for n in [donor, sulfate, fumarate] for e in n["evidence"]
+ )
+ assert donor["source_taxon"]["term"]["id"] == "NCBITaxon:1521"
+ assert sulfate["target_taxon"]["term"]["id"] == "NCBITaxon:882"
+ assert fumarate["target_taxon"]["term"]["id"] == "NCBITaxon:35554"
+
+
+def test_trophic_limitation_grounding_and_fulltext_discussion_are_corrected():
+ _, _, docs = records()
+ nodes = docs[2]["ecological_interactions"]
+ limitation = nodes[-1]
+ assert "interaction_type" not in limitation
+ assert "selective succinate causation was not isolated" in limitation["description"]
+ assert all(
+ e["evidence_source"] == "COMPUTATIONAL" and e["supports"] == "PARTIAL"
+ for e in limitation["evidence"]
+ )
+ fumarates = [
+ m for n in nodes for m in n.get("metabolites", []) if m["preferred_term"] == "fumarate"
+ ]
+ assert len(fumarates) == 2
+ assert all(m["term"] == {"id": "CHEBI:29806", "label": "fumarate(2-)"} for m in fumarates)
+ gap = docs[2]["discussions"][0]
+ assert "now inspected" in gap["rationale"]
+ assert "OptCom" in gap["rationale"] and "not new measured transfer" in gap["rationale"]
+ assert "modeled fourth-member extension is not part" in gap["rationale"]
+
+
+def test_pd10_preserves_medium_selection_without_niche_or_uniform_timing_claims():
+ _, _, docs = records()
+ selection, _, _, mops, r2a = docs[3]["ecological_interactions"]
+ assert [e["target"] for e in selection["downstream"]] == [mops["name"], r2a["name"]]
+ assert "passage 4" in mops["description"]
+ assert "passage 10" in r2a["description"]
+ assert "15 passages" in r2a["description"]
+ assert all("interaction_type" not in n for n in [selection, mops, r2a])
+ assert "BC15 proteins" in r2a["description"]
+ assert "not a direct viable-cell count" in r2a["description"]
+
+
+def test_pd10_agar_phenotypes_do_not_prove_liquid_selection_mechanisms():
+ _, _, docs = records()
+ assay = docs[3]["ecological_interactions"][1]
+ assert assay["name"] == "Pairwise Growth Phenotypes on R2A Agar"
+ assert "inhibition" in assay["description"] and "growth promotion" in assay["description"]
+ assert "agar-versus-liquid conditions are alternative explanations" in assay["description"]
+ assert "interaction_type" not in assay and "downstream" not in assay
+ assert assay["evidence"][0]["supports"] == "SUPPORT"
+
+
+def test_pd10_r2a_model_retains_proposed_support_with_correct_partner_and_chemical_scope():
+ _, rows, docs = records()
+ export = docs[3]["ecological_interactions"][2]
+ assert rows[3]["status"] == "needs_research"
+ assert export["description"].startswith("HYPOTHESIZED -")
+ assert "conditioned on endpoint 16S proportions" in export["description"]
+ assert "target_taxon" not in export
+ assert {t["preferred_term"] for t in export["participating_taxa"]} == {
+ "Pantoea sp. YR343",
+ "Pseudomonas sp. GM17",
+ "Sphingobium sp. AP49",
+ }
+ assert export["downstream"][0]["description"].startswith("HYPOTHESIZED -")
+ assert (
+ "enzyme detection is not exchange-flux validation" in export["downstream"][0]["description"]
+ )
+ assert all(e["evidence_source"] == "COMPUTATIONAL" for e in export["evidence"])
+ assert [m["preferred_term"] for m in export["metabolites"]] == ["organic acid"]
+ assert export["metabolites"][0]["term"]["id"] == "CHEBI:64709"
+ assert "purine derivatives and biogenic amines" in export["description"]
+
+
+def test_every_node_and_arrow_has_a_decision_without_unapproved_extension():
+ ledger, rows, docs = records()
+ assert sum(len(r["node_decisions"]) for r in rows) == 13
+ assert sum(len(r["edges_before"]) for r in rows) == 7
+ assert sum(len(r["edges_after"]) for r in rows) == 6
+ assert sum(len(r["removed_edge_decisions"]) for r in rows) == 1
+ assert (
+ ledger["primary_graph_snippet_count"] == ledger["cache_matched_graph_snippet_count"] == 22
+ )
+ assert all(c["independent_primary_match"] for c in ledger["snippet_checks"])
+ for row, doc in zip(rows, docs, strict=True):
+ rename = row["renamed_nodes"]
+ before = {
+ (rename.get(e["source"], e["source"]), rename.get(e["target"], e["target"]))
+ for e in row["edges_before"]
+ }
+ after = {(e["source"], e["target"]) for e in row["edges_after"]}
+ removed = {
+ (rename.get(e["source"], e["source"]), rename.get(e["target"], e["target"]))
+ for e in row["removed_edge_decisions"]
+ }
+ assert after.isdisjoint(removed) and after | removed == before
+ names = {n["name"] for n in doc["ecological_interactions"]}
+ assert names == {n["node"] for n in row["node_decisions"]}
+ assert all(
+ a.split("#", 1)[1] in names
+ for d in doc.get("discussions", [])
+ for a in d["attaches_to"]
+ if a.startswith("ecological_interactions#")
+ )
+
+
+def test_research_authorization_history_and_issue_lifecycle_are_explicit():
+ ledger, rows, docs = records()
+ assert ledger["independent_approval"] is False
+ assert ledger["issues"] == [1644, 1645, 1646, 1647]
+ assert ledger["unresolved_research_issues"] == [1648, 1649]
+ assert ledger["unresolved_non_graph_issues"] == [1650]
+ assert not ledger["cache_changes"]
+ assert ledger["edison"]["provider_submissions"] == ledger["edison"]["credits_spent"] == 0
+ assert [(d["community_id"], d["query_chars"]) for d in ledger["edison"]["dry_runs"]] == [
+ ("CommunityMech:000433", 9473),
+ ("CommunityMech:000047", 15034),
+ ]
+ for row, doc in zip(rows, docs, strict=True):
+ assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"]
+ assert row["curation_events_added"] == len(row["history_files"]) == 1
+ assert row["allowed_changed_fields"] == [
+ "curation_history",
+ "discussions",
+ "ecological_interactions",
+ ]
+ assert doc["curation_history"][-1]["llm_assisted"] is True
+ assert all((ROOT / p).exists() for p in row["history_files"])