diff --git a/docs/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.html b/docs/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.html
index 103b66409..063c630c9 100644
--- a/docs/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.html
+++ b/docs/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.html
@@ -586,7 +586,7 @@
Ecological Interactions
- P. monteilii-containing co-cultures reached a larger biomass peak earlier than axenic L. lignicola cultures and P. monteilii produced several growth-promoting compounds, including indole-3-acetic acid, indole-3-butyric acid, vitamin B12, and siderophores.
+ The primary abstract reports a coculture biomass maximum of 298.19 mg/L on day 6 versus 198.08 mg/L on day 9 for axenic Leptolyngbya lignicola, with greater pigment and biochemical accumulation. These are maxima on different days, not a matched-time comparison. Pseudomonas monteilii produced IAA, IBA, vitamin B12 and siderophores, but metabolite production does not establish transfer or selective mediation of growth. Full Methods were unavailable, so the biomass measurement cannot be assumed to resolve each partner separately.
Source Taxon: Pseudomonas monteilii
@@ -667,7 +667,7 @@ Evidence
- Scanning electron microscopy and supporting morphology and biochemical analyses showed P. monteilii in close physical association with L. lignicola during co-culture.
+ Morphological, biochemical and scanning electron microscopic analyses in the primary abstract support close physical association between Leptolyngbya lignicola and Pseudomonas monteilii. Association is not a selective test that contact is required for growth promotion, nor proof of metabolite transfer or reciprocal benefit. No physical-association-to-growth arrow is inferred.
Source Taxon: Pseudomonas monteilii
@@ -710,7 +710,7 @@ Evidence
- Knowledge gaps & discussions (1)
+ Knowledge gaps & discussions (2)
@@ -745,6 +745,21 @@
+
+
+
+
+ KNOWLEDGE_GAP
+ OPEN
+ Which partner contributes to the biomass measurement, and which processes mediate the reported growth response?
+
+
Retain both observations and zero arrows. The complete primary abstract and subscription-preview boundary were read, not the full paper, original images or supplements. Compare day6 coculture and day9 axenic maxima, not matched-time measurements. Metabolite production and physical association do not establish transfer, contact necessity or reciprocal benefit. Earlier #1154/#1155 fixes remain intact. The existing exact-growth-conditions discussion remains open; #1559 tracks separate metadata/source limits. No new mechanistic structure or paid research submission.
+
+
Attaches to: ecological_interactions#Pseudomonas-Associated Leptolyngbya Growth Promotion, ecological_interactions#Pseudomonas Physical Association With Leptolyngbya
+
+
+
+
diff --git a/docs/communities/Lotus_LjSC3.html b/docs/communities/Lotus_LjSC3.html
index bdd8b8328..1d8402c30 100644
--- a/docs/communities/Lotus_LjSC3.html
+++ b/docs/communities/Lotus_LjSC3.html
@@ -895,7 +895,7 @@ Ecological Interactions
Ecological interaction network for Lotus Lj-SC3 Synthetic Community
- Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (competition, colonization facilitation).
+ Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction.
@@ -903,13 +903,8 @@
Ecological Interactions
Competition
-
-
- Colonization facilitation
+ aria-hidden="true" data-symbol="symbolTriangle2"
+ data-color="#929caa"> Other
@@ -918,12 +913,17 @@ Ecological Interactions
-
Taxonomically paired Lotus japonicus- and Arabidopsis thaliana-derived synthetic communities display host preference only in the multi-species community context, where strains have to compete for root colonization of their cognate host, rather than in mono-associations.
+
In living-host FlowPots, mixed LjAt-SC3 commensal communities preferentially colonized roots of their cognate Lotus or Arabidopsis host. The SC3 mono-association experiment did not reproduce this preference. This supports community-context dependence, not facilitation by a particular strain or reciprocal benefit. The sole listed canonical participant is the Lotus host: the current bacterial roster is not a verified SC3 membership list, and Arabidopsis is missing. Broader SC1 exudate and SC2 experiments are not silently relabeled SC3.
+
+
Participating Taxa:
+
+ Lotus japonicus
+
+
@@ -942,16 +942,6 @@
Cognate-host preference of commensal SynComs
-
-
Downstream Effects:
-
-
-
→ Host preference increases invasion of standing root communities
-
Host preference in the competition assay predicts which SynCom can invade an already established cognate-host root community.
-
-
-
-
Evidence
@@ -963,10 +953,10 @@
Evidence
PMID:34312531
- - SUPPORT (IN_VITRO)
+ - SUPPORT (IN_VIVO)
- "detected signatures of host preference among commensal bacteria in a community context, but not in mono-associations"
+ "commensal SynComs preferentially colonized roots of their cognate host"
@@ -977,13 +967,18 @@ Evidence
-
Root-associated SynComs established before a second inoculation resist later-arriving communities, so root and rhizosphere assembly depend on inoculation order and resident occupancy of the host-associated niche.
+
SC3 experiment L established communities for four weeks, then challenged them with the complementary host-derived SynCom and harvested two weeks later. Early arrivals retained higher relative proportions in roots and rhizosphere than late arrivals. Arrival order affects assembly, but does not demonstrate absolute exclusion, final equilibrium, selective resource preemption or host-feedback mediation. Secondary inoculation did not significantly increase total bacterial load. The listed Lotus host is only the securely grounded canonical subset, not the microbial roster.
+
Participating Taxa:
+
+ Lotus japonicus
+
+
+
@@ -1001,16 +996,6 @@
Resident-community priority effect
-
-
Downstream Effects:
-
-
-
→ Host preference increases invasion of standing root communities
-
The sequential-inoculation priority effect creates the standing-community context in which cognate-host preference modulates invasion success.
-
-
-
-
Evidence
@@ -1022,10 +1007,10 @@
Evidence
PMID:34312531
- - SUPPORT (IN_VITRO)
+ - SUPPORT (IN_VIVO)
- "established communities are resilient to invasion by latecomers"
+ "early-arriving SynComs invariably reached higher proportions"
@@ -1035,13 +1020,18 @@ Evidence
-
In sequential inoculation experiments, Lotus- and Arabidopsis-derived commensal SynComs invade standing root communities more successfully on their cognate host, showing that host preference gives commensals a competitive advantage during invasion.
+
In SC3 experiment L, host-derived SynComs invaded resident communities more successfully in cognate roots than in the other host; that differential invasion advantage was absent in rhizosphere samples. Strain-level host-preference and invasiveness indices were strongly correlated in roots, not the rhizosphere. This is an association, not selective manipulation of host preference establishing it as the causal mediator. Early-arrival advantages persisted, and later equilibrium was not established. The listed Lotus host does not imply complete microbial or comparator-host coverage.
+
+
Participating Taxa:
+
+ Lotus japonicus
+
+
@@ -1071,36 +1061,42 @@
Evidence
PMID:34312531
- - SUPPORT (IN_VITRO)
+ - SUPPORT (IN_VIVO)
- "host preference of commensal bacteria confers a competitive advantage in their cognate host"
+ "correlation between host preference and invasiveness"
-
-
- - SUPPORT (IN_VITRO)
-
- "host preference in commensal bacteria from diverse taxonomic groups is associated with their invasiveness into standing root-associated communities"
+
-
+
-
+
+ Knowledge gaps & discussions (1)
-
+
+
+ KNOWLEDGE_GAP
+ OPEN
+ Which host and microbial processes mediate SC3 preference and invasion, and which strains belong to SC3?
+
+
Retain living-host preference, priority effects and differential root invasion; remove correlation and standing-community-context arrows. Niche preemption, host feedback and unfilled niches are hypotheses. Relative abundance is not absolute exclusion; lack of a significant total-load increase is not proof of invariant abundance. SC1 millifluidic exudates, SC2 experiments, SC3 competition/invasion and mono-associations must remain distinct. Full primary main body and captions read, not original figure pixels, raw data or separate supplements. Public Europe PMC supplemental download timed out after90s with an incomplete archive; no supplement contents certified. Only the canonical Lotus host is confidently grounded for these nodes; the three listed nodule isolates and family-associated bacterium IDs are not validated as the16 SC3 members. Omitted entries expose connectivity warnings rather than being silently certified. #1559 tracks roster/metadata repair, alongside existing #497/#1082.
+
Attaches to: ecological_interactions#Cognate-host preference of commensal SynComs, ecological_interactions#Resident-community priority effect, ecological_interactions#Cognate-Root Invasion Advantage Associated With Host Preference
-
-
+
+
+
+
@@ -1563,7 +1559,7 @@ Evidence
(function() {
var intId = "interaction:0";
- var intType = "COLONIZATION_FACILITATION";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
@@ -1587,11 +1583,22 @@ Evidence
+ var participantKeys = [
+
+ "Lotus japonicus"
+
+ ];
+ participantKeys.forEach(function(key) {
+ if (taxonNodeIds[key]) {
+ links.push({ source: taxonNodeIds[key], target: intId });
+ }
+ });
+
})();
(function() {
var intId = "interaction:1";
- var intType = "COMPETITION";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
@@ -1615,11 +1622,22 @@ Evidence
+ var participantKeys = [
+
+ "Lotus japonicus"
+
+ ];
+ 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 = [];
var processes = [];
@@ -1628,11 +1646,11 @@ Evidence
processes.push("interspecies interaction between organisms");
- var evidenceCount = 2;
+ var evidenceCount = 1;
nodes.push({
id: intId,
- label: "Host preference increases invasion of standing root communities",
+ label: "Cognate-Root Invasion Advantage Associated With Host Preference",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1643,6 +1661,17 @@ Evidence
+ var participantKeys = [
+
+ "Lotus japonicus"
+
+ ];
+ participantKeys.forEach(function(key) {
+ if (taxonNodeIds[key]) {
+ links.push({ source: taxonNodeIds[key], target: intId });
+ }
+ });
+
})();
diff --git a/docs/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.html b/docs/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.html
index c8404e3fe..416d8b7f3 100644
--- a/docs/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.html
+++ b/docs/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.html
@@ -678,7 +678,7 @@ Ecological Interactions
Ecological interaction network for Lunar and Martian Simulant PGPB Lettuce SynCom
- Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (mutualism, commensalism, colonization facilitation).
+ Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction.
@@ -686,18 +686,8 @@
Ecological Interactions
Mutualism
-
-
- Commensalism
-
-
- Colonization facilitation
+ aria-hidden="true" data-symbol="symbolTriangle2"
+ data-color="#929caa"> Other
@@ -705,14 +695,24 @@ Ecological Interactions
-
The four consortium members were combined only after dual-culture antagonism testing showed a complete absence of inhibition zones, i.e., the strains coexist without mutual antagonism. This compatibility was a selection criterion for building the multi-strain inoculant.
-
+
The four inoculant strains were selected after dual-culture screening found no inhibition zones. This is assay-specific compatibility, not demonstrated commensalism, universal non-antagonism or stable coexistence in the lettuce rhizosphere. Individual-strain fermentor production and subsequent assembly are preparation steps, not evidence that screening caused establishment or plant benefit.
+
+
+
Participating Taxa:
+ Azotobacter chroococcum 76A,
+
+ Priestia megaterium EL5,
+
+ Methylobacterium populi VP2,
+
+ Kosakonia pseudosacchari TL13
+
+
@@ -731,16 +731,6 @@
Non-antagonistic PGPB consortium assembly
-
-
Downstream Effects:
-
-
-
→ PGPB rhizosphere colonization and functional-gene enrichment
-
Compatibility in dual-culture assays allowed the four selected PGPB strains to act as a consortium in the regolith-simulant lettuce rhizosphere.
-
-
-
-
Evidence
@@ -778,14 +768,24 @@
Evidence
-
Inoculation with the PGPB consortium significantly increased the copy number of nitrogen-fixation (nifH) and phosphate-solubilization/mineralization marker genes (phoD alkaline phosphatase, BPP phytase) in the lettuce rhizosphere of non-amended regolith simulants, consistent with colonization of the rhizosphere and enrichment of nitrogen-fixation and phosphorus-cycling functions.
-
+
After inoculation of living lettuce grown in an Earth greenhouse, rhizosphere DNA qPCR showed increased nifH, phoD and BPP gene copies in non-amended substrates; amended simulants did not show significant inoculum-associated differences. These are gene-copy measurements, not expression, nitrogen-fixation flux or phosphate release. Community metabarcoding could not distinguish environmental from inoculated strains, so establishment of each inoculant and gene ownership remain unresolved. The four listed participants are the applied consortium, not the entire rhizosphere or missing canonical lettuce host.
+
+
Participating Taxa:
+
+ Azotobacter chroococcum 76A,
+
+ Priestia megaterium EL5,
+
+ Methylobacterium populi VP2,
+
+ Kosakonia pseudosacchari TL13
+
+
@@ -804,16 +804,6 @@
PGPB rhizosphere colonization and functional-gene enrichment
-
-
Downstream Effects:
-
-
-
→ PGPB-enhanced lettuce growth and mineral nutrition
-
Rhizosphere enrichment of nitrogen-fixation and phosphorus-cycling marker genes is the functional readout linking PGPB inoculation to improved lettuce biomass and mineral nutrition.
-
-
-
-
Evidence
@@ -825,7 +815,7 @@
Evidence
doi:10.1007/s00374-025-01923-3
- - SUPPORT (IN_VITRO)
+ - SUPPORT (IN_VIVO)
"significantly increased the relative abundances"
@@ -838,7 +828,7 @@
Evidence
doi:10.1007/s00374-025-01923-3
- - SUPPORT (IN_VITRO)
+ - SUPPORT (IN_VIVO)
"increase in functional genes linked with nitrogen fixation and phosphorus"
@@ -852,13 +842,23 @@ Evidence
-
On nutrient-limited regolith simulants, the PGPB consortium enhanced lettuce leaf biomass and mineral nutritional content, a beneficial plant-microbe interaction in which the bacteria promote host growth in the rhizosphere.
-
+
In the factorial Earth-greenhouse experiment, PGPB treatment increased lettuce leaf dry biomass by35% overall and mineral nutrient content by26% on average. These are treatment-level summaries, not identical benefits in every substrate or nutrient. Nutrient concentrations increased significantly only for P and K; total content also reflects biomass, and no significant overall inoculum effect on chemically extracted substrate nutrient availability was detected. The positive plant endpoints do not establish IAA mediation, fixed-nitrogen delivery, reciprocal microbial benefit or performance under lunar or Martian environmental conditions. The listed taxa are inoculants; the host and background microbiome are not represented by that list.
+
+
Participating Taxa:
+
+ Azotobacter chroococcum 76A,
+
+ Priestia megaterium EL5,
+
+ Methylobacterium populi VP2,
+
+ Kosakonia pseudosacchari TL13
+
+
@@ -868,9 +868,9 @@
PGPB-enhanced lettuce growth and mineral nutrition
- indoleacetic acid biosynthetic process
- (GO:0009684 )
+ biological process involved in interspecies interaction between organisms
+ (GO:0044419 )
@@ -888,7 +888,7 @@
Evidence
doi:10.1007/s00374-025-01923-3
- - SUPPORT (IN_VITRO)
+ - SUPPORT (IN_VIVO)
"PGPB treatment enhanced leaf biomass by 35%"
@@ -901,7 +901,7 @@ Evidence
doi:10.1007/s00374-025-01923-3
- - SUPPORT (IN_VITRO)
+ - SUPPORT (IN_VIVO)
"microbial consortium could exert positive impact on plants grown in nutrient-limited substrates"
@@ -917,6 +917,25 @@ Evidence
+
+ Knowledge gaps & discussions (1)
+
+
+
+ KNOWLEDGE_GAP
+ OPEN
+ Which organisms and activities mediate the positive plant response?
+
+
Preserve compatibility-screen, gene-copy and plant-outcome nodes; drop both preparation/mediation arrows. No inhibition zone does not establish commensalism or stable coexistence. DNA copies and limited-resolution amplicon profiles do not prove inoculant establishment, expression, gene ownership or nutrient flux. Marker increases are conditioned on amendment status; biomass/content benefits do not identify selective IAA or nutrient mediation, and chemically extracted nutrient availability had no significant overall inoculum effect. Main body and embedded captions were read, not linked table cells, original figures, supplementary DOCX or raw sequence data; numerical summaries are author-reported, not independently recomputed. Earth greenhouse simulants are not actual extraterrestrial environments. #1559 tracks the missing canonical host and non-graph background/mechanism/environment conflations; #543 already fixed per-strain fermentor wording.
+
+
Attaches to: ecological_interactions#PGPB Dual-Culture Compatibility Screen, ecological_interactions#PGPB-Associated Rhizosphere Functional-Gene Copies, ecological_interactions#PGPB-enhanced lettuce growth and mineral nutrition
+
+
+
+
+
+
+
@@ -1387,7 +1406,7 @@ Evidence
(function() {
var intId = "interaction:0";
- var intType = "COMMENSALISM";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
@@ -1400,7 +1419,7 @@ Evidence
nodes.push({
id: intId,
- label: "Non-antagonistic PGPB consortium assembly",
+ label: "PGPB Dual-Culture Compatibility Screen",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1411,11 +1430,28 @@ Evidence
+ var participantKeys = [
+
+ "Azotobacter chroococcum 76A",
+
+ "Priestia megaterium EL5",
+
+ "Methylobacterium populi VP2",
+
+ "Kosakonia pseudosacchari TL13"
+
+ ];
+ participantKeys.forEach(function(key) {
+ if (taxonNodeIds[key]) {
+ links.push({ source: taxonNodeIds[key], target: intId });
+ }
+ });
+
})();
(function() {
var intId = "interaction:1";
- var intType = "COLONIZATION_FACILITATION";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
@@ -1428,7 +1464,7 @@ Evidence
nodes.push({
id: intId,
- label: "PGPB rhizosphere colonization and functional-gene enrichment",
+ label: "PGPB-Associated Rhizosphere Functional-Gene Copies",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1439,17 +1475,34 @@ Evidence
+ var participantKeys = [
+
+ "Azotobacter chroococcum 76A",
+
+ "Priestia megaterium EL5",
+
+ "Methylobacterium populi VP2",
+
+ "Kosakonia pseudosacchari TL13"
+
+ ];
+ participantKeys.forEach(function(key) {
+ if (taxonNodeIds[key]) {
+ links.push({ source: taxonNodeIds[key], target: intId });
+ }
+ });
+
})();
(function() {
var intId = "interaction:2";
- var intType = "MUTUALISM";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
- processes.push("indoleacetic acid biosynthetic process");
+ processes.push("biological process involved in interspecies interaction between organisms");
var evidenceCount = 2;
@@ -1467,6 +1520,23 @@ Evidence
+ var participantKeys = [
+
+ "Azotobacter chroococcum 76A",
+
+ "Priestia megaterium EL5",
+
+ "Methylobacterium populi VP2",
+
+ "Kosakonia pseudosacchari TL13"
+
+ ];
+ participantKeys.forEach(function(key) {
+ if (taxonNodeIds[key]) {
+ links.push({ source: taxonNodeIds[key], target: intId });
+ }
+ });
+
})();
diff --git a/history/records/Leptolyngbya_Pseudomonas_Mangrove_Coculture/2026-10-06T220130Z-codex-c30afb.yaml b/history/records/Leptolyngbya_Pseudomonas_Mangrove_Coculture/2026-10-06T220130Z-codex-c30afb.yaml
new file mode 100644
index 000000000..c455e5c5c
--- /dev/null
+++ b/history/records/Leptolyngbya_Pseudomonas_Mangrove_Coculture/2026-10-06T220130Z-codex-c30afb.yaml
@@ -0,0 +1,24 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml
+ slug: Leptolyngbya_Pseudomonas_Mangrove_Coculture
+session:
+ id: 2026-10-06T220130Z-codex-c30afb
+ timestamp: '2026-10-06T22:01:30Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1556
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Bound mangrove coculture outcomes to abstract-only assay and mediator evidence.
+ details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml
diff --git a/history/records/Lotus_LjSC3/2026-10-06T220130Z-codex-cd54eb.yaml b/history/records/Lotus_LjSC3/2026-10-06T220130Z-codex-cd54eb.yaml
new file mode 100644
index 000000000..cc3bd72db
--- /dev/null
+++ b/history/records/Lotus_LjSC3/2026-10-06T220130Z-codex-cd54eb.yaml
@@ -0,0 +1,24 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Lotus_LjSC3.yaml
+ slug: Lotus_LjSC3
+session:
+ id: 2026-10-06T220130Z-codex-cd54eb
+ timestamp: '2026-10-06T22:01:30Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1557
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Separate SC3 living-host preference, priority effects and invasion association.
+ details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml
diff --git a/history/records/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom/2026-10-06T220130Z-codex-000f38.yaml b/history/records/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom/2026-10-06T220130Z-codex-000f38.yaml
new file mode 100644
index 000000000..d9f5a3442
--- /dev/null
+++ b/history/records/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom/2026-10-06T220130Z-codex-000f38.yaml
@@ -0,0 +1,24 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml
+ slug: Lunar_Martian_Simulant_PGPB_Lettuce_SynCom
+session:
+ id: 2026-10-06T220130Z-codex-000f38
+ timestamp: '2026-10-06T22:01:30Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1558
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Separate lettuce compatibility screening, rhizosphere gene copies and plant outcomes.
+ details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml
diff --git a/kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml b/kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml
index 144e00b27..deea06adb 100644
--- a/kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml
+++ b/kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml
@@ -86,9 +86,11 @@ taxonomy:
explanation: Names P. monteilii as the mangrove-water bacterial partner in the co-culture.
ecological_interactions:
- name: Pseudomonas-Associated Leptolyngbya Growth Promotion
- description: P. monteilii-containing co-cultures reached a larger biomass peak earlier than axenic L. lignicola cultures
- and P. monteilii produced several growth-promoting compounds, including indole-3-acetic acid, indole-3-butyric acid, vitamin
- B12, and siderophores.
+ description: The primary abstract reports a coculture biomass maximum of 298.19 mg/L on day 6 versus 198.08 mg/L
+ on day 9 for axenic Leptolyngbya lignicola, with greater pigment and biochemical accumulation. These are maxima
+ on different days, not a matched-time comparison. Pseudomonas monteilii produced IAA, IBA, vitamin B12 and siderophores,
+ but metabolite production does not establish transfer or selective mediation of growth. Full Methods were unavailable,
+ so the biomass measurement cannot be assumed to resolve each partner separately.
scope: PAIRWISE
source_taxon:
preferred_term: Pseudomonas monteilii
@@ -105,14 +107,20 @@ ecological_interactions:
term:
id: CHEBI:16411
label: indole-3-acetic acid
+ notes: Reported Pseudomonas production; abstract-only evidence does not establish transfer to Leptolyngbya or
+ selective mediation of the coculture outcome.
- preferred_term: vitamin B12
term:
id: CHEBI:176843
label: vitamin B12
+ notes: Reported Pseudomonas production; abstract-only evidence does not establish transfer to Leptolyngbya or
+ selective mediation of the coculture outcome.
- preferred_term: siderophore
term:
id: CHEBI:26672
label: siderophore
+ notes: Reported Pseudomonas production; abstract-only evidence does not establish transfer to Leptolyngbya or
+ selective mediation of the coculture outcome.
biological_processes:
- preferred_term: biological process involved in interspecies interaction between organisms
term:
@@ -123,16 +131,18 @@ ecological_interactions:
supports: SUPPORT
evidence_source: IN_VITRO
snippet: significantly exceeding that of axenic L. lignicola
- explanation: Supports the larger biomass peak in co-culture than in axenic L. lignicola.
+ explanation: Supports the reported coculture-versus-axenic biomass maxima, reached on different days; partner-resolved
+ biomass methods are unavailable.
- reference: PMID:42573630
supports: PARTIAL
evidence_source: IN_VITRO
snippet: Metabolite profiling revealed the production of several growth-promoting compounds by P. monteilii
- explanation: Associates growth-promoting metabolite production with P. monteilii, without resolving the causal contribution
- of each compound.
+ explanation: Supports metabolite production, not transfer or selective growth mediation.
- name: Pseudomonas Physical Association With Leptolyngbya
- description: Scanning electron microscopy and supporting morphology and biochemical analyses showed P. monteilii in close
- physical association with L. lignicola during co-culture.
+ description: Morphological, biochemical and scanning electron microscopic analyses in the primary abstract support
+ close physical association between Leptolyngbya lignicola and Pseudomonas monteilii. Association is not a selective
+ test that contact is required for growth promotion, nor proof of metabolite transfer or reciprocal benefit.
+ No physical-association-to-growth arrow is inferred.
scope: PAIRWISE
source_taxon:
preferred_term: Pseudomonas monteilii
@@ -149,7 +159,7 @@ ecological_interactions:
supports: SUPPORT
evidence_source: IN_VITRO
snippet: confirmed a close physical association between the two partners
- explanation: Supports close spatial association between the cyanobacterial and bacterial partners.
+ explanation: Supports physical association at abstract scope; original images and full Methods were not inspected.
environmental_factors:
- name: Bhitarkanika mangrove-water source
value: Bhitarkanika, Odisha, India
@@ -184,24 +194,40 @@ external_resources:
explanation: Identifies the primary publication for this cyanobacterium-bacterium co-culture.
discussions:
- discussion_id: exact-growth-conditions
- prompt: Recover the exact co-culture medium, inoculum densities, temperature, light regime, and time-series sampling conditions
- from the article body when full text becomes inspectable.
+ prompt: Recover the exact co-culture medium, inoculum densities, temperature, light regime, and time-series sampling
+ conditions from the article body when full text becomes inspectable.
kind: KNOWLEDGE_GAP
status: OPEN
attaches_to:
- growth_media#Leptolyngbya-Pseudomonas
- rationale: The cached PubMed abstract establishes the partner identities, mangrove origin, physical association, biomass
- advantage, and P. monteilii metabolite profile, but it does not report the cultivation recipe or quantitative inoculation
- details.
+ rationale: The cached PubMed abstract establishes the partner identities, mangrove origin, physical association,
+ biomass advantage, and P. monteilii metabolite profile, but it does not report the cultivation recipe or quantitative
+ inoculation details.
evidence:
- reference: PMID:42573630
supports: SUPPORT
evidence_source: IN_VITRO
snippet: co-culture achieved a maximum biomass of 298.19
- explanation: Shows that cultivation outcomes were reported even though exact setup details were not available in the abstract
- cache.
+ explanation: Shows that cultivation outcomes were reported even though exact setup details were not available
+ in the abstract cache.
posed_by: codex
posed_date: '2026-09-27'
+- discussion_id: mangrove_abstract_assay_and_mediation_limits
+ prompt: Which partner contributes to the biomass measurement, and which processes mediate the reported growth
+ response?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Pseudomonas-Associated Leptolyngbya Growth Promotion
+ - ecological_interactions#Pseudomonas Physical Association With Leptolyngbya
+ rationale: 'Retain both observations and zero arrows. The complete primary abstract and subscription-preview boundary
+ were read, not the full paper, original images or supplements. Compare day6 coculture and day9 axenic maxima,
+ not matched-time measurements. Metabolite production and physical association do not establish transfer, contact
+ necessity or reciprocal benefit. Earlier #1154/#1155 fixes remain intact. The existing exact-growth-conditions
+ discussion remains open; #1559 tracks separate metadata/source limits. No new mechanistic structure or paid
+ research submission.'
+ posed_by: codex
+ posed_date: '2026-10-06'
metals_present: []
rare_earth_elements_present: []
metal_relevance: INCIDENTAL
@@ -211,15 +237,18 @@ curation_history:
- timestamp: '2026-09-27T16:39:11Z'
curator: codex
action: CREATE_LEPTOLYNGBYA_PSEUDOMONAS_MANGROVE_COCULTURE
- changes: Created CommunityMech:000452 from PMID:42573630 and DOI 10.1007/s00203-026-05109-9 for the Leptolyngbya lignicola
- and Pseudomonas monteilii mangrove-water growth-promotion co-culture.
+ changes: Created CommunityMech:000452 from PMID:42573630 and DOI 10.1007/s00203-026-05109-9 for the Leptolyngbya
+ lignicola and Pseudomonas monteilii mangrove-water growth-promotion co-culture.
llm_assisted: true
- timestamp: '2026-09-27T16:45:22Z'
curator: codex
action: ADDRESS_ADVERSARIAL_REVIEW
- changes: >-
- Addressed adversarial-review issues 1154 and 1155 by removing unsupported
- cross-feeding typing and the Pseudomonas CROSS_FEEDER role, and by
- replacing pigment evidence on the metabolite-profile factor with a direct
+ changes: Addressed adversarial-review issues 1154 and 1155 by removing unsupported cross-feeding typing and the
+ Pseudomonas CROSS_FEEDER role, and by replacing pigment evidence on the metabolite-profile factor with a direct
metabolite-profiling snippet from PMID:42573630.
llm_assisted: true
+- timestamp: '2026-10-06T22:01:28Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Bound mangrove coculture outcomes to abstract-only assay and mediator evidence. Issue #1556; reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml'
+ llm_assisted: true
diff --git a/kb/communities/Lotus_LjSC3.yaml b/kb/communities/Lotus_LjSC3.yaml
index d26839bc1..c94013520 100644
--- a/kb/communities/Lotus_LjSC3.yaml
+++ b/kb/communities/Lotus_LjSC3.yaml
@@ -247,57 +247,61 @@ taxonomy:
of most species previously identified using metagenomics
ecological_interactions:
- name: Cognate-host preference of commensal SynComs
- description: Taxonomically paired Lotus japonicus- and Arabidopsis thaliana-derived
- synthetic communities display host preference only in the multi-species community
- context, where strains have to compete for root colonization of their cognate
- host, rather than in mono-associations.
- interaction_type: COLONIZATION_FACILITATION
+ description: 'In living-host FlowPots, mixed LjAt-SC3 commensal communities preferentially colonized roots of
+ their cognate Lotus or Arabidopsis host. The SC3 mono-association experiment did not reproduce this preference.
+ This supports community-context dependence, not facilitation by a particular strain or reciprocal benefit. The
+ sole listed canonical participant is the Lotus host: the current bacterial roster is not a verified SC3 membership
+ list, and Arabidopsis is missing. Broader SC1 exudate and SC2 experiments are not silently relabeled SC3.'
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: interspecies interaction between organisms
term:
id: GO:0044419
label: biological process involved in interspecies interaction between organisms
- downstream:
- - target: Host preference increases invasion of standing root communities
- description: Host preference in the competition assay predicts which SynCom can
- invade an already established cognate-host root community.
evidence:
- reference: PMID:34312531
supports: SUPPORT
- evidence_source: IN_VITRO
- snippet: detected signatures of host preference among commensal bacteria in a community
- context, but not in mono-associations
- explanation: The gnotobiotic multi-species assay showed host preference as a
- community-context phenotype.
+ evidence_source: IN_VIVO
+ snippet: commensal SynComs preferentially colonized roots of their cognate host
+ explanation: Experiment L mixed-SC3 treatment shows cognate-root relative-abundance preference; separate experiment
+ E tests SC3 mono-associations.
+ participating_taxa:
+ - preferred_term: Lotus japonicus
+ term:
+ id: NCBITaxon:34305
+ label: Lotus japonicus
- name: Resident-community priority effect
- description: Root-associated SynComs established before a second inoculation resist
- later-arriving communities, so root and rhizosphere assembly depend on inoculation
- order and resident occupancy of the host-associated niche.
- interaction_type: COMPETITION
+ description: SC3 experiment L established communities for four weeks, then challenged them with the complementary
+ host-derived SynCom and harvested two weeks later. Early arrivals retained higher relative proportions in roots
+ and rhizosphere than late arrivals. Arrival order affects assembly, but does not demonstrate absolute exclusion,
+ final equilibrium, selective resource preemption or host-feedback mediation. Secondary inoculation did not significantly
+ increase total bacterial load. The listed Lotus host is only the securely grounded canonical subset, not the
+ microbial roster.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: interspecies interaction between organisms
term:
id: GO:0044419
label: biological process involved in interspecies interaction between organisms
- downstream:
- - target: Host preference increases invasion of standing root communities
- description: The sequential-inoculation priority effect creates the standing-community
- context in which cognate-host preference modulates invasion success.
evidence:
- reference: PMID:34312531
supports: SUPPORT
- evidence_source: IN_VITRO
- snippet: established communities are resilient to invasion by latecomers
- explanation: The sequential-inoculation assay established that resident
- root-associated communities resisted later-arriving SynComs.
-- name: Host preference increases invasion of standing root communities
- description: In sequential inoculation experiments, Lotus- and Arabidopsis-derived
- commensal SynComs invade standing root communities more successfully on their
- cognate host, showing that host preference gives commensals a competitive advantage
- during invasion.
- interaction_type: COMPETITION
+ evidence_source: IN_VIVO
+ snippet: early-arriving SynComs invariably reached higher proportions
+ explanation: Supports relative priority effects in the sequential living-host experiment, not an established
+ molecular or resource mechanism.
+ participating_taxa:
+ - preferred_term: Lotus japonicus
+ term:
+ id: NCBITaxon:34305
+ label: Lotus japonicus
+- name: Cognate-Root Invasion Advantage Associated With Host Preference
+ description: In SC3 experiment L, host-derived SynComs invaded resident communities more successfully in cognate
+ roots than in the other host; that differential invasion advantage was absent in rhizosphere samples. Strain-level
+ host-preference and invasiveness indices were strongly correlated in roots, not the rhizosphere. This is an
+ association, not selective manipulation of host preference establishing it as the causal mediator. Early-arrival
+ advantages persisted, and later equilibrium was not established. The listed Lotus host does not imply complete
+ microbial or comparator-host coverage.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: interspecies interaction between organisms
@@ -307,18 +311,15 @@ ecological_interactions:
evidence:
- reference: PMID:34312531
supports: SUPPORT
- evidence_source: IN_VITRO
- snippet: host preference of commensal bacteria confers a competitive advantage in
- their cognate host
- explanation: Cognate-host preference explained competitive invasion success in
- the standing root-community assay.
- - reference: PMID:34312531
- supports: SUPPORT
- evidence_source: IN_VITRO
- snippet: host preference in commensal bacteria from diverse taxonomic groups is
- associated with their invasiveness into standing root-associated communities
- explanation: Taxonomically diverse SynComs showed the association between host
- preference and invasion into established root-associated communities.
+ evidence_source: IN_VIVO
+ snippet: correlation between host preference and invasiveness
+ explanation: Supports the root-specific index association in experiment L, not a demonstrated preference-to-invasion
+ causal arrow.
+ participating_taxa:
+ - preferred_term: Lotus japonicus
+ term:
+ id: NCBITaxon:34305
+ label: Lotus japonicus
related_ingredients:
- preferred_term: glucose
chebi_term:
@@ -571,3 +572,29 @@ environmental_factors:
metals_present: []
metal_relevance: INCIDENTAL
metal_notes: Metal/REE detected via environmental factor measurements
+discussions:
+- discussion_id: lotus_sc3_assay_identity_roster_and_causality
+ prompt: Which host and microbial processes mediate SC3 preference and invasion, and which strains belong to SC3?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Cognate-host preference of commensal SynComs
+ - ecological_interactions#Resident-community priority effect
+ - ecological_interactions#Cognate-Root Invasion Advantage Associated With Host Preference
+ rationale: 'Retain living-host preference, priority effects and differential root invasion; remove correlation
+ and standing-community-context arrows. Niche preemption, host feedback and unfilled niches are hypotheses. Relative
+ abundance is not absolute exclusion; lack of a significant total-load increase is not proof of invariant abundance.
+ SC1 millifluidic exudates, SC2 experiments, SC3 competition/invasion and mono-associations must remain distinct.
+ Full primary main body and captions read, not original figure pixels, raw data or separate supplements. Public
+ Europe PMC supplemental download timed out after90s with an incomplete archive; no supplement contents certified.
+ Only the canonical Lotus host is confidently grounded for these nodes; the three listed nodule isolates and
+ family-associated bacterium IDs are not validated as the16 SC3 members. Omitted entries expose connectivity
+ warnings rather than being silently certified. #1559 tracks roster/metadata repair, alongside existing #497/#1082.'
+ posed_by: codex
+ posed_date: '2026-10-06'
+curation_history:
+- timestamp: '2026-10-06T22:01:29Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Separate SC3 living-host preference, priority effects and invasion association. Issue #1557; reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml'
+ llm_assisted: true
diff --git a/kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml b/kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml
index 46de2facc..ce8e637fd 100644
--- a/kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml
+++ b/kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml
@@ -222,89 +222,135 @@ taxonomy:
snippet: freeze-drying resistance, ease
explanation: Supports the freeze-drying resistance and cultivation traits attributed to K. pseudosacchari TL13.
ecological_interactions:
-- name: Non-antagonistic PGPB consortium assembly
- description: >
- The four consortium members were combined only after dual-culture antagonism
- testing showed a complete absence of inhibition zones, i.e., the strains
- coexist without mutual antagonism. This compatibility was a selection
- criterion for building the multi-strain inoculant.
- interaction_type: COMMENSALISM
+- name: PGPB Dual-Culture Compatibility Screen
+ description: The four inoculant strains were selected after dual-culture screening found no inhibition zones.
+ This is assay-specific compatibility, not demonstrated commensalism, universal non-antagonism or stable coexistence
+ in the lettuce rhizosphere. Individual-strain fermentor production and subsequent assembly are preparation steps,
+ not evidence that screening caused establishment or plant benefit.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: interspecies interaction between organisms
term:
id: GO:0044419
label: biological process involved in interspecies interaction between organisms
- downstream:
- - target: PGPB rhizosphere colonization and functional-gene enrichment
- description: Compatibility in dual-culture assays allowed the four selected
- PGPB strains to act as a consortium in the regolith-simulant lettuce
- rhizosphere.
evidence:
- reference: doi:10.1007/s00374-025-01923-3
supports: SUPPORT
evidence_source: IN_VITRO
snippet: absence of antagonism, assessed
- explanation: Supports selection of strains showing absence of antagonism for the consortium.
+ explanation: Supports the no-inhibition-zone selection criterion, not ecological commensalism or rhizosphere
+ coexistence.
- reference: doi:10.1007/s00374-025-01923-3
supports: SUPPORT
evidence_source: IN_VITRO
snippet: of inhibition zones were used for consortium
- explanation: Supports that only strains with no inhibition zones were combined into the consortium.
-- name: PGPB rhizosphere colonization and functional-gene enrichment
- description: >
- Inoculation with the PGPB consortium significantly increased the copy number
- of nitrogen-fixation (nifH) and phosphate-solubilization/mineralization
- marker genes (phoD alkaline phosphatase, BPP phytase) in the lettuce
- rhizosphere of non-amended regolith simulants, consistent with colonization
- of the rhizosphere and enrichment of nitrogen-fixation and
- phosphorus-cycling functions.
- interaction_type: COLONIZATION_FACILITATION
+ explanation: Supports the no-inhibition-zone selection criterion, not ecological commensalism or rhizosphere
+ coexistence.
+ participating_taxa:
+ - preferred_term: Azotobacter chroococcum 76A
+ term:
+ id: NCBITaxon:353
+ label: Azotobacter chroococcum
+ - preferred_term: Priestia megaterium EL5
+ term:
+ id: NCBITaxon:1404
+ label: Priestia megaterium
+ - preferred_term: Methylobacterium populi VP2
+ term:
+ id: NCBITaxon:223967
+ label: Methylorubrum populi
+ - preferred_term: Kosakonia pseudosacchari TL13
+ term:
+ id: NCBITaxon:1646340
+ label: Kosakonia pseudosacchari
+- name: PGPB-Associated Rhizosphere Functional-Gene Copies
+ description: After inoculation of living lettuce grown in an Earth greenhouse, rhizosphere DNA qPCR showed increased
+ nifH, phoD and BPP gene copies in non-amended substrates; amended simulants did not show significant inoculum-associated
+ differences. These are gene-copy measurements, not expression, nitrogen-fixation flux or phosphate release.
+ Community metabarcoding could not distinguish environmental from inoculated strains, so establishment of each
+ inoculant and gene ownership remain unresolved. The four listed participants are the applied consortium, not
+ the entire rhizosphere or missing canonical lettuce host.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: nitrogen fixation
term:
id: GO:0009399
label: nitrogen fixation
+ notes: Nitrogen-fixation gene-marker context only; no direct fixation-rate measurement.
evidence:
- reference: doi:10.1007/s00374-025-01923-3
supports: SUPPORT
- evidence_source: IN_VITRO
+ evidence_source: IN_VIVO
snippet: significantly increased the relative abundances
- explanation: Supports that PGPB inoculation increased the relative abundance of marker functional genes.
+ explanation: Supports treatment-associated rhizosphere gene-copy changes in living-host pots; not strain-specific
+ colonization, expression or functional flux.
- reference: doi:10.1007/s00374-025-01923-3
supports: SUPPORT
- evidence_source: IN_VITRO
+ evidence_source: IN_VIVO
snippet: increase in functional genes linked with nitrogen fixation and phosphorus
- explanation: Supports enrichment of nitrogen-fixation and phosphorus-solubilization functional genes upon inoculation.
- downstream:
- - target: PGPB-enhanced lettuce growth and mineral nutrition
- description: Rhizosphere enrichment of nitrogen-fixation and
- phosphorus-cycling marker genes is the functional readout linking PGPB
- inoculation to improved lettuce biomass and mineral nutrition.
+ explanation: Supports treatment-associated rhizosphere gene-copy changes in living-host pots; not strain-specific
+ colonization, expression or functional flux.
+ participating_taxa:
+ - preferred_term: Azotobacter chroococcum 76A
+ term:
+ id: NCBITaxon:353
+ label: Azotobacter chroococcum
+ - preferred_term: Priestia megaterium EL5
+ term:
+ id: NCBITaxon:1404
+ label: Priestia megaterium
+ - preferred_term: Methylobacterium populi VP2
+ term:
+ id: NCBITaxon:223967
+ label: Methylorubrum populi
+ - preferred_term: Kosakonia pseudosacchari TL13
+ term:
+ id: NCBITaxon:1646340
+ label: Kosakonia pseudosacchari
- name: PGPB-enhanced lettuce growth and mineral nutrition
- description: >
- On nutrient-limited regolith simulants, the PGPB consortium enhanced lettuce
- leaf biomass and mineral nutritional content, a beneficial plant-microbe
- interaction in which the bacteria promote host growth in the rhizosphere.
- interaction_type: MUTUALISM
+ description: In the factorial Earth-greenhouse experiment, PGPB treatment increased lettuce leaf dry biomass by35%
+ overall and mineral nutrient content by26% on average. These are treatment-level summaries, not identical benefits
+ in every substrate or nutrient. Nutrient concentrations increased significantly only for P and K; total content
+ also reflects biomass, and no significant overall inoculum effect on chemically extracted substrate nutrient
+ availability was detected. The positive plant endpoints do not establish IAA mediation, fixed-nitrogen delivery,
+ reciprocal microbial benefit or performance under lunar or Martian environmental conditions. The listed taxa
+ are inoculants; the host and background microbiome are not represented by that list.
scope: COMMUNITY_LEVEL
biological_processes:
- - preferred_term: indoleacetic acid biosynthetic process
+ - preferred_term: biological process involved in interspecies interaction between organisms
term:
- id: GO:0009684
- label: indoleacetic acid biosynthetic process
+ id: GO:0044419
+ label: biological process involved in interspecies interaction between organisms
evidence:
- reference: doi:10.1007/s00374-025-01923-3
supports: SUPPORT
- evidence_source: IN_VITRO
+ evidence_source: IN_VIVO
snippet: PGPB treatment enhanced leaf biomass by 35%
- explanation: Supports enhancement of lettuce leaf biomass by PGPB inoculation.
+ explanation: Supports overall living-host treatment outcomes, not a specific hormone/nutrient mediator, uniform
+ per-substrate benefit or mutualism.
- reference: doi:10.1007/s00374-025-01923-3
supports: SUPPORT
- evidence_source: IN_VITRO
+ evidence_source: IN_VIVO
snippet: microbial consortium could exert positive impact on plants grown in nutrient-limited substrates
- explanation: Supports a positive impact of the consortium on plants in nutrient-limited regolith substrates.
+ explanation: Supports overall living-host treatment outcomes, not a specific hormone/nutrient mediator, uniform
+ per-substrate benefit or mutualism.
+ participating_taxa:
+ - preferred_term: Azotobacter chroococcum 76A
+ term:
+ id: NCBITaxon:353
+ label: Azotobacter chroococcum
+ - preferred_term: Priestia megaterium EL5
+ term:
+ id: NCBITaxon:1404
+ label: Priestia megaterium
+ - preferred_term: Methylobacterium populi VP2
+ term:
+ id: NCBITaxon:223967
+ label: Methylorubrum populi
+ - preferred_term: Kosakonia pseudosacchari TL13
+ term:
+ id: NCBITaxon:1646340
+ label: Kosakonia pseudosacchari
environmental_factors:
- name: Regolith simulant substrate
value: Lunar Highlands Simulant (LHS-1) and Mojave Mars Simulant (MMS-1)
@@ -493,3 +539,29 @@ metal_notes: >
rare earth element extraction, leaching, or cycling role is curated. Regolith
and compost mineral nutrients (e.g., N, P) are relevant to plant nutrition but
do not constitute a metals-focused community function.
+discussions:
+- discussion_id: lettuce_gene_copy_strain_tracking_and_mediation
+ prompt: Which organisms and activities mediate the positive plant response?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#PGPB Dual-Culture Compatibility Screen
+ - ecological_interactions#PGPB-Associated Rhizosphere Functional-Gene Copies
+ - ecological_interactions#PGPB-enhanced lettuce growth and mineral nutrition
+ rationale: 'Preserve compatibility-screen, gene-copy and plant-outcome nodes; drop both preparation/mediation
+ arrows. No inhibition zone does not establish commensalism or stable coexistence. DNA copies and limited-resolution
+ amplicon profiles do not prove inoculant establishment, expression, gene ownership or nutrient flux. Marker
+ increases are conditioned on amendment status; biomass/content benefits do not identify selective IAA or nutrient
+ mediation, and chemically extracted nutrient availability had no significant overall inoculum effect. Main body
+ and embedded captions were read, not linked table cells, original figures, supplementary DOCX or raw sequence
+ data; numerical summaries are author-reported, not independently recomputed. Earth greenhouse simulants are
+ not actual extraterrestrial environments. #1559 tracks the missing canonical host and non-graph background/mechanism/environment
+ conflations; #543 already fixed per-strain fermentor wording.'
+ posed_by: codex
+ posed_date: '2026-10-06'
+curation_history:
+- timestamp: '2026-10-06T22:01:29Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Separate lettuce compatibility screening, rhizosphere gene copies and plant outcomes. Issue #1558; reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml'
+ llm_assisted: true
diff --git a/reports/causal_graph_review/README.md b/reports/causal_graph_review/README.md
index 39636c5d3..500867fab 100644
--- a/reports/causal_graph_review/README.md
+++ b/reports/causal_graph_review/README.md
@@ -5,6 +5,32 @@ source-based self-adversarial review. These records are not independent approval
or proof that every graph is complete. The current inventory and summary distinguish
`reviewed`, `pending` and `needs_research`.
+## Batch63: Coculture And Living-Host Assay Boundaries
+
+[Decisions](decisions/20261006-coculture-hosts-batch63.yaml),
+[validation](validation-20261006-batch63.json) and
+[self-adversarial review](adversarial-review-20261006-batch63.yaml) account for
+eight retained observations and four removed arrows. Correlation, experimental
+context, screening and co-measured gene copies do not establish causal mediation.
+
+Mangrove biomass maxima were reached on different days; the abstract does not
+resolve partner biomass, metabolite transfer or contact necessity. Lotus SC3
+preference, arrival-order effects and root invasion remain positive living-host
+observations. Lettuce retains compatibility screening, conditional gene-copy
+enrichment and plant benefits without strain-tracking, flux or IAA claims.
+
+Complete Lotus and lettuce primary main bodies and embedded captions were read;
+mangrove access was abstract-only. Figure pixels, linked lettuce table cells,
+separate supplements and raw data were not audited. The public Lotus supplement
+download timed out with an incomplete archive. Its canonical microbial roster is
+unverified, so only the securely grounded Lotus host is explicitly credited;
+the exposed connectivity warnings are tracked under #1559, not hidden.
+
+All 920 caches remain unchanged and 12 graph excerpts match fresh primary text.
+Non-graph roster, protocol and mechanism metadata remain open under #1559 and
+existing related issues. Repairs #1556-#1558 await protected-main merge. No new
+causal structure or Edison submission; this is self-review, not independent approval.
+
## Batch62: Lake Potential, Modeled Transfer And Host Reporters
[Decisions](decisions/20261006-lakes-mars-batch62.yaml),
diff --git a/reports/causal_graph_review/adversarial-review-20261006-batch63.yaml b/reports/causal_graph_review/adversarial-review-20261006-batch63.yaml
new file mode 100644
index 000000000..1f176529d
--- /dev/null
+++ b/reports/causal_graph_review/adversarial-review-20261006-batch63.yaml
@@ -0,0 +1,420 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: e17817eb1d2af1655b83324f81854020205c7f29
+scope:
+- kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml
+- kb/communities/Lotus_LjSC3.yaml
+- kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml
+decision_ledger: reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml
+validation_report: reports/causal_graph_review/validation-20261006-batch63.json
+findings:
+- issue: 1556
+ severity: P2
+ status: addressed_in_this_change
+ finding: Mangrove abstract assay and mediator boundaries.
+ disposition: Close only after protected-main merge.
+- issue: 1557
+ severity: P2
+ status: addressed_in_this_change
+ finding: Lotus SC3 correlation/context arrows, living-host assays and unverified roster.
+ disposition: Close only after protected-main merge.
+- issue: 1558
+ severity: P2
+ status: addressed_in_this_change
+ finding: Lettuce screen/gene-copy mediation overclaims and untested ecological/mechanism labels.
+ disposition: Close only after protected-main merge.
+- issue: 1559
+ severity: P2
+ status: unresolved_non_graph
+ finding: Canonical roster, experimental protocol and non-graph mechanism/environment metadata, including
+ exposed Lotus connectivity warnings.
+ disposition: Keep OPEN after graph repair merge.
+adversarial_checks:
+- Read the three whole records and account for every original node/arrow. Complete Lotus and lettuce fresh
+ main bodies, Methods, Results, Discussion and embedded captions read; mangrove complete primary abstract
+ only. No original figure pixels, linked lettuce table cells, separate supplements or raw data audited.
+ Numerical summaries are author-reported, not recomputed.
+- 'Mangrove: retain both positive observations and zero arrows. Compare day6 coculture and day9 axenic
+ maxima, not matched-time biomass. Full Methods do not establish partner-resolved measurement because
+ they were unavailable. Metabolite production and physical association are not traced transfer, selective
+ growth mediation, contact necessity or reciprocal benefit. Preserve earlier1154/1155 repairs.'
+- 'Lotus: distinguish SC3 living-host experiments from SC1 exudate and SC2 comparisons. Preserve mixed-community
+ cognate-root preference and lack of preference in SC3 mono-associations. Neither implies that a specific
+ member facilitates colonization or receives reciprocal benefit.'
+- 'Lotus: preserve four-week establishment plus two-week reciprocal challenge, higher early-arrival relative
+ proportions and no significant total-load increase after secondary inoculation. These are not absolute
+ exclusion, invariant abundance, equilibrium or selective niche-preemption/host-feedback tests.'
+- 'Lotus: preserve cognate-root invasion advantage and strain-index correlation, absent in rhizosphere.
+ Remove the correlation and standing-community-context arrows without erasing the observed advantage.
+ Causal mediator and later equilibrium remain unresolved.'
+- 'Lotus roster: do not silently certify three nodule isolates and unspecified family-associated bacterium
+ IDs as16 SC3 members. Only canonical Lotus host is securely grounded for these nodes; missing comparator
+ host and unverified microbial roster remain under1559. Public supplementaryFiles download ended with
+ actual90s timeout and incomplete719804-byte archive; no contents certified and no access control bypassed.'
+- 'Lettuce: no inhibition zones establish assay-specific compatibility, not commensalism, universal non-antagonism
+ or stable rhizosphere coexistence. Per-strain14L inoculum production is not a consortium-growth assay;543
+ already addressed that wording. Remove the preparation-to-establishment arrow.'
+- 'Lettuce: preserve amendment-conditioned nifH/phoD/BPP DNA-copy responses, not expression, nitrogen-fixation/phosphate
+ flux, gene ownership or inoculant establishment. The paper expressly limits metabarcoding strain tracking.
+ Four listed taxa are applied inoculants, not all rhizosphere members or missing host.'
+- 'Lettuce: preserve overall35% dry-biomass and average26% nutrient-content benefits with substrate/nutrient
+ variation. Significant concentration increases onlyP/K and nonsignificant overall extracted-availability
+ effect qualify the outcome. Remove IAA process assertion, mutualism and gene-copy-to-benefit mediation
+ arrow. Earth greenhouse simulants are not lunar/Martian environments.'
+- Review full biological diff and focused tests.457 other records,920 caches and raw non-graph blocks
+ unchanged. Canonical taxonomy preserved, not recertified. All37 baseline network warnings retained;9
+ explicit omitted-roster connectivity warnings tracked1559, with no structural defects or audit-rule
+ change. Coarse roster/scope census unchanged; it does not certify within-community membership.
+- Actual schema, strict, term, reference, snippet, history, corpus audit, deterministic render and regression
+ outputs captured. Exact descriptions parsed across456 pages, not browser screenshots. Post-commit docs-current
+ remains a separate publication gate.
+- Deduplication:853 all-state issue titles/bodies and22 scoped ignored/hidden local matches; full matching1155/1154/1093/1082/595/543/497
+ bodies read, not every PR/comment/local match.1556-1558 addressed but OPEN until protected-main merge;1559
+ and existing unrelated issues remain OPEN. Exact-head self-review is COMMENT, never independent approval.
+ No new structure or paid Edison submission.
+verification:
+ combined_regressions: 579 passed in 206.57s (0:03:26)
+ new_regression_tests: 9
+ schema_strict_terms_history: Passed with actual outputs/digests
+ references: CLI Total checks counts reported issues, not executed checks. MATCH is not scientific entailment
+ or certification of historical provenance. All920 caches unchanged;12 graph excerpts independently
+ match fresh primary text.1559 and existing497/1082/476/1091/1095 remain unresolved; graph repairs
+ do not recertify non-graph blocks.
+ snippet_counts_by_record:
+ kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml:
+ MATCH: 11
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/Lotus_LjSC3.yaml:
+ MATCH: 25
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml:
+ MATCH: 32
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ primary_graph_snippet_proof:
+ primary_matched_graph_snippets: 12
+ primary_main_bodies: 2
+ abstract_only_sources: 1
+ paid_submissions: 0
+ new_nodes_or_arrows: 0
+ separate_supplements_inspected: false
+ network:
+ existing_findings_preserved: 37
+ added_findings:
+ Lotus_LjSC3:
+ - type: DISCONNECTED
+ taxon: Burkholderiaceae bacterium
+ taxon_id: NCBITaxon:2030806
+ taxon_data:
+ taxon_term:
+ preferred_term: Burkholderiaceae bacterium
+ term:
+ id: NCBITaxon:2030806
+ label: Burkholderiaceae bacterium
+ gtdb_grounding_status: UNRESOLVED
+ abundance_level: COMMON
+ functional_role:
+ - SYNTROPHIC_PARTNER
+ evidence:
+ - reference: PMID:34312531
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: To address this question, we assembled a sequence-indexed bacterial culture collection
+ from roots and nodules of Lotus japonicus that contains representatives of most species
+ previously identified using metagenomics
+ message: Taxon 'Burkholderiaceae bacterium' has no interactions
+ - type: DISCONNECTED
+ taxon: Mesorhizobium sp. LjNodule210
+ taxon_id: NCBITaxon:68287
+ taxon_data:
+ taxon_term:
+ preferred_term: Mesorhizobium sp. LjNodule210
+ term:
+ id: NCBITaxon:68287
+ label: Mesorhizobium
+ gtdb_grounding_status: GROUNDED
+ gtdb_classification:
+ gtdb_id: GTDB:g__Mesorhizobium
+ gtdb_taxon: Mesorhizobium
+ gtdb_lineage: d__Bacteria;p__Pseudomonadota;c__Alphaproteobacteria;o__Rhizobiales;f__Rhizobiaceae;g__Mesorhizobium
+ ncbi_source_id: NCBITaxon:68287
+ majority_fraction: 0.928
+ support_genomes: 167
+ total_genomes: 180
+ is_reclassified: false
+ mapping_source: kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded
+ at g__ rank; 7 GTDB taxa under the NCBI taxon]
+ abundance_level: DOMINANT
+ functional_role:
+ - NITROGEN_FIXING_SYMBIONT
+ evidence:
+ - reference: PMID:34312531
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: To address this question, we assembled a sequence-indexed bacterial culture collection
+ from roots and nodules of Lotus japonicus that contains representatives of most species
+ previously identified using metagenomics
+ message: Taxon 'Mesorhizobium sp. LjNodule210' has no interactions
+ - type: DISCONNECTED
+ taxon: Mesorhizobium sp. LjNodule215
+ taxon_id: NCBITaxon:68287
+ taxon_data:
+ taxon_term:
+ preferred_term: Mesorhizobium sp. LjNodule215
+ term:
+ id: NCBITaxon:68287
+ label: Mesorhizobium
+ gtdb_grounding_status: GROUNDED
+ gtdb_classification:
+ gtdb_id: GTDB:g__Mesorhizobium
+ gtdb_taxon: Mesorhizobium
+ gtdb_lineage: d__Bacteria;p__Pseudomonadota;c__Alphaproteobacteria;o__Rhizobiales;f__Rhizobiaceae;g__Mesorhizobium
+ ncbi_source_id: NCBITaxon:68287
+ majority_fraction: 0.928
+ support_genomes: 167
+ total_genomes: 180
+ is_reclassified: false
+ mapping_source: kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded
+ at g__ rank; 7 GTDB taxa under the NCBI taxon]
+ abundance_level: COMMON
+ functional_role:
+ - NITROGEN_FIXING_SYMBIONT
+ evidence:
+ - reference: PMID:34312531
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: To address this question, we assembled a sequence-indexed bacterial culture collection
+ from roots and nodules of Lotus japonicus that contains representatives of most species
+ previously identified using metagenomics
+ message: Taxon 'Mesorhizobium sp. LjNodule215' has no interactions
+ - type: DISCONNECTED
+ taxon: Mesorhizobium sp. LjNodule218
+ taxon_id: NCBITaxon:68287
+ taxon_data:
+ taxon_term:
+ preferred_term: Mesorhizobium sp. LjNodule218
+ term:
+ id: NCBITaxon:68287
+ label: Mesorhizobium
+ gtdb_grounding_status: GROUNDED
+ gtdb_classification:
+ gtdb_id: GTDB:g__Mesorhizobium
+ gtdb_taxon: Mesorhizobium
+ gtdb_lineage: d__Bacteria;p__Pseudomonadota;c__Alphaproteobacteria;o__Rhizobiales;f__Rhizobiaceae;g__Mesorhizobium
+ ncbi_source_id: NCBITaxon:68287
+ majority_fraction: 0.928
+ support_genomes: 167
+ total_genomes: 180
+ is_reclassified: false
+ mapping_source: kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded
+ at g__ rank; 7 GTDB taxa under the NCBI taxon]
+ abundance_level: COMMON
+ functional_role:
+ - NITROGEN_FIXING_SYMBIONT
+ evidence:
+ - reference: PMID:34312531
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: Sequential inoculation experiments revealed priority effects during root microbiota
+ assembly, where established communities are resilient to invasion by latecomers, and that
+ host preference of commensal bacteria confers a competitive advantage in their cognate host
+ message: Taxon 'Mesorhizobium sp. LjNodule218' has no interactions
+ - type: DISCONNECTED
+ taxon: Microbacteriaceae bacterium
+ taxon_id: NCBITaxon:1873462
+ taxon_data:
+ taxon_term:
+ preferred_term: Microbacteriaceae bacterium
+ term:
+ id: NCBITaxon:1873462
+ label: Microbacteriaceae bacterium
+ gtdb_grounding_status: UNRESOLVED
+ abundance_level: COMMON
+ functional_role:
+ - SYNTROPHIC_PARTNER
+ evidence:
+ - reference: PMID:34312531
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: japonicus and Arabidopsis thaliana in a multi-species gnotobiotic system and detected
+ signatures of host preference among commensal bacteria in a community context, but not in
+ mono-associations
+ message: Taxon 'Microbacteriaceae bacterium' has no interactions
+ - type: DISCONNECTED
+ taxon: Oxalobacteriaceae bacterium
+ taxon_id: NCBITaxon:75682
+ taxon_data:
+ taxon_term:
+ preferred_term: Oxalobacteriaceae bacterium
+ term:
+ id: NCBITaxon:75682
+ label: Oxalobacteraceae
+ gtdb_grounding_status: GROUNDED
+ gtdb_classification:
+ gtdb_id: GTDB:f__Burkholderiaceae
+ gtdb_taxon: Burkholderiaceae
+ gtdb_lineage: d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Burkholderiales;f__Burkholderiaceae
+ ncbi_source_id: NCBITaxon:75682
+ majority_fraction: 0.995
+ support_genomes: 635
+ total_genomes: 638
+ is_reclassified: true
+ mapping_source: kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded
+ at f__ rank; 2 GTDB taxa under the NCBI taxon]
+ abundance_level: COMMON
+ functional_role:
+ - SYNTROPHIC_PARTNER
+ evidence:
+ - reference: PMID:34312531
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: japonicus and Arabidopsis thaliana in a multi-species gnotobiotic system and detected
+ signatures of host preference among commensal bacteria in a community context, but not in
+ mono-associations
+ message: Taxon 'Oxalobacteriaceae bacterium' has no interactions
+ - type: DISCONNECTED
+ taxon: Phyllobacteriaceae bacterium
+ taxon_id: NCBITaxon:1871068
+ taxon_data:
+ taxon_term:
+ preferred_term: Phyllobacteriaceae bacterium
+ term:
+ id: NCBITaxon:1871068
+ label: Phyllobacteriaceae bacterium
+ gtdb_grounding_status: UNRESOLVED
+ abundance_level: ABUNDANT
+ functional_role:
+ - SYNTROPHIC_PARTNER
+ evidence:
+ - reference: PMID:34312531
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: Sequential inoculation experiments revealed priority effects during root microbiota
+ assembly, where established communities are resilient to invasion by latecomers, and that
+ host preference of commensal bacteria confers a competitive advantage in their cognate host
+ message: Taxon 'Phyllobacteriaceae bacterium' has no interactions
+ - type: DISCONNECTED
+ taxon: Pseudomonadaceae bacterium
+ taxon_id: NCBITaxon:1914538
+ taxon_data:
+ taxon_term:
+ preferred_term: Pseudomonadaceae bacterium
+ term:
+ id: NCBITaxon:1914538
+ label: Pseudomonadaceae bacterium
+ gtdb_grounding_status: UNRESOLVED
+ abundance_level: COMMON
+ functional_role:
+ - SYNTROPHIC_PARTNER
+ evidence:
+ - reference: PMID:34312531
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: Sequential inoculation experiments revealed priority effects during root microbiota
+ assembly, where established communities are resilient to invasion by latecomers, and that
+ host preference of commensal bacteria confers a competitive advantage in their cognate host
+ message: Taxon 'Pseudomonadaceae bacterium' has no interactions
+ - type: DISCONNECTED
+ taxon: Rhizobiaceae bacterium
+ taxon_id: NCBITaxon:1913961
+ taxon_data:
+ taxon_term:
+ preferred_term: Rhizobiaceae bacterium
+ term:
+ id: NCBITaxon:1913961
+ label: Rhizobiaceae bacterium
+ gtdb_grounding_status: UNRESOLVED
+ abundance_level: ABUNDANT
+ functional_role:
+ - SYNTROPHIC_PARTNER
+ evidence:
+ - reference: PMID:34312531
+ supports: SUPPORT
+ evidence_source: IN_VITRO
+ snippet: Sequential inoculation experiments revealed priority effects during root microbiota
+ assembly, where established communities are resilient to invasion by latecomers, and that
+ host preference of commensal bacteria confers a competitive advantage in their cognate host
+ message: Taxon 'Rhizobiaceae bacterium' has no interactions
+ removed_findings: {}
+ interpretation: Nine unverified SC3 bacterial roster entries are omitted from explicit participants;
+ only the securely grounded Lotus host is credited. Tracked unresolved under1559. No auditor-rule
+ changes or invented links.
+ black_ruff_diff: passed
+ tested_file_sha256:
+ reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml: 7d5b89f69ea48cec6ca0e8f4513eb5b6dedf92dd3e8ce5c821d0bd26461ed1cc
+ tests/test_causal_review_batch63.py: a097e00da9ab708e3e42059cee2b7adfaaeb304c36605b7a244021e12cc93c3e
+ tests/test_participating_taxa.py: d713ed46d998871cfcdb7902001c16c9139ab6d9fb949141d81d6267c25ba3ae
+ kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml: de38e85b39857ca2d12ebc0bd2e00381497e2237a05bc3b57c054308b37551a7
+ kb/communities/Lotus_LjSC3.yaml: 317b96ee5acec4d086af63b9862dc613ca0d2ccfc325eae037b14eea0db5d011
+ kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml: f15a9d74bf4cdf521541790fed47c158980424e9a616152545370ccb93ca7000
+ reports/causal_graph_review/README.md: c85ad1838a911431a234df286bd466401e1cc21e67611331e8bc6952905152a8
+ unchanged_caches: 920
+ edison:
+ required_for_this_repair: false
+ provider_submissions: 0
+ credits_spent: 0
+ reason: Existing-node/arrow repairs only; no new causal structure.
+ post_commit_docs_current: Separate publication gate, not asserted before commit.
+participant_census:
+ measurements:
+ baseline:
+ records: 460
+ with_community_level: 391
+ mixed: 124
+ community_level_only: 267
+ taxa: 1507
+ credited_solely_by_the_rule: 1238
+ current:
+ records: 460
+ with_community_level: 391
+ mixed: 124
+ community_level_only: 267
+ taxa: 1507
+ credited_solely_by_the_rule: 1238
+ interpretation: Canonical roster/scope census unchanged. Explicit participants exclude nine unverified
+ Lotus SC3 bacterial entries, producing nine tracked warnings. This coarse census does not measure
+ within-community participant coverage or resolve missing taxa.
+corpus:
+ records: 460
+ nodes: 1454
+ edges: 641
+ review_status_counts:
+ needs_research: 21
+ pending: 236
+ reviewed: 203
+limitations:
+- All8 original nodes and4 arrows reviewed;8 nodes retained and4 correlation/context/screening/mediation
+ arrows removed. No new causal structure or Edison submission.
+- Complete Lotus and lettuce primary main bodies and embedded captions read. No original figure pixels,
+ linked lettuce table cells, separate supplements or raw data audited; author-reported numerical summaries
+ were not recomputed.
+- Mangrove complete primary abstract only; publisher subscription preview confirmed. Day6/day9 maxima,
+ unresolved biomass attribution, metabolite production and physical association are not selective mediation
+ or transfer proof.
+- Public Europe PMC Lotus supplemental download actually timed out after90s with719804 bytes; incomplete
+ archive not treated as inspected evidence. Publisher/PMC access limitations were not bypassed.
+- SC3 living-host preference, arrival-order effects and root-specific invasion association remain distinct
+ from SC1 exudates/SC2 experiments. Canonical microbial SC3 membership is unverified; only the Lotus
+ host is explicitly credited. Resulting connectivity warnings remain tracked under1559.
+- Lettuce treatment benefits and conditional gene-copy responses do not prove strain establishment, functional
+ flux, IAA mediation, mutualism or actual extraterrestrial performance. Four canonical taxa identify
+ inoculants, not the complete host/rhizosphere roster.
+- Canonical taxonomy and raw non-graph blocks preserved, not recertified.1559 stays OPEN for roster, protocol
+ and non-graph mechanisms/environment;497/1082 remain separate existing work.
+- All920 caches unchanged; retained graph excerpts match fresh primary text without certifying all historical
+ cache/non-graph provenance.
+- Deduplication covered853 all-state issue titles/bodies and22 scoped ignored/hidden local matches; all7
+ matching bodies read, not every PR/comment/local match. Self-adversarial review is not independent approval.1556-1558
+ stay OPEN until protected-main merge.
diff --git a/reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml b/reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml
new file mode 100644
index 000000000..d91cf3281
--- /dev/null
+++ b/reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml
@@ -0,0 +1,226 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: e17817eb1d2af1655b83324f81854020205c7f29
+baseline_commit: e17817eb1d2af1655b83324f81854020205c7f29
+base_tree: f356db0b48e359db8463da0acb029d37be9601f9
+pre_source_baseline_sha256: abc01c54627fa50a49154445d10a70a0bfb2cc5051ff8dc41f0c79f7ecad4dbc
+issues:
+- 1556
+- 1557
+- 1558
+unresolved_non_graph_issues:
+- 1559
+unresolved_research_issues: []
+issue_deduplication:
+ all_state_issue_titles_and_bodies: 853
+ ignored_hidden_local_search: true
+ matching_local_files: 22
+ matching_issues:
+ - 1155
+ - 1154
+ - 1093
+ - 1082
+ - 595
+ - 543
+ - 497
+reference_cache_original_hashes:
+ references_cache/PMID_34312531.md: 284c2c021463f19b83b32b479091775b393c45a02672f8a76c9a646942c4de81
+ references_cache/PMID_34312531.txt: d9ceb35744f942ab4bda86ec83ff4c49cb85adfc39d5daaac2ca340acbde8ae7
+ references_cache/PMID_42573630.txt: 9edeb250f8b988fd494833cd7da1e3d432cee4b52138d6bcc72e17fdfba91915
+ references_cache/doi_10.1007_s00374-025-01923-3.md: 37dc0b0ead40dc6dfbe4b9618cbb227f61f72c7b9131ba2e3b6c51c1a86c39eb
+primary_artifacts:
+ /private/tmp/communitymech-batch63/lotus-primary.xml: a85afcc4d7dcf28709e65a5742696320cb9daf51fb372f14ef62f64a774fa969
+ /private/tmp/communitymech-batch63/lotus-primary.txt: 6a02189dd9869f65ce3c1b6dc6d7a8da4bd1ef79c23cc9e36c171b44398e358d
+ /private/tmp/communitymech-batch63/lettuce-primary.html: e7c70ccb9b654d84122e7a51e051d0dbf5fa192df603588921c8b4b00e70cc8d
+ /private/tmp/communitymech-batch63/lettuce-primary.txt: dfb4c48893ea8bb51b9e958028fd24105868ac8f9d5506c9b01443b0ff50a19c
+ /private/tmp/communitymech-batch63/mangrove-primary.json: e9fda958be879a0e9d8285d1c1f12f661a7afe96a234f24845cbcd6e83ff30c9
+ /private/tmp/communitymech-batch63/mangrove-primary.txt: 803d1f18aa11d8ea6341933c2a519281bb1a6835fcd4598515d904b79817a053
+primary_urls:
+- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC8387241/fullTextXML
+- https://link.springer.com/article/10.1007/s00374-025-01923-3
+- https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID:42573630%20AND%20SRC:MED&format=json&resultType=core
+primary_graph_snippet_count: 12
+edison:
+ required_for_this_repair: false
+ provider_submissions: 0
+ credits_spent: 0
+ reason: Existing-node/arrow repairs only; no new causal structure.
+limitations:
+- All8 original nodes and4 arrows reviewed;8 nodes retained and4 correlation/context/screening/mediation arrows
+ removed. No new causal structure or Edison submission.
+- Complete Lotus and lettuce primary main bodies and embedded captions read. No original figure pixels, linked lettuce
+ table cells, separate supplements or raw data audited; author-reported numerical summaries were not recomputed.
+- Mangrove complete primary abstract only; publisher subscription preview confirmed. Day6/day9 maxima, unresolved
+ biomass attribution, metabolite production and physical association are not selective mediation or transfer proof.
+- Public Europe PMC Lotus supplemental download actually timed out after90s with719804 bytes; incomplete archive
+ not treated as inspected evidence. Publisher/PMC access limitations were not bypassed.
+- SC3 living-host preference, arrival-order effects and root-specific invasion association remain distinct from
+ SC1 exudates/SC2 experiments. Canonical microbial SC3 membership is unverified; only the Lotus host is explicitly
+ credited. Resulting connectivity warnings remain tracked under1559.
+- Lettuce treatment benefits and conditional gene-copy responses do not prove strain establishment, functional flux,
+ IAA mediation, mutualism or actual extraterrestrial performance. Four canonical taxa identify inoculants, not
+ the complete host/rhizosphere roster.
+- Canonical taxonomy and raw non-graph blocks preserved, not recertified.1559 stays OPEN for roster, protocol and
+ non-graph mechanisms/environment;497/1082 remain separate existing work.
+- All920 caches unchanged; retained graph excerpts match fresh primary text without certifying all historical cache/non-graph
+ provenance.
+- Deduplication covered853 all-state issue titles/bodies and22 scoped ignored/hidden local matches; all7 matching
+ bodies read, not every PR/comment/local match. Self-adversarial review is not independent approval.1556-1558 stay
+ OPEN until protected-main merge.
+records:
+- path: kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml
+ id: CommunityMech:000452
+ original_sha256: 7fc5189e7aa91a1a29fb3ea160153fbddfa33aa94e17763e67e1ffdab415284d
+ record_sha256: de38e85b39857ca2d12ebc0bd2e00381497e2237a05bc3b57c054308b37551a7
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml
+ scope: Whole record and every original node/arrow.
+ summary: Bound mangrove coculture outcomes to abstract-only assay and mediator evidence.
+ renamed_nodes: {}
+ node_decisions:
+ - node: Pseudomonas-Associated Leptolyngbya Growth Promotion
+ rationale: Retain reported growth/biochemical outcomes with different-day and mediator limits.
+ - node: Pseudomonas Physical Association With Leptolyngbya
+ rationale: Retain observed physical association without contact necessity or transfer claims.
+ removed_node_decisions: []
+ edges_before: []
+ edges_after: []
+ retained_edge_decisions: []
+ removed_edge_decisions: []
+ references:
+ - PMID:42573630
+ issues:
+ - 1556
+ - 1559
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Leptolyngbya_Pseudomonas_Mangrove_Coculture/2026-10-06T220130Z-codex-c30afb.yaml
+ source_review:
+ PMID:42573630:
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID:42573630%20AND%20SRC:MED&format=json&resultType=core
+ scope: Complete primary abstract only. Publisher confirmed subscription preview; no full body, figures, supplements
+ or raw data inspected.
+ all_retained_graph_snippets_primary_matched: true
+ cache_provenance_certified: false
+- path: kb/communities/Lotus_LjSC3.yaml
+ id: CommunityMech:000040
+ original_sha256: 81768be4db4e8af59540012d84a49fe1f27fd379beaaf6340c903b5a0c881227
+ record_sha256: 317b96ee5acec4d086af63b9862dc613ca0d2ccfc325eae037b14eea0db5d011
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml
+ scope: Whole record and every original node/arrow.
+ summary: Separate SC3 living-host preference, priority effects and invasion association.
+ renamed_nodes:
+ Host preference increases invasion of standing root communities: Cognate-Root Invasion Advantage Associated
+ With Host Preference
+ node_decisions:
+ - node: Cognate-host preference of commensal SynComs
+ rationale: Retain SC3 cognate-host preference and community context without strain facilitation.
+ - node: Resident-community priority effect
+ rationale: Retain experimentally varied arrival-order effects without assigning an untested mechanism.
+ - node: Cognate-Root Invasion Advantage Associated With Host Preference
+ rationale: Retain root-specific invasion advantage and correlation without selective causal mediation.
+ removed_node_decisions: []
+ edges_before:
+ - source: Cognate-host preference of commensal SynComs
+ target: Host preference increases invasion of standing root communities
+ description: Host preference in the competition assay predicts which SynCom can invade an already established
+ cognate-host root community.
+ - source: Resident-community priority effect
+ target: Host preference increases invasion of standing root communities
+ description: The sequential-inoculation priority effect creates the standing-community context in which cognate-host
+ preference modulates invasion success.
+ edges_after: []
+ retained_edge_decisions: []
+ removed_edge_decisions:
+ - source: Cognate-host preference of commensal SynComs
+ target: Host preference increases invasion of standing root communities
+ rationale: Correlation or experimental context does not demonstrate selective causal mediation.
+ - source: Resident-community priority effect
+ target: Host preference increases invasion of standing root communities
+ rationale: Correlation or experimental context does not demonstrate selective causal mediation.
+ references:
+ - PMID:34312531
+ issues:
+ - 1557
+ - 1559
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Lotus_LjSC3/2026-10-06T220130Z-codex-cd54eb.yaml
+ source_review:
+ PMID:34312531:
+ url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC8387241/fullTextXML
+ scope: Complete XML primary main body, abstract, embedded table text and captions; not original figures, separate
+ supplements or raw data.
+ all_retained_graph_snippets_primary_matched: true
+ cache_provenance_certified: false
+- path: kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml
+ id: CommunityMech:000304
+ original_sha256: 7fed94bd84ab7db9e213c5f8f66c28823330da904a3f20ec5188000d8eea7185
+ record_sha256: f15a9d74bf4cdf521541790fed47c158980424e9a616152545370ccb93ca7000
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml
+ scope: Whole record and every original node/arrow.
+ summary: Separate lettuce compatibility screening, rhizosphere gene copies and plant outcomes.
+ renamed_nodes:
+ Non-antagonistic PGPB consortium assembly: PGPB Dual-Culture Compatibility Screen
+ PGPB rhizosphere colonization and functional-gene enrichment: PGPB-Associated Rhizosphere Functional-Gene Copies
+ node_decisions:
+ - node: PGPB Dual-Culture Compatibility Screen
+ rationale: Retain assay-specific compatibility without commensalism or coexistence claims.
+ - node: PGPB-Associated Rhizosphere Functional-Gene Copies
+ rationale: Retain conditional gene-copy enrichment without strain establishment or functional flux.
+ - node: PGPB-enhanced lettuce growth and mineral nutrition
+ rationale: Retain positive living-host outcomes without unmeasured IAA mediation or reciprocal benefit.
+ removed_node_decisions: []
+ edges_before:
+ - source: Non-antagonistic PGPB consortium assembly
+ target: PGPB rhizosphere colonization and functional-gene enrichment
+ description: Compatibility in dual-culture assays allowed the four selected PGPB strains to act as a consortium
+ in the regolith-simulant lettuce rhizosphere.
+ - source: PGPB rhizosphere colonization and functional-gene enrichment
+ target: PGPB-enhanced lettuce growth and mineral nutrition
+ description: Rhizosphere enrichment of nitrogen-fixation and phosphorus-cycling marker genes is the functional
+ readout linking PGPB inoculation to improved lettuce biomass and mineral nutrition.
+ edges_after: []
+ retained_edge_decisions: []
+ removed_edge_decisions:
+ - source: Non-antagonistic PGPB consortium assembly
+ target: PGPB rhizosphere colonization and functional-gene enrichment
+ rationale: Screening workflow or co-measured marker enrichment does not demonstrate establishment or plant-benefit
+ mediation.
+ - source: PGPB rhizosphere colonization and functional-gene enrichment
+ target: PGPB-enhanced lettuce growth and mineral nutrition
+ rationale: Screening workflow or co-measured marker enrichment does not demonstrate establishment or plant-benefit
+ mediation.
+ references:
+ - doi:10.1007/s00374-025-01923-3
+ issues:
+ - 1558
+ - 1559
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom/2026-10-06T220130Z-codex-000f38.yaml
+ source_review:
+ doi:10.1007/s00374-025-01923-3:
+ url: https://link.springer.com/article/10.1007/s00374-025-01923-3
+ scope: Primary publisher HTML article text, headings and embedded captions; linked table cells, original figures,
+ separate supplementary DOCX and raw data require separate inspection.
+ all_retained_graph_snippets_primary_matched: true
+ cache_provenance_certified: false
diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv
index 60ea0c575..85622dfa0 100644
--- a/reports/causal_graph_review/inventory.tsv
+++ b/reports/causal_graph_review/inventory.tsv
@@ -220,9 +220,9 @@ kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml CommunityMech:000087 9e12c5c9
kb/communities/Lac_Pavin_Stratified_Lake_Community.yaml CommunityMech:000226 6b0d06a73fb3eaee96fe5cb7c9a8edac412e72a92de38813cbc89d640aed98b2 3 0 65.0 reports/causal_graph_review/decisions/20261006-lakes-mars-batch62.yaml reviewed
kb/communities/Lake_Washington_Methane_Oxygen_Methylotroph_Community.yaml CommunityMech:000261 8398eb23db4f653e903319d33c8c308f4f212b35b922c324cb5dae1f022b6144 3 1 82.7 reports/causal_graph_review/decisions/20261006-lakes-mars-batch62.yaml reviewed
kb/communities/Legume_Rhizobia_Mars_Simulant_Symbiosis.yaml CommunityMech:000311 b7a2b149c446b51c8db592cc9cca8c52c14f69f4f367940267c3bf69e08927b5 3 0 65.0 reports/causal_graph_review/decisions/20261006-lakes-mars-batch62.yaml reviewed
-kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml CommunityMech:000452 7fc5189e7aa91a1a29fb3ea160153fbddfa33aa94e17763e67e1ffdab415284d 2 0 57.5 pending
-kb/communities/Lotus_LjSC3.yaml CommunityMech:000040 81768be4db4e8af59540012d84a49fe1f27fd379beaaf6340c903b5a0c881227 3 2 100.0 pending
-kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml CommunityMech:000304 7fed94bd84ab7db9e213c5f8f66c28823330da904a3f20ec5188000d8eea7185 3 2 100.0 pending
+kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml CommunityMech:000452 de38e85b39857ca2d12ebc0bd2e00381497e2237a05bc3b57c054308b37551a7 2 0 57.5 reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml reviewed
+kb/communities/Lotus_LjSC3.yaml CommunityMech:000040 317b96ee5acec4d086af63b9862dc613ca0d2ccfc325eae037b14eea0db5d011 3 0 60.5 reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml reviewed
+kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml CommunityMech:000304 f15a9d74bf4cdf521541790fed47c158980424e9a616152545370ccb93ca7000 3 0 65.0 reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml reviewed
kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml CommunityMech:000306 358a9e93ceefb177f75d8058dd96407eacd401acfe89ecc2b1e640b5f9438d42 3 2 100.0 pending
kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml CommunityMech:000427 fc766f0e946fdb45923e41b662ea83f385c6f6f2f6e1b65048c7b3bbd75dc25d 3 0 60.0 pending
kb/communities/MAMC_M48_Lignocellulose.yaml CommunityMech:000041 735478651e62d2c25435aecbb15f2a78a11eb11669452fd35a1203ee3264cfc0 3 0 75.0 pending
diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json
index ebce42831..78ae7e0c5 100644
--- a/reports/causal_graph_review/summary.json
+++ b/reports/causal_graph_review/summary.json
@@ -3,13 +3,13 @@
"semantic_review_rule": "Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.",
"records": 460,
"nodes": 1454,
- "edges": 645,
+ "edges": 641,
"records_without_nodes": 8,
- "records_without_edges": 158,
+ "records_without_edges": 160,
"review_status_counts": {
"needs_research": 21,
- "pending": 239,
- "reviewed": 200
+ "pending": 236,
+ "reviewed": 203
},
"structural_defects": [],
"network_audit": [
@@ -861,6 +861,320 @@
"message": "Taxon 'Methylosarcina' has no interactions",
"severity": "warning"
},
+ {
+ "record": "Lotus_LjSC3",
+ "type": "DISCONNECTED",
+ "taxon": "Burkholderiaceae bacterium",
+ "taxon_id": "NCBITaxon:2030806",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Burkholderiaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:2030806",
+ "label": "Burkholderiaceae bacterium"
+ },
+ "gtdb_grounding_status": "UNRESOLVED"
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "To address this question, we assembled a sequence-indexed bacterial culture collection from roots and nodules of Lotus japonicus that contains representatives of most species previously identified using metagenomics"
+ }
+ ]
+ },
+ "message": "Taxon 'Burkholderiaceae bacterium' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Lotus_LjSC3",
+ "type": "DISCONNECTED",
+ "taxon": "Mesorhizobium sp. LjNodule210",
+ "taxon_id": "NCBITaxon:68287",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Mesorhizobium sp. LjNodule210",
+ "term": {
+ "id": "NCBITaxon:68287",
+ "label": "Mesorhizobium"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Mesorhizobium",
+ "gtdb_taxon": "Mesorhizobium",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Alphaproteobacteria;o__Rhizobiales;f__Rhizobiaceae;g__Mesorhizobium",
+ "ncbi_source_id": "NCBITaxon:68287",
+ "majority_fraction": 0.928,
+ "support_genomes": 167,
+ "total_genomes": 180,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 7 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "DOMINANT",
+ "functional_role": [
+ "NITROGEN_FIXING_SYMBIONT"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "To address this question, we assembled a sequence-indexed bacterial culture collection from roots and nodules of Lotus japonicus that contains representatives of most species previously identified using metagenomics"
+ }
+ ]
+ },
+ "message": "Taxon 'Mesorhizobium sp. LjNodule210' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Lotus_LjSC3",
+ "type": "DISCONNECTED",
+ "taxon": "Mesorhizobium sp. LjNodule215",
+ "taxon_id": "NCBITaxon:68287",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Mesorhizobium sp. LjNodule215",
+ "term": {
+ "id": "NCBITaxon:68287",
+ "label": "Mesorhizobium"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Mesorhizobium",
+ "gtdb_taxon": "Mesorhizobium",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Alphaproteobacteria;o__Rhizobiales;f__Rhizobiaceae;g__Mesorhizobium",
+ "ncbi_source_id": "NCBITaxon:68287",
+ "majority_fraction": 0.928,
+ "support_genomes": 167,
+ "total_genomes": 180,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 7 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "NITROGEN_FIXING_SYMBIONT"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "To address this question, we assembled a sequence-indexed bacterial culture collection from roots and nodules of Lotus japonicus that contains representatives of most species previously identified using metagenomics"
+ }
+ ]
+ },
+ "message": "Taxon 'Mesorhizobium sp. LjNodule215' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Lotus_LjSC3",
+ "type": "DISCONNECTED",
+ "taxon": "Mesorhizobium sp. LjNodule218",
+ "taxon_id": "NCBITaxon:68287",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Mesorhizobium sp. LjNodule218",
+ "term": {
+ "id": "NCBITaxon:68287",
+ "label": "Mesorhizobium"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Mesorhizobium",
+ "gtdb_taxon": "Mesorhizobium",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Alphaproteobacteria;o__Rhizobiales;f__Rhizobiaceae;g__Mesorhizobium",
+ "ncbi_source_id": "NCBITaxon:68287",
+ "majority_fraction": 0.928,
+ "support_genomes": 167,
+ "total_genomes": 180,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 7 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "NITROGEN_FIXING_SYMBIONT"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "Sequential inoculation experiments revealed priority effects during root microbiota assembly, where established communities are resilient to invasion by latecomers, and that host preference of commensal bacteria confers a competitive advantage in their cognate host"
+ }
+ ]
+ },
+ "message": "Taxon 'Mesorhizobium sp. LjNodule218' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Lotus_LjSC3",
+ "type": "DISCONNECTED",
+ "taxon": "Microbacteriaceae bacterium",
+ "taxon_id": "NCBITaxon:1873462",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Microbacteriaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:1873462",
+ "label": "Microbacteriaceae bacterium"
+ },
+ "gtdb_grounding_status": "UNRESOLVED"
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "japonicus and Arabidopsis thaliana in a multi-species gnotobiotic system and detected signatures of host preference among commensal bacteria in a community context, but not in mono-associations"
+ }
+ ]
+ },
+ "message": "Taxon 'Microbacteriaceae bacterium' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Lotus_LjSC3",
+ "type": "DISCONNECTED",
+ "taxon": "Oxalobacteriaceae bacterium",
+ "taxon_id": "NCBITaxon:75682",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Oxalobacteriaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:75682",
+ "label": "Oxalobacteraceae"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:f__Burkholderiaceae",
+ "gtdb_taxon": "Burkholderiaceae",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Burkholderiales;f__Burkholderiaceae",
+ "ncbi_source_id": "NCBITaxon:75682",
+ "majority_fraction": 0.995,
+ "support_genomes": 635,
+ "total_genomes": 638,
+ "is_reclassified": true,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at f__ rank; 2 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "japonicus and Arabidopsis thaliana in a multi-species gnotobiotic system and detected signatures of host preference among commensal bacteria in a community context, but not in mono-associations"
+ }
+ ]
+ },
+ "message": "Taxon 'Oxalobacteriaceae bacterium' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Lotus_LjSC3",
+ "type": "DISCONNECTED",
+ "taxon": "Phyllobacteriaceae bacterium",
+ "taxon_id": "NCBITaxon:1871068",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Phyllobacteriaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:1871068",
+ "label": "Phyllobacteriaceae bacterium"
+ },
+ "gtdb_grounding_status": "UNRESOLVED"
+ },
+ "abundance_level": "ABUNDANT",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "Sequential inoculation experiments revealed priority effects during root microbiota assembly, where established communities are resilient to invasion by latecomers, and that host preference of commensal bacteria confers a competitive advantage in their cognate host"
+ }
+ ]
+ },
+ "message": "Taxon 'Phyllobacteriaceae bacterium' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Lotus_LjSC3",
+ "type": "DISCONNECTED",
+ "taxon": "Pseudomonadaceae bacterium",
+ "taxon_id": "NCBITaxon:1914538",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Pseudomonadaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:1914538",
+ "label": "Pseudomonadaceae bacterium"
+ },
+ "gtdb_grounding_status": "UNRESOLVED"
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "Sequential inoculation experiments revealed priority effects during root microbiota assembly, where established communities are resilient to invasion by latecomers, and that host preference of commensal bacteria confers a competitive advantage in their cognate host"
+ }
+ ]
+ },
+ "message": "Taxon 'Pseudomonadaceae bacterium' has no interactions",
+ "severity": "warning"
+ },
+ {
+ "record": "Lotus_LjSC3",
+ "type": "DISCONNECTED",
+ "taxon": "Rhizobiaceae bacterium",
+ "taxon_id": "NCBITaxon:1913961",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Rhizobiaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:1913961",
+ "label": "Rhizobiaceae bacterium"
+ },
+ "gtdb_grounding_status": "UNRESOLVED"
+ },
+ "abundance_level": "ABUNDANT",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "Sequential inoculation experiments revealed priority effects during root microbiota assembly, where established communities are resilient to invasion by latecomers, and that host preference of commensal bacteria confers a competitive advantage in their cognate host"
+ }
+ ]
+ },
+ "message": "Taxon 'Rhizobiaceae bacterium' has no interactions",
+ "severity": "warning"
+ },
{
"record": "Mangrove_Benzene_MFC_Bioanode_Consortium",
"type": "DISCONNECTED",
diff --git a/reports/causal_graph_review/validation-20261006-batch63.json b/reports/causal_graph_review/validation-20261006-batch63.json
new file mode 100644
index 000000000..5ef3fe4d3
--- /dev/null
+++ b/reports/causal_graph_review/validation-20261006-batch63.json
@@ -0,0 +1,1112 @@
+{
+ "base_commit": "e17817eb1d2af1655b83324f81854020205c7f29",
+ "scope": [
+ "kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml",
+ "kb/communities/Lotus_LjSC3.yaml",
+ "kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml"
+ ],
+ "reference_validator_version": "0.1.7",
+ "results": [
+ {
+ "check": "Leptolyngbya_Pseudomonas_Mangrove_Coculture-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Leptolyngbya_Pseudomonas_Mangrove_Coculture-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Leptolyngbya_Pseudomonas_Mangrove_Coculture-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch63/Leptolyngbya_Pseudomonas_Mangrove_Coculture-strict.tsv",
+ "kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Leptolyngbya_Pseudomonas_Mangrove_Coculture-strict.log",
+ "log_sha256": "859484761f82044647ea4c09048a2cf5f36a4af914505095ae2afad6bd8e1b66",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch63/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-batch63/Leptolyngbya_Pseudomonas_Mangrove_Coculture-strict.tsv\n"
+ },
+ {
+ "check": "Leptolyngbya_Pseudomonas_Mangrove_Coculture-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Leptolyngbya_Pseudomonas_Mangrove_Coculture-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Leptolyngbya_Pseudomonas_Mangrove_Coculture-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Leptolyngbya_Pseudomonas_Mangrove_Coculture-references.log",
+ "log_sha256": "a91252540f5e8817ca3c21413a4918ad251fff7bd47a15e85d0f31685634655b",
+ "output_tail": "Validating kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n",
+ "explained_output_tail": "Validating kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n"
+ },
+ {
+ "check": "Leptolyngbya_Pseudomonas_Mangrove_Coculture-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Leptolyngbya_Pseudomonas_Mangrove_Coculture-snippets.log",
+ "log_sha256": "aec1f2712a64b5cd549f668dd69d5e1ab54d6d5693d8f53bbce26317b755b383",
+ "output_tail": "# 11 evidence snippets scanned across 1 files\n MATCH 11\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": "Leptolyngbya_Pseudomonas_Mangrove_Coculture-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Leptolyngbya_Pseudomonas_Mangrove_Coculture-rank.log",
+ "log_sha256": "61557bdc26f351303257b4c991df3c64680b28bbd22c8faadc905cae1d0c3c94",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000452\",\n \"name\": \"Leptolyngbya-Pseudomonas Mangrove Growth-Promotion Coculture\",\n \"score\": 57.5,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 2,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 3,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_interactions\",\n \"downstream\",\n \"metabolites_or_biological_processes\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Leptolyngbya_Pseudomonas_Mangrove_Coculture-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Leptolyngbya_Pseudomonas_Mangrove_Coculture/2026-10-06T220130Z-codex-c30afb.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Leptolyngbya_Pseudomonas_Mangrove_Coculture-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Lotus_LjSC3-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Lotus_LjSC3.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lotus_LjSC3-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Lotus_LjSC3-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch63/Lotus_LjSC3-strict.tsv",
+ "kb/communities/Lotus_LjSC3.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lotus_LjSC3-strict.log",
+ "log_sha256": "e8b641b681ba3625a4d419c451d26e646008b54f42f65a59c7562c745e4e5ead",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch63/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-batch63/Lotus_LjSC3-strict.tsv\n"
+ },
+ {
+ "check": "Lotus_LjSC3-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Lotus_LjSC3.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lotus_LjSC3-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Lotus_LjSC3-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Lotus_LjSC3.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lotus_LjSC3-references.log",
+ "log_sha256": "8351e898c3190ab4c7b8b9e03c970f1bc29675f764f4caa47d679c76faa0f729",
+ "output_tail": "Validating kb/communities/Lotus_LjSC3.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/Lotus_LjSC3.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": "Lotus_LjSC3-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Lotus_LjSC3.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lotus_LjSC3-snippets.log",
+ "log_sha256": "f261f4401991124875d6e69fbc7c75c05d38b3868788199bef07a85e404ac32e",
+ "output_tail": "# 25 evidence snippets scanned across 1 files\n MATCH 25\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": "Lotus_LjSC3-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Lotus_LjSC3.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lotus_LjSC3-rank.log",
+ "log_sha256": "57514f11546dcf9329518a3321faae35fd4e7a51181ce99a58612b90080a3de2",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000040\",\n \"name\": \"Lotus Lj-SC3 Synthetic Community\",\n \"score\": 60.5,\n \"taxonomy\": 10,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 9,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 3,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\",\n \"interaction_type\",\n \"disconnected_taxa\"\n ],\n \"path\": \"kb/communities/Lotus_LjSC3.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Lotus_LjSC3-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Lotus_LjSC3/2026-10-06T220130Z-codex-cd54eb.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lotus_LjSC3-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch63/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-strict.tsv",
+ "kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-strict.log",
+ "log_sha256": "d9406173fbe25c31dbcf851261a5242f9987f81a02175d3b4662ae98120c3d43",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch63/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-batch63/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-strict.tsv\n"
+ },
+ {
+ "check": "Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-references.log",
+ "log_sha256": "ee425631af1eb857416c290a5b169ed648ce3a0a2d2bf00497845b90c17bb210",
+ "output_tail": "Validating kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n",
+ "explained_output_tail": "Validating kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n"
+ },
+ {
+ "check": "Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-snippets.log",
+ "log_sha256": "cbfb105bcda68d086deedaa3548df9d9df9c042f0d5218403fa62fd326470257",
+ "output_tail": "# 32 evidence snippets scanned across 1 files\n MATCH 32\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": "Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-rank.log",
+ "log_sha256": "7957222c2969bf8ec3776943e602d4f8073e57278e9bf0a5708b22982ae80278",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000304\",\n \"name\": \"Lunar and Martian Simulant PGPB Lettuce SynCom\",\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\": 6,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom/2026-10-06T220130Z-codex-000f38.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "inventory",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "reports/causal_graph_review/build_inventory.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/inventory.log",
+ "log_sha256": "20a2abea0eced0cb932c284ab6ebfc0bfa07c1b6285e2ddfdb43031ebce9ef2c",
+ "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\": 1454,\n \"edges\": 641,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 160,\n \"review_status_counts\": {\n \"needs_research\": 21,\n \"pending\": 236,\n \"reviewed\": 203\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-batch63/network.log",
+ "log_sha256": "3a156d88a5b27b6a726e91303cf9249745ee46d4e53a0ac73d58779dc1041a7d",
+ "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-batch63/rank-all.log",
+ "log_sha256": "78534391fe19f49767a27da87bc7383b273d458b64a3537873c0090f000dffbb",
+ "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-batch63/render.log",
+ "log_sha256": "a1e5684b57fbc992635dac9219c32a6932c516ff30134a261e882fe6d674b2c0",
+ "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch63/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch63/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch63/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-batch63/render-repeat.log",
+ "log_sha256": "a1e5684b57fbc992635dac9219c32a6932c516ff30134a261e882fe6d674b2c0",
+ "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch63/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch63/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch63/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch63/docs/index.html\n"
+ },
+ {
+ "check": "connectivity-survey",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-c",
+ "import json,pathlib,runpy\nfn=runpy.run_path('tests/test_community_level_connectivity_credit.py')['_survey']\nresult={}\nfor name,root in [('baseline',pathlib.Path('/private/tmp/communitymech-causal-batch62')),('current',pathlib.Path.cwd())]:\n paths=sorted(p for r in ['kb/communities','data/isolates'] for p in (root/r).rglob('*.yaml'))\n assert len(paths)==460\n fn.__globals__['record_files']=lambda:paths\n result[name]=fn()\nprint(json.dumps(result))\n"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/connectivity-survey.log",
+ "log_sha256": "2dcbda64d4b5530059ac8ad2c76a801bffcf051d557341927f6c204fb4d3f7e5",
+ "output_tail": "{\"baseline\": {\"records\": 460, \"with_community_level\": 391, \"mixed\": 124, \"community_level_only\": 267, \"taxa\": 1507, \"credited_solely_by_the_rule\": 1238}, \"current\": {\"records\": 460, \"with_community_level\": 391, \"mixed\": 124, \"community_level_only\": 267, \"taxa\": 1507, \"credited_solely_by_the_rule\": 1238}}\n"
+ },
+ {
+ "check": "regressions",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "pytest",
+ "-q",
+ "tests/test_causal_review_batch10.py",
+ "tests/test_causal_review_batch11.py",
+ "tests/test_causal_review_batch12.py",
+ "tests/test_causal_review_batch13.py",
+ "tests/test_causal_review_batch14.py",
+ "tests/test_causal_review_batch15.py",
+ "tests/test_causal_review_batch16.py",
+ "tests/test_causal_review_batch17.py",
+ "tests/test_causal_review_batch18.py",
+ "tests/test_causal_review_batch19.py",
+ "tests/test_causal_review_batch20.py",
+ "tests/test_causal_review_batch21.py",
+ "tests/test_causal_review_batch22.py",
+ "tests/test_causal_review_batch23.py",
+ "tests/test_causal_review_batch24.py",
+ "tests/test_causal_review_batch25.py",
+ "tests/test_causal_review_batch27.py",
+ "tests/test_causal_review_batch28.py",
+ "tests/test_causal_review_batch29.py",
+ "tests/test_causal_review_batch30.py",
+ "tests/test_causal_review_batch31.py",
+ "tests/test_causal_review_batch32.py",
+ "tests/test_causal_review_batch33.py",
+ "tests/test_causal_review_batch34.py",
+ "tests/test_causal_review_batch35.py",
+ "tests/test_causal_review_batch36.py",
+ "tests/test_causal_review_batch37.py",
+ "tests/test_causal_review_batch38.py",
+ "tests/test_causal_review_batch39.py",
+ "tests/test_causal_review_batch40.py",
+ "tests/test_causal_review_batch41.py",
+ "tests/test_causal_review_batch42.py",
+ "tests/test_causal_review_batch43.py",
+ "tests/test_causal_review_batch44.py",
+ "tests/test_causal_review_batch45.py",
+ "tests/test_causal_review_batch46.py",
+ "tests/test_causal_review_batch47.py",
+ "tests/test_causal_review_batch48.py",
+ "tests/test_causal_review_batch49.py",
+ "tests/test_causal_review_batch5.py",
+ "tests/test_causal_review_batch50.py",
+ "tests/test_causal_review_batch51.py",
+ "tests/test_causal_review_batch52.py",
+ "tests/test_causal_review_batch53.py",
+ "tests/test_causal_review_batch54.py",
+ "tests/test_causal_review_batch55.py",
+ "tests/test_causal_review_batch56.py",
+ "tests/test_causal_review_batch57.py",
+ "tests/test_causal_review_batch58.py",
+ "tests/test_causal_review_batch59.py",
+ "tests/test_causal_review_batch6.py",
+ "tests/test_causal_review_batch60.py",
+ "tests/test_causal_review_batch61.py",
+ "tests/test_causal_review_batch62.py",
+ "tests/test_causal_review_batch63.py",
+ "tests/test_causal_review_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-batch63/regressions.log",
+ "log_sha256": "7ff3763d797ee9d9294a11fec38819da2dbec14c9cd3fceb00af4abde5ab79a6",
+ "output_tail": "........................................................................ [ 12%]\n........................................................................ [ 24%]\n........................................................................ [ 37%]\n........................................................................ [ 49%]\n........................................................................ [ 62%]\n........................................................................ [ 74%]\n........................................................................ [ 87%]\n........................................................................ [ 99%]\n... [100%]\n579 passed in 206.57s (0:03:26)\n"
+ },
+ {
+ "check": "black",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black",
+ "--check",
+ "tests/test_causal_review_batch63.py",
+ "tests/test_participating_taxa.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/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_batch63.py",
+ "tests/test_participating_taxa.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/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-batch63/diff-check.log",
+ "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "output_tail": ""
+ },
+ {
+ "check": "primary-graph-proof",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-c",
+ "import hashlib,json,pathlib,yaml\nP=pathlib.Path\nledger=yaml.safe_load(P('reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml').read_text())\nmanifest=json.loads(P('/private/tmp/communitymech-batch63/primary-manifest.json').read_text())\nprimary={ref:''.join(P(manifest[key]['extracted_body']).read_text().split()) for ref,key in [('PMID:42573630','mangrove'),('PMID:34312531','lotus'),('doi:10.1007/s00374-025-01923-3','lettuce')]}\nfor path,digest in ledger['primary_artifacts'].items():\n assert hashlib.sha256(P(path).read_bytes()).hexdigest()==digest\ncount=0\nfor row in ledger['records']:\n doc=yaml.safe_load(P(row['path']).read_text())\n for node in doc['ecological_interactions']:\n for ev in node['evidence']:\n assert ''.join(ev['snippet'].split()) in primary[ev['reference']]\n count+=1\nassert count==ledger['primary_graph_snippet_count']==12\nassert ledger['edison']['provider_submissions']==ledger['edison']['credits_spent']==0\nprint(json.dumps({'primary_matched_graph_snippets':count,'primary_main_bodies':2,'abstract_only_sources':1,'paid_submissions':0,'new_nodes_or_arrows':0,'separate_supplements_inspected':False}))\n"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch63/primary-graph-proof.log",
+ "log_sha256": "d1a29aeca4f24436925648ad2e5c9f989d4ce57c025842c0ca101d708a03c958",
+ "output_tail": "{\"primary_matched_graph_snippets\": 12, \"primary_main_bodies\": 2, \"abstract_only_sources\": 1, \"paid_submissions\": 0, \"new_nodes_or_arrows\": 0, \"separate_supplements_inspected\": false}\n"
+ }
+ ],
+ "limitations": [
+ "All8 original nodes and4 arrows reviewed;8 nodes retained and4 correlation/context/screening/mediation arrows removed. No new causal structure or Edison submission.",
+ "Complete Lotus and lettuce primary main bodies and embedded captions read. No original figure pixels, linked lettuce table cells, separate supplements or raw data audited; author-reported numerical summaries were not recomputed.",
+ "Mangrove complete primary abstract only; publisher subscription preview confirmed. Day6/day9 maxima, unresolved biomass attribution, metabolite production and physical association are not selective mediation or transfer proof.",
+ "Public Europe PMC Lotus supplemental download actually timed out after90s with719804 bytes; incomplete archive not treated as inspected evidence. Publisher/PMC access limitations were not bypassed.",
+ "SC3 living-host preference, arrival-order effects and root-specific invasion association remain distinct from SC1 exudates/SC2 experiments. Canonical microbial SC3 membership is unverified; only the Lotus host is explicitly credited. Resulting connectivity warnings remain tracked under1559.",
+ "Lettuce treatment benefits and conditional gene-copy responses do not prove strain establishment, functional flux, IAA mediation, mutualism or actual extraterrestrial performance. Four canonical taxa identify inoculants, not the complete host/rhizosphere roster.",
+ "Canonical taxonomy and raw non-graph blocks preserved, not recertified.1559 stays OPEN for roster, protocol and non-graph mechanisms/environment;497/1082 remain separate existing work.",
+ "All920 caches unchanged; retained graph excerpts match fresh primary text without certifying all historical cache/non-graph provenance.",
+ "Deduplication covered853 all-state issue titles/bodies and22 scoped ignored/hidden local matches; all7 matching bodies read, not every PR/comment/local match. Self-adversarial review is not independent approval.1556-1558 stay OPEN until protected-main merge.",
+ "Exact HTML-description parser and repeat-render checks, not browser screenshots. Post-commit docs-current is separate."
+ ],
+ "snippet_counts_by_record": {
+ "kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml": {
+ "MATCH": 11,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/Lotus_LjSC3.yaml": {
+ "MATCH": 25,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml": {
+ "MATCH": 32,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ }
+ },
+ "unchanged_raw_blocks": 51,
+ "unchanged_record_files": 457,
+ "unchanged_cache_files": 920,
+ "edison": {
+ "required_for_this_repair": false,
+ "provider_submissions": 0,
+ "credits_spent": 0,
+ "reason": "Existing-node/arrow repairs only; no new causal structure."
+ },
+ "primary_artifacts": {
+ "/private/tmp/communitymech-batch63/lotus-primary.xml": "a85afcc4d7dcf28709e65a5742696320cb9daf51fb372f14ef62f64a774fa969",
+ "/private/tmp/communitymech-batch63/lotus-primary.txt": "6a02189dd9869f65ce3c1b6dc6d7a8da4bd1ef79c23cc9e36c171b44398e358d",
+ "/private/tmp/communitymech-batch63/lettuce-primary.html": "e7c70ccb9b654d84122e7a51e051d0dbf5fa192df603588921c8b4b00e70cc8d",
+ "/private/tmp/communitymech-batch63/lettuce-primary.txt": "dfb4c48893ea8bb51b9e958028fd24105868ac8f9d5506c9b01443b0ff50a19c",
+ "/private/tmp/communitymech-batch63/mangrove-primary.json": "e9fda958be879a0e9d8285d1c1f12f661a7afe96a234f24845cbcd6e83ff30c9",
+ "/private/tmp/communitymech-batch63/mangrove-primary.txt": "803d1f18aa11d8ea6341933c2a519281bb1a6835fcd4598515d904b79817a053"
+ },
+ "network_delta": {
+ "existing_findings_preserved": 37,
+ "added_findings": {
+ "Lotus_LjSC3": [
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Burkholderiaceae bacterium",
+ "taxon_id": "NCBITaxon:2030806",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Burkholderiaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:2030806",
+ "label": "Burkholderiaceae bacterium"
+ },
+ "gtdb_grounding_status": "UNRESOLVED"
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "To address this question, we assembled a sequence-indexed bacterial culture collection from roots and nodules of Lotus japonicus that contains representatives of most species previously identified using metagenomics"
+ }
+ ]
+ },
+ "message": "Taxon 'Burkholderiaceae bacterium' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Mesorhizobium sp. LjNodule210",
+ "taxon_id": "NCBITaxon:68287",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Mesorhizobium sp. LjNodule210",
+ "term": {
+ "id": "NCBITaxon:68287",
+ "label": "Mesorhizobium"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Mesorhizobium",
+ "gtdb_taxon": "Mesorhizobium",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Alphaproteobacteria;o__Rhizobiales;f__Rhizobiaceae;g__Mesorhizobium",
+ "ncbi_source_id": "NCBITaxon:68287",
+ "majority_fraction": 0.928,
+ "support_genomes": 167,
+ "total_genomes": 180,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 7 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "DOMINANT",
+ "functional_role": [
+ "NITROGEN_FIXING_SYMBIONT"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "To address this question, we assembled a sequence-indexed bacterial culture collection from roots and nodules of Lotus japonicus that contains representatives of most species previously identified using metagenomics"
+ }
+ ]
+ },
+ "message": "Taxon 'Mesorhizobium sp. LjNodule210' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Mesorhizobium sp. LjNodule215",
+ "taxon_id": "NCBITaxon:68287",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Mesorhizobium sp. LjNodule215",
+ "term": {
+ "id": "NCBITaxon:68287",
+ "label": "Mesorhizobium"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Mesorhizobium",
+ "gtdb_taxon": "Mesorhizobium",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Alphaproteobacteria;o__Rhizobiales;f__Rhizobiaceae;g__Mesorhizobium",
+ "ncbi_source_id": "NCBITaxon:68287",
+ "majority_fraction": 0.928,
+ "support_genomes": 167,
+ "total_genomes": 180,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 7 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "NITROGEN_FIXING_SYMBIONT"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "To address this question, we assembled a sequence-indexed bacterial culture collection from roots and nodules of Lotus japonicus that contains representatives of most species previously identified using metagenomics"
+ }
+ ]
+ },
+ "message": "Taxon 'Mesorhizobium sp. LjNodule215' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Mesorhizobium sp. LjNodule218",
+ "taxon_id": "NCBITaxon:68287",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Mesorhizobium sp. LjNodule218",
+ "term": {
+ "id": "NCBITaxon:68287",
+ "label": "Mesorhizobium"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:g__Mesorhizobium",
+ "gtdb_taxon": "Mesorhizobium",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Alphaproteobacteria;o__Rhizobiales;f__Rhizobiaceae;g__Mesorhizobium",
+ "ncbi_source_id": "NCBITaxon:68287",
+ "majority_fraction": 0.928,
+ "support_genomes": 167,
+ "total_genomes": 180,
+ "is_reclassified": false,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 7 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "NITROGEN_FIXING_SYMBIONT"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "Sequential inoculation experiments revealed priority effects during root microbiota assembly, where established communities are resilient to invasion by latecomers, and that host preference of commensal bacteria confers a competitive advantage in their cognate host"
+ }
+ ]
+ },
+ "message": "Taxon 'Mesorhizobium sp. LjNodule218' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Microbacteriaceae bacterium",
+ "taxon_id": "NCBITaxon:1873462",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Microbacteriaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:1873462",
+ "label": "Microbacteriaceae bacterium"
+ },
+ "gtdb_grounding_status": "UNRESOLVED"
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "japonicus and Arabidopsis thaliana in a multi-species gnotobiotic system and detected signatures of host preference among commensal bacteria in a community context, but not in mono-associations"
+ }
+ ]
+ },
+ "message": "Taxon 'Microbacteriaceae bacterium' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Oxalobacteriaceae bacterium",
+ "taxon_id": "NCBITaxon:75682",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Oxalobacteriaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:75682",
+ "label": "Oxalobacteraceae"
+ },
+ "gtdb_grounding_status": "GROUNDED",
+ "gtdb_classification": {
+ "gtdb_id": "GTDB:f__Burkholderiaceae",
+ "gtdb_taxon": "Burkholderiaceae",
+ "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Burkholderiales;f__Burkholderiaceae",
+ "ncbi_source_id": "NCBITaxon:75682",
+ "majority_fraction": 0.995,
+ "support_genomes": 635,
+ "total_genomes": 638,
+ "is_reclassified": true,
+ "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at f__ rank; 2 GTDB taxa under the NCBI taxon]"
+ }
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "japonicus and Arabidopsis thaliana in a multi-species gnotobiotic system and detected signatures of host preference among commensal bacteria in a community context, but not in mono-associations"
+ }
+ ]
+ },
+ "message": "Taxon 'Oxalobacteriaceae bacterium' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Phyllobacteriaceae bacterium",
+ "taxon_id": "NCBITaxon:1871068",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Phyllobacteriaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:1871068",
+ "label": "Phyllobacteriaceae bacterium"
+ },
+ "gtdb_grounding_status": "UNRESOLVED"
+ },
+ "abundance_level": "ABUNDANT",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "Sequential inoculation experiments revealed priority effects during root microbiota assembly, where established communities are resilient to invasion by latecomers, and that host preference of commensal bacteria confers a competitive advantage in their cognate host"
+ }
+ ]
+ },
+ "message": "Taxon 'Phyllobacteriaceae bacterium' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Pseudomonadaceae bacterium",
+ "taxon_id": "NCBITaxon:1914538",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Pseudomonadaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:1914538",
+ "label": "Pseudomonadaceae bacterium"
+ },
+ "gtdb_grounding_status": "UNRESOLVED"
+ },
+ "abundance_level": "COMMON",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "Sequential inoculation experiments revealed priority effects during root microbiota assembly, where established communities are resilient to invasion by latecomers, and that host preference of commensal bacteria confers a competitive advantage in their cognate host"
+ }
+ ]
+ },
+ "message": "Taxon 'Pseudomonadaceae bacterium' has no interactions"
+ },
+ {
+ "type": "DISCONNECTED",
+ "taxon": "Rhizobiaceae bacterium",
+ "taxon_id": "NCBITaxon:1913961",
+ "taxon_data": {
+ "taxon_term": {
+ "preferred_term": "Rhizobiaceae bacterium",
+ "term": {
+ "id": "NCBITaxon:1913961",
+ "label": "Rhizobiaceae bacterium"
+ },
+ "gtdb_grounding_status": "UNRESOLVED"
+ },
+ "abundance_level": "ABUNDANT",
+ "functional_role": [
+ "SYNTROPHIC_PARTNER"
+ ],
+ "evidence": [
+ {
+ "reference": "PMID:34312531",
+ "supports": "SUPPORT",
+ "evidence_source": "IN_VITRO",
+ "snippet": "Sequential inoculation experiments revealed priority effects during root microbiota assembly, where established communities are resilient to invasion by latecomers, and that host preference of commensal bacteria confers a competitive advantage in their cognate host"
+ }
+ ]
+ },
+ "message": "Taxon 'Rhizobiaceae bacterium' has no interactions"
+ }
+ ]
+ },
+ "removed_findings": {},
+ "interpretation": "Nine unverified SC3 bacterial roster entries are omitted from explicit participants; only the securely grounded Lotus host is credited. Tracked unresolved under1559. No auditor-rule changes or invented links."
+ },
+ "render_determinism": true,
+ "published_description_coverage": {
+ "pages": 456,
+ "nodes": 1440,
+ "arrows": 633
+ },
+ "participant_census": {
+ "measurements": {
+ "baseline": {
+ "records": 460,
+ "with_community_level": 391,
+ "mixed": 124,
+ "community_level_only": 267,
+ "taxa": 1507,
+ "credited_solely_by_the_rule": 1238
+ },
+ "current": {
+ "records": 460,
+ "with_community_level": 391,
+ "mixed": 124,
+ "community_level_only": 267,
+ "taxa": 1507,
+ "credited_solely_by_the_rule": 1238
+ }
+ },
+ "interpretation": "Canonical roster/scope census unchanged. Explicit participants exclude nine unverified Lotus SC3 bacterial entries, producing nine tracked warnings. This coarse census does not measure within-community participant coverage or resolve missing taxa."
+ },
+ "network_warning_count": 46,
+ "corpus": {
+ "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.",
+ "records": 460,
+ "nodes": 1454,
+ "edges": 641,
+ "records_without_nodes": 8,
+ "records_without_edges": 160,
+ "review_status_counts": {
+ "needs_research": 21,
+ "pending": 236,
+ "reviewed": 203
+ },
+ "structural_defects": []
+ },
+ "tested_file_sha256": {
+ "reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml": "7d5b89f69ea48cec6ca0e8f4513eb5b6dedf92dd3e8ce5c821d0bd26461ed1cc",
+ "tests/test_causal_review_batch63.py": "a097e00da9ab708e3e42059cee2b7adfaaeb304c36605b7a244021e12cc93c3e",
+ "tests/test_participating_taxa.py": "d713ed46d998871cfcdb7902001c16c9139ab6d9fb949141d81d6267c25ba3ae",
+ "kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml": "de38e85b39857ca2d12ebc0bd2e00381497e2237a05bc3b57c054308b37551a7",
+ "kb/communities/Lotus_LjSC3.yaml": "317b96ee5acec4d086af63b9862dc613ca0d2ccfc325eae037b14eea0db5d011",
+ "kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml": "f15a9d74bf4cdf521541790fed47c158980424e9a616152545370ccb93ca7000",
+ "reports/causal_graph_review/README.md": "c85ad1838a911431a234df286bd466401e1cc21e67611331e8bc6952905152a8"
+ },
+ "status": "verified_coculture_host_graph_review",
+ "pre_research_baseline": {
+ "base_commit": "e17817eb1d2af1655b83324f81854020205c7f29",
+ "base_tree": "f356db0b48e359db8463da0acb029d37be9601f9",
+ "research_worktree": "/private/tmp/communitymech-causal-batch62",
+ "checks": [
+ {
+ "name": "rank",
+ "command": [
+ "just",
+ "rank-causal-graphs"
+ ],
+ "exit_code": 0,
+ "expected_exit_code": 0,
+ "log": "/private/tmp/communitymech-batch63/baseline-rank.log",
+ "sha256": "126e75c473da0dfafefc461a94358dcd3e413ace0233cc4ec790b31accc8140c",
+ "output_tail": "/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml\tCommunityMech:000337\tTropidoatractus magnetotacticus Magnetotactic Ciliate Tripartite Syntrophy\t3\t3\t0\t4\t2\t9\t\t0\t0\n450\t100.0\tkb/communities/Urine_Nitrification_SynCom.yaml\tCommunityMech:000117\tUrine Nitrification Synthetic Microbial Community\t5\t5\t0\t3\t2\t5\t\t0\t0\n451\t100.0\tkb/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml\tCommunityMech:000213\tVariovorax-Cryptococcus Vitamin Cross-Feeding Microcosm\t2\t2\t0\t3\t2\t4\t\t0\t0\n452\t100.0\tkb/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml\tCommunityMech:000328\tWaste-Sludge Electro-Fermentation Biofilm-Suspension Community\t5\t5\t0\t4\t2\t6\t\t0\t0\n453\t100.0\tkb/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.yaml\tCommunityMech:000098\tWatermelon Rhizosphere Fusarium-Protective SynCom8\t2\t2\t0\t3\t2\t7\t\t0\t0\n454\t100.0\tkb/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml\tCommunityMech:000255\tWetland Oxygen-Sulfate Greenhouse Gas Microcosm Community\t3\t3\t0\t3\t2\t6\t\t0\t0\n455\t100.0\tkb/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.yaml\tCommunityMech:000118\tWheat Straw Biogas Pretreatment SynCom\t4\t4\t0\t3\t2\t4\t\t0\t0\n456\t100.0\tkb/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml\tCommunityMech:000354\tYarrowia lipolytica Division-of-Labor Lipid Consortium\t2\t2\t0\t3\t2\t3\t\t0\t0\n457\t100.0\tkb/communities/Yogurt_TwoSpecies_Starter_Culture.yaml\tCommunityMech:000164\tYogurt Two-Species Starter Culture\t2\t2\t0\t4\t2\t9\t\t0\t0\n458\t100.0\tkb/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml\tCommunityMech:000210\tZymomonas-E. coli Exometabolomics-Designed Obligate Mutualism\t2\t2\t0\t3\t2\t6\t\t0\t0\n459\t100.0\tkb/communities/hCom2_Complex_Gut_Microbiome.yaml\tCommunityMech:000123\thCom2 Complex Gut Microbiome\t1\t1\t0\t3\t2\t3\t\t0\t0\n460\t100.0\tkb/communities/mCAFEs_Brachypodium_RCC.yaml\tCommunityMech:000078\tm-CAFEs Brachypodium Reduced Complexity Consortia\t10\t10\t0\t6\t2\t11\t\t0\t0\nPYTHONPATH=src uv run python scripts/rank_causal_graph_readiness.py \n"
+ },
+ {
+ "name": "just-network",
+ "command": [
+ "just",
+ "audit-network-json"
+ ],
+ "exit_code": 2,
+ "expected_exit_code": 2,
+ "log": "/private/tmp/communitymech-batch63/baseline-just-network.log",
+ "sha256": "8595db43420d3f0a01c57acd6ad733a531a72e962486d20b4e1c2840dda55bff",
+ "output_tail": "uv run communitymech audit-network --json\nerror: Failed to spawn: `communitymech`\n Caused by: No such file or directory (os error 2)\nerror: recipe `audit-network-json` failed on line 574 with exit code 2\n"
+ },
+ {
+ "name": "network",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "communitymech.cli",
+ "audit-network",
+ "--json"
+ ],
+ "exit_code": 1,
+ "expected_exit_code": 1,
+ "log": "/private/tmp/communitymech-batch63/baseline-network.log",
+ "sha256": "96b4ce3ebd766ca4c94c7bf99af48351f69170f4f40e2bab5d53e8674fff4f14",
+ "output_tail": " \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Staphylococcus capitis | K1-2-2-23 | ISS, V2A Steel | DSM 111179 | Sobisch et al., 2019 | GCA_025272695 | TSYB/TSYA | 37 \\u00b0C | 16\\u201324 h\",\n \"explanation\": \"Identifies S. capitis K1-2-2-23 as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Staphylococcus capitis K1-2-2-23' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Streptococcus halotolerans HTS9T\",\n \"taxon_id\": \"NCBITaxon:1814128\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Streptococcus halotolerans HTS9T\",\n \"term\": {\n \"id\": \"NCBITaxon:1814128\",\n \"label\": \"Streptococcus halotolerans\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the S. halotolerans type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"HTS9T\",\n \"genome_accession\": \"GCA_001598035\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"101996\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Streptococcus halotolerans | HTS9 T | Respiratory Tract of Marmota himalayana | DSM 101996 T | Niu et al., 2016 | GCA_001598035 | 2xLB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies S. halotolerans HTS9T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Streptococcus halotolerans HTS9T' has no interactions\"\n }\n ]\n}\n"
+ },
+ {
+ "name": "downstream",
+ "command": [
+ "rg",
+ "--no-ignore",
+ "--hidden",
+ "-n",
+ "downstream:",
+ "kb/communities",
+ "data/isolates",
+ "--glob",
+ "*.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_code": 0,
+ "log": "/private/tmp/communitymech-batch63/baseline-downstream.log",
+ "sha256": "43cb9e9b55c70f60ca711268ba43d8b3cab3cd0d605d1539866559089790e58a",
+ "output_tail": "es/Dual_Bacillus_coagulans_Pseudomonas_putida_Lactic_Acid_Coculture.yaml:134: downstream:\nkb/communities/Dual_Bacillus_coagulans_Pseudomonas_putida_Lactic_Acid_Coculture.yaml:189: downstream:\nkb/communities/Parachlorella_Saccharomyces_Mutualistic_Coculture.yaml:83: downstream:\nkb/communities/Parachlorella_Saccharomyces_Mutualistic_Coculture.yaml:121: downstream:\nkb/communities/SO3_BS3_Lithium_Battery_Bioleaching_Consortium.yaml:141: downstream:\nkb/communities/Avena_Rhizosphere_Detritusphere_Niche_Succession.yaml:104: downstream:\nkb/communities/Avena_Rhizosphere_Detritusphere_Niche_Succession.yaml:127: downstream:\nkb/communities/Viili_Fungus_Bacterium_EPS_SynCom.yaml:133: downstream:\nkb/communities/Viili_Fungus_Bacterium_EPS_SynCom.yaml:183: downstream:\nkb/communities/Emiliania_Phaeobacter_Dynamic_Interaction.yaml:143: downstream:\nkb/communities/Geobacter_Pseudomonas_Formate_Fumarate_Electroactive_Coculture.yaml:191: downstream:\nkb/communities/Pepper_Phytophthora_SynCom5.yaml:123: downstream:\nkb/communities/Pepper_Phytophthora_SynCom5.yaml:146: downstream:\nkb/communities/Sclerotinia_Sclerotia_12Strain_Biocontrol_SynCom.yaml:332: downstream:\nkb/communities/Chromium_Sulfur_Reduction_Enrichment.yaml:159: downstream:\nkb/communities/Chromium_Sulfur_Reduction_Enrichment.yaml:200: downstream:\nkb/communities/Maize_Benzoxazinoid_Metabolizing_SynComs.yaml:68: downstream:\nkb/communities/Maize_Benzoxazinoid_Metabolizing_SynComs.yaml:96: downstream:\nkb/communities/Dehalococcoides_Syntrophomonas_TCE_Dechlorination_Coculture.yaml:152: downstream:\nkb/communities/Dehalococcoides_Syntrophomonas_TCE_Dechlorination_Coculture.yaml:236: downstream:\nkb/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml:196: downstream:\nkb/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml:242: downstream:\nkb/communities/Geobacter_Methanosarcina_DIET.yaml:133: downstream:\nkb/communities/Geobacter_Methanosarcina_DIET.yaml:217: downstream:\n"
+ }
+ ],
+ "baseline_sha256": "abc01c54627fa50a49154445d10a70a0bfb2cc5051ff8dc41f0c79f7ecad4dbc"
+ },
+ "reference_validator_caveat": "CLI Total checks counts reported issues, not executed checks. MATCH is not scientific entailment or certification of historical provenance. All920 caches unchanged;12 graph excerpts independently match fresh primary text.1559 and existing497/1082/476/1091/1095 remain unresolved; graph repairs do not recertify non-graph blocks."
+}
diff --git a/tests/test_causal_review_batch63.py b/tests/test_causal_review_batch63.py
new file mode 100644
index 000000000..d28338fd4
--- /dev/null
+++ b/tests/test_causal_review_batch63.py
@@ -0,0 +1,141 @@
+"""Preserve positive observations without assay, mediator or roster overclaims."""
+
+import hashlib
+from pathlib import Path
+
+import yaml
+
+ROOT = Path(__file__).resolve().parents[1]
+LEDGER = ROOT / "reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml"
+G = "Leptolyngbya_Pseudomonas_Mangrove_Coculture"
+L = "Lotus_LjSC3"
+R = "Lunar_Martian_Simulant_PGPB_Lettuce_SynCom"
+
+
+def records():
+ ledger = yaml.safe_load(LEDGER.read_text())
+ rows = {Path(r["path"]).stem: r for r in ledger["records"]}
+ docs = {name: yaml.safe_load((ROOT / r["path"]).read_text()) for name, r in rows.items()}
+ return ledger, rows, docs
+
+
+def test_mangrove_maxima_are_not_matched_time_or_partner_resolved():
+ _, _, docs = records()
+ growth = docs[G]["ecological_interactions"][0]
+ assert "day 6" in growth["description"] and "day 9" in growth["description"]
+ assert "not a matched-time comparison" in growth["description"]
+ assert "resolve each partner separately" in growth["description"]
+ assert "interaction_type" not in growth
+ assert growth["evidence"][1]["supports"] == "PARTIAL"
+ assert all("does not establish transfer" in m["notes"] for m in growth["metabolites"])
+
+
+def test_mangrove_association_is_not_contact_necessity_or_new_structure():
+ _, rows, docs = records()
+ association = docs[G]["ecological_interactions"][1]
+ assert "not a selective test that contact is required" in association["description"]
+ assert rows[G]["edges_before"] == rows[G]["edges_after"] == []
+ assert "abstract" in association["description"]
+ assert len(docs[G]["discussions"]) == 2
+
+
+def test_lotus_relative_priority_and_root_specific_association_remain_distinct():
+ _, rows, docs = records()
+ preference, priority, invasion = docs[L]["ecological_interactions"]
+ assert "SC3 mono-association" in preference["description"]
+ assert "four weeks" in priority["description"] and "two weeks" in priority["description"]
+ assert "higher relative proportions" in priority["description"]
+ assert "did not significantly increase total bacterial load" in priority["description"]
+ assert "absent in rhizosphere samples" in invasion["description"]
+ assert "association, not selective manipulation" in invasion["description"]
+ assert len(rows[L]["removed_edge_decisions"]) == 2
+
+
+def test_lotus_does_not_certify_unverified_bacterial_roster():
+ _, _, docs = records()
+ for node in docs[L]["ecological_interactions"]:
+ assert [t["term"]["id"] for t in node["participating_taxa"]] == ["NCBITaxon:34305"]
+ assert "interaction_type" not in node and "downstream" not in node
+ assert all(e["evidence_source"] == "IN_VIVO" for e in node["evidence"])
+ text = docs[L]["discussions"][-1]["rationale"]
+ assert "SC1" in text and "SC2" in text and "SC3" in text
+ assert "connectivity warnings" in text and "#1559" in text
+
+
+def test_lettuce_screen_is_not_commensalism_or_establishment():
+ _, _, docs = records()
+ screen = docs[R]["ecological_interactions"][0]
+ assert "no inhibition zones" in screen["description"]
+ assert "not demonstrated commensalism" in screen["description"]
+ assert all(e["evidence_source"] == "IN_VITRO" for e in screen["evidence"])
+ assert "interaction_type" not in screen and "downstream" not in screen
+
+
+def test_lettuce_gene_copies_are_not_expression_flux_or_strain_tracking():
+ _, _, docs = records()
+ genes = docs[R]["ecological_interactions"][1]
+ assert "amended simulants did not show significant" in genes["description"]
+ assert "not expression, nitrogen-fixation flux or phosphate release" in genes["description"]
+ assert "could not distinguish environmental from inoculated strains" in genes["description"]
+ assert "no direct fixation-rate measurement" in genes["biological_processes"][0]["notes"]
+ assert all(e["evidence_source"] == "IN_VIVO" for e in genes["evidence"])
+ assert "interaction_type" not in genes and "downstream" not in genes
+
+
+def test_lettuce_plant_benefits_are_retained_without_hormone_or_mutualism_claim():
+ _, rows, docs = records()
+ outcome = docs[R]["ecological_interactions"][2]
+ assert "35% overall" in outcome["description"] and "26% on average" in outcome["description"]
+ assert "significantly only for P and K" in outcome["description"]
+ assert "no significant overall inoculum effect" in outcome["description"]
+ assert "do not establish IAA mediation" in outcome["description"]
+ assert outcome["biological_processes"][0]["term"]["id"] == "GO:0044419"
+ assert all(e["evidence_source"] == "IN_VIVO" for e in outcome["evidence"])
+ assert "interaction_type" not in outcome and "downstream" not in outcome
+ assert len(rows[R]["removed_edge_decisions"]) == 2
+ for node in docs[R]["ecological_interactions"]:
+ assert [t["term"]["id"] for t in node["participating_taxa"]] == [
+ "NCBITaxon:353",
+ "NCBITaxon:1404",
+ "NCBITaxon:223967",
+ "NCBITaxon:1646340",
+ ]
+
+
+def test_batch63_caches_and_canonical_participants_are_not_rewritten():
+ ledger, _, docs = records()
+ for path, digest in ledger["reference_cache_original_hashes"].items():
+ assert hashlib.sha256((ROOT / path).read_bytes()).hexdigest() == digest
+ for doc in docs.values():
+ canonical = {
+ t["taxon_term"]["preferred_term"]: t["taxon_term"]["term"] for t in doc["taxonomy"]
+ }
+ for node in doc["ecological_interactions"]:
+ taxa = node.get("participating_taxa", []) + [
+ node[k] for k in ["source_taxon", "target_taxon"] if k in node
+ ]
+ for taxon in taxa:
+ assert canonical[taxon["preferred_term"]] == taxon["term"]
+ assert "#1559" in doc["discussions"][-1]["rationale"]
+ assert ledger["unresolved_non_graph_issues"] == [1559]
+ assert ledger["primary_graph_snippet_count"] == 12
+
+
+def test_batch63_all_nodes_arrows_anchors_histories_and_limits_are_recorded():
+ ledger, rows, docs = records()
+ assert ledger["independent_approval"] is False
+ assert ledger["issues"] == [1556, 1557, 1558]
+ assert ledger["edison"]["provider_submissions"] == ledger["edison"]["credits_spent"] == 0
+ assert sum(len(r["node_decisions"]) for r in rows.values()) == 8
+ assert sum(len(r["edges_before"]) for r in rows.values()) == 4
+ assert sum(len(r["edges_after"]) for r in rows.values()) == 0
+ assert sum(len(r["removed_edge_decisions"]) for r in rows.values()) == 4
+ for name, row in rows.items():
+ doc = docs[name]
+ assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"]
+ assert doc["curation_history"][-1]["llm_assisted"] is True
+ assert len(row["history_files"]) == 1 and row["status"] == "reviewed"
+ names = {n["name"] for n in doc["ecological_interactions"]}
+ assert {d["node"] for d in row["node_decisions"]} == names
+ assert {a.split("#", 1)[1] for a in doc["discussions"][-1]["attaches_to"]} == names
+ assert doc["discussions"][-1]["status"] == "OPEN"
diff --git a/tests/test_participating_taxa.py b/tests/test_participating_taxa.py
index aad046222..0929db9ba 100644
--- a/tests/test_participating_taxa.py
+++ b/tests/test_participating_taxa.py
@@ -313,6 +313,8 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example):
"Lac_Pavin_Stratified_Lake_Community.yaml",
"Lake_Washington_Methane_Oxygen_Methylotroph_Community.yaml",
"Legume_Rhizobia_Mars_Simulant_Symbiosis.yaml",
+ "Lotus_LjSC3.yaml",
+ "Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml",
"Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml",
"MSC1_Dominant_Core.yaml",
"MSC2_Model_Soil_Consortium.yaml",