Changing sucrose in the replacement medium was part of a treatment matrix that significantly altered viable-cell counts in the four-species enamel biofilms.
Sucrose, fluoride and calcium treatments altered selected viable-count outcomes in the inoculated model. Higher sucrose increased total counts and L. casei; calcium did not significantly change total counts or S. mutans. Species-specific responses are not a uniform community increase or demonstrated cross-feeding. Acid selection remains a proposed explanation, not a selectively perturbed mechanism.
-
Higher fluoride and calcium concentrations reduced surface-microhardness change, and 0.8-1.0 ppm fluoride also lowered integrated mineral loss and lesion depth in the enamel slabs.
+
Higher-fluoride arms had lower enamel surface-microhardness change, lesion depth and integrated mineral loss. Calcium at 2 mM reduced surface-microhardness change relative to lower calcium arms, not every mineral-loss endpoint. These are treatment-dependent material outcomes, not microbial competition or proof that altered cell counts mediate protection; proposed calcium/EPS mechanisms were not tested.
+
Participating Taxa:
+
+ Lactobacillus casei,
+
+ Streptococcus mutans,
+
+ Streptococcus salivarius,
+
+ Streptococcus sanguinis
+
+
+
Metabolites:
@@ -790,17 +798,6 @@
Mineral-Dependent Demineralization Restraint
-
Biological Processes:
-
-
@@ -843,6 +840,25 @@
Evidence
+
+ Knowledge gaps & discussions (1)
+
+
+
+ KNOWLEDGE_GAP
+ OPEN
+ Which microbial processes mediate the observed treatment-dependent counts and enamel outcomes?
+
+
The primary paper and Tables 1-2 support positive experimental outcomes but not cross-feeding, reciprocal competition, calcium/EPS mediation or selective pH causality. Distinguish starting roster from recoverable members. The Results prose and Table 2 superscripts differ on one L. casei calcium comparison; no disputed 1-versus-2 mM claim is used here. The two removed arrows described assay context, not mechanistic mediation. Non-graph follow-up: #1380.
+
+
Attaches to: ecological_interactions#Four-Species Enamel Biofilm Formation, ecological_interactions#Treatment-Dependent Viable Biofilm Counts, ecological_interactions#Mineral-Dependent Demineralization Restraint
+
+
+
+
+
+
+
@@ -1112,7 +1128,7 @@
Evidence
(function() {
var intId = "interaction:0";
- var intType = "COLONIZATION_FACILITATION";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
@@ -1136,11 +1152,28 @@
Evidence
+ var participantKeys = [
+
+ "Lactobacillus casei",
+
+ "Streptococcus mutans",
+
+ "Streptococcus salivarius",
+
+ "Streptococcus sanguinis"
+
+ ];
+ participantKeys.forEach(function(key) {
+ if (taxonNodeIds[key]) {
+ links.push({ source: taxonNodeIds[key], target: intId });
+ }
+ });
+
})();
(function() {
var intId = "interaction:1";
- var intType = "CROSS_FEEDING";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1157,7 +1190,7 @@
Evidence
nodes.push({
id: intId,
- label: "Sucrose-Responsive Viable Biofilm Shift",
+ label: "Treatment-Dependent Viable Biofilm Counts",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1168,11 +1201,28 @@
Evidence
+ var participantKeys = [
+
+ "Lactobacillus casei",
+
+ "Streptococcus mutans",
+
+ "Streptococcus salivarius",
+
+ "Streptococcus sanguinis"
+
+ ];
+ participantKeys.forEach(function(key) {
+ if (taxonNodeIds[key]) {
+ links.push({ source: taxonNodeIds[key], target: intId });
+ }
+ });
+
})();
(function() {
var intId = "interaction:2";
- var intType = "COMPETITION";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1183,10 +1233,6 @@
Evidence
var processes = [];
-
- processes.push("biofilm formation");
-
-
var evidenceCount = 2;
nodes.push({
@@ -1202,6 +1248,23 @@
Evidence
+ var participantKeys = [
+
+ "Lactobacillus casei",
+
+ "Streptococcus mutans",
+
+ "Streptococcus salivarius",
+
+ "Streptococcus sanguinis"
+
+ ];
+ participantKeys.forEach(function(key) {
+ if (taxonNodeIds[key]) {
+ links.push({ source: taxonNodeIds[key], target: intId });
+ }
+ });
+
})();
diff --git a/history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml b/history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml
new file mode 100644
index 000000000..8936c3ae1
--- /dev/null
+++ b/history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml
@@ -0,0 +1,31 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Dangl_SynComm_35.yaml
+ slug: Dangl_SynComm_35
+session:
+ id: 2026-10-06T052450Z-codex-4c42b0
+ timestamp: '2026-10-06T05:24:50Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1375
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain positive root immune suppression at community scope; do not assign community
+ readouts exclusively to MF79.; Retain the primary-body WRKY observation without converting
+ proposed regulatory/homeostasis roles into proven causality; abstract snippet support
+ is explicitly partial.; Retain the tested MF79 secretion-system mechanism and existing
+ arrow with strain-specific scope and unresolved effector identity.; Retain experimentally
+ supported colonization facilitation, distinguish assay contexts and incomplete canonical
+ participants, and remove reciprocal-fitness attribution.
+ details: Primary-source self-adversarial repair, qualification and removal; no new nodes
+ or arrows. reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml
diff --git a/history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml b/history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml
new file mode 100644
index 000000000..2275cbca2
--- /dev/null
+++ b/history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml
@@ -0,0 +1,30 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml
+ slug: Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession
+session:
+ id: 2026-10-06T052450Z-codex-df845f
+ timestamp: '2026-10-06T05:24:50Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1376
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain measured cold biodegradation and qualified bioremediation potential; consolidate
+ duplicate oxygen context without asserting syntrophy or oxygen conservation.; Retain positive
+ Colwellia-dominated flocs while qualifying their proposed contribution to degradation
+ and removing unsupported facilitation.; Retain positive SIP/genome evidence and the complementary-pathway
+ hypothesis, distinguish surface/deep and laboratory/field contexts, and retain alternative
+ explanations.
+ details: Primary-source self-adversarial repair, qualification and removal; no new nodes
+ or arrows. reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml
diff --git a/history/records/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml b/history/records/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml
new file mode 100644
index 000000000..575c10363
--- /dev/null
+++ b/history/records/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml
@@ -0,0 +1,28 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml
+ slug: Defined_Multispecies_Enamel_Caries_Model
+session:
+ id: 2026-10-06T052450Z-codex-bf5211
+ timestamp: '2026-10-06T05:24:50Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1377
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain the inoculated biofilm platform without interspecies facilitation or universal
+ persistence claims.; Retain treatment- and species-specific viable-count outcomes without
+ cross-feeding or a uniform calcium effect.; Retain endpoint-specific enamel mineral outcomes
+ without microbial competition or an untested mediation mechanism.
+ details: Primary-source self-adversarial repair, qualification and removal; no new nodes
+ or arrows. reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml
diff --git a/kb/communities/Dangl_SynComm_35.yaml b/kb/communities/Dangl_SynComm_35.yaml
index 590cef423..c697fe2f2 100644
--- a/kb/communities/Dangl_SynComm_35.yaml
+++ b/kb/communities/Dangl_SynComm_35.yaml
@@ -223,24 +223,11 @@ taxonomy:
snippet: We report that root-associated commensal bacteria actively suppress the
host immune response in the context of a community
ecological_interactions:
-- name: MAMP-Triggered Immunity Suppression
- description: 'Suppression of plant pattern-triggered immunity responses, particularly
- the flg22-induced transcriptional response. SynComm 35 reduces flg22-responsive
- genes from 492-523 genes to only 7 genes when the community is present.
-
- '
- interaction_type: COMMENSALISM
- scope: PAIRWISE
- source_taxon:
- preferred_term: Dyella japonica MF79
- term:
- id: NCBITaxon:231455
- label: Dyella japonica
- target_taxon:
- preferred_term: Arabidopsis thaliana
- term:
- id: NCBITaxon:3702
- label: Arabidopsis thaliana
+- name: Root flg22 Immune Suppression
+ description: Live SynCom35 suppresses a sector of the Arabidopsis root flg22 response after establishment. Dyella
+ MF79 is one tested suppressor, not the sole cause of whole-community transcriptional changes. Participants name
+ the host and this canonical member, not the complete 35-strain roster.
+ scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: pattern recognition receptor signaling pathway
term:
@@ -255,39 +242,32 @@ ecological_interactions:
id: GO:0045088
label: regulation of innate immune response
downstream:
- - target: Enhanced Colonization Through Community Cooperation
- description: Suppression of MAMP-triggered immunity gates microbial access
- to Arabidopsis roots, allowing robust suppressors to improve the root
- colonization capacity of otherwise nonsuppressive commensals.
+ - target: Suppression-Associated Root Colonization Facilitation
+ description: Suppression can facilitate nonsuppressor root colonization under the tested conditions. MF79 wild-type
+ retentate, unlike T2SS-mutant material, countered the flg22-associated reduction in Ochrobactrum MF370 colonization.
+ This does not establish universal facilitation by every suppressor or reciprocal benefit.
evidence:
- - reference: doi:10.1073/pnas.2100678118
+ - reference: PMID:33879573
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: Significance In natural environments, plants establish intimate interactions
- with a wide diversity of microbes
- explanation: 'The community specifically suppresses a transcriptional sector of
- plant immunity, demonstrating that commensal bacteria actively modulate host
- immune responses
-
- '
-- name: WRKY Transcription Factor Suppression
- description: 'Suppression of WRKY transcription factors, which are master regulators
- of plant immunity, allowing commensals to establish colonization while maintaining
- plant-microbe homeostasis.
-
- '
- interaction_type: COMMENSALISM
- scope: PAIRWISE
- source_taxon:
- preferred_term: Dyella japonica MF79
- term:
- id: NCBITaxon:231455
- label: Dyella japonica
- target_taxon:
- preferred_term: Arabidopsis thaliana
+ snippet: a community of root commensal bacteria modulates a specific and evolutionarily conserved sector of
+ the Arabidopsis immune system
+ explanation: Supports community immune modulation. Primary Results and Figures 1-3 distinguish whole-community,
+ monoassociation and acute reporter assays.
+ participating_taxa:
+ - preferred_term: Arabidopsis thaliana
term:
id: NCBITaxon:3702
label: Arabidopsis thaliana
+ - preferred_term: Dyella japonica MF79
+ term:
+ id: NCBITaxon:231455
+ label: Dyella japonica
+- name: Community-Associated WRKY Transcript Suppression
+ description: SynCom35 suppressed flg22-responsive WRKY transcripts. The host and MF79 participants represent a
+ known subset of the inoculated system, not a demonstrated MF79-specific WRKY mechanism. A regulatory role in
+ colonization homeostasis remains proposed.
+ scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: regulation of defense response
term:
@@ -298,18 +278,27 @@ ecological_interactions:
id: GO:0006355
label: regulation of DNA-templated transcription
evidence:
- - reference: doi:10.1073/pnas.2100678118
- supports: SUPPORT
+ - reference: PMID:33879573
+ supports: PARTIAL
evidence_source: IN_VITRO
- snippet: It is unknown, however, how microbiota composed of commensal bacteria
- colonize roots in the face of a sophisticated plant immune system that evolved
- to recognize microbial-associated molecular patterns
-- name: Type II Secretion-Mediated Immune Modulation
- description: 'Extracellular protein secretion via Type II secretion system that
- modulates plant immune responses and enhances bacterial colonization capacity.
-
- '
- interaction_type: COMMENSALISM
+ snippet: a community of root commensal bacteria modulates a specific and evolutionarily conserved sector of
+ the Arabidopsis immune system
+ explanation: The cached abstract supports broad immune modulation, not the WRKY-specific readout. That readout
+ was checked in primary Results, cluster SC1, and the proposed regulatory role in Discussion at https://pmc.ncbi.nlm.nih.gov/articles/PMC8072228/.
+ No claim that snippet matching validates the WRKY detail.
+ participating_taxa:
+ - preferred_term: Arabidopsis thaliana
+ term:
+ id: NCBITaxon:3702
+ label: Arabidopsis thaliana
+ - preferred_term: Dyella japonica MF79
+ term:
+ id: NCBITaxon:231455
+ label: Dyella japonica
+- name: MF79 Type II Secretion-Dependent Immune Modulation
+ description: MF79 secretion-system mutants and cell-free supernatants support T2SS-dependent suppression of the
+ root flg22 response; T3SS was dispensable. The active secreted molecule remains unresolved. This strain-specific
+ requirement is not assigned to every SynCom35 member.
scope: PAIRWISE
source_taxon:
preferred_term: Dyella japonica MF79
@@ -331,72 +320,23 @@ ecological_interactions:
id: GO:0052031
label: symbiont-mediated perturbation of host defense response
downstream:
- - target: MAMP-Triggered Immunity Suppression
- description: Type II secretion provides an extracellular suppressor
- mechanism that prevents full activation of Arabidopsis MAMP-triggered
- immunity.
+ - target: Root flg22 Immune Suppression
+ description: MF79 T2SS function enables its extracellular suppressive activity in the root reporter assay. This
+ arrow applies to the MF79 component of the suppression node, not necessity of T2SS for the entire SynCom35
+ phenotype.
evidence:
- reference: PMID:33879573
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: We highlight the importance of extracellular strategies for MTI suppression by
- showing that the type 2, not the type 3, secretion system is required for
- the immunomodulatory activity of one robust MTI suppressor
-- name: Enhanced Colonization Through Community Cooperation
- description: 'Suppressor strains enhance colonization capacity of non-suppressor
- bacteria through cooperative immunomodulation, demonstrating community-level benefits.
-
- '
- interaction_type: MUTUALISM
- scope: PAIRWISE
- source_taxon:
- preferred_term: Dyella japonica MF79
- term:
- id: NCBITaxon:231455
- label: Dyella japonica
- target_taxon:
- preferred_term: Pseudomonas species
- term:
- id: NCBITaxon:286
- label: Pseudomonas
- biological_processes:
- - preferred_term: interspecies interaction between organisms
- term:
- id: GO:0044419
- label: biological process involved in interspecies interaction between organisms
- evidence:
- - reference: doi:10.1073/pnas.2100678118
- supports: SUPPORT
- evidence_source: IN_VITRO
- snippet: Suppressors and nonsuppressors co-occur in the root microbiome and the
- presence of the former can enhance the colonization ability of the latter
-- name: Taxonomic Diversity Enabling Functional Complementarity
- description: 'The SynComm 35 community comprises taxonomically diverse bacteria
- spanning multiple phyla and orders (Xanthomonadales, Flavobacteriales, Microbacteriales,
- Pseudomonadales, Burkholderiales), providing functional redundancy and metabolic
- complementarity in the rhizosphere. Xanthomonadales members contribute to plant-microbe
- signaling and nutrient acquisition. Flavobacterium species provide polysaccharide
- degradation and vitamin production. Microbacterium species contribute to organic
- matter turnover and stress tolerance. Stenotrophomonas species enhance nutrient
- mobilization and plant growth promotion. This phylogenetic diversity ensures community
- resilience against environmental perturbations and enables colonization across
- heterogeneous root microenvironments. The taxonomic breadth of SynComm 35 reflects
- natural root microbiome composition where diverse bacteria cooperate to establish
- stable plant-microbe associations despite host immune surveillance.
-
- '
- interaction_type: MUTUALISM
+ snippet: We highlight the importance of extracellular strategies for MTI suppression by showing that the type
+ 2, not the type 3, secretion system is required for the immunomodulatory activity of one robust MTI suppressor
+ explanation: Supports the experimentally tested secretion-system requirement in one suppressor, not a resolved
+ effector identity or whole-community T2SS requirement.
+- name: Suppression-Associated Root Colonization Facilitation
+ description: 'Suppressor-community precolonization enhanced subsequent colonization by tested nonsuppressors;
+ MF79 retentate separately supported Ochrobactrum MF370 under flg22 challenge. Canonical participants are only
+ a subset: Pseudomonas denotes the tested P. viridiflava challenge lineage, not a proven MF79/Pseudomonas mutualism.'
scope: COMMUNITY_LEVEL
- source_taxon:
- preferred_term: Xanthomonadales members
- term:
- id: NCBITaxon:135614
- label: Lysobacterales
- target_taxon:
- preferred_term: Flavobacterium species
- term:
- id: NCBITaxon:237
- label: Flavobacterium
biological_processes:
- preferred_term: interspecies interaction between organisms
term:
@@ -406,90 +346,24 @@ ecological_interactions:
- reference: doi:10.1073/pnas.2100678118
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: Significance In natural environments, plants establish intimate interactions
- with a wide diversity of microbes
- explanation: Documents taxonomic diversity enabling community function
-- name: Community Member Metabolic Cooperation
- description: 'Microbacterium and Stenotrophomonas species cooperate metabolically
- within the SynComm 35 community, sharing nutrients and metabolites in the rhizosphere
- environment. Microbacterium species degrade complex organic polymers and produce
- amino acids and vitamins that benefit other community members. Stenotrophomonas
- species mobilize phosphate and produce siderophores for iron acquisition, creating
- public goods accessible to the community. This cross-feeding network reduces competition
- for resources and stabilizes community structure during root colonization. The
- metabolic cooperation complements the immune suppression mediated by Dyella japonica,
- creating a multi-layered strategy for successful root colonization.
-
- '
- interaction_type: CROSS_FEEDING
- scope: PAIRWISE
- source_taxon:
- preferred_term: Microbacterium species
- term:
- id: NCBITaxon:33882
- label: Microbacterium
- target_taxon:
- preferred_term: Stenotrophomonas species
- term:
- id: NCBITaxon:40323
- label: Stenotrophomonas
- metabolites:
- - preferred_term: amino-acid
+ snippet: Suppressors and nonsuppressors co-occur in the root microbiome and the presence of the former can enhance
+ the colonization ability of the latter
+ explanation: Supports facilitation of tested nonsuppressors. The main body separates the smaller-community precolonization
+ comparison from the MF79 retentate experiment; neither demonstrates reciprocal fitness.
+ participating_taxa:
+ - preferred_term: Arabidopsis thaliana
term:
- id: CHEBI:33709
- label: amino acid
- notes: Produced by Microbacterium for community consumption
- biological_processes:
- - preferred_term: interspecies interaction between organisms
- term:
- id: GO:0044419
- label: biological process involved in interspecies interaction between organisms
- evidence:
- - reference: doi:10.1073/pnas.2100678118
- supports: SUPPORT
- evidence_source: IN_VITRO
- snippet: Suppressors and nonsuppressors co-occur in the root microbiome and the
- presence of the former can enhance the colonization ability of the latter
- explanation: Demonstrates cooperative interactions among community members
-- name: Negative Control Strain Baseline Response
- description: 'Escherichia coli DH5α serves as a negative control strain representing
- a bacterium that lacks evolved adaptations for plant root colonization and immune
- suppression. Unlike the SynComm 35 members that suppress MAMP-triggered immunity,
- E. coli DH5α induces normal plant defense responses and colonizes poorly. The
- strain provides a baseline for measuring the specific immune-modulating capabilities
- of adapted root commensals. Comparison between E. coli and SynComm 35 demonstrates
- that immune suppression is not a general bacterial property but requires specific
- adaptations (Type II secretion systems, effector proteins, specialized metabolites)
- that evolved in plant-associated bacteria. This control validates that the observed
- immune suppression is due to specific bacterial strategies rather than non-specific
- bacterial presence.
-
- '
- interaction_type: COMPETITION
- scope: PAIRWISE
- source_taxon:
- preferred_term: Escherichia coli DH5α
- term:
- id: NCBITaxon:668369
- label: Escherichia coli DH5[alpha]
- target_taxon:
- preferred_term: Dyella japonica MF79
+ id: NCBITaxon:3702
+ label: Arabidopsis thaliana
+ - preferred_term: Dyella japonica MF79
term:
id: NCBITaxon:231455
label: Dyella japonica
- biological_processes:
- - preferred_term: defense response to bacterium
+ - preferred_term: Pseudomonas species
term:
- id: GO:0042742
- label: defense response to bacterium
- evidence:
- - reference: doi:10.1073/pnas.2100678118
- supports: SUPPORT
- evidence_source: IN_VITRO
- snippet: It is unknown, however, how microbiota composed of commensal bacteria
- colonize roots in the face of a sophisticated plant immune system that evolved
- to recognize microbial-associated molecular patterns
- explanation: E. coli serves as non-adapted control demonstrating plant immunity
+ id: NCBITaxon:286
+ label: Pseudomonas
+ interaction_type: COLONIZATION_FACILITATION
growth_media:
- name: Tryptic Soy Broth (TSB) for bacterial culture
ph: '7.3'
@@ -674,3 +548,31 @@ related_ingredients:
metals_present: []
metal_relevance: INCIDENTAL
metal_notes: Metal/REE detected via environmental factor measurements
+discussions:
+- discussion_id: syncom35_effector_and_roster_limits
+ prompt: Which secreted factors and host regulators mediate strain-specific colonization effects?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Root flg22 Immune Suppression
+ - ecological_interactions#Community-Associated WRKY Transcript Suppression
+ - ecological_interactions#MF79 Type II Secretion-Dependent Immune Modulation
+ - ecological_interactions#Suppression-Associated Root Colonization Facilitation
+ rationale: 'Effector identity, causal WRKY mediation and complete canonical strain coverage remain unresolved.
+ The three removed nodes lacked evidence for their asserted relationships; absence of support is not evidence
+ that all such mechanisms are biologically impossible. Supplementary methods/rosters were not retrieved. Neither
+ the removed E. coli control phenotype nor metabolic exchange is certified by this review. Non-graph follow-up:
+ #1378.'
+ posed_by: codex
+ posed_date: '2026-10-06'
+curation_history:
+- timestamp: '2026-10-06T05:24:49Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Retain positive root immune suppression at community scope; do not assign community readouts exclusively
+ to MF79.; Retain the primary-body WRKY observation without converting proposed regulatory/homeostasis roles
+ into proven causality; abstract snippet support is explicitly partial.; Retain the tested MF79 secretion-system
+ mechanism and existing arrow with strain-specific scope and unresolved effector identity.; Retain experimentally
+ supported colonization facilitation, distinguish assay contexts and incomplete canonical participants, and remove
+ reciprocal-fitness attribution. Issue #1375; reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml'
+ llm_assisted: true
diff --git a/kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml b/kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml
index bf9dffa05..90a32c08e 100644
--- a/kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml
+++ b/kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml
@@ -145,16 +145,12 @@ taxonomy:
snippet: Marinobacter was enriched with n-hexadecane
explanation: Supports Marinobacter as an alkane-associated hydrocarbon degrader in DWH-derived experiments.
ecological_interactions:
-- name: Intrinsic Hydrocarbon Bioremediation
- description: Indigenous deep-sea bacteria degraded plume hydrocarbons under cold deep-water conditions,
- creating potential for intrinsic bioremediation without substantial oxygen drawdown.
- interaction_type: SYNTROPHY
+- name: Cold Hydrocarbon Biodegradation and Bioremediation Potential
+ description: Field hydrocarbon patterns and environmental-isolate incubations at 5 C support cold-water biodegradation
+ and the potential for intrinsic plume bioremediation without substantial oxygen drawdown. This is not a distinct
+ oxygen-conservation mechanism or established syntrophy. The named Oceanospirillales group represents a canonical
+ subset, not every degrader or all spill phases.
scope: COMMUNITY_LEVEL
- source_taxon:
- preferred_term: DWH Oceanospirillales-like bacteria
- term:
- id: NCBITaxon:135619
- label: Oceanospirillales
metabolites:
- preferred_term: hydrocarbon
term:
@@ -169,57 +165,64 @@ ecological_interactions:
term:
id: GO:0043448
label: alkane catabolic process
- downstream:
- - target: Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation
- description: Fast cold-water hydrocarbon biodegradation by indigenous
- Gammaproteobacteria supports natural plume attenuation without a
- substantial loss of dissolved oxygen.
evidence:
- reference: PMID:20736401
supports: SUPPORT
- evidence_source: IN_VIVO
+ evidence_source: OTHER
snippet: faster-than-expected hydrocarbon biodegradation rates at 5°C
- explanation: Supports cold deep-water hydrocarbon biodegradation.
+ explanation: The abstract combines field observations and in vitro isolate experiments. It supports biodegradation,
+ not a purely in vivo rate measurement or syntrophic dependence.
- reference: PMID:20736401
- supports: SUPPORT
- evidence_source: IN_VIVO
+ supports: PARTIAL
+ evidence_source: OTHER
snippet: intrinsic bioremediation of the oil plume in the deep-water column without substantial oxygen drawdown
- explanation: Supports intrinsic bioremediation as a community-level function.
-- name: Colwellia Oil Droplet Floc Formation
- description: Colwellia-dominated flocs formed with oil and biomass in cold incubations, linking cell
- aggregation to hydrocarbon degradation in deep marine habitats.
- interaction_type: COLONIZATION_FACILITATION
- scope: COMMUNITY_LEVEL
- source_taxon:
- preferred_term: Colwellia
+ explanation: The quoted phrase is governed by the abstract's potential-exists qualifier, not a demonstrated
+ oxygen-conserving mechanism or a plume-wide oxygen budget.
+ participating_taxa:
+ - preferred_term: DWH Oceanospirillales-like bacteria
term:
- id: NCBITaxon:28228
- label: Colwellia
+ id: NCBITaxon:135619
+ label: Oceanospirillales
+- name: Colwellia-Dominated Oil-Associated Flocs
+ description: In cold oil/COREXIT enrichments from uncontaminated deep Gulf water without added FeCl2, oil-, carbohydrate-
+ and biomass-containing flocs were dominated by Colwellia. Oil degradation by an isolated Colwellia strain is
+ a separate positive result. Aggregation does not by itself demonstrate facilitation of another taxon or quantify
+ a floc-specific contribution to field attenuation.
+ scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: hydrocarbon
term:
id: CHEBI:24632
label: hydrocarbon
downstream:
- - target: Intrinsic Hydrocarbon Bioremediation
- description: Oil-associated Colwellia biomass flocs contribute a
- particle-associated route into cold deep-water oil degradation.
+ - target: Cold Hydrocarbon Biodegradation and Bioremediation Potential
+ description: HYPOTHESIZED - aggregation with oil droplets could support Colwellia-associated hydrocarbon access
+ and degradation. The enrichment observations and separate isolate assay do not selectively test this route
+ or establish its contribution to in situ plume attenuation.
evidence:
- reference: PMID:22616650
supports: SUPPORT
evidence_source: IN_VITRO
snippet: flocs were comprised of oil, carbohydrates and biomass
- explanation: Supports oil-associated floc formation as a Colwellia-linked mechanism.
+ explanation: Supports the observed Colwellia-dominated oil-associated aggregates in laboratory enrichments,
+ not an isolated causal effect of flocs on degradation or recipient colonization.
- reference: PMID:22616650
supports: SUPPORT
evidence_source: IN_VITRO
snippet: Colwellia were the dominant bacteria in the flocs
- explanation: Supports Colwellia dominance in the oil-associated flocs.
-- name: Complex Hydrocarbon Substrate Partitioning
- description: Different plume-associated taxa contributed distinct, non-redundant capacities for degrading
- alkane and polycyclic aromatic hydrocarbons, so community-level degradation exceeded single-member
- capabilities.
- interaction_type: NICHE_PARTITIONING
+ explanation: Supports the observed Colwellia-dominated oil-associated aggregates in laboratory enrichments,
+ not an isolated causal effect of flocs on degradation or recipient colonization.
+ participating_taxa:
+ - preferred_term: Colwellia
+ term:
+ id: NCBITaxon:28228
+ label: Colwellia
+- name: Proposed Community Hydrocarbon Pathway Complementarity
+ description: HYPOTHESIZED - SIP enrichment and genome reconstruction suggest complementary hydrocarbon pathways.
+ The study separates deep-water hexadecane from surface-water PAH enrichments, incubated at room temperature
+ without added dispersant. Named taxa are a subset across those enrichments, not a proven five-member deep-plume
+ consortium. Coordinated metabolism is an alternative to unknown enzymes or incomplete assemblies, not resolved
+ metabolite exchange.
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: hydrocarbon
@@ -236,55 +239,49 @@ ecological_interactions:
id: GO:0043448
label: alkane catabolic process
downstream:
- - target: Intrinsic Hydrocarbon Bioremediation
- description: Partitioning alkane and PAH metabolism among non-redundant
- plume guilds lets the community degrade complex petroleum mixtures.
+ - target: Cold Hydrocarbon Biodegradation and Bioremediation Potential
+ description: HYPOTHESIZED - complementary pathways could expand community hydrocarbon transformation and contribute
+ to bioremediation. SIP and annotated repertoires support this model but do not establish intertaxon flux,
+ necessity or the contribution of this room-temperature enrichment mechanism in the cold field plume.
evidence:
- reference: PMID:27572965
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: COMPUTATIONAL
snippet: combined capabilities of the microbial community exceeded those of its individual components
- explanation: Supports non-redundant substrate specialization across the oil-degrading community.
+ explanation: The abstract supports the proposed community-capability model. The full author proof explicitly
+ retains alternative enzymes and incomplete-genome explanations and distinguishes sample origins and enrichment
+ conditions.
- reference: PMID:27572965
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: COMPUTATIONAL
- snippet: degradation of complex hydrocarbon mixtures requires the non-redundant capabilities of a complex oil-degrading community
- explanation: Supports niche partitioning among hydrocarbon-degrading taxa.
-- name: Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation
- description: Indigenous, cold-adapted Deepwater Horizon plume bacteria
- carried out faster-than-expected hydrocarbon biodegradation in the deep
- water column, supporting intrinsic oil-plume bioremediation without
- substantial oxygen drawdown.
- interaction_type: NICHE_PARTITIONING
- scope: COMMUNITY_LEVEL
- metabolites:
- - preferred_term: hydrocarbon
+ snippet: degradation of complex hydrocarbon mixtures requires the non-redundant capabilities of a complex oil-degrading
+ community
+ explanation: The abstract supports the proposed community-capability model. The full author proof explicitly
+ retains alternative enzymes and incomplete-genome explanations and distinguishes sample origins and enrichment
+ conditions.
+ - reference: PMID:27572965
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: assimilate alkane and polycyclic aromatic hydrocarbons during stable-isotope probing experiments
+ explanation: Preserves positive experimental assimilation evidence without equating the SIP label with resolved
+ cross-feeding or every annotated pathway being active.
+ participating_taxa:
+ - preferred_term: DWH Oceanospirillales-like bacteria
term:
- id: CHEBI:24632
- label: hydrocarbon
- - preferred_term: dioxygen
+ id: NCBITaxon:135619
+ label: Oceanospirillales
+ - preferred_term: Colwellia
term:
- id: CHEBI:15379
- label: dioxygen
- biological_processes:
- - preferred_term: alkane catabolic process
+ id: NCBITaxon:28228
+ label: Colwellia
+ - preferred_term: Cycloclasticus
term:
- id: GO:0043448
- label: alkane catabolic process
- evidence:
- - reference: PMID:20736401
- supports: SUPPORT
- evidence_source: IN_VIVO
- snippet: faster-than-expected hydrocarbon biodegradation rates at 5°C
- explanation: Supports rapid hydrocarbon biodegradation under cold
- deep-water plume conditions.
- - reference: PMID:20736401
- supports: SUPPORT
- evidence_source: IN_VIVO
- snippet: intrinsic bioremediation of the oil plume in the deep-water column
- without substantial oxygen drawdown
- explanation: Supports oxygen-conserving intrinsic attenuation as the
- community-level plume outcome.
+ id: NCBITaxon:34067
+ label: Cycloclasticus
+ - preferred_term: Marinobacter
+ term:
+ id: NCBITaxon:2742
+ label: Marinobacter
environmental_factors:
- name: Deepwater Horizon hydrocarbon plume
value: Deepwater Horizon blowout, Gulf of Mexico
@@ -455,3 +452,30 @@ growth_media:
evidence_source: IN_VITRO
snippet: "enriched and isolated indigenous hydrocarbon-degrading bacteria from deep, uncontaminated waters from the Gulf with oil (Macondo MC252) and dispersant used during the spill (COREXIT 9500)"
explanation: "Documents inoculum source and oil/dispersant enrichment substrate."
+discussions:
+- discussion_id: deepwater_enrichment_to_field_causality
+ prompt: How much do floc formation and proposed pathway complementarity contribute to field hydrocarbon attenuation?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Cold Hydrocarbon Biodegradation and Bioremediation Potential
+ - ecological_interactions#Colwellia-Dominated Oil-Associated Flocs
+ - ecological_interactions#Proposed Community Hydrocarbon Pathway Complementarity
+ rationale: 'Selective aggregation and member/pathway perturbations, direct intermediate tracing and field-resolved
+ measurements would test the two retained hypotheses. Surface and plume enrichments cannot be collapsed into
+ one co-occurring consortium. The duplicate oxygen-conservation node was consolidated without discarding the
+ bounded bioremediation potential. Hazen and Baelum claims remain abstract-bounded; the Dombrowski author proof
+ and Figure 3 were inspected. The partial Colwellia SAG supports predictions, not demonstrated missing enzymes
+ or siderophore exchange. Non-graph follow-up: #1379.'
+ posed_by: codex
+ posed_date: '2026-10-06'
+curation_history:
+- timestamp: '2026-10-06T05:24:50Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Retain measured cold biodegradation and qualified bioremediation potential; consolidate duplicate oxygen
+ context without asserting syntrophy or oxygen conservation.; Retain positive Colwellia-dominated flocs while
+ qualifying their proposed contribution to degradation and removing unsupported facilitation.; Retain positive
+ SIP/genome evidence and the complementary-pathway hypothesis, distinguish surface/deep and laboratory/field
+ contexts, and retain alternative explanations. Issue #1376; reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml'
+ llm_assisted: true
diff --git a/kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml b/kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml
index c9a92b1b9..62de4268c 100644
--- a/kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml
+++ b/kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml
@@ -218,44 +218,47 @@ environmental_factors:
explanation: Supports calcium as a controlled environmental factor in the model.
ecological_interactions:
- name: Four-Species Enamel Biofilm Formation
- description: >-
- Lactobacillus casei, Streptococcus mutans, Streptococcus salivarius, and
- Streptococcus sanguinis formed a defined biofilm on salivary-pellicle-coated
- enamel slabs during the four-day in vitro caries assay.
- interaction_type: COLONIZATION_FACILITATION
+ description: The four canonical taxa were inoculated onto salivary-pellicle-coated enamel for the four-day assay
+ with daily medium changes. This records the defined starting community and biofilm platform, not demonstrated
+ interspecies colonization facilitation or persistence of all four members in every treatment; S. sanguinis was
+ below detection in the calcium arms.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: biofilm formation
term:
id: GO:0042710
label: biofilm formation
- downstream:
- - target: Sucrose-Responsive Viable Biofilm Shift
- description: >-
- The established four-species enamel biofilm provided the viable biomass
- whose cell counts shifted across the sucrose, fluoride, and calcium arms.
- - target: Mineral-Dependent Demineralization Restraint
- description: >-
- Four days of multispecies biofilm growth on enamel slabs created the
- demineralization readout modulated by fluoride and calcium.
evidence:
- reference: PMID:23446436
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: >-
- Defined-multispecies biofilms, formed by Lactobacillus casei,
- Streptococcus mutans, S. salivarius and S. sanguinis, were grown on the
- surface of salivary-pellicle-coated enamel slabs, with known baseline
- surface hardness; growth medium was changed daily.
- explanation: >-
- Establishes the four-member salivary-pellicle-coated enamel biofilm model
- and the retained-biofilm daily medium changes.
-- name: Sucrose-Responsive Viable Biofilm Shift
- description: >-
- Changing sucrose in the replacement medium was part of a treatment matrix
- that significantly altered viable-cell counts in the four-species enamel
- biofilms.
- interaction_type: CROSS_FEEDING
+ snippet: Defined-multispecies biofilms, formed by Lactobacillus casei, Streptococcus mutans, S. salivarius and
+ S. sanguinis, were grown on the surface of salivary-pellicle-coated enamel slabs, with known baseline surface
+ hardness; growth medium was changed daily.
+ explanation: Supports the inoculated model and biofilm platform. Primary viable-count results limit claims about
+ persistence; the abstract does not establish member-to-member facilitation.
+ participating_taxa:
+ - preferred_term: Lactobacillus casei
+ term:
+ id: NCBITaxon:1582
+ label: Lacticaseibacillus casei
+ - preferred_term: Streptococcus mutans
+ term:
+ id: NCBITaxon:1309
+ label: Streptococcus mutans
+ - preferred_term: Streptococcus salivarius
+ term:
+ id: NCBITaxon:1304
+ label: Streptococcus salivarius
+ - preferred_term: Streptococcus sanguinis
+ term:
+ id: NCBITaxon:1305
+ label: Streptococcus sanguinis
+- name: Treatment-Dependent Viable Biofilm Counts
+ description: Sucrose, fluoride and calcium treatments altered selected viable-count outcomes in the inoculated
+ model. Higher sucrose increased total counts and L. casei; calcium did not significantly change total counts
+ or S. mutans. Species-specific responses are not a uniform community increase or demonstrated cross-feeding.
+ Acid selection remains a proposed explanation, not a selectively perturbed mechanism.
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: sucrose
@@ -271,18 +274,32 @@ ecological_interactions:
- reference: PMID:23446436
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: >-
- Counts of viable cells on biofilms were significantly affected by sucrose,
- fluoride and calcium concentrations (p < 0.05).
- explanation: >-
- Supports a treatment-dependent shift in viable biofilm counts, including
- the sucrose arm of the assay matrix.
+ snippet: Counts of viable cells on biofilms were significantly affected by sucrose, fluoride and calcium concentrations
+ (p < 0.05).
+ explanation: The abstract summarizes treatment-dependent counts; primary Tables 1 and 2 distinguish total and
+ species-specific outcomes. The broad statement does not mean every count changed with every amendment.
+ participating_taxa:
+ - preferred_term: Lactobacillus casei
+ term:
+ id: NCBITaxon:1582
+ label: Lacticaseibacillus casei
+ - preferred_term: Streptococcus mutans
+ term:
+ id: NCBITaxon:1309
+ label: Streptococcus mutans
+ - preferred_term: Streptococcus salivarius
+ term:
+ id: NCBITaxon:1304
+ label: Streptococcus salivarius
+ - preferred_term: Streptococcus sanguinis
+ term:
+ id: NCBITaxon:1305
+ label: Streptococcus sanguinis
- name: Mineral-Dependent Demineralization Restraint
- description: >-
- Higher fluoride and calcium concentrations reduced surface-microhardness
- change, and 0.8-1.0 ppm fluoride also lowered integrated mineral loss and
- lesion depth in the enamel slabs.
- interaction_type: COMPETITION
+ description: Higher-fluoride arms had lower enamel surface-microhardness change, lesion depth and integrated mineral
+ loss. Calcium at 2 mM reduced surface-microhardness change relative to lower calcium arms, not every mineral-loss
+ endpoint. These are treatment-dependent material outcomes, not microbial competition or proof that altered cell
+ counts mediate protection; proposed calcium/EPS mechanisms were not tested.
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: fluoride
@@ -293,30 +310,36 @@ ecological_interactions:
term:
id: CHEBI:29108
label: calcium(2+)
- biological_processes:
- - preferred_term: biofilm formation
- term:
- id: GO:0042710
- label: biofilm formation
evidence:
- reference: PMID:23446436
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: >-
- There was a decrease in %SMC in response to increased fluoride and
- calcium concentrations (p < 0.001).
- explanation: >-
- Supports fluoride- and calcium-dependent reduction in enamel
- surface-microhardness change.
+ snippet: There was a decrease in %SMC in response to increased fluoride and calcium concentrations (p < 0.001).
+ explanation: Supports treatment-dependent surface-microhardness outcomes; it does not establish a monotonic
+ effect for every calcium concentration or all mineral endpoints.
- reference: PMID:23446436
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: >-
- Lower IML (p < 0.001) and LD (p < 0.05) were found in the presence of 0.8
- and 1.0 ppm F.
- explanation: >-
- Supports reduced integrated mineral loss and lesion depth in the higher
- fluoride treatments.
+ snippet: Lower IML (p < 0.001) and LD (p < 0.05) were found in the presence of 0.8 and 1.0 ppm F.
+ explanation: Supports lower lesion depth and integrated mineral loss in the specified higher-fluoride arms,
+ not a resolved interspecies competitive mechanism.
+ participating_taxa:
+ - preferred_term: Lactobacillus casei
+ term:
+ id: NCBITaxon:1582
+ label: Lacticaseibacillus casei
+ - preferred_term: Streptococcus mutans
+ term:
+ id: NCBITaxon:1309
+ label: Streptococcus mutans
+ - preferred_term: Streptococcus salivarius
+ term:
+ id: NCBITaxon:1304
+ label: Streptococcus salivarius
+ - preferred_term: Streptococcus sanguinis
+ term:
+ id: NCBITaxon:1305
+ label: Streptococcus sanguinis
growth_media:
- name: "defined-multispecies biofilm growth medium (unspecified)"
incubation_time: '4'
@@ -334,3 +357,28 @@ growth_media:
evidence_source: IN_VITRO
snippet: "after 4 days of biofilm formation under the tested conditions"
explanation: "Documents the 4-day biofilm growth period."
+discussions:
+- discussion_id: enamel_counts_minerals_and_community_mechanisms
+ prompt: Which microbial processes mediate the observed treatment-dependent counts and enamel outcomes?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Four-Species Enamel Biofilm Formation
+ - ecological_interactions#Treatment-Dependent Viable Biofilm Counts
+ - ecological_interactions#Mineral-Dependent Demineralization Restraint
+ rationale: 'The primary paper and Tables 1-2 support positive experimental outcomes but not cross-feeding, reciprocal
+ competition, calcium/EPS mediation or selective pH causality. Distinguish starting roster from recoverable members.
+ The Results prose and Table 2 superscripts differ on one L. casei calcium comparison; no disputed 1-versus-2
+ mM claim is used here. The two removed arrows described assay context, not mechanistic mediation. Non-graph
+ follow-up: #1380.'
+ posed_by: codex
+ posed_date: '2026-10-06'
+curation_history:
+- timestamp: '2026-10-06T05:24:50Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Retain the inoculated biofilm platform without interspecies facilitation or universal persistence claims.;
+ Retain treatment- and species-specific viable-count outcomes without cross-feeding or a uniform calcium effect.;
+ Retain endpoint-specific enamel mineral outcomes without microbial competition or an untested mediation mechanism.
+ Issue #1377; reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml'
+ llm_assisted: true
diff --git a/reports/causal_graph_review/adversarial-review-20261006-batch29.yaml b/reports/causal_graph_review/adversarial-review-20261006-batch29.yaml
new file mode 100644
index 000000000..bed4e0de4
--- /dev/null
+++ b/reports/causal_graph_review/adversarial-review-20261006-batch29.yaml
@@ -0,0 +1,156 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: 17b5c3da1722987a42a9d0c26d2f6ec4b3a834f2
+scope:
+- kb/communities/Dangl_SynComm_35.yaml
+- kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml
+- kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml
+decision_ledger: reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml
+validation_report: reports/causal_graph_review/validation-20261006-batch29.json
+findings:
+- issue: 1375
+ severity: P2
+ status: addressed_in_this_change
+ finding: SynCom35 whole-community observations were assigned to a single pair; mutual benefit, nutrient
+ exchange and control competition were unsupported.
+ disposition: Keep four positive immune/colonization nodes, scope MF79 secretion and both existing arrows
+ to the actual experiments, retain WRKY observation with partial snippet support, and remove three
+ unsupported relationship nodes.
+- issue: 1376
+ severity: P2
+ status: addressed_in_this_change
+ finding: Deepwater oxygen-conservation duplicated the upstream outcome; laboratory pathway/floc hypotheses
+ were represented as established field mechanisms.
+ disposition: Consolidate the duplicate and restatement arrow, retain cold biodegradation and flocs,
+ preserve experimental SIP evidence alongside genome predictions, and qualify two existing arrows with
+ sample and laboratory/field limits.
+- issue: 1377
+ severity: P2
+ status: addressed_in_this_change
+ finding: Enamel assay-context arrows and relationship signs implied facilitation, cross-feeding and
+ competition without corresponding measurements.
+ disposition: Remove two workflow arrows and unsupported signs, keep all three positive observations,
+ distinguish inoculated roster from persistence, and constrain viable-count and mineral endpoints.
+- issue: 1378
+ severity: P2
+ status: open_nongraph_followup
+ finding: SynCom35 non-graph strain/control identities, roles and assay-specific cultivation conditions
+ require further source curation.
+ disposition: Separate scoped follow-up. These blocks are byte-preserved, not certified by graph curation.
+- issue: 1379
+ severity: P2
+ status: open_nongraph_followup
+ finding: Deepwater non-graph Methylophaga/methane, oxygen and enrichment-context wording exceeds source
+ support.
+ disposition: Separate scoped follow-up. These blocks are byte-preserved, not certified by graph curation.
+- issue: 1380
+ severity: P2
+ status: open_nongraph_followup
+ finding: Enamel non-graph basal treatment arms and cultivation/strain details are incomplete; one source
+ count comparison is internally inconsistent.
+ disposition: Separate scoped follow-up. These blocks are byte-preserved, not certified by graph curation.
+adversarial_checks:
+- Every original node and arrow has a retain, repair or removal decision. Four unsupported/duplicate nodes
+ and three duplicate/workflow arrows are removed; four arrows remain, two explicitly hypothetical. Exact
+ renames and discussion anchors resolve.
+- SynCom35 whole-community suppression is not attributed exclusively to MF79. The MF79 T2SS result is
+ strain-specific; suppressor-community precolonization and MF79 retentate experiments are distinguished.
+ No reciprocal fitness, resolved effector or universal colonization requirement is asserted.
+- The WRKY observation was verified in the primary main body. Its cached abstract snippet is explicitly
+ partial and does not independently validate that detail. Proposed regulatory roles are not converted
+ into downstream causal edges.
+- Removing unsupported E. coli competition and nutrient-exchange claims does not establish biological
+ impossibility. The full strain/control roster remains a follow-up; canonical taxon blocks are untouched.
+- Deepwater cold biodegradation remains a positive result. The potential oxygen outcome is retained without
+ a separate conservation mechanism or syntrophy. Floc observations and the isolated-strain degradation
+ assay are not treated as a selective aggregation perturbation.
+- Deep-water HEX and surface-water PAH enrichments are not one five-member consortium. Room-temperature,
+ dispersant-free SIP conditions and incomplete-genome/unknown-enzyme alternatives remain explicit. Positive
+ assimilation evidence is not discarded or conflated with intertaxon flux.
+- Enamel inoculation is not universal persistence, calcium does not alter every count, and material outcomes
+ are not microbial competition. The disputed L. casei 1-versus-2 mM result is not silently resolved;
+ proposed pH and EPS mechanisms are not asserted as demonstrated.
+- Exactly three guarded edits, three llm-assisted events and three append-only histories. All non-graph
+ raw blocks, 457 other records and all 920 reference caches remain byte-identical.
+- Participant registry changes only 170 to 173 users. Connectivity surveys are measured and numeric bounds/algorithms
+ unchanged. Six newly exposed DISCONNECTED warnings are explicitly retained, not hidden with invented
+ relationships.
+- 'Deduplication covered 706 all-state issue titles/bodies and ignored/hidden-inclusive scoped local searches,
+ with #401 and #754 read; not every issue comment or the entire filesystem.'
+- All 456 pages have exact node/arrow descriptions verified by parser and deterministic repeat rendering.
+ No browser screenshot QA is claimed. Primary enamel Tables 1-2 and Dombrowski Figure 3 were inspected
+ visually; other figures and supplements were not.
+verification:
+ combined_regressions: 342 passed in 165.07s (0:02:45)
+ new_regression_tests: 6
+ schema_strict_terms_history: passed; full commands and raw results retained
+ snippet_counts_by_record:
+ kb/communities/Dangl_SynComm_35.yaml:
+ MATCH: 21
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml:
+ MATCH: 29
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml:
+ MATCH: 16
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ network: Zero structural errors. All 25 prior warnings preserved and six explicit participant-related
+ DISCONNECTED warnings exposed; 31 total, warning exits preserved.
+ black_ruff_diff: passed
+ tested_file_sha256:
+ reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml: 6627d37b0aad90ee137572b39e5b4039380bfd01f7e0c16912d7cb10a3c78439
+ tests/test_causal_review_batch29.py: 2e8f41544c35091698f5c4a7459750cf97418edc5b27a64abe41e7de9dcf9bbe
+ tests/test_participating_taxa.py: f3b3bf65f4d442fa95c55b9aaf624696bdb51683dc35a46dc93d6706f70584d3
+ kb/communities/Dangl_SynComm_35.yaml: 9a828b5a59f88ca41699338a0187ebbe4d59da5b05fcc4ef40cf788b2ee9a277
+ kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml: 7cc349b1d2309b6d071aeaea72234305922c0c76458baab1469ce258142083f7
+ kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml: 320691301cf3e2d94ca9bf69873471e12309ce32271eecc02c3b222a08e6b9d6
+ post_commit_docs_current: Separate publication gate, not yet claimed by this pre-commit artifact.
+ protected_ci_and_merge: Require live exact-head checks and protected main queue; not asserted here.
+participant_census:
+ connectivity_before:
+ community_level_only: 264
+ credited_solely_by_the_rule: 1216
+ mixed: 124
+ records: 460
+ taxa: 1496
+ with_community_level: 388
+ connectivity_after:
+ community_level_only: 264
+ credited_solely_by_the_rule: 1220
+ mixed: 124
+ records: 460
+ taxa: 1496
+ with_community_level: 388
+ exact_change: 170 -> 173 users; only Dangl, Deepwater and enamel added
+ numeric_bounds_changed: false
+corpus:
+ records: 460
+ nodes: 1470
+ edges: 705
+ review_status_counts:
+ needs_research: 4
+ pending: 324
+ reviewed: 132
+limitations:
+- Three graph reviews; fourteen original nodes become ten and seven arrows become four. No new graph structure
+ or Edison job/spend.
+- Primary-source access differs by study and is recorded per reference. Snippet MATCH is textual verification,
+ not scientific endorsement; WRKY detail was checked in the full body rather than its broad abstract
+ snippet.
+- No new full article/PDF is committed. Existing reference caches and all non-graph record blocks are
+ preserved.
+- Three separate non-graph metadata follow-ups remain open. This is a self-adversarial review, not independent
+ approval, protected CI success or full-corpus completion.
diff --git a/reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml b/reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml
new file mode 100644
index 000000000..e75566e3e
--- /dev/null
+++ b/reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml
@@ -0,0 +1,308 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: 17b5c3da1722987a42a9d0c26d2f6ec4b3a834f2
+issues:
+- 1375
+- 1376
+- 1377
+open_nongraph_followups:
+- 1378
+- 1379
+- 1380
+issue_deduplication:
+ all_state_issue_titles_bodies: 706
+ ignored_hidden_local_files_included: true
+ comments_exhaustive: false
+ relevant_issues_read:
+ - 401
+ - 754
+ finding: No duplicate exact graph defect in searched titles/bodies and local scoped review/history records. Legacy
+ snippet scripts, whole-corpus output listings, enamel cultivation source coverage and Colwellia withholding
+ are distinct and preserved.
+reference_cache_original_hashes:
+ references_cache/PMID_20736401.md: b3d90a098b1146e0c93bf8dcbeae8351d71a84381cd680361533fd8d7cc49cf0
+ references_cache/PMID_22616650.md: 919a63869ad5e55fa8327cb0336c5ec836e2c749fd419bfc4677d3b318990fbf
+ references_cache/PMID_23446436.txt: c3bd06dfad668238c55075e60ba96e9baecfc5c7cbfc4615506224326f5dda2a
+ references_cache/PMID_24865772.md: 7c80bb2977b19583a7bfcc904d707d97e0648120ef9439bb54eb91898af22230
+ references_cache/PMID_25071745.md: f32f82c3ce15db7598be5d9081aaa7e0871f7a017131a003fe79da5b43285317
+ references_cache/PMID_27572965.md: 225e74d8a007994ef20698c15a5ef8f961b962924818159751ebdfc834f2064c
+ references_cache/PMID_33879573.txt: 8e9a737c19f0295881f838aa908d7db935e86b4bca610554a720556d938ec26a
+ references_cache/doi_10.1073_pnas.2100678118.json: 5d541c1d565a0cfb8f30d7a07ef3462864d7f6dd7b83db8159c0c0d4ad3540d8
+ references_cache/doi_10.1073_pnas.2100678118.md: c7509632de060d3081807e1649cae4edec25e8adc2255a73ced6bea14cbbaa0c
+limitations:
+- Three graph reviews; fourteen original nodes become ten and seven arrows become four. No new graph structure or
+ Edison job/spend.
+- Primary-source access differs by study and is recorded per reference. Snippet MATCH is textual verification, not
+ scientific endorsement; WRKY detail was checked in the full body rather than its broad abstract snippet.
+- No new full article/PDF is committed. Existing reference caches and all non-graph record blocks are preserved.
+- Three separate non-graph metadata follow-ups remain open. This is a self-adversarial review, not independent approval,
+ protected CI success or full-corpus completion.
+records:
+- path: kb/communities/Dangl_SynComm_35.yaml
+ id: CommunityMech:000022
+ original_sha256: 1308bd7106e991df960bd18afdc8bad9df6da33c9dd124cfb0f1e1a1e60e398b
+ record_sha256: 9a828b5a59f88ca41699338a0187ebbe4d59da5b05fcc4ef40cf788b2ee9a277
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml
+ scope: Whole record and every original node/arrow inspected against cited primary evidence at the documented access
+ scope. Non-graph fields are preserved, not certified.
+ summary: Retain positive root immune suppression at community scope; do not assign community readouts exclusively
+ to MF79.; Retain the primary-body WRKY observation without converting proposed regulatory/homeostasis roles
+ into proven causality; abstract snippet support is explicitly partial.; Retain the tested MF79 secretion-system
+ mechanism and existing arrow with strain-specific scope and unresolved effector identity.; Retain experimentally
+ supported colonization facilitation, distinguish assay contexts and incomplete canonical participants, and remove
+ reciprocal-fitness attribution.
+ renamed_nodes:
+ MAMP-Triggered Immunity Suppression: Root flg22 Immune Suppression
+ WRKY Transcription Factor Suppression: Community-Associated WRKY Transcript Suppression
+ Type II Secretion-Mediated Immune Modulation: MF79 Type II Secretion-Dependent Immune Modulation
+ Enhanced Colonization Through Community Cooperation: Suppression-Associated Root Colonization Facilitation
+ node_decisions:
+ - node: Root flg22 Immune Suppression
+ rationale: Retain positive root immune suppression at community scope; do not assign community readouts exclusively
+ to MF79.
+ - node: Community-Associated WRKY Transcript Suppression
+ rationale: Retain the primary-body WRKY observation without converting proposed regulatory/homeostasis roles
+ into proven causality; abstract snippet support is explicitly partial.
+ - node: MF79 Type II Secretion-Dependent Immune Modulation
+ rationale: Retain the tested MF79 secretion-system mechanism and existing arrow with strain-specific scope and
+ unresolved effector identity.
+ - node: Suppression-Associated Root Colonization Facilitation
+ rationale: Retain experimentally supported colonization facilitation, distinguish assay contexts and incomplete
+ canonical participants, and remove reciprocal-fitness attribution.
+ removed_node_decisions:
+ - node: Taxonomic Diversity Enabling Functional Complementarity
+ rationale: Taxonomic breadth does not establish the asserted genus-specific metabolic functions, mutualism or
+ resilience mechanism; positive community immune modulation remains retained.
+ - node: Community Member Metabolic Cooperation
+ rationale: The cited colonization snippet does not measure Microbacterium/Stenotrophomonas nutrient exchange,
+ amino-acid supply or siderophore public goods.
+ - node: Negative Control Strain Baseline Response
+ rationale: The cited background snippet and reviewed primary main body do not establish the asserted E. coli
+ control phenotype or E. coli/Dyella competition; supplements were not inspected.
+ edges_before:
+ - source: MAMP-Triggered Immunity Suppression
+ target: Enhanced Colonization Through Community Cooperation
+ description: Suppression of MAMP-triggered immunity gates microbial access to Arabidopsis roots, allowing robust
+ suppressors to improve the root colonization capacity of otherwise nonsuppressive commensals.
+ - source: Type II Secretion-Mediated Immune Modulation
+ target: MAMP-Triggered Immunity Suppression
+ description: Type II secretion provides an extracellular suppressor mechanism that prevents full activation
+ of Arabidopsis MAMP-triggered immunity.
+ edges_after:
+ - source: Root flg22 Immune Suppression
+ target: Suppression-Associated Root Colonization Facilitation
+ description: Suppression can facilitate nonsuppressor root colonization under the tested conditions. MF79 wild-type
+ retentate, unlike T2SS-mutant material, countered the flg22-associated reduction in Ochrobactrum MF370 colonization.
+ This does not establish universal facilitation by every suppressor or reciprocal benefit.
+ - source: MF79 Type II Secretion-Dependent Immune Modulation
+ target: Root flg22 Immune Suppression
+ description: MF79 T2SS function enables its extracellular suppressive activity in the root reporter assay. This
+ arrow applies to the MF79 component of the suppression node, not necessity of T2SS for the entire SynCom35
+ phenotype.
+ retained_edge_decisions:
+ - source: Root flg22 Immune Suppression
+ target: Suppression-Associated Root Colonization Facilitation
+ rationale: Suppression can facilitate nonsuppressor root colonization under the tested conditions. MF79 wild-type
+ retentate, unlike T2SS-mutant material, countered the flg22-associated reduction in Ochrobactrum MF370 colonization.
+ This does not establish universal facilitation by every suppressor or reciprocal benefit.
+ - source: MF79 Type II Secretion-Dependent Immune Modulation
+ target: Root flg22 Immune Suppression
+ rationale: MF79 T2SS function enables its extracellular suppressive activity in the root reporter assay. This
+ arrow applies to the MF79 component of the suppression node, not necessity of T2SS for the entire SynCom35
+ phenotype.
+ removed_edge_decisions: []
+ references:
+ - PMID:33879573
+ issues:
+ - 1375
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml
+ source_review:
+ PMID:33879573:
+ url: https://pmc.ncbi.nlm.nih.gov/articles/PMC8072228/
+ scope: Complete primary main body and five main figure captions via PMC; independent cached abstract and DOI
+ significance text. No figure images or supplements inspected. PMC supplement access returned a browser challenge
+ and PNAS alternate failed. GEO GSE156425 protocol read separately. WRKY-specific detail is primary-body
+ verified, not validated by the abstract snippet.
+- path: kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml
+ id: CommunityMech:000166
+ original_sha256: de4e7abef8320819a7fb648bef5b6b77bf9c7e9addc1d47eb8b7221fd9f97e94
+ record_sha256: 7cc349b1d2309b6d071aeaea72234305922c0c76458baab1469ce258142083f7
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml
+ scope: Whole record and every original node/arrow inspected against cited primary evidence at the documented access
+ scope. Non-graph fields are preserved, not certified.
+ summary: Retain measured cold biodegradation and qualified bioremediation potential; consolidate duplicate oxygen
+ context without asserting syntrophy or oxygen conservation.; Retain positive Colwellia-dominated flocs while
+ qualifying their proposed contribution to degradation and removing unsupported facilitation.; Retain positive
+ SIP/genome evidence and the complementary-pathway hypothesis, distinguish surface/deep and laboratory/field
+ contexts, and retain alternative explanations.
+ renamed_nodes:
+ Intrinsic Hydrocarbon Bioremediation: Cold Hydrocarbon Biodegradation and Bioremediation Potential
+ Colwellia Oil Droplet Floc Formation: Colwellia-Dominated Oil-Associated Flocs
+ Complex Hydrocarbon Substrate Partitioning: Proposed Community Hydrocarbon Pathway Complementarity
+ node_decisions:
+ - node: Cold Hydrocarbon Biodegradation and Bioremediation Potential
+ rationale: Retain measured cold biodegradation and qualified bioremediation potential; consolidate duplicate
+ oxygen context without asserting syntrophy or oxygen conservation.
+ - node: Colwellia-Dominated Oil-Associated Flocs
+ rationale: Retain positive Colwellia-dominated flocs while qualifying their proposed contribution to degradation
+ and removing unsupported facilitation.
+ - node: Proposed Community Hydrocarbon Pathway Complementarity
+ rationale: Retain positive SIP/genome evidence and the complementary-pathway hypothesis, distinguish surface/deep
+ and laboratory/field contexts, and retain alternative explanations.
+ removed_node_decisions:
+ - node: Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation
+ rationale: The target repeats the same biodegradation/oxygen conclusion and snippets, not a separate downstream
+ mechanism; bounded oxygen context is retained in the source node.
+ edges_before:
+ - source: Intrinsic Hydrocarbon Bioremediation
+ target: Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation
+ description: Fast cold-water hydrocarbon biodegradation by indigenous Gammaproteobacteria supports natural plume
+ attenuation without a substantial loss of dissolved oxygen.
+ - source: Colwellia Oil Droplet Floc Formation
+ target: Intrinsic Hydrocarbon Bioremediation
+ description: Oil-associated Colwellia biomass flocs contribute a particle-associated route into cold deep-water
+ oil degradation.
+ - source: Complex Hydrocarbon Substrate Partitioning
+ target: Intrinsic Hydrocarbon Bioremediation
+ description: Partitioning alkane and PAH metabolism among non-redundant plume guilds lets the community degrade
+ complex petroleum mixtures.
+ edges_after:
+ - source: Colwellia-Dominated Oil-Associated Flocs
+ target: Cold Hydrocarbon Biodegradation and Bioremediation Potential
+ description: HYPOTHESIZED - aggregation with oil droplets could support Colwellia-associated hydrocarbon access
+ and degradation. The enrichment observations and separate isolate assay do not selectively test this route
+ or establish its contribution to in situ plume attenuation.
+ - source: Proposed Community Hydrocarbon Pathway Complementarity
+ target: Cold Hydrocarbon Biodegradation and Bioremediation Potential
+ description: HYPOTHESIZED - complementary pathways could expand community hydrocarbon transformation and contribute
+ to bioremediation. SIP and annotated repertoires support this model but do not establish intertaxon flux,
+ necessity or the contribution of this room-temperature enrichment mechanism in the cold field plume.
+ retained_edge_decisions:
+ - source: Colwellia-Dominated Oil-Associated Flocs
+ target: Cold Hydrocarbon Biodegradation and Bioremediation Potential
+ rationale: HYPOTHESIZED - aggregation with oil droplets could support Colwellia-associated hydrocarbon access
+ and degradation. The enrichment observations and separate isolate assay do not selectively test this route
+ or establish its contribution to in situ plume attenuation.
+ - source: Proposed Community Hydrocarbon Pathway Complementarity
+ target: Cold Hydrocarbon Biodegradation and Bioremediation Potential
+ rationale: HYPOTHESIZED - complementary pathways could expand community hydrocarbon transformation and contribute
+ to bioremediation. SIP and annotated repertoires support this model but do not establish intertaxon flux,
+ necessity or the contribution of this room-temperature enrichment mechanism in the cold field plume.
+ removed_edge_decisions:
+ - source: Intrinsic Hydrocarbon Bioremediation
+ target: Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation
+ rationale: The target repeats the same biodegradation/oxygen conclusion and snippets, not a separate downstream
+ mechanism; bounded oxygen context is retained in the source node.
+ references:
+ - PMID:20736401
+ - PMID:22616650
+ - PMID:27572965
+ - PMID:24865772
+ - PMID:25071745
+ issues:
+ - 1376
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml
+ source_review:
+ PMID:20736401:
+ url: https://pubmed.ncbi.nlm.nih.gov/20736401/
+ scope: Complete cached primary abstract and fresh official PubMed search; primary full body unavailable in
+ this review. Science open failed; no figures or supplements inspected.
+ PMID:22616650:
+ url: https://pubmed.ncbi.nlm.nih.gov/22616650/
+ scope: Complete cached primary abstract. Author-repository source identified but access returned a browser
+ challenge. No full body, figures or supplements inspected.
+ PMID:27572965:
+ url: https://pure.hw.ac.uk/ws/portalfiles/portal/10579894/NMICROBIOL.2016.57_auproof.pdf
+ scope: Complete primary author-proof main body, Methods and three captions read; Figure 3 inspected visually
+ from a local rendering. Publisher abstract independently confirmed. Author proof is not asserted to be the
+ final typeset version. No supplements inspected; no full text added to git.
+ local_pdf_sha256: 48907413a0d13634a6ae28f7d2be7b36b1d9f27a5ac4f773310bbd6112fa391e
+ PMID:24865772:
+ url: https://www.nature.com/articles/ismej201488
+ scope: Complete cached abstract and fresh publisher search. This is a short communication discussing primary
+ findings, used for a non-graph qualification follow-up; no full body or figure images inspected.
+ PMID:25071745:
+ url: https://pmc.ncbi.nlm.nih.gov/articles/PMC4085564/
+ scope: Complete primary main body and two main figure captions read in the existing independent full-text
+ cache; no figure images or supplements inspected. Genomic predictions used to constrain interpretation,
+ not extend the graph.
+- path: kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml
+ id: CommunityMech:000082
+ original_sha256: 44c660bcd4b7ee0cc6b7dc9f6512a6215ebdf6e96251826169a5124441166009
+ record_sha256: 320691301cf3e2d94ca9bf69873471e12309ce32271eecc02c3b222a08e6b9d6
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml
+ scope: Whole record and every original node/arrow inspected against cited primary evidence at the documented access
+ scope. Non-graph fields are preserved, not certified.
+ summary: Retain the inoculated biofilm platform without interspecies facilitation or universal persistence claims.;
+ Retain treatment- and species-specific viable-count outcomes without cross-feeding or a uniform calcium effect.;
+ Retain endpoint-specific enamel mineral outcomes without microbial competition or an untested mediation mechanism.
+ renamed_nodes:
+ Sucrose-Responsive Viable Biofilm Shift: Treatment-Dependent Viable Biofilm Counts
+ node_decisions:
+ - node: Four-Species Enamel Biofilm Formation
+ rationale: Retain the inoculated biofilm platform without interspecies facilitation or universal persistence
+ claims.
+ - node: Treatment-Dependent Viable Biofilm Counts
+ rationale: Retain treatment- and species-specific viable-count outcomes without cross-feeding or a uniform calcium
+ effect.
+ - node: Mineral-Dependent Demineralization Restraint
+ rationale: Retain endpoint-specific enamel mineral outcomes without microbial competition or an untested mediation
+ mechanism.
+ removed_node_decisions: []
+ edges_before:
+ - source: Four-Species Enamel Biofilm Formation
+ target: Sucrose-Responsive Viable Biofilm Shift
+ description: The established four-species enamel biofilm provided the viable biomass whose cell counts shifted
+ across the sucrose, fluoride, and calcium arms.
+ - source: Four-Species Enamel Biofilm Formation
+ target: Mineral-Dependent Demineralization Restraint
+ description: Four days of multispecies biofilm growth on enamel slabs created the demineralization readout modulated
+ by fluoride and calcium.
+ edges_after: []
+ retained_edge_decisions: []
+ removed_edge_decisions:
+ - source: Four-Species Enamel Biofilm Formation
+ target: Sucrose-Responsive Viable Biofilm Shift
+ rationale: The assay provides the biomass whose counts are measured; assay context alone does not establish
+ a causal transition between interactions.
+ - source: Four-Species Enamel Biofilm Formation
+ target: Mineral-Dependent Demineralization Restraint
+ rationale: The biofilm/enamel platform provides the mineral-loss readout, not a demonstrated causal effect of
+ community assembly on mineral-dependent restraint.
+ references:
+ - PMID:23446436
+ issues:
+ - 1377
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml
+ source_review:
+ PMID:23446436:
+ url: https://www.adm.org.mx/backup/biblioteca/caries-research/2013/A%20DEFINED%20MULTISPECIES7.pdf
+ scope: Complete primary body, independent cached abstract and Tables 1-2 read; both tables visually inspected
+ in the local page-4 rendering. Karger publisher body was subscription-restricted; a publicly available copy
+ was read without bypassing access controls. No full text added to git.
+ local_pdf_sha256: 5eb573e0d081a382fb35a21ef7c90c6e245d6de22f711ee5cd81fd8d80af2d76
diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv
index 63644c05a..541bc8594 100644
--- a/reports/causal_graph_review/inventory.tsv
+++ b/reports/causal_graph_review/inventory.tsv
@@ -133,9 +133,9 @@ kb/communities/DCPP_DBS4_DCP4_DCP11d_Degradation_SynCom.yaml CommunityMech:00041
kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml CommunityMech:000297 41e06f6c3fa5433a002180badb92870c4664a3863c394d4c7d25acf38a23a3be 3 2 96.7 reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml reviewed
kb/communities/DVM_Triculture.yaml CommunityMech:000021 f266bb55b26a98251d9302e6a411526e3908eb775203bd87b4fa8b47fcb07743 4 2 100.0 pending
kb/communities/Dairy_Wastewater_Algal_Cyanobacterial_Cultivation_Panel.yaml CommunityMech:000384 1eee347250881287de8d9d9be43dd5bba641e69001b46ea19e8048aeb1214bf6 0 0 0.0 pending
-kb/communities/Dangl_SynComm_35.yaml CommunityMech:000022 1308bd7106e991df960bd18afdc8bad9df6da33c9dd124cfb0f1e1a1e60e398b 7 2 100.0 pending
-kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml CommunityMech:000166 de4e7abef8320819a7fb648bef5b6b77bf9c7e9addc1d47eb8b7221fd9f97e94 4 3 100.0 pending
-kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml CommunityMech:000082 44c660bcd4b7ee0cc6b7dc9f6512a6215ebdf6e96251826169a5124441166009 3 2 100.0 pending
+kb/communities/Dangl_SynComm_35.yaml CommunityMech:000022 9a828b5a59f88ca41699338a0187ebbe4d59da5b05fcc4ef40cf788b2ee9a277 4 2 89.4 reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml reviewed
+kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml CommunityMech:000166 7cc349b1d2309b6d071aeaea72234305922c0c76458baab1469ce258142083f7 3 2 89.0 reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml reviewed
+kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml CommunityMech:000082 320691301cf3e2d94ca9bf69873471e12309ce32271eecc02c3b222a08e6b9d6 3 0 65.0 reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml reviewed
kb/communities/Defined_ThreeStrain_Organic_Nitrogen_Nitrifying_Community.yaml CommunityMech:000397 b3843b5e2f64d179b4bc11a1558b7f977c025252fa6fe16d8ab82e0dfb292ec1 1 0 65.0 reports/causal_graph_review/decisions/20261006-three-records-batch27.yaml reviewed
kb/communities/Dehalococcoides_Desulfovibrio_Lactate_TCE_Syntrophy.yaml CommunityMech:000199 e177715e13530b307c714b59268dc295e35935d12b5d73a0ee7137ba68a927d0 3 2 100.0 pending
kb/communities/Dehalococcoides_Desulfovibrio_Pelosinus_Corrinoid_Triculture.yaml CommunityMech:000200 9e9caf7e8dfeeca85868d3bc7509eacd27686582f0090bfbd88af2675248d8bf 4 3 100.0 pending
diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json
index 00c52ce87..7a4941320 100644
--- a/reports/causal_graph_review/summary.json
+++ b/reports/causal_graph_review/summary.json
@@ -2,14 +2,14 @@
"scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.",
"semantic_review_rule": "Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.",
"records": 460,
- "nodes": 1474,
- "edges": 708,
+ "nodes": 1470,
+ "edges": 705,
"records_without_nodes": 8,
- "records_without_edges": 142,
+ "records_without_edges": 143,
"review_status_counts": {
"needs_research": 4,
- "pending": 327,
- "reviewed": 129
+ "pending": 324,
+ "reviewed": 132
},
"structural_defects": [],
"network_audit": [
@@ -373,6 +373,236 @@
"message": "Taxon 'Ca. Kuenenia early-acclimation lineage' has no interactions",
"severity": "warning"
},
+ {
+ "record": "Dangl_SynComm_35",
+ "type": "DISCONNECTED",
+ "taxon": "Escherichia coli DH5\u03b1",
+ "taxon_id": "NCBITaxon:668369",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Escherichia coli DH5\u03b1",
+ "term": {
+ "id": "NCBITaxon:668369",
+ "label": "Escherichia coli DH5[alpha]"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:s__Escherichia_coli",
+ "gtdb_taxon": "Escherichia coli",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Escherichia;s__Escherichia coli",
+ "ncbi_source_id": "NCBITaxon:668369",
+ "majority_fraction": 1.0,
+ "total_genomes": 4,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25)"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "CROSS_FEEDER"
+ ],
+ "evidence": [
+ {
+ "reference": "doi:10.1073/pnas.2100678118",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "We report that root-associated commensal bacteria actively suppress the host immune response in the context of a community"
+ }
+ ]
+ },
+ "message": "Taxon 'Escherichia coli DH5\u03b1' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Dangl_SynComm_35",
+ "type": "DISCONNECTED",
+ "taxon": "Flavobacterium species",
+ "taxon_id": "NCBITaxon:237",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Flavobacterium species",
+ "term": {
+ "id": "NCBITaxon:237",
+ "label": "Flavobacterium"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Flavobacterium",
+ "gtdb_taxon": "Flavobacterium",
+ "gtdb_lineage": "d__Bacteria;p__Bacteroidota;c__Bacteroidia;o__Flavobacteriales;f__Flavobacteriaceae;g__Flavobacterium",
+ "ncbi_source_id": "NCBITaxon:237",
+ "majority_fraction": 0.999,
+ "support_genomes": 859,
+ "total_genomes": 860,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 2 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "doi:10.1073/pnas.2100678118",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "It is unknown, however, how microbiota composed of commensal bacteria colonize roots in the face of a sophisticated plant immune system that evolved to recognize microbial-associated molecular patterns"
+ }
+ ]
+ },
+ "message": "Taxon 'Flavobacterium species' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Dangl_SynComm_35",
+ "type": "DISCONNECTED",
+ "taxon": "Microbacterium species",
+ "taxon_id": "NCBITaxon:33882",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Microbacterium species",
+ "term": {
+ "id": "NCBITaxon:33882",
+ "label": "Microbacterium"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Microbacterium",
+ "gtdb_taxon": "Microbacterium",
+ "gtdb_lineage": "d__Bacteria;p__Actinomycetota;c__Actinomycetes;o__Actinomycetales;f__Microbacteriaceae;g__Microbacterium",
+ "ncbi_source_id": "NCBITaxon:33882",
+ "majority_fraction": 1.0,
+ "support_genomes": 591,
+ "total_genomes": 591,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 1 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ]
+ },
+ "message": "Taxon 'Microbacterium species' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Dangl_SynComm_35",
+ "type": "DISCONNECTED",
+ "taxon": "Stenotrophomonas species",
+ "taxon_id": "NCBITaxon:40323",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Stenotrophomonas species",
+ "term": {
+ "id": "NCBITaxon:40323",
+ "label": "Stenotrophomonas"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Stenotrophomonas",
+ "gtdb_taxon": "Stenotrophomonas",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Xanthomonadales;f__Xanthomonadaceae;g__Stenotrophomonas",
+ "ncbi_source_id": "NCBITaxon:40323",
+ "majority_fraction": 0.985,
+ "support_genomes": 398,
+ "total_genomes": 404,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 2 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ]
+ },
+ "message": "Taxon 'Stenotrophomonas species' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Dangl_SynComm_35",
+ "type": "DISCONNECTED",
+ "taxon": "Xanthomonadales members",
+ "taxon_id": "NCBITaxon:135614",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Xanthomonadales members",
+ "term": {
+ "id": "NCBITaxon:135614",
+ "label": "Lysobacterales"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:o__Xanthomonadales",
+ "gtdb_taxon": "Xanthomonadales",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Xanthomonadales",
+ "ncbi_source_id": "NCBITaxon:135614",
+ "majority_fraction": 1.0,
+ "support_genomes": 7047,
+ "total_genomes": 7047,
+ "is_reclassified": true,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at o__ rank; 1 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "doi:10.1073/pnas.2100678118",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "It is unknown, however, how microbiota composed of commensal bacteria colonize roots in the face of a sophisticated plant immune system that evolved to recognize microbial-associated molecular patterns"
+ }
+ ]
+ },
+ "message": "Taxon 'Xanthomonadales members' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession",
+ "type": "DISCONNECTED",
+ "taxon": "Methylophaga",
+ "taxon_id": "NCBITaxon:40222",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Methylophaga",
+ "term": {
+ "id": "NCBITaxon:40222",
+ "label": "Methylophaga"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Methylophaga",
+ "gtdb_taxon": "Methylophaga",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Nitrosococcales;f__Methylophagaceae;g__Methylophaga",
+ "ncbi_source_id": "NCBITaxon:40222",
+ "majority_fraction": 1.0,
+ "support_genomes": 45,
+ "total_genomes": 45,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 1 GTDB taxa under the NCBI taxon]"
+ },
+ "notes": "Methylotrophic bacteria implicated in later plume-water hydrocarbon processing."
+ },
+ "functional_role": [
+ "PRIMARY_DEGRADER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:24865772",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VIVO",
+ "snippet": "methylotrophs, including Methylophaga, were in a heightened state of metabolic activity within oil plume waters",
+ "explanation": "Supports active Methylophaga-like methylotrophs in oil plume waters."
+ }
+ ]
+ },
+ "message": "Taxon 'Methylophaga' has no interactions",
+ "severity": "warning"
+ },
{
"record": "Mangrove_Benzene_MFC_Bioanode_Consortium",
"type": "DISCONNECTED",
diff --git a/reports/causal_graph_review/validation-20261006-batch29.json b/reports/causal_graph_review/validation-20261006-batch29.json
new file mode 100644
index 000000000..e3d8165fb
--- /dev/null
+++ b/reports/causal_graph_review/validation-20261006-batch29.json
@@ -0,0 +1,898 @@
+{
+ "base_commit": "17b5c3da1722987a42a9d0c26d2f6ec4b3a834f2",
+ "scope": [
+ "kb/communities/Dangl_SynComm_35.yaml",
+ "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml",
+ "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml"
+ ],
+ "reference_validator_version": "0.1.7",
+ "results": [
+ {
+ "check": "Dangl_SynComm_35-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Dangl_SynComm_35.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Dangl_SynComm_35-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch29/Dangl_SynComm_35-strict.tsv",
+ "kb/communities/Dangl_SynComm_35.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-strict.log",
+ "log_sha256": "76640bccec61caa815b9f777d3701e1a7abfd2ef5818828c1b8ced4796f9dc66",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch29/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-batch29/Dangl_SynComm_35-strict.tsv\n"
+ },
+ {
+ "check": "Dangl_SynComm_35-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Dangl_SynComm_35.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Dangl_SynComm_35-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Dangl_SynComm_35.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-references.log",
+ "log_sha256": "4a77152b9c55d909d7179c61c2dfd067ee6cc19749a3ebbd636c84197bbcf721",
+ "output_tail": "Validating kb/communities/Dangl_SynComm_35.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/Dangl_SynComm_35.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": "Dangl_SynComm_35-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Dangl_SynComm_35.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-snippets.log",
+ "log_sha256": "cbb2cdedf7d2ed5756aac506b60071c409906c876d5eb3586f860c596629a58e",
+ "output_tail": "# 21 evidence snippets scanned across 1 files\n MATCH 21\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": "Dangl_SynComm_35-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Dangl_SynComm_35.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-rank.log",
+ "log_sha256": "8eabf9e32ba558235c1cfe67048d9304e52d95e029d613e46afc9e41d68c1571",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000022\",\n \"name\": \"Jeff Dangl's SynComm 35\",\n \"score\": 89.4,\n \"taxonomy\": 8,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 5,\n \"ecological_interactions\": 4,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\",\n \"disconnected_taxa\"\n ],\n \"path\": \"kb/communities/Dangl_SynComm_35.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Dangl_SynComm_35-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-strict.tsv",
+ "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-strict.log",
+ "log_sha256": "e80205f948e57c38f648d84fbc9c8609246fbb7a21c0c676c69e786b2adb7215",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch29/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-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-strict.tsv\n"
+ },
+ {
+ "check": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-references.log",
+ "log_sha256": "d9ad811f70d674060458e56819ce3aa16d98ab68e8f55900569afe1810a46362",
+ "output_tail": "Validating kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.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/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.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": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-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": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-rank.log",
+ "log_sha256": "48e32bf4d89edf38442f0ac1ad0681c3f19dfc5f01de3b1a07154b80e63c4235",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000166\",\n \"name\": \"Deepwater Horizon Deep-Sea Oil Plume Succession\",\n \"score\": 89.0,\n \"taxonomy\": 5,\n \"connected_taxa\": 4,\n \"disconnected_taxa\": 1,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 7,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\",\n \"disconnected_taxa\"\n ],\n \"path\": \"kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Defined_Multispecies_Enamel_Caries_Model-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Defined_Multispecies_Enamel_Caries_Model-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-strict.tsv",
+ "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-strict.log",
+ "log_sha256": "44d4be8abb7ec38b1f7e5b709a0e709131643df0a5e922029748e9d3e3d08795",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch29/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-batch29/Defined_Multispecies_Enamel_Caries_Model-strict.tsv\n"
+ },
+ {
+ "check": "Defined_Multispecies_Enamel_Caries_Model-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Defined_Multispecies_Enamel_Caries_Model-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-references.log",
+ "log_sha256": "40cdb020922e0a4311dac94c3bde18797e21ca9f29b4733b9aaf8897efac7223",
+ "output_tail": "Validating kb/communities/Defined_Multispecies_Enamel_Caries_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/Defined_Multispecies_Enamel_Caries_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": "Defined_Multispecies_Enamel_Caries_Model-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-snippets.log",
+ "log_sha256": "f77044cea09a90a006f3fc48666f62a208521829981c6819a3a36631506c4ec1",
+ "output_tail": "# 16 evidence snippets scanned across 1 files\n MATCH 16\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": "Defined_Multispecies_Enamel_Caries_Model-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-rank.log",
+ "log_sha256": "febe36330608c1699710332539343affb4b911b20ac23e35dade271bf942b853",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000082\",\n \"name\": \"Defined Multispecies Enamel Caries Model\",\n \"score\": 65.0,\n \"taxonomy\": 4,\n \"connected_taxa\": 4,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Defined_Multispecies_Enamel_Caries_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/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-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-batch29/inventory.log",
+ "log_sha256": "61484860dfce9891dcd6761a1bb54e38f466e730fc0e4f9a47a38065ada56f26",
+ "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\": 1470,\n \"edges\": 705,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 143,\n \"review_status_counts\": {\n \"needs_research\": 4,\n \"pending\": 324,\n \"reviewed\": 132\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-batch29/network.log",
+ "log_sha256": "2cd39b61dfce615081637c0e72d245194c41d4a2a374d65bccad7c69fcff4e63",
+ "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-batch29/rank-all.log",
+ "log_sha256": "2153214be3c2d11ea1c6146beb8a901660016c99d694b19f91ae2b23439a0801",
+ "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-batch29/render.log",
+ "log_sha256": "ea062cb89370a6b8ee72611e81e5b8073c99976dd977f4e0ab2dfd46ed262887",
+ "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch29/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch29/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch29/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-batch29/render-repeat.log",
+ "log_sha256": "ea062cb89370a6b8ee72611e81e5b8073c99976dd977f4e0ab2dfd46ed262887",
+ "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch29/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch29/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch29/docs/index.html\n"
+ },
+ {
+ "check": "connectivity-survey",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-c",
+ "import json,runpy; print(json.dumps(runpy.run_path(\"tests/test_community_level_connectivity_credit.py\")[\"_survey\"](),sort_keys=True))"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/connectivity-survey.log",
+ "log_sha256": "75f81e775562eccff7b05d37325e53d49d8dd9a033afb56a3af328cded2c0361",
+ "output_tail": "{\"community_level_only\": 264, \"credited_solely_by_the_rule\": 1220, \"mixed\": 124, \"records\": 460, \"taxa\": 1496, \"with_community_level\": 388}\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_batch5.py",
+ "tests/test_causal_review_batch6.py",
+ "tests/test_causal_review_batch7.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-batch29/regressions.log",
+ "log_sha256": "54f43125e00a332c6a46795163adcfeab7367c3e720fc943a87de2807aaf8cdf",
+ "output_tail": "........................................................................ [ 21%]\n........................................................................ [ 42%]\n........................................................................ [ 63%]\n........................................................................ [ 84%]\n...................................................... [100%]\n342 passed in 165.07s (0:02:45)\n"
+ },
+ {
+ "check": "black",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black",
+ "--check",
+ "tests/test_causal_review_batch29.py",
+ "tests/test_participating_taxa.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/black.log",
+ "log_sha256": "b9cf511501d306d2bd8355ccb165c8ddc0a6fdd62d7c72c4a7b1795cf8934c8c",
+ "output_tail": "All done! \u2728 \ud83c\udf70 \u2728\n2 files would be left unchanged.\n"
+ },
+ {
+ "check": "ruff",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/wCcxEYRM4HeHgwYPZemHX/bin/ruff",
+ "check",
+ "tests/test_causal_review_batch29.py",
+ "tests/test_participating_taxa.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch29/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-batch29/diff-check.log",
+ "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "output_tail": ""
+ }
+ ],
+ "limitations": [
+ "Three graph reviews; fourteen original nodes become ten and seven arrows become four. No new graph structure or Edison job/spend.",
+ "Primary-source access differs by study and is recorded per reference. Snippet MATCH is textual verification, not scientific endorsement; WRKY detail was checked in the full body rather than its broad abstract snippet.",
+ "No new full article/PDF is committed. Existing reference caches and all non-graph record blocks are preserved.",
+ "Three separate non-graph metadata follow-ups remain open. This is a self-adversarial review, not independent approval, protected CI success or full-corpus completion.",
+ "HTML descriptions checked by exact parser and repeat renders, not browser screenshots. Post-commit docs-current is a separate publication gate."
+ ],
+ "snippet_counts_by_record": {
+ "kb/communities/Dangl_SynComm_35.yaml": {
+ "MATCH": 21,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml": {
+ "MATCH": 29,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml": {
+ "MATCH": 16,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ }
+ },
+ "unchanged_raw_blocks": 40,
+ "unchanged_record_files": 457,
+ "unchanged_cache_files": 920,
+ "network_delta": {
+ "existing_findings_preserved": 25,
+ "new_disconnected": 6,
+ "rationale": "Explicit participant subsets and removal of unsupported relationships reveal unresolved assignments instead of silently crediting every taxon. Follow-ups #1378 and #1379 retain these gaps.",
+ "findings": {
+ "Dangl_SynComm_35": [
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Escherichia coli DH5\u03b1",
+ "taxon_id": "NCBITaxon:668369",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Escherichia coli DH5\u03b1",
+ "term": {
+ "id": "NCBITaxon:668369",
+ "label": "Escherichia coli DH5[alpha]"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:s__Escherichia_coli",
+ "gtdb_taxon": "Escherichia coli",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Escherichia;s__Escherichia coli",
+ "ncbi_source_id": "NCBITaxon:668369",
+ "majority_fraction": 1.0,
+ "total_genomes": 4,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25)"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "CROSS_FEEDER"
+ ],
+ "evidence": [
+ {
+ "reference": "doi:10.1073/pnas.2100678118",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "We report that root-associated commensal bacteria actively suppress the host immune response in the context of a community"
+ }
+ ]
+ },
+ "message": "Taxon 'Escherichia coli DH5\u03b1' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Flavobacterium species",
+ "taxon_id": "NCBITaxon:237",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Flavobacterium species",
+ "term": {
+ "id": "NCBITaxon:237",
+ "label": "Flavobacterium"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Flavobacterium",
+ "gtdb_taxon": "Flavobacterium",
+ "gtdb_lineage": "d__Bacteria;p__Bacteroidota;c__Bacteroidia;o__Flavobacteriales;f__Flavobacteriaceae;g__Flavobacterium",
+ "ncbi_source_id": "NCBITaxon:237",
+ "majority_fraction": 0.999,
+ "support_genomes": 859,
+ "total_genomes": 860,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 2 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "doi:10.1073/pnas.2100678118",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "It is unknown, however, how microbiota composed of commensal bacteria colonize roots in the face of a sophisticated plant immune system that evolved to recognize microbial-associated molecular patterns"
+ }
+ ]
+ },
+ "message": "Taxon 'Flavobacterium species' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Microbacterium species",
+ "taxon_id": "NCBITaxon:33882",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Microbacterium species",
+ "term": {
+ "id": "NCBITaxon:33882",
+ "label": "Microbacterium"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Microbacterium",
+ "gtdb_taxon": "Microbacterium",
+ "gtdb_lineage": "d__Bacteria;p__Actinomycetota;c__Actinomycetes;o__Actinomycetales;f__Microbacteriaceae;g__Microbacterium",
+ "ncbi_source_id": "NCBITaxon:33882",
+ "majority_fraction": 1.0,
+ "support_genomes": 591,
+ "total_genomes": 591,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 1 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ]
+ },
+ "message": "Taxon 'Microbacterium species' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Stenotrophomonas species",
+ "taxon_id": "NCBITaxon:40323",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Stenotrophomonas species",
+ "term": {
+ "id": "NCBITaxon:40323",
+ "label": "Stenotrophomonas"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Stenotrophomonas",
+ "gtdb_taxon": "Stenotrophomonas",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Xanthomonadales;f__Xanthomonadaceae;g__Stenotrophomonas",
+ "ncbi_source_id": "NCBITaxon:40323",
+ "majority_fraction": 0.985,
+ "support_genomes": 398,
+ "total_genomes": 404,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 2 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ]
+ },
+ "message": "Taxon 'Stenotrophomonas species' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Xanthomonadales members",
+ "taxon_id": "NCBITaxon:135614",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Xanthomonadales members",
+ "term": {
+ "id": "NCBITaxon:135614",
+ "label": "Lysobacterales"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:o__Xanthomonadales",
+ "gtdb_taxon": "Xanthomonadales",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Xanthomonadales",
+ "ncbi_source_id": "NCBITaxon:135614",
+ "majority_fraction": 1.0,
+ "support_genomes": 7047,
+ "total_genomes": 7047,
+ "is_reclassified": true,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at o__ rank; 1 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "doi:10.1073/pnas.2100678118",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "It is unknown, however, how microbiota composed of commensal bacteria colonize roots in the face of a sophisticated plant immune system that evolved to recognize microbial-associated molecular patterns"
+ }
+ ]
+ },
+ "message": "Taxon 'Xanthomonadales members' has no interactions"
+ }
+ ],
+ "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession": [
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Methylophaga",
+ "taxon_id": "NCBITaxon:40222",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Methylophaga",
+ "term": {
+ "id": "NCBITaxon:40222",
+ "label": "Methylophaga"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Methylophaga",
+ "gtdb_taxon": "Methylophaga",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Nitrosococcales;f__Methylophagaceae;g__Methylophaga",
+ "ncbi_source_id": "NCBITaxon:40222",
+ "majority_fraction": 1.0,
+ "support_genomes": 45,
+ "total_genomes": 45,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 1 GTDB taxa under the NCBI taxon]"
+ },
+ "notes": "Methylotrophic bacteria implicated in later plume-water hydrocarbon processing."
+ },
+ "functional_role": [
+ "PRIMARY_DEGRADER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:24865772",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VIVO",
+ "snippet": "methylotrophs, including Methylophaga, were in a heightened state of metabolic activity within oil plume waters",
+ "explanation": "Supports active Methylophaga-like methylotrophs in oil plume waters."
+ }
+ ]
+ },
+ "message": "Taxon 'Methylophaga' has no interactions"
+ }
+ ]
+ }
+ },
+ "render_determinism": true,
+ "published_description_coverage": {
+ "pages": 456,
+ "nodes": 1456,
+ "arrows": 697
+ },
+ "participant_census": {
+ "connectivity_before": {
+ "community_level_only": 264,
+ "credited_solely_by_the_rule": 1216,
+ "mixed": 124,
+ "records": 460,
+ "taxa": 1496,
+ "with_community_level": 388
+ },
+ "connectivity_after": {
+ "community_level_only": 264,
+ "credited_solely_by_the_rule": 1220,
+ "mixed": 124,
+ "records": 460,
+ "taxa": 1496,
+ "with_community_level": 388
+ },
+ "exact_change": "170 -> 173 users; only Dangl, Deepwater and enamel added",
+ "numeric_bounds_changed": false
+ },
+ "corpus": {
+ "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.",
+ "records": 460,
+ "nodes": 1470,
+ "edges": 705,
+ "records_without_nodes": 8,
+ "records_without_edges": 143,
+ "review_status_counts": {
+ "needs_research": 4,
+ "pending": 324,
+ "reviewed": 132
+ },
+ "structural_defects": []
+ },
+ "tested_file_sha256": {
+ "reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml": "6627d37b0aad90ee137572b39e5b4039380bfd01f7e0c16912d7cb10a3c78439",
+ "tests/test_causal_review_batch29.py": "2e8f41544c35091698f5c4a7459750cf97418edc5b27a64abe41e7de9dcf9bbe",
+ "tests/test_participating_taxa.py": "f3b3bf65f4d442fa95c55b9aaf624696bdb51683dc35a46dc93d6706f70584d3",
+ "kb/communities/Dangl_SynComm_35.yaml": "9a828b5a59f88ca41699338a0187ebbe4d59da5b05fcc4ef40cf788b2ee9a277",
+ "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml": "7cc349b1d2309b6d071aeaea72234305922c0c76458baab1469ce258142083f7",
+ "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml": "320691301cf3e2d94ca9bf69873471e12309ce32271eecc02c3b222a08e6b9d6"
+ },
+ "status": "verified_three_completed_reviews_three_changed_records"
+}
diff --git a/tests/test_causal_review_batch29.py b/tests/test_causal_review_batch29.py
new file mode 100644
index 000000000..1d47a1c79
--- /dev/null
+++ b/tests/test_causal_review_batch29.py
@@ -0,0 +1,136 @@
+"""Keep assay observations, strain mechanisms and field hypotheses distinct."""
+
+import hashlib
+from collections import Counter
+from pathlib import Path
+
+import yaml
+
+ROOT = Path(__file__).resolve().parents[1]
+LEDGER = ROOT / "reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml"
+
+
+def records():
+ ledger = yaml.safe_load(LEDGER.read_text())
+ return ledger, [yaml.safe_load((ROOT / r["path"]).read_text()) for r in ledger["records"]]
+
+
+def test_syncom35_preserves_immune_observations_without_invented_exchanges():
+ _, docs = records()
+ immune, wrky, secretion, colonization = docs[0]["ecological_interactions"]
+ assert immune["scope"] == wrky["scope"] == "COMMUNITY_LEVEL"
+ assert len(immune["participating_taxa"]) == len(wrky["participating_taxa"]) == 2
+ assert "not the complete 35-strain roster" in immune["description"]
+ assert "not a demonstrated MF79-specific WRKY mechanism" in wrky["description"]
+ assert wrky["evidence"][0]["supports"] == "PARTIAL"
+ assert "not validated by the abstract snippet" in (
+ yaml.safe_load(LEDGER.read_text())["records"][0]["source_review"]["PMID:33879573"]["scope"]
+ )
+ assert secretion["scope"] == "PAIRWISE"
+ assert secretion["source_taxon"]["term"]["id"] == "NCBITaxon:231455"
+ assert secretion["target_taxon"]["term"]["id"] == "NCBITaxon:3702"
+ assert "not assigned to every SynCom35 member" in secretion["description"]
+ assert all("interaction_type" not in n for n in [immune, wrky, secretion])
+ assert colonization["scope"] == "COMMUNITY_LEVEL"
+ assert colonization["interaction_type"] == "COLONIZATION_FACILITATION"
+ assert len(colonization["participating_taxa"]) == 3
+ assert "not a proven MF79/Pseudomonas mutualism" in colonization["description"]
+
+
+def test_syncom35_two_arrows_keep_experiment_specific_scope():
+ _, docs = records()
+ immune, wrky, secretion, colonization = docs[0]["ecological_interactions"]
+ (upstream,) = secretion["downstream"]
+ (downstream,) = immune["downstream"]
+ assert upstream["target"] == immune["name"]
+ assert "not necessity of T2SS for the entire SynCom35 phenotype" in upstream["description"]
+ assert downstream["target"] == colonization["name"]
+ assert "Ochrobactrum MF370" in downstream["description"]
+ assert "unlike T2SS-mutant material" in downstream["description"]
+ assert "downstream" not in wrky and "downstream" not in colonization
+
+
+def test_deepwater_retains_positive_results_with_two_qualified_arrows():
+ _, docs = records()
+ degradation, floc, partition = docs[1]["ecological_interactions"]
+ assert all(n["scope"] == "COMMUNITY_LEVEL" for n in [degradation, floc, partition])
+ assert all("interaction_type" not in n for n in [degradation, floc, partition])
+ assert "potential" in degradation["description"]
+ assert "not a distinct oxygen-conservation mechanism" in degradation["description"]
+ assert "downstream" not in degradation
+ assert degradation["evidence"][1]["supports"] == "PARTIAL"
+ assert "separate positive result" in floc["description"]
+ assert "room temperature without added dispersant" in partition["description"]
+ assert "alternative to unknown enzymes or incomplete assemblies" in partition["description"]
+ assert partition["evidence"][-1]["evidence_source"] == "IN_VITRO"
+ assert partition["evidence"][-1]["supports"] == "SUPPORT"
+ for node in [floc, partition]:
+ (arrow,) = node["downstream"]
+ assert arrow["target"] == degradation["name"]
+ assert arrow["description"].startswith("HYPOTHESIZED -")
+ assert len(partition["participating_taxa"]) == 4
+ assert "NCBITaxon:40222" not in {t["term"]["id"] for t in partition["participating_taxa"]}
+
+
+def test_enamel_preserves_treatment_endpoints_not_crossfeeding_or_competition():
+ _, docs = records()
+ formation, counts, minerals = docs[2]["ecological_interactions"]
+ for node in [formation, counts, minerals]:
+ assert node["scope"] == "COMMUNITY_LEVEL"
+ assert len(node["participating_taxa"]) == 4
+ assert not {"interaction_type", "source_taxon", "target_taxon", "downstream"} & node.keys()
+ assert "S. sanguinis was below detection in the calcium arms" in formation["description"]
+ assert "calcium did not significantly change total counts or S. mutans" in counts["description"]
+ assert "not a selectively perturbed mechanism" in counts["description"]
+ assert "not every mineral-loss endpoint" in minerals["description"]
+ assert "biological_processes" not in minerals
+ assert "Results prose and Table 2 superscripts differ" in docs[2]["discussions"][0]["rationale"]
+
+
+def test_batch29_uses_only_canonical_participants_and_valid_discussion_anchors():
+ _, docs = records()
+ for doc in docs:
+ canonical = {t["taxon_term"]["term"]["id"]: t["taxon_term"] for t in doc["taxonomy"]}
+ names = {n["name"] for n in doc["ecological_interactions"]}
+ for node in doc["ecological_interactions"]:
+ for term in node.get("participating_taxa", []):
+ original = canonical[term["term"]["id"]]
+ assert term == {k: original[k] for k in ["preferred_term", "term"]}
+ assert len(doc["discussions"]) == 1
+ (gap,) = doc["discussions"]
+ assert gap["kind"] == "KNOWLEDGE_GAP" and gap["status"] == "OPEN"
+ assert set(gap["attaches_to"]) == {"ecological_interactions#" + name for name in names}
+
+
+def test_batch29_accounts_for_removed_nodes_edges_histories_and_cache_preservation():
+ ledger, docs = records()
+ rows = ledger["records"]
+ assert ledger["independent_approval"] is False
+ assert ledger["issues"] == [1375, 1376, 1377]
+ assert ledger["open_nongraph_followups"] == [1378, 1379, 1380]
+ assert sum(len(r["node_decisions"]) for r in rows) == 10
+ assert sum(len(r["removed_node_decisions"]) for r in rows) == 4
+ assert sum(len(r["removed_edge_decisions"]) for r in rows) == 3
+ assert sum(len(r["retained_edge_decisions"]) for r in rows) == 4
+ for row, doc in zip(rows, docs, strict=True):
+ assert row["status"] == "reviewed" and row["outcome"] == "changed"
+ assert row["curation_events_added"] == 1 and len(row["history_files"]) == 1
+ assert doc["curation_history"][-1]["llm_assisted"] is True
+ assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"]
+ names = [n["name"] for n in doc["ecological_interactions"]]
+ assert Counter(n["node"] for n in row["node_decisions"]) == Counter(names)
+ arrows = [
+ {"source": n["name"], **e}
+ for n in doc["ecological_interactions"]
+ for e in n.get("downstream", [])
+ ]
+ assert arrows == row["edges_after"]
+ removed = {(e["source"], e["target"]) for e in row["removed_edge_decisions"]}
+ rename = row["renamed_nodes"]
+ assert {(e["source"], e["target"]) for e in arrows} == {
+ (rename.get(e["source"], e["source"]), rename.get(e["target"], e["target"]))
+ for e in row["edges_before"]
+ if (e["source"], e["target"]) not in removed
+ }
+ for path, expected in ledger["reference_cache_original_hashes"].items():
+ assert hashlib.sha256((ROOT / path).read_bytes()).hexdigest() == expected
diff --git a/tests/test_participating_taxa.py b/tests/test_participating_taxa.py
index 531adfc82..02b155e08 100644
--- a/tests/test_participating_taxa.py
+++ b/tests/test_participating_taxa.py
@@ -232,6 +232,9 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example):
"Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml",
"DCPP_DBS4_DCP4_DCP11d_Degradation_SynCom.yaml",
"DVM_Triculture.yaml",
+ "Dangl_SynComm_35.yaml",
+ "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml",
+ "Defined_Multispecies_Enamel_Caries_Model.yaml",
"Defined_ThreeStrain_Organic_Nitrogen_Nitrifying_Community.yaml",
"Dolichospermum_FBCC_A233_Xenic_Phycosphere_Community.yaml",
"Drought_Rhizosphere_Iron_Actinobacteria_Community.yaml",