Genome-resolved analysis identified members genetically equipped for the three central Hg transformations in the springs: mercury methylation, methylmercury demethylation, and Hg(II) reduction to volatile elemental Hg(0).
-
PARTIAL - Metagenomic merA/merB homologues support potential Hg(II) reduction and organomercurial demethylation. Cub Bath yielded hgcA/hgcB evidence, but hgcA-bearing sequences could not be assigned to a resolved genome or definitive taxon; Tiger Bath nondetection is sequencing-depth bounded. These are positive sequence findings, not measured transformation rates or identified active members for every reaction. HMM merA counts required paralog filtering.
+
+
+
- Evidence
-
@@ -746,10 +717,10 @@
Evidence
PMID:32414793
- - SUPPORT (IN_VIVO)
+ - SUPPORT (COMPUTATIONAL)
- "microorganisms genetically equipped for mercury methylation, demethylation, or Hg(II) reduction to volatile Hg(0)"
+ "The Cub Bath hgcA sequences could not be binned"
@@ -760,10 +731,8 @@ Evidence
-
Despite ultrahigh dissolved and solid mercury concentrations, the geothermal microbiome stayed unexpectedly diverse and was dominated by sulfur- and iron-cycling bacteria, Hg/As-resistant bacteria, and thermophilic acidophilic archaea.
-
+
The sampled Ngawha microbiomes were unexpectedly diverse despite high mercury, with sulfur- and iron-cycling bacteria, Hg/As-resistance potential and acidophilic archaea; the two baths differed in composition. This metagenomic observation does not demonstrate temporal stability, realized niche partitioning, or a mercury-driven diversity increase.
@@ -784,17 +753,6 @@
Diverse Acidophile Guilds Under Ultrahigh Mercury
-
Biological Processes:
-
-
-
- biological process involved in interspecies interaction between organisms
- (GO:0044419 )
-
-
-
-
@@ -808,7 +766,7 @@
Evidence
PMID:32414793
- - SUPPORT (IN_VIVO)
+ - SUPPORT (COMPUTATIONAL)
"In the context of such ultrahigh mercury levels, the geothermal microbiome was unexpectedly diverse"
@@ -821,11 +779,9 @@ Evidence
-
Hg- and As-resistant spring bacteria carried the genetic potential to reduce inorganic Hg(II) to volatile Hg(0), connecting microbial detoxifying potential to the aqueous and gaseous mercury emissions characteristic of geothermal systems.
-
+
Gaseous Hg(0) was measured above Tiger and Cub Baths, alongside aqueous and sediment mercury measurements. The source also reports merA-based reduction potential. The measured atmospheric mercury is a positive environmental result, not an isolated microbial emission rate: deep geological inputs and abiotic redox processes also contribute, and their contributions were not separated from microbial reduction.
@@ -846,17 +802,6 @@
Volatile Hg(0) Geothermal Mercury Emission
-
Biological Processes:
-
-
@@ -873,7 +818,7 @@
Evidence
- SUPPORT (IN_VIVO)
- "Hg(II) reduction to volatile Hg(0)"
+ "Gaseous Hg0 emissions were also recorded from the baths"
@@ -884,10 +829,8 @@ Evidence
-
The study integrated spring-community metagenomic potential with abiotic geochemical controls to produce a model in which mercury speciation is linked to microbial community dynamics and to sulfur and iron biogeochemistry.
-
+
HYPOTHESIZED - The conceptual model links sulfur/iron redox cycling and cinnabar precipitation/dissolution to mercury bioavailability, with potential methylation, demethylation and Hg(II) reduction. These coupled biotic and abiotic reactions are an evidence-informed model, not demonstrated interspecies syntrophy or a measured taxon-to-taxon mercury flux.
@@ -908,17 +851,6 @@
Sulfur-Iron-Coupled Mercury Cycle Model
-
Biological Processes:
-
-
@@ -932,7 +864,7 @@
Evidence
PMID:32414793
- - SUPPORT (IN_VIVO)
+ - PARTIAL (COMPUTATIONAL)
"illustrates how geothermal mercury cycling may couple to microbial community dynamics and sulfur and iron biogeochemistry
@@ -949,6 +881,25 @@
Evidence
+
+ Knowledge gaps & discussions (1)
+
+
+
+ KNOWLEDGE_GAP
+ OPEN
+ Which measurements establish the proposed causal mechanism in this exact system?
+
+
Retain measured mercury pools, atmospheric Hg(0), diverse microbiomes and positive mer/hgc sequence evidence. The hgcA sequences could not be binned, MerA HMM hits included paralogs, and no hgcAB was recovered from resolved sulfate-reducing bins. Absence at one sequencing depth is not biological absence. Environmental concentrations and mer/hgc potential do not isolate microbial rates or prove temporal stability. The sulfur/iron/cinnabar coupling is proposed; selective activity assays and source partitioning are needed. Preserve the earlier removal of four interpretation-workflow arrows and remove the remaining environmental-context arrow.
+
+
Attaches to: ecological_interactions#Acidic Warm-Spring Mercury Speciation Regime, ecological_interactions#Metagenomic Mercury Transformation Potential, ecological_interactions#Diverse Acidophile Guilds Under Ultrahigh Mercury, ecological_interactions#Measured Gaseous Mercury With Unresolved Microbial Contribution, ecological_interactions#Sulfur-Iron-Coupled Mercury Cycle Model
+
+
+
+
+
+
+
@@ -1191,7 +1142,7 @@
Environmental Factors
(function() {
var intId = "interaction:0";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1202,10 +1153,6 @@
Environmental Factors
var processes = [];
-
- processes.push("mercury ion transport");
-
-
var evidenceCount = 1;
nodes.push({
@@ -1225,7 +1172,7 @@
Environmental Factors
(function() {
var intId = "interaction:1";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1236,15 +1183,11 @@
Environmental Factors
var processes = [];
-
- processes.push("mercury ion transport");
-
-
- var evidenceCount = 1;
+ var evidenceCount = 2;
nodes.push({
id: intId,
- label: "Genome-Resolved Mercury Transformation Potential",
+ label: "Metagenomic Mercury Transformation Potential",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1259,7 +1202,7 @@
Environmental Factors
(function() {
var intId = "interaction:2";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1270,10 +1213,6 @@
Environmental Factors
var processes = [];
-
- processes.push("biological process involved in interspecies interaction between organisms");
-
-
var evidenceCount = 1;
nodes.push({
@@ -1293,7 +1232,7 @@
Environmental Factors
(function() {
var intId = "interaction:3";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1304,15 +1243,11 @@
Environmental Factors
var processes = [];
-
- processes.push("mercury ion transport");
-
-
var evidenceCount = 1;
nodes.push({
id: intId,
- label: "Volatile Hg(0) Geothermal Mercury Emission",
+ label: "Measured Gaseous Mercury With Unresolved Microbial Contribution",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1327,7 +1262,7 @@
Environmental Factors
(function() {
var intId = "interaction:4";
- var intType = "SYNTROPHY";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1338,10 +1273,6 @@
Environmental Factors
var processes = [];
-
- processes.push("mercury ion transport");
-
-
var evidenceCount = 1;
nodes.push({
diff --git a/docs/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.html b/docs/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.html
index 73ad22e06..efb887c50 100644
--- a/docs/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.html
+++ b/docs/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.html
@@ -582,7 +582,7 @@
Ecological Interactions
Ecological interaction network for Nitratireductor-Gordonia Z123 LDPE-Degradation 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 (niche partitioning).
+ 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.
@@ -590,8 +590,8 @@
Ecological Interactions
Niche partitioning
+ aria-hidden="true" data-symbol="symbolTriangle2"
+ data-color="#929caa"> Other
@@ -600,9 +600,8 @@ Ecological Interactions
-
Genomic and proteomic analyses of Z123 suggested functional differentiation among the Nitratireductor and Gordonia members across oxidative activation, chain scission, and downstream LDPE metabolism.
+
PARTIAL - Integrated genomic and proteomic analyses suggest differentiation among the Z123 Nitratireductor and Gordonia members across oxidative activation, chain scission and downstream metabolism. This combines gene and protein evidence, but the accessible abstract does not establish strain-resolved substrate partitioning, intermember transfer or polymer-carbon assimilation/mineralization. The consortium-level weight and molecular-weight losses and recombinant MCO1/Lcp3 polymer-modification assays remain positive results; their missing graph endpoints require separate curation.
@@ -635,7 +634,7 @@
Evidence
PMID:42641428
- - SUPPORT (COMPUTATIONAL)
+ - PARTIAL (COMPUTATIONAL)
"Integrated genomic and proteomic analyses suggested functional differentiation among consortium members involving oxidative activation, chain scission, and downstream metabolism."
@@ -652,7 +651,7 @@ Evidence
- Knowledge gaps & discussions (1)
+ Knowledge gaps & discussions (2)
@@ -667,6 +666,21 @@
+
+
+
+
+ KNOWLEDGE_GAP
+ OPEN
+ Which measurements establish the proposed causal mechanism in this exact system?
+
+
Retain the reported 30-day 9.98% weight loss and 50.88% molecular-weight reduction as measured consortium outcomes, and the recombinant MCO1/Lcp3 LDPE-modification assays as separate enzyme-level evidence. GC-MS products are putative LDPE-associated compounds, not isotope-traced assimilation or mineralization. Combined enzymes exceeded corresponding individual half-dose treatments; this does not by itself establish full-dose-matched synergy, necessity in the living consortium or which strain supplied each enzyme. The existing strain-specific question stays open. Missing endpoint nodes await scoped Edison causal research and primary-source inspection; this sparse graph remains needs_research.
+
+
Attaches to: ecological_interactions#Z123 LDPE functional differentiation
+
+
+
+
@@ -920,7 +934,7 @@ Evidence
(function() {
var intId = "interaction:0";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
var processes = [];
diff --git a/history/records/Neocallimastix_Methanobrevibacter_Xylan_Coculture/2026-10-07T041550Z-codex-c8a69e.yaml b/history/records/Neocallimastix_Methanobrevibacter_Xylan_Coculture/2026-10-07T041550Z-codex-c8a69e.yaml
new file mode 100644
index 000000000..110bba703
--- /dev/null
+++ b/history/records/Neocallimastix_Methanobrevibacter_Xylan_Coculture/2026-10-07T041550Z-codex-c8a69e.yaml
@@ -0,0 +1,28 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml
+ slug: Neocallimastix_Methanobrevibacter_Xylan_Coculture
+session:
+ id: 2026-10-07T041550Z-codex-c8a69e
+ timestamp: '2026-10-07T04:15:50Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1637
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain hydrogen-transfer evidence and both positive outcomes; qualify utilization
+ mediation and replace the context-only enzyme arrow with the source hypothesis.; Preserve
+ increased N. frontalis utilization and distinguish it from polymer depolymerization.;
+ Preserve normalized enzyme gains with enzyme/time/organism boundaries, not uniform panel
+ maxima.
+ details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml
diff --git a/history/records/Ngawha_Geothermal_Mercury_Cycling_Community/2026-10-07T041550Z-codex-898bb6.yaml b/history/records/Ngawha_Geothermal_Mercury_Cycling_Community/2026-10-07T041550Z-codex-898bb6.yaml
new file mode 100644
index 000000000..deb6753a8
--- /dev/null
+++ b/history/records/Ngawha_Geothermal_Mercury_Cycling_Community/2026-10-07T041550Z-codex-898bb6.yaml
@@ -0,0 +1,29 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml
+ slug: Ngawha_Geothermal_Mercury_Cycling_Community
+session:
+ id: 2026-10-07T041550Z-codex-898bb6
+ timestamp: '2026-10-07T04:15:50Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1638
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain measured geochemistry; remove the co-occurrence arrow and unsupported transport/niche
+ annotation.; Preserve mer/hgc potential with unbinned methylator, paralog and activity
+ limits; replace aim-fragment evidence with actual result excerpts.; Preserve diversity
+ without temporal stability or demonstrated niche partitioning.; Preserve measured gaseous
+ Hg(0) while separating microbial potential from geogenic and abiotic contributions.; Preserve
+ proposed sulfur/iron/mercury coupling without unsupported syntrophy or transport annotation.
+ details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml
diff --git a/history/records/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom/2026-10-07T041551Z-codex-dc3798.yaml b/history/records/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom/2026-10-07T041551Z-codex-dc3798.yaml
new file mode 100644
index 000000000..f30b7a067
--- /dev/null
+++ b/history/records/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom/2026-10-07T041551Z-codex-dc3798.yaml
@@ -0,0 +1,25 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml
+ slug: Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom
+session:
+ id: 2026-10-07T041551Z-codex-dc3798
+ timestamp: '2026-10-07T04:15:51Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1639
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Qualify proposed genomic/proteomic differentiation without discarding measured
+ polymer and enzyme outcomes; missing endpoint topology stays needs_research.
+ details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml
diff --git a/kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml b/kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml
index daffe4430..2e5fd4c77 100644
--- a/kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml
+++ b/kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml
@@ -74,8 +74,10 @@ taxonomy:
explanation: Supports M. smithii as the archaeal partner in the xylan cocultures.
ecological_interactions:
- name: Interspecies Hydrogen Transfer During Xylan Fermentation
- description: M. smithii removes reducing equivalents from the fungal fermentation, preventing hydrogen
- accumulation and shifting the metabolite profile toward acetate during xylan degradation.
+ description: In the N. frontalis PNK2-M. smithii coculture, hydrogen and formate did not accumulate, acetate formation
+ increased and lactate decreased, consistent with the reported interspecies hydrogen transfer and methanogenesis.
+ M. smithii alone did not utilize xylan or supply the assayed extracellular hydrolase activities. These results
+ support metabolic coupling without establishing obligate dependence of fungal growth on this partner.
interaction_type: SYNTROPHY
scope: PAIRWISE
source_taxon:
@@ -112,29 +114,32 @@ ecological_interactions:
label: biological process involved in interspecies interaction between organisms
downstream:
- target: Methanogen-Stimulated Xylan Utilization
- description: >
- Hydrogen removal by M. smithii shifts fungal fermentation away from
- reduced products, supporting the observed increase in xylan utilization.
+ description: PARTIAL - Methanogenic removal of fermentation products shifts fungal metabolism toward acetate
+ and is proposed to support the observed increase in xylan-derived sugar utilization. The coculture comparison
+ supports the positive effect, but does not isolate hydrogen removal from growth and other partner-associated
+ changes; utilization is distinct from polymer depolymerization.
- target: Enhanced Extracellular Hemicellulase Activities
- description: >
- Interspecies hydrogen transfer in the fungus-methanogen coculture is the
- syntrophic context in which extracellular xylanase and accessory
- hemicellulase activities increase.
+ description: HYPOTHESIZED - Methanogenic product removal is proposed to improve fungal sugar uptake, reducing
+ extracellular xylose accumulation and catabolite repression of hemicellulases. This supplies a mechanistic
+ path to the measured enzyme increase, not merely a shared coculture context; the authors leave control of
+ sugar uptake unresolved.
evidence:
- reference: PMID:16348244
supports: SUPPORT
evidence_source: IN_VITRO
snippet: metabolite profiles became acetogenic as a result of interspecies hydrogen transfer
- explanation: Supports syntrophic hydrogen transfer as the mechanism coupling fungal fermentation to
- the methanogenic partner.
+ explanation: Supports syntrophic hydrogen transfer as the mechanism coupling fungal fermentation to the methanogenic
+ partner.
- reference: PMID:16348244
supports: SUPPORT
evidence_source: IN_VITRO
snippet: more acetate and less lactate were formed, while formate and hydrogen did not accumulate
explanation: Supports the metabolite shift associated with M. smithii coculture.
- name: Methanogen-Stimulated Xylan Utilization
- description: Coculture with M. smithii increases both the rate and extent of xylan utilization by
- anaerobic ruminal fungi relative to axenic fungal culture.
+ description: 'Coculture with M. smithii increased the rate and extent of xylan utilization by N. frontalis PNK2
+ relative to fungal monoculture, with stimulation maintained during an 18-day experiment. Increased utilization
+ does not imply a corresponding increase in polymer depolymerization: N. frontalis already degraded most xylan
+ in both conditions, and the source distinguishes degradation from uptake and fermentation of released sugars.'
interaction_type: SYNTROPHY
scope: PAIRWISE
source_taxon:
@@ -164,8 +169,11 @@ ecological_interactions:
snippet: Both the rate and extent of xylan utilization were increased by coculturing
explanation: Supports increased xylan utilization in the fungus-methanogen coculture.
- name: Enhanced Extracellular Hemicellulase Activities
- description: The M. smithii coculture stimulates extracellular xylanolytic enzyme activities by the
- anaerobic fungal partner, including xylanase, arabinofuranosidase, and beta-xylosidase activities.
+ description: Coculture increased extracellular xylanase, alpha-L-arabinofuranosidase and beta-D-xylosidase specific
+ activities, normalized to fungal protein rather than explained solely by greater biomass. Magnitudes depended
+ on fungus, enzyme, substrate and sampling time; the abstract maxima summarize a comparison panel, not uniform
+ fold changes for N. frontalis PNK2. Cell-bound endopeptidase was not increased and alpha-D-glucosidase was little
+ affected.
interaction_type: SYNTROPHY
scope: PAIRWISE
source_taxon:
@@ -193,12 +201,14 @@ ecological_interactions:
supports: SUPPORT
evidence_source: IN_VITRO
snippet: marked increases in the specific activities of extracellular xylanase (up to fivefold)
- explanation: Supports increased xylanase activity in coculture.
+ explanation: Supports positive extracellular specific-activity changes across the studied fungi; the quoted
+ maximum is not a universal N. frontalis fold change.
- reference: PMID:16348244
supports: SUPPORT
evidence_source: IN_VITRO
snippet: alpha-l-arabinofuranosidase (up to fivefold), and beta-d-xylosidase (up to sevenfold)
- explanation: Supports increased accessory hemicellulase activities in coculture.
+ explanation: Supports positive extracellular specific-activity changes across the studied fungi; the quoted
+ maximum is not a universal N. frontalis fold change.
environmental_factors:
- name: xylan substrate
value: xylan as the growth substrate
@@ -300,3 +310,29 @@ associated_datasets:
snippet: Both the rate and extent of xylan utilization were increased by coculturing
explanation: Supports the phenotypic xylan-utilization dataset represented by this article.
metal_relevance: NOT_APPLICABLE
+discussions:
+- discussion_id: xylan_utilization_repression_and_specific_activity
+ prompt: Which measurements establish the proposed causal mechanism in this exact system?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ posed_by: codex
+ posed_date: '2026-10-07'
+ rationale: Preserve the directly measured coculture utilization and enzyme gains, as well as hydrogen/formate
+ and fermentation-product changes. Distinguish polymer degradation from utilization and protein-normalized enzyme
+ activity from biomass. The primary main text proposes sugar-uptake and catabolite-repression mediation but calls
+ for further work on uptake control. No selective hydrogen-removal or repression-rescue experiment is inferred
+ from the coculture comparison. The three fungal systems in the comparison panel are not additional members of
+ this two-member record.
+ attaches_to:
+ - ecological_interactions#Interspecies Hydrogen Transfer During Xylan Fermentation
+ - ecological_interactions#Methanogen-Stimulated Xylan Utilization
+ - ecological_interactions#Enhanced Extracellular Hemicellulase Activities
+curation_history:
+- timestamp: '2026-10-07T04:15:50Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Retain hydrogen-transfer evidence and both positive outcomes; qualify utilization mediation and replace
+ the context-only enzyme arrow with the source hypothesis.; Preserve increased N. frontalis utilization and distinguish
+ it from polymer depolymerization.; Preserve normalized enzyme gains with enzyme/time/organism boundaries, not
+ uniform panel maxima. Issue #1637; reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml'
+ llm_assisted: true
diff --git a/kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml b/kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml
index 8425c511d..6ae142a1a 100644
--- a/kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml
+++ b/kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml
@@ -106,13 +106,11 @@ taxonomy:
explanation: Supports the archaeal members.
ecological_interactions:
- name: Acidic Warm-Spring Mercury Speciation Regime
- description: >
- Adjacent acidic warm springs in the Ngawha Geothermal Field had pH below
- 4.5, temperatures below 55 C, and exceptionally high dissolved total and
- methylated mercury, defining the geochemical regime constraining microbial
- Hg transformations.
+ description: Geochemical measurements characterize acidic warm Ngawha springs with high dissolved total mercury
+ and methylmercury and high sediment mercury. These measured environmental pools constrain hypotheses about bioavailability,
+ but total dissolved mercury is not synonymous with freely available Hg(II), and co-occurrence does not show
+ that the regime caused the observed diversity.
scope: COMMUNITY_LEVEL
- interaction_type: NICHE_PARTITIONING
metabolites:
- preferred_term: mercury(2+)
term:
@@ -122,34 +120,24 @@ ecological_interactions:
term:
id: CHEBI:49747
label: methylmercury(1+)
- biological_processes:
- - preferred_term: mercury ion transport
- term:
- id: GO:0015694
- label: mercury ion transport
- downstream:
- - target: Diverse Acidophile Guilds Under Ultrahigh Mercury
- description: >
- The high-Hg acidic spring regime was inhabited by unexpectedly diverse
- sulfur-, iron-, Hg/As-resistance, and archaeal guilds.
evidence:
- reference: PMID:32414793
supports: SUPPORT
evidence_source: IN_VIVO
- snippet: >
- acidic warm springs in the Ngawha Geothermal Field (<55°C, pH <4.5),
- Northland Region, Aotearoa New Zealand
- explanation: >
- Supports the acidic warm-spring geochemical setting of the Hg-cycling
- community.
-- name: Genome-Resolved Mercury Transformation Potential
- description: >
- Genome-resolved analysis identified members genetically equipped for the
- three central Hg transformations in the springs: mercury methylation,
- methylmercury demethylation, and Hg(II) reduction to volatile elemental
- Hg(0).
+ snippet: 'acidic warm springs in the Ngawha Geothermal Field (<55°C, pH <4.5), Northland Region, Aotearoa New
+ Zealand
+
+ '
+ explanation: 'Supports the acidic warm-spring geochemical setting of the Hg-cycling community.
+
+ '
+- name: Metagenomic Mercury Transformation Potential
+ description: PARTIAL - Metagenomic merA/merB homologues support potential Hg(II) reduction and organomercurial
+ demethylation. Cub Bath yielded hgcA/hgcB evidence, but hgcA-bearing sequences could not be assigned to a resolved
+ genome or definitive taxon; Tiger Bath nondetection is sequencing-depth bounded. These are positive sequence
+ findings, not measured transformation rates or identified active members for every reaction. HMM merA counts
+ required paralog filtering.
scope: COMMUNITY_LEVEL
- interaction_type: NICHE_PARTITIONING
metabolites:
- preferred_term: mercury(2+)
term:
@@ -159,26 +147,25 @@ ecological_interactions:
term:
id: CHEBI:49747
label: methylmercury(1+)
- biological_processes:
- - preferred_term: mercury ion transport
- term:
- id: GO:0015694
- label: mercury ion transport
evidence:
+ - reference: PMID:32414793
+ supports: PARTIAL
+ evidence_source: COMPUTATIONAL
+ snippet: merB genes were identified
+ explanation: 'Author manuscript Results, page9: actual gene identification supports potential, not enzymatic
+ activity.'
- reference: PMID:32414793
supports: SUPPORT
- evidence_source: IN_VIVO
- snippet: microorganisms genetically equipped for mercury methylation,
- demethylation, or Hg(II) reduction to volatile Hg(0)
- explanation: Supports the three curated Hg-cycling activities.
+ evidence_source: COMPUTATIONAL
+ snippet: The Cub Bath hgcA sequences could not be binned
+ explanation: 'Author manuscript Results, page11: directly limits genome-resolved methylator assignment, despite
+ positive hgcA evidence.'
- name: Diverse Acidophile Guilds Under Ultrahigh Mercury
- description: >
- Despite ultrahigh dissolved and solid mercury concentrations, the geothermal
- microbiome stayed unexpectedly diverse and was dominated by sulfur- and
- iron-cycling bacteria, Hg/As-resistant bacteria, and thermophilic
- acidophilic archaea.
+ description: The sampled Ngawha microbiomes were unexpectedly diverse despite high mercury, with sulfur- and iron-cycling
+ bacteria, Hg/As-resistance potential and acidophilic archaea; the two baths differed in composition. This metagenomic
+ observation does not demonstrate temporal stability, realized niche partitioning, or a mercury-driven diversity
+ increase.
scope: COMMUNITY_LEVEL
- interaction_type: NICHE_PARTITIONING
metabolites:
- preferred_term: mercury(2+)
term:
@@ -188,26 +175,18 @@ ecological_interactions:
term:
id: CHEBI:26833
label: sulfur atom
- biological_processes:
- - preferred_term: biological process involved in interspecies interaction between organisms
- term:
- id: GO:0044419
- label: biological process involved in interspecies interaction between organisms
evidence:
- reference: PMID:32414793
supports: SUPPORT
- evidence_source: IN_VIVO
- snippet: In the context of such ultrahigh mercury levels, the geothermal
- microbiome was unexpectedly diverse
+ evidence_source: COMPUTATIONAL
+ snippet: In the context of such ultrahigh mercury levels, the geothermal microbiome was unexpectedly diverse
explanation: Supports the curated high-diversity-under-high-Hg observation.
-- name: Volatile Hg(0) Geothermal Mercury Emission
- description: >
- Hg- and As-resistant spring bacteria carried the genetic potential to
- reduce inorganic Hg(II) to volatile Hg(0), connecting microbial detoxifying
- potential to the aqueous and gaseous mercury emissions characteristic of
- geothermal systems.
+- name: Measured Gaseous Mercury With Unresolved Microbial Contribution
+ description: 'Gaseous Hg(0) was measured above Tiger and Cub Baths, alongside aqueous and sediment mercury measurements.
+ The source also reports merA-based reduction potential. The measured atmospheric mercury is a positive environmental
+ result, not an isolated microbial emission rate: deep geological inputs and abiotic redox processes also contribute,
+ and their contributions were not separated from microbial reduction.'
scope: COMMUNITY_LEVEL
- interaction_type: NICHE_PARTITIONING
metabolites:
- preferred_term: mercury(2+)
term:
@@ -217,27 +196,19 @@ ecological_interactions:
term:
id: CHEBI:16170
label: mercury(0)
- biological_processes:
- - preferred_term: mercury ion transport
- term:
- id: GO:0015694
- label: mercury ion transport
evidence:
- reference: PMID:32414793
supports: SUPPORT
evidence_source: IN_VIVO
- snippet: Hg(II) reduction to volatile Hg(0)
- explanation: >
- Supports reduction of inorganic Hg(II) to volatile elemental mercury as
- one inferred spring-community transformation.
+ snippet: Gaseous Hg0 emissions were also recorded from the baths
+ explanation: 'Author manuscript Results, page7 and Table2: supports measured gaseous mercury; does not identify
+ its microbial fraction.'
- name: Sulfur-Iron-Coupled Mercury Cycle Model
- description: >
- The study integrated spring-community metagenomic potential with abiotic
- geochemical controls to produce a model in which mercury speciation is
- linked to microbial community dynamics and to sulfur and iron
- biogeochemistry.
+ description: HYPOTHESIZED - The conceptual model links sulfur/iron redox cycling and cinnabar precipitation/dissolution
+ to mercury bioavailability, with potential methylation, demethylation and Hg(II) reduction. These coupled biotic
+ and abiotic reactions are an evidence-informed model, not demonstrated interspecies syntrophy or a measured
+ taxon-to-taxon mercury flux.
scope: COMMUNITY_LEVEL
- interaction_type: SYNTROPHY
metabolites:
- preferred_term: mercury(2+)
term:
@@ -247,21 +218,16 @@ ecological_interactions:
term:
id: CHEBI:26833
label: sulfur atom
- biological_processes:
- - preferred_term: mercury ion transport
- term:
- id: GO:0015694
- label: mercury ion transport
evidence:
- reference: PMID:32414793
- supports: SUPPORT
- evidence_source: IN_VIVO
- snippet: >
- illustrates how geothermal mercury cycling may couple to microbial
- community dynamics and sulfur and iron biogeochemistry
- explanation: >
- Supports the conceptual connection among Hg transformations, the
- microbial community, and sulfur and iron cycles.
+ supports: PARTIAL
+ evidence_source: COMPUTATIONAL
+ snippet: 'illustrates how geothermal mercury cycling may couple to microbial community dynamics and sulfur and
+ iron biogeochemistry
+
+ '
+ explanation: Supports the explicitly conceptual coupling model; it does not establish syntrophy, exclusive biotic
+ attribution or reaction flux.
environmental_factors:
- name: Mercury concentration
value: ultrahigh dissolved and solid Hg
@@ -373,7 +339,35 @@ curation_history:
- timestamp: '2026-10-02T06:15:13Z'
curator: codex
action: REVIEW_CAUSAL_GRAPH
- changes: Removed four downstream edges that linked mercury-speciation,
- metagenomic-potential, acidophile-guild, and conceptual-model findings as
- interpretation steps rather than geothermal mercury-cycling causes.
+ changes: Removed four downstream edges that linked mercury-speciation, metagenomic-potential, acidophile-guild,
+ and conceptual-model findings as interpretation steps rather than geothermal mercury-cycling causes.
+ llm_assisted: true
+- timestamp: '2026-10-07T04:15:50Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Retain measured geochemistry; remove the co-occurrence arrow and unsupported transport/niche annotation.;
+ Preserve mer/hgc potential with unbinned methylator, paralog and activity limits; replace aim-fragment evidence
+ with actual result excerpts.; Preserve diversity without temporal stability or demonstrated niche partitioning.;
+ Preserve measured gaseous Hg(0) while separating microbial potential from geogenic and abiotic contributions.;
+ Preserve proposed sulfur/iron/mercury coupling without unsupported syntrophy or transport annotation. Issue
+ #1638; reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml'
llm_assisted: true
+discussions:
+- discussion_id: ngawha_genes_geogenic_mercury_and_model
+ prompt: Which measurements establish the proposed causal mechanism in this exact system?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ posed_by: codex
+ posed_date: '2026-10-07'
+ rationale: Retain measured mercury pools, atmospheric Hg(0), diverse microbiomes and positive mer/hgc sequence
+ evidence. The hgcA sequences could not be binned, MerA HMM hits included paralogs, and no hgcAB was recovered
+ from resolved sulfate-reducing bins. Absence at one sequencing depth is not biological absence. Environmental
+ concentrations and mer/hgc potential do not isolate microbial rates or prove temporal stability. The sulfur/iron/cinnabar
+ coupling is proposed; selective activity assays and source partitioning are needed. Preserve the earlier removal
+ of four interpretation-workflow arrows and remove the remaining environmental-context arrow.
+ attaches_to:
+ - ecological_interactions#Acidic Warm-Spring Mercury Speciation Regime
+ - ecological_interactions#Metagenomic Mercury Transformation Potential
+ - ecological_interactions#Diverse Acidophile Guilds Under Ultrahigh Mercury
+ - ecological_interactions#Measured Gaseous Mercury With Unresolved Microbial Contribution
+ - ecological_interactions#Sulfur-Iron-Coupled Mercury Cycle Model
diff --git a/kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml b/kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml
index a63edd22b..1447960b4 100644
--- a/kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml
+++ b/kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml
@@ -128,11 +128,12 @@ taxonomy:
explanation: Identifies Gordonia sp. Z-3 as one of the three Z123 members.
ecological_interactions:
- name: Z123 LDPE functional differentiation
- description: >-
- Genomic and proteomic analyses of Z123 suggested functional differentiation
- among the Nitratireductor and Gordonia members across oxidative activation,
- chain scission, and downstream LDPE metabolism.
- interaction_type: NICHE_PARTITIONING
+ description: PARTIAL - Integrated genomic and proteomic analyses suggest differentiation among the Z123 Nitratireductor
+ and Gordonia members across oxidative activation, chain scission and downstream metabolism. This combines gene
+ and protein evidence, but the accessible abstract does not establish strain-resolved substrate partitioning,
+ intermember transfer or polymer-carbon assimilation/mineralization. The consortium-level weight and molecular-weight
+ losses and recombinant MCO1/Lcp3 polymer-modification assays remain positive results; their missing graph endpoints
+ require separate curation.
scope: COMMUNITY_LEVEL
biological_processes:
- preferred_term: alkane catabolic process
@@ -141,15 +142,12 @@ ecological_interactions:
label: alkane catabolic process
evidence:
- reference: PMID:42641428
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: COMPUTATIONAL
- snippet: >-
- Integrated genomic and proteomic analyses suggested functional
- differentiation among consortium members involving oxidative activation,
- chain scission, and downstream metabolism.
- explanation: >-
- Supports a division of labor among Z123 members in the proposed LDPE
- degradation mechanism.
+ snippet: Integrated genomic and proteomic analyses suggested functional differentiation among consortium members
+ involving oxidative activation, chain scission, and downstream metabolism.
+ explanation: Supports the proposed genomic/proteomic functional-differentiation model, not resolved reaction
+ assignments or demonstrated ecological niche partitioning.
environmental_factors:
- name: Pristine LDPE incubation time
value: '30'
@@ -203,21 +201,40 @@ external_resources:
explanation: Lists the exact primary publication for the Z123 LDPE-degrading SynCom.
discussions:
- discussion_id: z123_strain_specific_ldpe_steps
- prompt: >-
- Which Z123 strain encodes and expresses the oxidative activation, chain
- scission, and downstream-metabolism steps in the consortium?
+ prompt: Which Z123 strain encodes and expresses the oxidative activation, chain scission, and downstream-metabolism
+ steps in the consortium?
kind: KNOWLEDGE_GAP
status: OPEN
attaches_to:
- ecological_interactions#Z123 LDPE functional differentiation
- rationale: >-
- The abstract reports functional differentiation among consortium members and
- recombinant MCO1/Lcp3 LDPE activity, but the accessible cache does not assign
- individual enzymes or reaction steps to Nitratireductor sp. Z-1, Gordonia
- sp. Z-2, or Gordonia sp. Z-3.
+ rationale: The abstract reports functional differentiation among consortium members and recombinant MCO1/Lcp3
+ LDPE activity, but the accessible cache does not assign individual enzymes or reaction steps to Nitratireductor
+ sp. Z-1, Gordonia sp. Z-2, or Gordonia sp. Z-3.
posed_by: codex
posed_date: '2026-09-11'
+- discussion_id: z123_measured_outcomes_and_mechanistic_limits
+ prompt: Which measurements establish the proposed causal mechanism in this exact system?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ posed_by: codex
+ posed_date: '2026-10-07'
+ rationale: Retain the reported 30-day 9.98% weight loss and 50.88% molecular-weight reduction as measured consortium
+ outcomes, and the recombinant MCO1/Lcp3 LDPE-modification assays as separate enzyme-level evidence. GC-MS products
+ are putative LDPE-associated compounds, not isotope-traced assimilation or mineralization. Combined enzymes
+ exceeded corresponding individual half-dose treatments; this does not by itself establish full-dose-matched
+ synergy, necessity in the living consortium or which strain supplied each enzyme. The existing strain-specific
+ question stays open. Missing endpoint nodes await scoped Edison causal research and primary-source inspection;
+ this sparse graph remains needs_research.
+ attaches_to:
+ - ecological_interactions#Z123 LDPE functional differentiation
metals_present: []
rare_earth_elements_present: []
metal_relevance: NOT_APPLICABLE
metal_notes: No metal or rare-earth processing role is reported for the Z123 LDPE-degradation consortium.
+curation_history:
+- timestamp: '2026-10-07T04:15:50Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Qualify proposed genomic/proteomic differentiation without discarding measured polymer and enzyme outcomes;
+ missing endpoint topology stays needs_research. Issue #1639; reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml'
+ llm_assisted: true
diff --git a/references_cache/PMID_32414793.md b/references_cache/PMID_32414793.md
index 26e6e0c53..1c6035ec5 100644
--- a/references_cache/PMID_32414793.md
+++ b/references_cache/PMID_32414793.md
@@ -2,7 +2,7 @@
reference_id: PMID:32414793
journal: Appl Environ Microbiol
year: '2020'
-content_type: abstract_only
+content_type: abstract_with_selected_author_manuscript_excerpts
full_text_attempted: true
---
@@ -72,4 +72,18 @@ Copyright © 2020 American Society for Microbiology.
DOI: 10.1128/AEM.00176-20
PMCID: PMC7376564
-PMID: 32414793 [Indexed for MEDLINE]
\ No newline at end of file
+PMID: 32414793 [Indexed for MEDLINE]
+
+## Selected Author Manuscript Excerpts
+
+Source: https://www.osti.gov/servlets/purl/1661210
+Version: 44-page author manuscript, retrieved 2026-10-07 UTC.
+PDF SHA256: dde4319ba9bd4ee4fd8789cea57733f67a88220341c48780b6c1a7215a909701
+Only 22 quoted words are added; this is not a full-text cache or a license claim.
+Manuscript margin line numbers are omitted and line-wrap whitespace normalized.
+
+Results, page 9: "merB genes were identified"
+
+Results, page 11: "The Cub Bath hgcA sequences could not be binned"
+
+Results, page 7: "Gaseous Hg0 emissions were also recorded from the baths"
diff --git a/reports/causal_graph_review/README.md b/reports/causal_graph_review/README.md
index 0400d380b..454f1f8d1 100644
--- a/reports/causal_graph_review/README.md
+++ b/reports/causal_graph_review/README.md
@@ -5,6 +5,34 @@ 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`.
+## Batch77: Xylan Mediation, Mercury Evidence And Missing Outcomes
+
+[Decisions](decisions/20261007-four-records-batch77.yaml),
+[validation](validation-20261007-batch77.json) and
+[self-adversarial review](adversarial-review-20261007-batch77.yaml) cover nine
+existing nodes and three arrows. Three records are repaired, one environmental
+context arrow removed, and two qualified xylan mediation links retained.
+
+Xylan utilization and protein-normalized enzyme gains remain positive findings.
+Ngawha retains measured gaseous mercury, diverse microbiomes and gene evidence,
+without assigning all mercury emission to microbes or unbinned methylators to
+resolved genomes. Z123 retains genomic/proteomic inference and measured polymer
+and recombinant-enzyme outcomes without claiming resolved niche partitioning.
+
+All 12 graph quotations match primary text. One cache adds 22 quoted words from
+Ngawha Results with manuscript provenance; its abstract and 919 other caches
+remain intact. Xylan indexed main text and Ngawha author manuscript were read;
+Ngawha Table2 was visually checked. Nasal full-text review uses an existing cache,
+and LDPE is abstract-bounded. Access barriers were respected.
+
+Nasal is unchanged but explicitly `needs_research`; its empty graph is not
+complete. Nasal and Z123 missing outcome nodes are tracked in #1640/#1641.
+Separate one-record Edison dry runs spent no credits; scoped paid questions
+remain unanswered. Repairs #1637-#1639 await protected-main merge. Metadata
+#1642 and both research issues stay open afterward. Three histories are appended;
+non-graph blocks and canonical taxa are preserved. Self-review is not independent
+approval or corpus completion.
+
## Batch76: Mat Transcripts, Floc Assembly And Inferred Metabolism
[Decisions](decisions/20261007-four-records-batch76.yaml),
diff --git a/reports/causal_graph_review/adversarial-review-20261007-batch77.yaml b/reports/causal_graph_review/adversarial-review-20261007-batch77.yaml
new file mode 100644
index 000000000..9a8aeae85
--- /dev/null
+++ b/reports/causal_graph_review/adversarial-review-20261007-batch77.yaml
@@ -0,0 +1,236 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: a74e8e81dc708280fedbf1fe63453275b3d53394
+scope:
+- kb/communities/Nasal_SynCom_C_Bioreactor.yaml
+- kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml
+- kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml
+- kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml
+decision_ledger: reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml
+validation_report: reports/causal_graph_review/validation-20261007-batch77.json
+findings:
+- issue: 1637
+ severity: P2
+ status: addressed_in_this_change
+ finding: Xylan mediation, utilization/depolymerization and normalized enzyme boundaries.
+ disposition: Close only after protected-main merge.
+- issue: 1638
+ severity: P2
+ status: addressed_in_this_change
+ finding: Ngawha gene, gas-measurement, conceptual-coupling and context-arrow claims.
+ disposition: Close only after protected-main merge.
+- issue: 1639
+ severity: P2
+ status: addressed_in_this_change
+ finding: Z123 proposed functional differentiation versus measured outcomes and unresolved assignments.
+ disposition: Close only after protected-main merge.
+- issue: 1640
+ severity: P2
+ status: unresolved_research
+ finding: Missing Nasal stable-assembly and strain-specific challenge nodes.
+ disposition: Keep OPEN after graph-repair merge; scoped research authorization and report inspection remain pending.
+- issue: 1641
+ severity: P2
+ status: unresolved_research
+ finding: Missing Z123 polymer and enzyme outcome nodes.
+ disposition: Keep OPEN after graph-repair merge; scoped research authorization and report inspection remain pending.
+- issue: 1642
+ severity: P2
+ status: unresolved_non_graph
+ finding: Xylan exact strain detail and Ngawha non-graph activity/stability wording.
+ disposition: Keep OPEN after graph-repair merge.
+adversarial_checks:
+- Every whole record and original node/arrow reviewed after a fresh both-root baseline. Empty Nasal is explicitly
+ needs_research, not omitted or reported complete. No topology invented to satisfy a sparse-graph heuristic.
+- Preserve xylan utilization and extracellular enzyme gains with SUPPORT evidence and correct canonical pairwise
+ directions. Enzyme activities are protein-normalized; increased biomass is not the entire explanation. Abstract
+ maxima span fungi/time/substrates, not uniform PNK2 values.
+- Xylan utilization is distinct from polymer depolymerization. Preserve both existing causal links with partial/hypothesized
+ mediation. Replace shared-context wording by the actual source proposal involving sugar uptake and xylose repression;
+ do not claim a selective hydrogen-removal or repression-rescue perturbation.
+- Ngawha mer/hgc findings are positive sequence evidence. hgcA sequences could not be binned, no definitive methylator
+ taxon is assigned, HMM MerA hits require paralog filtering and Tiger Bath nondetection is depth-bounded. Replace
+ an abstract aim fragment with actual result excerpts, not false activity certainty.
+- 'Ngawha atmospheric Hg(0) really was measured: retain the environmental outcome. Do not attribute the measurement
+ solely to microorganisms because deep geological inputs and abiotic reactions were not isolated. Main manuscript
+ Results and Methods and Table2 were checked; this is not a microbial flux assay.'
+- Retain unexpectedly diverse sampled microbiomes without temporal-stability or niche-partitioning claims. Remove
+ the last environment-to-diversity context arrow while preserving the earlier four-edge removal. Keep the sulfur/iron/cinnabar
+ conceptual model without syntrophy or transport ontology overclaims.
+- Z123 uses genomics plus proteomics, not merely gene prediction. Preserve reported polymer losses and recombinant
+ enzyme assays. Putative GC-MS compounds are not traced assimilation/mineralization; half-dose comparators do not
+ establish full-dose synergy or assign enzyme necessity to a live strain. Missing endpoint nodes remain research
+ work.
+- Nasal source read distinguishes experiment5 from swab experiments1-4, one control plus two reactors per challenge
+ strain, nondetected residents from nine-member inoculum, and proposed tyrosine mechanism from isolated causal
+ rescue. Prior969-972 fixes retained. Fresh full-text access failed; previous cache provenance is explicit.
+- Only22 words of selected author-manuscript Results were appended to one cache, with URL, version and PDF SHA.
+ Original abstract and919 other caches remain unchanged; no publication PDF or full manuscript body is committed.
+ Three result snippets total22 words, verified by test.
+- Nine nodes and three original arrows are accounted for; nine nodes/two arrows remain. Three histories,457 unchanged
+ records and non-graph raw blocks preserved. Canonical taxonomy and auditor rules unchanged. Forty-four baseline
+ warnings and connectivity census must be preserved exactly, not interpreted as resolved member activity.
+- Two separate one-record Edison LITERATURE dry runs completed, with no provider submissions or credits. Scoped
+ asynchronous questions are unanswered; preselection is not approval and earlier denied scopes are unchanged. Research1640/1641
+ and metadata1642 stay OPEN after repairs1637-1639 merge.
+- Schema, strict, terms, full-record references, snippets, histories, both-root inventory/network/rank, regression/lint
+ and deterministic rendering outputs are captured. Exact descriptions are parsed across456 pages, not browser screenshots.
+ Exact-commit review publication and postcommit docs-current remain separate gates. Self-review is not independent
+ approval or corpus completion.
+verification:
+ combined_regressions: 686 passed in 188.36s (0:03:08)
+ new_regression_tests: 9
+ schema_strict_terms_history: Passed with actual outputs/digests
+ references: All four full-record reference validators exit0. CLI Total checks counts issues, not executed checks.
+ All12 graph quotations independently match primary abstract or author-PDF extraction; the latter removes marginal
+ line numbers. One cache adds22 quoted words with provenance;919 others are unchanged. String matching is not
+ entailment. Nasal full-text provenance is a prior cache; LDPE remains abstract-bounded. No recertification of
+ all920 caches.
+ snippet_counts_by_record:
+ kb/communities/Nasal_SynCom_C_Bioreactor.yaml:
+ MATCH: 25
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml:
+ MATCH: 17
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml:
+ MATCH: 16
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml:
+ MATCH: 10
+ RENDERING: 0
+ ASSEMBLED: 0
+ WEAK: 0
+ MISMATCH: 0
+ NOCONTENT: 0
+ primary_graph_snippet_proof:
+ primary_matched: 12
+ new_nodes_or_arrows: 0
+ complete_main_bodies_read: 3
+ nasal_fulltext_provenance: pre-existing cache
+ ldpe_abstract_bounded: true
+ ngawha_table2_visually_inspected: true
+ other_original_figure_pixels_or_separate_pdfs_inspected: false
+ network:
+ existing_findings_preserved: 44
+ added_findings: {}
+ removed_findings: {}
+ interpretation: All44 baseline warnings preserved exactly. Community scope remains aggregate, not resolved member-specific
+ activity. No taxonomy or auditor-rule changes.
+ black_ruff_diff: passed
+ tested_file_sha256:
+ reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml: 0a99a772e824fc64f57a5bb1fb0d68a7f35fb6ad10b12e71fcef5a75739487cc
+ tests/test_causal_review_batch77.py: 33ca8c1ac9006dde5fc1e9a3a8b7322cb351010c5c3cca943879ee1f4b6a7a2a
+ kb/communities/Nasal_SynCom_C_Bioreactor.yaml: 4bd66811333c6960ebab5553e7ce71c8a4f92aa1d81f0fc2c9e2b4f6b75dac2e
+ kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml: 2dfcebb0ae5d58d6bedffe10cda2f9c71f2e8866278739376d7e788835859864
+ kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml: f483df7d09ad54db2c7ee6ef0e4bcaa8f40aa66a12fc8cb4aa5568c2f84243df
+ kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml: b782163d991445cbfabe4645db8c21b3597c0cb40046148fa0f5a208c5342838
+ reports/causal_graph_review/README.md: f53c02d8e2f6d2b5c31555904159855ea85d269fef1424aea68e85d9512ca3c2
+ references_cache/PMID_32414793.md: a75f648c2ea5f44d46a64de72ef5b19ba1a8d9ae076e0369d05834efd06d81c3
+ unchanged_caches: 919
+ cache_changes:
+ - path: references_cache/PMID_32414793.md
+ original_sha256: 0dabdbcc6bfedb6a3941d5ee284628d1d9679351cfa113c96bb9b73d948f96bd
+ sha256: a75f648c2ea5f44d46a64de72ef5b19ba1a8d9ae076e0369d05834efd06d81c3
+ added_quoted_words: 22
+ scope: Original abstract retained plus three selected author-manuscript result excerpts; no full-text redistribution.
+ unchanged_records: 457
+ edison:
+ required_for_this_repair: false
+ required_for_unresolved_extensions: true
+ provider_submissions: 0
+ credits_spent: 0
+ dry_runs:
+ - community_id: CommunityMech:000395
+ job: LITERATURE
+ query_chars: 10512
+ query_sha256: ac0cadaf9977b247dcff336ef57ae50ea322b7c3f24fa78d75b1848e3974f365
+ meta_path: /private/tmp/communitymech-batch77/edison-nasal/Nasal_SynCom_C_Bioreactor-edison-literature-causal-meta.yaml
+ authorization: Scoped asynchronous question unanswered; preselection is not approval.
+ - community_id: CommunityMech:000342
+ job: LITERATURE
+ query_chars: 8208
+ query_sha256: 4287fdb9eb800acdc04b5ab0f1e3725588bbadefce5cbe6c7ea6309e079e8f79
+ meta_path: /private/tmp/communitymech-batch77/edison-ldpe/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-edison-literature-causal-meta.yaml
+ authorization: Scoped asynchronous question unanswered; preselection is not approval.
+ post_commit_docs_current: Separate publication gate, not asserted before commit.
+participant_census:
+ measurements:
+ baseline:
+ records: 460
+ with_community_level: 393
+ mixed: 125
+ community_level_only: 268
+ taxa: 1511
+ credited_solely_by_the_rule: 1240
+ current:
+ records: 460
+ with_community_level: 393
+ mixed: 125
+ community_level_only: 268
+ taxa: 1511
+ credited_solely_by_the_rule: 1240
+ delta:
+ records: 0
+ with_community_level: 0
+ mixed: 0
+ community_level_only: 0
+ taxa: 0
+ credited_solely_by_the_rule: 0
+ interpretation: No scope-count change, taxonomy edit, or auditor-rule change. Aggregate outcomes do not establish
+ member-resolved activity.
+corpus:
+ records: 460
+ nodes: 1447
+ edges: 615
+ review_status_counts:
+ needs_research: 28
+ pending: 184
+ reviewed: 248
+limitations:
+- Fresh before-paper baseline covers460 records and920 caches across both roots including ignored/hidden files.
+ All9 existing nodes and3 arrows reviewed;9nodes2arrows remain. Three guarded repairs/histories; Nasal byte-for-byte
+ unchanged but needs_research, not complete.
+- Nasal full cached main body and embedded captions read with folded bounded output; initial oversized-line truncation
+ and S6 caption gap were corrected by rereading. Fresh abstract only independently retrieved. Cached supplement
+ table extraction read, not original PDF pixels. BioRxiv403 was respected.
+- Xylan complete main body, tables and captions read from publisher-indexed PDF acquired before normal download403.
+ PMC challenge respected; screenshot tool returned citation text rather than image pixels, so no visual figure
+ audit is claimed. EuropePMC XML500 was not absence of full text.
+- Ngawha author manuscript main body, tables and captions read; Table2 page44 visually inspected. Original figure
+ panels and separate supplement not audited. Final abstract and author manuscript are distinct versions; no silent
+ replacement of final abstract numbers.
+- LDPE review is primary-abstract bounded. Missing Methods are not evidence that controls do not exist. Genomics
+ plus proteomics and actual recombinant enzyme assays are preserved; no isotope-traced assimilation or full-dose
+ matched synergy inferred.
+- All12 graph excerpts independently match fresh abstract or author-PDF text. Only22 quoted words from actual Ngawha
+ Results are appended to one cache with URL/version/PDF digest; original abstract and919 other caches preserved.
+ No full paper or publication PDF uploaded. String matching is not entailment proof.
+- Preserve xylan hydrogen transfer, utilization and specific-enzyme gains. Utilization is not depolymerization;
+ panel maxima are not uniform PNK2 effects. Two existing arrows retained as partial/hypothesized mediation; sugar-uptake
+ control remains unresolved.
+- Preserve Ngawha environmental Hg pools and actual atmospheric Hg(0), sequence potential and diversity. Unbinned
+ hgcA, paralog filtering, sequencing depth and geogenic inputs bound causality. No temporal stability, demonstrated
+ niche partitioning, syntrophy or transport process is inferred. Prior four-edge removal is preserved.
+- Nasal graph and Z123 measured endpoint extensions remain needs_research. Two separate one-record Edison LITERATURE
+ dry runs used zero credits; no provider submission. Scoped questions await actual reply; generic authorization
+ and earlier pending or denied scopes are not broadened.
+- Dedup:920 all-state issue titles/bodies and22 local matching files with ignored/hidden-inclusive search excluding
+ git/docs/site/cache. Matching969-972 read and retained. No exhaustive PR-comment audit. One incorrect research-source
+ path errored; corrected script inspection supersedes it and is not an absence claim.
+- Repairs1637-1639 remain OPEN until protected-main merge; research1640/1641 and metadata1642 remain OPEN afterward.
+ Non-graph blocks and canonical taxa are preserved, not certified. Self-adversarial review is not independent approval
+ or corpus completion.
diff --git a/reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml b/reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml
new file mode 100644
index 000000000..581e2da34
--- /dev/null
+++ b/reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml
@@ -0,0 +1,434 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: a74e8e81dc708280fedbf1fe63453275b3d53394
+baseline_commit: a74e8e81dc708280fedbf1fe63453275b3d53394
+base_tree: af15a3f4829604babf9569dce2e6b1e3d34ec83d
+pre_source_baseline_sha256: aa0e4b3ab8218fc1bb1820fa686ed00ac6c7f45c41b1bcce986879cdb8843928
+issues:
+- 1637
+- 1638
+- 1639
+unresolved_non_graph_issues:
+- 1642
+unresolved_research_issues:
+- 1640
+- 1641
+issue_deduplication:
+ all_state_issue_titles_and_bodies: 920
+ ignored_hidden_local_search: true
+ matching_local_files: 22
+ matching_issues:
+ - 969
+ - 970
+ - 971
+ - 972
+primary_artifacts:
+ /private/tmp/communitymech-batch77/baseline.json: aa0e4b3ab8218fc1bb1820fa686ed00ac6c7f45c41b1bcce986879cdb8843928
+ ? /private/tmp/communitymech-batch77/edison-ldpe/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-edison-literature-causal-meta.yaml
+ : e044c5321ced283e62c4a4c983feab2865446fd6e5bd6f2d58c888dcebde26ac
+ /private/tmp/communitymech-batch77/edison-nasal/Nasal_SynCom_C_Bioreactor-edison-literature-causal-meta.yaml: d749acbc08cdb8e8950dcda5db92f2620a397d801134990850e1942fffbfd76f
+ /private/tmp/communitymech-batch77/ldpe-metadata.json: 129c073a3674e59170a514cc0fa6ab15376d3a02275b9faa6466df097099b806
+ /private/tmp/communitymech-batch77/ldpe-primary.txt: ae767abcc3cd26b5eb40a65b8ba6f749cb9f8f00262e464148dd468abdec74fd
+ /private/tmp/communitymech-batch77/mercury-metadata.json: 82efe014cf42d08d80c1f48fa2f391f0b8d92f7039f460aa4c15ff24fd8c13e7
+ /private/tmp/communitymech-batch77/mercury-no-margin-numbers.txt: d539fab727ad7dd1ec8a5cc7e0614f0e54a33037944c83d60a62b042e98d482e
+ /private/tmp/communitymech-batch77/mercury-osti.pdf: dde4319ba9bd4ee4fd8789cea57733f67a88220341c48780b6c1a7215a909701
+ /private/tmp/communitymech-batch77/mercury-osti.txt: 08e829f235160268c9adad55ccc5d4668b8923d821c0668a0045296e95bb0ff0
+ /private/tmp/communitymech-batch77/mercury-primary.txt: 854608bd4b801f31ecde2cc814c427bcc35e13f73647445ce0226a46f97dadf5
+ /private/tmp/communitymech-batch77/mercury-table2.png: a9447b17be0a1bcd4e159751b349fe8df284688171619c447b96435d6bfbad9e
+ /private/tmp/communitymech-batch77/primary-manifest.json: 3a38a0f64a57e1d721265591dde637309229736dec053fcb59abe89520dc575d
+ /private/tmp/communitymech-batch77/xylan-indexed-0.txt: 003c81836bd3fa6a8f3e24445fcd57d3a8861c1b17bcbcdbe7373175bf994c27
+ /private/tmp/communitymech-batch77/xylan-indexed-250.txt: cdd3851de904c5bbc3906b088f791f9b71e39312884e8e98d633adb990dd6bb1
+ /private/tmp/communitymech-batch77/xylan-indexed-625.txt: eb9c897f11cddccaf1083997fee6c52007dcb1d2366dbe4ad4a55cc248db0ad5
+ /private/tmp/communitymech-batch77/xylan-metadata.json: 7ade09f265b849b220012ae11a130a025f4be10ff6162654151af9a03b0584ad
+ /private/tmp/communitymech-batch77/xylan-primary.txt: 774f40a32c18d0504690430487c01bd5c2c074853102d47453830ccaccc560cf
+ /private/tmp/communitymech-causal-batch77/references_cache/doi_10.64898_2026.03.16.712028.md: 46a337ff25e4f9f16f874d9d305a212c9a437bdb96305d753827450e06e4be6d
+ /private/tmp/communitymech-causal-batch77/references_cache/doi_10.64898_2026.03.16.712028.supplement.md: 90b71bdcf0f071f2b99b53174601664edf903690f1bc4e61cda1b282ee85e23e
+primary_urls:
+- https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A16348244+AND+SRC%3AMED&format=json&resultType=core
+- https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A32414793+AND+SRC%3AMED&format=json&resultType=core
+- https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=EXT_ID%3A42641428+AND+SRC%3AMED&format=json&resultType=core
+- https://doi.org/10.64898/2026.03.16.712028
+- https://journals.asm.org/doi/reader/10.1128/aem.56.8.2287-2295.1990
+- https://www.osti.gov/servlets/purl/1661210
+- https://pubmed.ncbi.nlm.nih.gov/42641428/
+primary_graph_snippet_count: 12
+cache_matched_graph_snippet_count: 12
+snippet_checks:
+- record: Neocallimastix_Methanobrevibacter_Xylan_Coculture
+ node: Interspecies Hydrogen Transfer During Xylan Fermentation
+ reference: PMID:16348244
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/xylan-primary.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Neocallimastix_Methanobrevibacter_Xylan_Coculture
+ node: Interspecies Hydrogen Transfer During Xylan Fermentation
+ reference: PMID:16348244
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/xylan-primary.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Neocallimastix_Methanobrevibacter_Xylan_Coculture
+ node: Methanogen-Stimulated Xylan Utilization
+ reference: PMID:16348244
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/xylan-primary.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Neocallimastix_Methanobrevibacter_Xylan_Coculture
+ node: Enhanced Extracellular Hemicellulase Activities
+ reference: PMID:16348244
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/xylan-primary.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Neocallimastix_Methanobrevibacter_Xylan_Coculture
+ node: Enhanced Extracellular Hemicellulase Activities
+ reference: PMID:16348244
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/xylan-primary.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Ngawha_Geothermal_Mercury_Cycling_Community
+ node: Acidic Warm-Spring Mercury Speciation Regime
+ reference: PMID:32414793
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/mercury-primary.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Ngawha_Geothermal_Mercury_Cycling_Community
+ node: Metagenomic Mercury Transformation Potential
+ reference: PMID:32414793
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/mercury-no-margin-numbers.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Ngawha_Geothermal_Mercury_Cycling_Community
+ node: Metagenomic Mercury Transformation Potential
+ reference: PMID:32414793
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/mercury-no-margin-numbers.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Ngawha_Geothermal_Mercury_Cycling_Community
+ node: Diverse Acidophile Guilds Under Ultrahigh Mercury
+ reference: PMID:32414793
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/mercury-primary.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Ngawha_Geothermal_Mercury_Cycling_Community
+ node: Measured Gaseous Mercury With Unresolved Microbial Contribution
+ reference: PMID:32414793
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/mercury-no-margin-numbers.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Ngawha_Geothermal_Mercury_Cycling_Community
+ node: Sulfur-Iron-Coupled Mercury Cycle Model
+ reference: PMID:32414793
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/mercury-primary.txt
+ - /private/tmp/communitymech-batch77/mercury-no-margin-numbers.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+- record: Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom
+ node: Z123 LDPE functional differentiation
+ reference: PMID:42641428
+ cache_matched: true
+ independent_primary_match: true
+ matched_artifacts:
+ - /private/tmp/communitymech-batch77/ldpe-primary.txt
+ method: Whitespace-only match against fresh abstract or author-PDF extraction with margin numbers removed.
+cache_changes:
+- path: references_cache/PMID_32414793.md
+ original_sha256: 0dabdbcc6bfedb6a3941d5ee284628d1d9679351cfa113c96bb9b73d948f96bd
+ sha256: a75f648c2ea5f44d46a64de72ef5b19ba1a8d9ae076e0369d05834efd06d81c3
+ added_quoted_words: 22
+ scope: Original abstract retained plus three selected author-manuscript result excerpts; no full-text redistribution.
+edison:
+ required_for_this_repair: false
+ required_for_unresolved_extensions: true
+ provider_submissions: 0
+ credits_spent: 0
+ dry_runs:
+ - community_id: CommunityMech:000395
+ job: LITERATURE
+ query_chars: 10512
+ query_sha256: ac0cadaf9977b247dcff336ef57ae50ea322b7c3f24fa78d75b1848e3974f365
+ meta_path: /private/tmp/communitymech-batch77/edison-nasal/Nasal_SynCom_C_Bioreactor-edison-literature-causal-meta.yaml
+ authorization: Scoped asynchronous question unanswered; preselection is not approval.
+ - community_id: CommunityMech:000342
+ job: LITERATURE
+ query_chars: 8208
+ query_sha256: 4287fdb9eb800acdc04b5ab0f1e3725588bbadefce5cbe6c7ea6309e079e8f79
+ meta_path: /private/tmp/communitymech-batch77/edison-ldpe/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-edison-literature-causal-meta.yaml
+ authorization: Scoped asynchronous question unanswered; preselection is not approval.
+limitations:
+- Fresh before-paper baseline covers460 records and920 caches across both roots including ignored/hidden files.
+ All9 existing nodes and3 arrows reviewed;9nodes2arrows remain. Three guarded repairs/histories; Nasal byte-for-byte
+ unchanged but needs_research, not complete.
+- Nasal full cached main body and embedded captions read with folded bounded output; initial oversized-line truncation
+ and S6 caption gap were corrected by rereading. Fresh abstract only independently retrieved. Cached supplement
+ table extraction read, not original PDF pixels. BioRxiv403 was respected.
+- Xylan complete main body, tables and captions read from publisher-indexed PDF acquired before normal download403.
+ PMC challenge respected; screenshot tool returned citation text rather than image pixels, so no visual figure
+ audit is claimed. EuropePMC XML500 was not absence of full text.
+- Ngawha author manuscript main body, tables and captions read; Table2 page44 visually inspected. Original figure
+ panels and separate supplement not audited. Final abstract and author manuscript are distinct versions; no silent
+ replacement of final abstract numbers.
+- LDPE review is primary-abstract bounded. Missing Methods are not evidence that controls do not exist. Genomics
+ plus proteomics and actual recombinant enzyme assays are preserved; no isotope-traced assimilation or full-dose
+ matched synergy inferred.
+- All12 graph excerpts independently match fresh abstract or author-PDF text. Only22 quoted words from actual Ngawha
+ Results are appended to one cache with URL/version/PDF digest; original abstract and919 other caches preserved.
+ No full paper or publication PDF uploaded. String matching is not entailment proof.
+- Preserve xylan hydrogen transfer, utilization and specific-enzyme gains. Utilization is not depolymerization;
+ panel maxima are not uniform PNK2 effects. Two existing arrows retained as partial/hypothesized mediation; sugar-uptake
+ control remains unresolved.
+- Preserve Ngawha environmental Hg pools and actual atmospheric Hg(0), sequence potential and diversity. Unbinned
+ hgcA, paralog filtering, sequencing depth and geogenic inputs bound causality. No temporal stability, demonstrated
+ niche partitioning, syntrophy or transport process is inferred. Prior four-edge removal is preserved.
+- Nasal graph and Z123 measured endpoint extensions remain needs_research. Two separate one-record Edison LITERATURE
+ dry runs used zero credits; no provider submission. Scoped questions await actual reply; generic authorization
+ and earlier pending or denied scopes are not broadened.
+- Dedup:920 all-state issue titles/bodies and22 local matching files with ignored/hidden-inclusive search excluding
+ git/docs/site/cache. Matching969-972 read and retained. No exhaustive PR-comment audit. One incorrect research-source
+ path errored; corrected script inspection supersedes it and is not an absence claim.
+- Repairs1637-1639 remain OPEN until protected-main merge; research1640/1641 and metadata1642 remain OPEN afterward.
+ Non-graph blocks and canonical taxa are preserved, not certified. Self-adversarial review is not independent approval
+ or corpus completion.
+records:
+- path: kb/communities/Nasal_SynCom_C_Bioreactor.yaml
+ id: CommunityMech:000395
+ original_sha256: 4bd66811333c6960ebab5553e7ce71c8a4f92aa1d81f0fc2c9e2b4f6b75dac2e
+ record_sha256: 4bd66811333c6960ebab5553e7ce71c8a4f92aa1d81f0fc2c9e2b4f6b75dac2e
+ status: needs_research
+ outcome: unchanged
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml
+ scope: Whole record and all existing nodes/arrows; explicit missing endpoint work retained. Not whole-record certification.
+ summary: 'Empty Nasal graph remains needs_research: stable assembly and differential challenge outcomes need source-backed
+ nodes after scoped Edison research; no arbitrary record change.'
+ renamed_nodes: {}
+ node_decisions: []
+ removed_node_decisions: []
+ edges_before: []
+ edges_after: []
+ retained_edge_decisions: []
+ removed_edge_decisions: []
+ references:
+ - doi:10.64898/2026.03.16.712028
+ issues:
+ - 1640
+ allowed_changed_fields: []
+ curation_events_added: 0
+ history_files: []
+ source_review:
+ url: https://doi.org/10.64898/2026.03.16.712028
+ scope: Fresh publisher-indexed abstract plus pre-existing cached primary main body and embedded captions and
+ supplement-table extraction; normal publisher403. Cached full text not freshly independently downloaded.
+- path: kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml
+ id: CommunityMech:000156
+ original_sha256: 6a97357d94b1f2d68620177a55fd02f5c15730cbe9fb7cf247145ebc57bc8822
+ record_sha256: 2dfcebb0ae5d58d6bedffe10cda2f9c71f2e8866278739376d7e788835859864
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml
+ scope: Whole record and all existing nodes/arrows; explicit missing endpoint work retained. Not whole-record certification.
+ summary: Retain hydrogen-transfer evidence and both positive outcomes; qualify utilization mediation and replace
+ the context-only enzyme arrow with the source hypothesis.; Preserve increased N. frontalis utilization and distinguish
+ it from polymer depolymerization.; Preserve normalized enzyme gains with enzyme/time/organism boundaries, not
+ uniform panel maxima.
+ renamed_nodes: {}
+ node_decisions:
+ - node: Interspecies Hydrogen Transfer During Xylan Fermentation
+ original_node: Interspecies Hydrogen Transfer During Xylan Fermentation
+ rationale: Retain hydrogen-transfer evidence and both positive outcomes; qualify utilization mediation and replace
+ the context-only enzyme arrow with the source hypothesis.
+ - node: Methanogen-Stimulated Xylan Utilization
+ original_node: Methanogen-Stimulated Xylan Utilization
+ rationale: Preserve increased N. frontalis utilization and distinguish it from polymer depolymerization.
+ - node: Enhanced Extracellular Hemicellulase Activities
+ original_node: Enhanced Extracellular Hemicellulase Activities
+ rationale: Preserve normalized enzyme gains with enzyme/time/organism boundaries, not uniform panel maxima.
+ removed_node_decisions: []
+ edges_before:
+ - source: Interspecies Hydrogen Transfer During Xylan Fermentation
+ target: Methanogen-Stimulated Xylan Utilization
+ description: 'Hydrogen removal by M. smithii shifts fungal fermentation away from reduced products, supporting
+ the observed increase in xylan utilization.
+
+ '
+ - source: Interspecies Hydrogen Transfer During Xylan Fermentation
+ target: Enhanced Extracellular Hemicellulase Activities
+ description: 'Interspecies hydrogen transfer in the fungus-methanogen coculture is the syntrophic context in
+ which extracellular xylanase and accessory hemicellulase activities increase.
+
+ '
+ edges_after:
+ - source: Interspecies Hydrogen Transfer During Xylan Fermentation
+ target: Methanogen-Stimulated Xylan Utilization
+ description: PARTIAL - Methanogenic removal of fermentation products shifts fungal metabolism toward acetate
+ and is proposed to support the observed increase in xylan-derived sugar utilization. The coculture comparison
+ supports the positive effect, but does not isolate hydrogen removal from growth and other partner-associated
+ changes; utilization is distinct from polymer depolymerization.
+ - source: Interspecies Hydrogen Transfer During Xylan Fermentation
+ target: Enhanced Extracellular Hemicellulase Activities
+ description: HYPOTHESIZED - Methanogenic product removal is proposed to improve fungal sugar uptake, reducing
+ extracellular xylose accumulation and catabolite repression of hemicellulases. This supplies a mechanistic
+ path to the measured enzyme increase, not merely a shared coculture context; the authors leave control of
+ sugar uptake unresolved.
+ retained_edge_decisions:
+ - source: Interspecies Hydrogen Transfer During Xylan Fermentation
+ target: Methanogen-Stimulated Xylan Utilization
+ description: PARTIAL - Methanogenic removal of fermentation products shifts fungal metabolism toward acetate
+ and is proposed to support the observed increase in xylan-derived sugar utilization. The coculture comparison
+ supports the positive effect, but does not isolate hydrogen removal from growth and other partner-associated
+ changes; utilization is distinct from polymer depolymerization.
+ rationale: PARTIAL - Methanogenic removal of fermentation products shifts fungal metabolism toward acetate and
+ is proposed to support the observed increase in xylan-derived sugar utilization. The coculture comparison
+ supports the positive effect, but does not isolate hydrogen removal from growth and other partner-associated
+ changes; utilization is distinct from polymer depolymerization.
+ - source: Interspecies Hydrogen Transfer During Xylan Fermentation
+ target: Enhanced Extracellular Hemicellulase Activities
+ description: HYPOTHESIZED - Methanogenic product removal is proposed to improve fungal sugar uptake, reducing
+ extracellular xylose accumulation and catabolite repression of hemicellulases. This supplies a mechanistic
+ path to the measured enzyme increase, not merely a shared coculture context; the authors leave control of
+ sugar uptake unresolved.
+ rationale: HYPOTHESIZED - Methanogenic product removal is proposed to improve fungal sugar uptake, reducing
+ extracellular xylose accumulation and catabolite repression of hemicellulases. This supplies a mechanistic
+ path to the measured enzyme increase, not merely a shared coculture context; the authors leave control of
+ sugar uptake unresolved.
+ removed_edge_decisions: []
+ references:
+ - PMID:16348244
+ issues:
+ - 1637
+ - 1642
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Neocallimastix_Methanobrevibacter_Xylan_Coculture/2026-10-07T041550Z-codex-c8a69e.yaml
+ source_review:
+ url: https://journals.asm.org/doi/reader/10.1128/aem.56.8.2287-2295.1990
+ scope: Full main body, embedded tables1-3 and captions read in previously obtained publisher-indexed PDF text.
+ Later normal PDF download403 and PMC challenge respected. No PDF pixels inspected.
+- path: kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml
+ id: CommunityMech:000243
+ original_sha256: d3c022f231bef27bccb77dfeb5445a69bb036bfb5dc1a6f55302ef9188c69191
+ record_sha256: f483df7d09ad54db2c7ee6ef0e4bcaa8f40aa66a12fc8cb4aa5568c2f84243df
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml
+ scope: Whole record and all existing nodes/arrows; explicit missing endpoint work retained. Not whole-record certification.
+ summary: Retain measured geochemistry; remove the co-occurrence arrow and unsupported transport/niche annotation.;
+ Preserve mer/hgc potential with unbinned methylator, paralog and activity limits; replace aim-fragment evidence
+ with actual result excerpts.; Preserve diversity without temporal stability or demonstrated niche partitioning.;
+ Preserve measured gaseous Hg(0) while separating microbial potential from geogenic and abiotic contributions.;
+ Preserve proposed sulfur/iron/mercury coupling without unsupported syntrophy or transport annotation.
+ renamed_nodes:
+ Genome-Resolved Mercury Transformation Potential: Metagenomic Mercury Transformation Potential
+ Volatile Hg(0) Geothermal Mercury Emission: Measured Gaseous Mercury With Unresolved Microbial Contribution
+ node_decisions:
+ - node: Acidic Warm-Spring Mercury Speciation Regime
+ original_node: Acidic Warm-Spring Mercury Speciation Regime
+ rationale: Retain measured geochemistry; remove the co-occurrence arrow and unsupported transport/niche annotation.
+ - node: Metagenomic Mercury Transformation Potential
+ original_node: Genome-Resolved Mercury Transformation Potential
+ rationale: Preserve mer/hgc potential with unbinned methylator, paralog and activity limits; replace aim-fragment
+ evidence with actual result excerpts.
+ - node: Diverse Acidophile Guilds Under Ultrahigh Mercury
+ original_node: Diverse Acidophile Guilds Under Ultrahigh Mercury
+ rationale: Preserve diversity without temporal stability or demonstrated niche partitioning.
+ - node: Measured Gaseous Mercury With Unresolved Microbial Contribution
+ original_node: Volatile Hg(0) Geothermal Mercury Emission
+ rationale: Preserve measured gaseous Hg(0) while separating microbial potential from geogenic and abiotic contributions.
+ - node: Sulfur-Iron-Coupled Mercury Cycle Model
+ original_node: Sulfur-Iron-Coupled Mercury Cycle Model
+ rationale: Preserve proposed sulfur/iron/mercury coupling without unsupported syntrophy or transport annotation.
+ removed_node_decisions: []
+ edges_before:
+ - source: Acidic Warm-Spring Mercury Speciation Regime
+ target: Diverse Acidophile Guilds Under Ultrahigh Mercury
+ description: 'The high-Hg acidic spring regime was inhabited by unexpectedly diverse sulfur-, iron-, Hg/As-resistance,
+ and archaeal guilds.
+
+ '
+ edges_after: []
+ retained_edge_decisions: []
+ removed_edge_decisions:
+ - source: Acidic Warm-Spring Mercury Speciation Regime
+ target: Diverse Acidophile Guilds Under Ultrahigh Mercury
+ description: 'The high-Hg acidic spring regime was inhabited by unexpectedly diverse sulfur-, iron-, Hg/As-resistance,
+ and archaeal guilds.
+
+ '
+ rationale: Environmental co-occurrence is not evidence that geochemistry caused measured community diversity.
+ references:
+ - PMID:32414793
+ issues:
+ - 1638
+ - 1642
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Ngawha_Geothermal_Mercury_Cycling_Community/2026-10-07T041550Z-codex-898bb6.yaml
+ source_review:
+ url: https://www.osti.gov/servlets/purl/1661210
+ scope: Author manuscript44pages; full main body, table text and captions read; Table2 page44 visually inspected.
+ Figures not present as panels in this manuscript; separate supplement not read. Final abstract also read;
+ manuscript/version differences kept explicit.
+- path: kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml
+ id: CommunityMech:000342
+ original_sha256: 1d2801e6c5b61451bbbe16f3e2d49fb50b73d84bd2494a591e6601ea43b3a60b
+ record_sha256: b782163d991445cbfabe4645db8c21b3597c0cb40046148fa0f5a208c5342838
+ status: needs_research
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml
+ scope: Whole record and all existing nodes/arrows; explicit missing endpoint work retained. Not whole-record certification.
+ summary: Qualify proposed genomic/proteomic differentiation without discarding measured polymer and enzyme outcomes;
+ missing endpoint topology stays needs_research.
+ renamed_nodes: {}
+ node_decisions:
+ - node: Z123 LDPE functional differentiation
+ original_node: Z123 LDPE functional differentiation
+ rationale: Qualify proposed genomic/proteomic differentiation without discarding measured polymer and enzyme
+ outcomes; missing endpoint topology stays needs_research.
+ removed_node_decisions: []
+ edges_before: []
+ edges_after: []
+ retained_edge_decisions: []
+ removed_edge_decisions: []
+ references:
+ - PMID:42641428
+ issues:
+ - 1639
+ - 1641
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ history_files:
+ - history/records/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom/2026-10-07T041551Z-codex-dc3798.yaml
+ source_review:
+ url: https://pubmed.ncbi.nlm.nih.gov/42641428/
+ scope: Fresh primary abstract read; no full Methods or separate supplement audited.
diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv
index d986ae5ef..7c2976018 100644
--- a/reports/causal_graph_review/inventory.tsv
+++ b/reports/causal_graph_review/inventory.tsv
@@ -271,10 +271,10 @@ kb/communities/Mushroom_Spring_Hot_Spring_Phototrophic_Mat_Community.yaml Commun
kb/communities/NCycle_Bioflocculation_Model_Consortium.yaml CommunityMech:000126 f0b81d66223077f101b4157c1d115a99d0be593a2b9b4a0c2dcfb8f6ad38f21a 3 1 90.0 reports/causal_graph_review/decisions/20261007-four-records-batch76.yaml reviewed
kb/communities/NDC6_Psychrotolerant_Nitrogen_Removal_SynCom.yaml CommunityMech:000463 1a1c02d8b33165075608eba9bc482646843cecfe41a7a99c3d47f5ab9bbb5c97 1 0 55.0 reports/causal_graph_review/decisions/20261007-four-records-batch76.yaml reviewed
kb/communities/Naica_Deep_Subsurface_Thermophilic.yaml CommunityMech:000046 18f4bc69aff646a74cd4f402b36be2a789d02e69a04efcd9c43a94e2c15dc8e9 3 0 65.0 reports/causal_graph_review/decisions/20261007-four-records-batch76.yaml reviewed
-kb/communities/Nasal_SynCom_C_Bioreactor.yaml CommunityMech:000395 4bd66811333c6960ebab5553e7ce71c8a4f92aa1d81f0fc2c9e2b4f6b75dac2e 0 0 0.0 pending
-kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml CommunityMech:000156 6a97357d94b1f2d68620177a55fd02f5c15730cbe9fb7cf247145ebc57bc8822 3 2 100.0 pending
-kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml CommunityMech:000243 d3c022f231bef27bccb77dfeb5445a69bb036bfb5dc1a6f55302ef9188c69191 5 1 90.0 pending
-kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml CommunityMech:000342 1d2801e6c5b61451bbbe16f3e2d49fb50b73d84bd2494a591e6601ea43b3a60b 1 0 65.0 pending
+kb/communities/Nasal_SynCom_C_Bioreactor.yaml CommunityMech:000395 4bd66811333c6960ebab5553e7ce71c8a4f92aa1d81f0fc2c9e2b4f6b75dac2e 0 0 0.0 reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml needs_research
+kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml CommunityMech:000156 2dfcebb0ae5d58d6bedffe10cda2f9c71f2e8866278739376d7e788835859864 3 2 100.0 reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml reviewed
+kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml CommunityMech:000243 f483df7d09ad54db2c7ee6ef0e4bcaa8f40aa66a12fc8cb4aa5568c2f84243df 5 0 65.0 reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml reviewed
+kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml CommunityMech:000342 b782163d991445cbfabe4645db8c21b3597c0cb40046148fa0f5a208c5342838 1 0 55.0 reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml needs_research
kb/communities/Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium.yaml CommunityMech:000433 46957070bdbb0560357ac1bd198673784315576a2a5797b54ccea01dd55f184d 1 0 63.3 pending
kb/communities/OMM12_Gnotobiotic_Mouse_Gut_Community.yaml CommunityMech:000133 410fdef86f2d9df0febcea39df64b3c69113651f167bbdaaa34f6a54113987e1 3 2 100.0 pending
kb/communities/ORNL_Clostridium_Desulfovibrio_Geobacter_Trophic_Model.yaml CommunityMech:000176 afbab59187bdd475102e8ec957a1039ef0d09eaf792cf8817285e3a0c73ffd33 4 2 100.0 pending
diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json
index 6f253b859..31ef4cd53 100644
--- a/reports/causal_graph_review/summary.json
+++ b/reports/causal_graph_review/summary.json
@@ -3,13 +3,13 @@
"semantic_review_rule": "Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.",
"records": 460,
"nodes": 1447,
- "edges": 616,
+ "edges": 615,
"records_without_nodes": 8,
- "records_without_edges": 165,
+ "records_without_edges": 166,
"review_status_counts": {
- "needs_research": 26,
- "pending": 188,
- "reviewed": 246
+ "needs_research": 28,
+ "pending": 184,
+ "reviewed": 248
},
"structural_defects": [],
"network_audit": [
diff --git a/reports/causal_graph_review/validation-20261007-batch77.json b/reports/causal_graph_review/validation-20261007-batch77.json
new file mode 100644
index 000000000..57fd07c89
--- /dev/null
+++ b/reports/causal_graph_review/validation-20261007-batch77.json
@@ -0,0 +1,1013 @@
+{
+ "base_commit": "a74e8e81dc708280fedbf1fe63453275b3d53394",
+ "scope": [
+ "kb/communities/Nasal_SynCom_C_Bioreactor.yaml",
+ "kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml",
+ "kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml",
+ "kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml"
+ ],
+ "reference_validator_version": "0.1.7",
+ "results": [
+ {
+ "check": "Nasal_SynCom_C_Bioreactor-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Nasal_SynCom_C_Bioreactor.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nasal_SynCom_C_Bioreactor-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Nasal_SynCom_C_Bioreactor-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch77/Nasal_SynCom_C_Bioreactor-strict.tsv",
+ "kb/communities/Nasal_SynCom_C_Bioreactor.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nasal_SynCom_C_Bioreactor-strict.log",
+ "log_sha256": "b35c1bac983be8b0b4dd4ed8b5b032d8580016075c3cb24f156f8b7b83aca07b",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch77/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-batch77/Nasal_SynCom_C_Bioreactor-strict.tsv\n"
+ },
+ {
+ "check": "Nasal_SynCom_C_Bioreactor-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Nasal_SynCom_C_Bioreactor.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nasal_SynCom_C_Bioreactor-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Nasal_SynCom_C_Bioreactor-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Nasal_SynCom_C_Bioreactor.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nasal_SynCom_C_Bioreactor-references.log",
+ "log_sha256": "6f95d52db29cdd50fa3ab6c0186781c79af76d1384689bdf2bc2710af6699bdf",
+ "output_tail": "Validating kb/communities/Nasal_SynCom_C_Bioreactor.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/Nasal_SynCom_C_Bioreactor.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": "Nasal_SynCom_C_Bioreactor-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Nasal_SynCom_C_Bioreactor.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nasal_SynCom_C_Bioreactor-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": "Nasal_SynCom_C_Bioreactor-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Nasal_SynCom_C_Bioreactor.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nasal_SynCom_C_Bioreactor-rank.log",
+ "log_sha256": "51aaf9785cb5765dc3de137da5c077a2c784b1bf27d7bf72557af3104d6f9c75",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000395\",\n \"name\": \"Nasal SynCom C Bioreactor\",\n \"score\": 0.0,\n \"taxonomy\": 9,\n \"connected_taxa\": 0,\n \"disconnected_taxa\": 9,\n \"ecological_interactions\": 0,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 0,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"ecological_interactions\"\n ],\n \"path\": \"kb/communities/Nasal_SynCom_C_Bioreactor.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Neocallimastix_Methanobrevibacter_Xylan_Coculture-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Neocallimastix_Methanobrevibacter_Xylan_Coculture-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Neocallimastix_Methanobrevibacter_Xylan_Coculture-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch77/Neocallimastix_Methanobrevibacter_Xylan_Coculture-strict.tsv",
+ "kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Neocallimastix_Methanobrevibacter_Xylan_Coculture-strict.log",
+ "log_sha256": "b7967bf7d6133e32710bccee4eb1c11cc5686b20f4b46400c9b2c893d7f1ffbf",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch77/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-batch77/Neocallimastix_Methanobrevibacter_Xylan_Coculture-strict.tsv\n"
+ },
+ {
+ "check": "Neocallimastix_Methanobrevibacter_Xylan_Coculture-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Neocallimastix_Methanobrevibacter_Xylan_Coculture-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Neocallimastix_Methanobrevibacter_Xylan_Coculture-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Neocallimastix_Methanobrevibacter_Xylan_Coculture-references.log",
+ "log_sha256": "59e94f92ee95686ef8158f9ad57db2b0dee53f2e89d9b86f58b4e540da86a045",
+ "output_tail": "Validating kb/communities/Neocallimastix_Methanobrevibacter_Xylan_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/Neocallimastix_Methanobrevibacter_Xylan_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": "Neocallimastix_Methanobrevibacter_Xylan_Coculture-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Neocallimastix_Methanobrevibacter_Xylan_Coculture-snippets.log",
+ "log_sha256": "5f0e8a5be45b94195ee5599498c60e06ff8db089c85d0bf23969aa37351ca96e",
+ "output_tail": "# 17 evidence snippets scanned across 1 files\n MATCH 17\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": "Neocallimastix_Methanobrevibacter_Xylan_Coculture-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Neocallimastix_Methanobrevibacter_Xylan_Coculture-rank.log",
+ "log_sha256": "23d06274f33983f2c3b21d898adfe5e14d9e594a3f657566f1f5ed6f9f7420cc",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000156\",\n \"name\": \"Neocallimastix-Methanobrevibacter Xylanolytic Coculture\",\n \"score\": 100.0,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 5,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [],\n \"path\": \"kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Neocallimastix_Methanobrevibacter_Xylan_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/Neocallimastix_Methanobrevibacter_Xylan_Coculture/2026-10-07T041550Z-codex-c8a69e.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Neocallimastix_Methanobrevibacter_Xylan_Coculture-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Ngawha_Geothermal_Mercury_Cycling_Community-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Ngawha_Geothermal_Mercury_Cycling_Community-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Ngawha_Geothermal_Mercury_Cycling_Community-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch77/Ngawha_Geothermal_Mercury_Cycling_Community-strict.tsv",
+ "kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Ngawha_Geothermal_Mercury_Cycling_Community-strict.log",
+ "log_sha256": "a11e1166c25a11956f1229398d8b132aaf25b29e793a89087ec3dec5ff8a7588",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch77/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-batch77/Ngawha_Geothermal_Mercury_Cycling_Community-strict.tsv\n"
+ },
+ {
+ "check": "Ngawha_Geothermal_Mercury_Cycling_Community-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Ngawha_Geothermal_Mercury_Cycling_Community-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Ngawha_Geothermal_Mercury_Cycling_Community-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Ngawha_Geothermal_Mercury_Cycling_Community-references.log",
+ "log_sha256": "b59ef7392c92e0a9ee66c8a15d5a7bf170cd9a0988064fce88ab1f9e2dd83fff",
+ "output_tail": "Validating kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n",
+ "explained_output_tail": "Validating kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n"
+ },
+ {
+ "check": "Ngawha_Geothermal_Mercury_Cycling_Community-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Ngawha_Geothermal_Mercury_Cycling_Community-snippets.log",
+ "log_sha256": "f77044cea09a90a006f3fc48666f62a208521829981c6819a3a36631506c4ec1",
+ "output_tail": "# 16 evidence snippets scanned across 1 files\n MATCH 16\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n"
+ },
+ {
+ "check": "Ngawha_Geothermal_Mercury_Cycling_Community-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Ngawha_Geothermal_Mercury_Cycling_Community-rank.log",
+ "log_sha256": "ce4a73030383932e5651702ccefcc5c792d4d02b3b5a0bfcde992e71e3ec3016",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000243\",\n \"name\": \"Ngawha Geothermal Acidic Springs Mercury Cycling Community\",\n \"score\": 65.0,\n \"taxonomy\": 3,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 5,\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/Ngawha_Geothermal_Mercury_Cycling_Community.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Ngawha_Geothermal_Mercury_Cycling_Community-history-0",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Ngawha_Geothermal_Mercury_Cycling_Community/2026-10-07T041550Z-codex-898bb6.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Ngawha_Geothermal_Mercury_Cycling_Community-history-0.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-schema",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-schema.log",
+ "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de",
+ "output_tail": "No issues found\n"
+ },
+ {
+ "check": "Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-strict",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/private/tmp/communitymech-batch77/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-strict.tsv",
+ "kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-strict.log",
+ "log_sha256": "86d84c19cddd7a9c1c08bdfeab8bc7b072300aa31a29ca89e6ed78dbf86d5cbf",
+ "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch77/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-batch77/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-strict.tsv\n"
+ },
+ {
+ "check": "Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-terms",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator",
+ "validate-data",
+ "kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-terms.log",
+ "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018",
+ "output_tail": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-references",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-references.log",
+ "log_sha256": "a013bedf4162d2779c28db6388aa9ee21d610945d3a8f83138a131f31aa43f9d",
+ "output_tail": "Validating kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_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/Nitratireductor_Gordonia_Z123_LDPE_Degradation_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": "Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-snippets",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-snippets.log",
+ "log_sha256": "1835af07ebf0373785ca2d25de18c6984a3cbcfdec0d2610f1d8437504408710",
+ "output_tail": "# 10 evidence snippets scanned across 1 files\n MATCH 10\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n"
+ },
+ {
+ "check": "Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-rank",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-rank.log",
+ "log_sha256": "889ce82d2c10d7cb3e79e39c307f5490c5fd032ad9d49880bff42c992dd96562",
+ "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000342\",\n \"name\": \"Nitratireductor-Gordonia Z123 LDPE-Degradation SynCom\",\n \"score\": 55.0,\n \"taxonomy\": 3,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 1,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 1,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_interactions\",\n \"downstream\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Nitratireductor_Gordonia_Z123_LDPE_Degradation_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/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom/2026-10-07T041551Z-codex-dc3798.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/Nitratireductor_Gordonia_Z123_LDPE_Degradation_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-batch77/inventory.log",
+ "log_sha256": "927fd3211fe8eb7bfe8ed93af96e60ba077079a9d9d90c85b06b5815ad18cfac",
+ "output_tail": "{\n \"scope\": \"Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.\",\n \"semantic_review_rule\": \"Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.\",\n \"records\": 460,\n \"nodes\": 1447,\n \"edges\": 615,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 166,\n \"review_status_counts\": {\n \"needs_research\": 28,\n \"pending\": 184,\n \"reviewed\": 248\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-batch77/network.log",
+ "log_sha256": "dcb33d46aa53f5e1dec55b1cd6463b83d3723e2ebf8c97999c93d0a5f4a2fed1",
+ "output_tail": "{\n \"preferred_term\": \"Legionella MAGs\",\n \"term\": {\n \"id\": \"NCBITaxon:445\",\n \"label\": \"Legionella\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The study detected Legionella-affiliated MAGs and used them in a virulence-gene risk assessment; the source did not assert pathogenicity for a cultured Legionella isolate.\\n\"\n },\n \"abundance_value\": \"Lower-abundance Legionella-affiliated MAGs detected during metagenomic risk assessment.\\n\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41457319\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"COMPUTATIONAL\",\n \"snippet\": \"detection of waterborne pathogens from the Legionella genus\",\n \"explanation\": \"Supports Legionella-affiliated lower-abundance bins as monitored biosafety-relevant members of the consortium.\\n\"\n }\n ]\n },\n \"message\": \"Taxon 'Legionella MAGs' has no interactions\"\n }\n ],\n \"Sclerotinia_Sclerotia_12Strain_Biocontrol_SynCom\": [\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Twelve-Strain SynCom Suppression of Sclerotinia Sclerotia\",\n \"interaction_index\": 0,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n },\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Trinickia MC Key Contribution to Sclerotia Mortality\",\n \"interaction_index\": 1,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n }\n ],\n \"Space_Habitat_SevenMember_Stress_Tolerance_SynCom\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Acinetobacter radioresistens 50V1\",\n \"taxon_id\": \"NCBITaxon:40216\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Acinetobacter radioresistens 50V1\",\n \"term\": {\n \"id\": \"NCBITaxon:40216\",\n \"label\": \"Acinetobacter radioresistens\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate came from the preflight Mars Odyssey Orbiter; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"50V1\",\n \"genome_accession\": \"GCA_002834555.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Acinetobacter radioresistens | 50V1 | Preflight Mars Odyssey Orbiter | \\u2013 | Mccoy et al., 2012 | GCA_002834555.1 | TSYB/TSYA | 37 \\u00b0C | 16\\u201318 h\",\n \"explanation\": \"Identifies A. radioresistens 50V1 as a consortium member and gives its spacecraft-associated source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Acinetobacter radioresistens 50V1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Micrococcus luteus W4-Al-K1\",\n \"taxon_id\": \"NCBITaxon:1270\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Micrococcus luteus W4-Al-K1\",\n \"term\": {\n \"id\": \"NCBITaxon:1270\",\n \"label\": \"Micrococcus luteus\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from an ISS aluminum-case touch array; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"W4-Al-K1\",\n \"genome_accession\": \"GCA_057816565.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Micrococcus luteus | W4-Al-K1 | ISS, Touch Array Aluminum Case | - | Kr\\u00e4mer et al., 2025 | GCA_057816565.1 | NB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies M. luteus W4-Al-K1 as a consortium member and gives its ISS source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Micrococcus luteus W4-Al-K1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"taxon_id\": \"NCBITaxon:64702\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"term\": {\n \"id\": \"NCBITaxon:64702\",\n \"label\": \"Propionibacterium cyclohexanicum\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. cyclohexanicum type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"TA-12T\",\n \"genome_accession\": \"GCA_900111365\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"16859\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Propionibacterium cyclohexanicum | TA-12 T | Spoilt Orange Juice | DSM 16859 T | Kusano et al., 1997 | GCA_900111365 | BHI, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies P. cyclohexanicum TA-12T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Propionibacterium cyclohexanicum TA-12T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pseudomonas antarctica CMS 35T\",\n \"taxon_id\": \"NCBITaxon:219572\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pseudomonas antarctica CMS 35T\",\n \"term\": {\n \"id\": \"NCBITaxon:219572\",\n \"label\": \"Pseudomonas antarctica\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. antarctica type strain as a biosafety-level-1 Pseudomonas surrogate.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"CMS 35T\",\n \"genome_accession\": \"GCA_010634845\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"15318\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pseudomonas antarctica | CMS 35 T | Antarctica | DSM 15318 T | Reddy et al., 2004 | GCA_010634845 | TSYB/TSYA | Ambient | 12\\u201316 h\",\n \"explanation\": \"Identifies P. antarctica CMS 35T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pseudomonas antarctica CMS 35T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Staphylococcus capitis K1-2-2-23\",\n \"taxon_id\": \"NCBITaxon:29388\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Staphylococcus capitis K1-2-2-23\",\n \"term\": {\n \"id\": \"NCBITaxon:29388\",\n \"label\": \"Staphylococcus capitis\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from ISS V2A steel; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"K1-2-2-23\",\n \"genome_accession\": \"GCA_025272695\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"111179\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Staphylococcus capitis | K1-2-2-23 | ISS, V2A Steel | DSM 111179 | Sobisch et al., 2019 | GCA_025272695 | TSYB/TSYA | 37 \\u00b0C | 16\\u201324 h\",\n \"explanation\": \"Identifies S. capitis K1-2-2-23 as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Staphylococcus capitis K1-2-2-23' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Streptococcus halotolerans HTS9T\",\n \"taxon_id\": \"NCBITaxon:1814128\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Streptococcus halotolerans HTS9T\",\n \"term\": {\n \"id\": \"NCBITaxon:1814128\",\n \"label\": \"Streptococcus halotolerans\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the S. halotolerans type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"HTS9T\",\n \"genome_accession\": \"GCA_001598035\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"101996\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Streptococcus halotolerans | HTS9 T | Respiratory Tract of Marmota himalayana | DSM 101996 T | Niu et al., 2016 | GCA_001598035 | 2xLB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies S. halotolerans HTS9T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Streptococcus halotolerans HTS9T' has no interactions\"\n }\n ]\n}\n"
+ },
+ {
+ "check": "rank-all",
+ "command": [
+ "just",
+ "rank-causal-graphs"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/rank-all.log",
+ "log_sha256": "c133718908efe08df584f44e45eb4f53ca426e9fc0f6b3144d40eefad8841a28",
+ "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-batch77/render.log",
+ "log_sha256": "8ffe9c3c8a3894388a49a2f1dcd0b71b7cc2017a22836bebd62d15bc679f58f5",
+ "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch77/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch77/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch77/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-batch77/render-repeat.log",
+ "log_sha256": "8ffe9c3c8a3894388a49a2f1dcd0b71b7cc2017a22836bebd62d15bc679f58f5",
+ "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch77/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch77/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch77/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch77/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-batch76')),('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-batch77/connectivity-survey.log",
+ "log_sha256": "52c3470443d3c017a6c5f5ffed2fbb43348feee7fe8afbea853d97b3c39e9ed4",
+ "output_tail": "{\"baseline\": {\"records\": 460, \"with_community_level\": 393, \"mixed\": 125, \"community_level_only\": 268, \"taxa\": 1511, \"credited_solely_by_the_rule\": 1240}, \"current\": {\"records\": 460, \"with_community_level\": 393, \"mixed\": 125, \"community_level_only\": 268, \"taxa\": 1511, \"credited_solely_by_the_rule\": 1240}}\n"
+ },
+ {
+ "check": "regressions",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "pytest",
+ "-q",
+ "tests/test_causal_review_batch10.py",
+ "tests/test_causal_review_batch11.py",
+ "tests/test_causal_review_batch12.py",
+ "tests/test_causal_review_batch13.py",
+ "tests/test_causal_review_batch14.py",
+ "tests/test_causal_review_batch15.py",
+ "tests/test_causal_review_batch16.py",
+ "tests/test_causal_review_batch17.py",
+ "tests/test_causal_review_batch18.py",
+ "tests/test_causal_review_batch19.py",
+ "tests/test_causal_review_batch20.py",
+ "tests/test_causal_review_batch21.py",
+ "tests/test_causal_review_batch22.py",
+ "tests/test_causal_review_batch23.py",
+ "tests/test_causal_review_batch24.py",
+ "tests/test_causal_review_batch25.py",
+ "tests/test_causal_review_batch27.py",
+ "tests/test_causal_review_batch28.py",
+ "tests/test_causal_review_batch29.py",
+ "tests/test_causal_review_batch30.py",
+ "tests/test_causal_review_batch31.py",
+ "tests/test_causal_review_batch32.py",
+ "tests/test_causal_review_batch33.py",
+ "tests/test_causal_review_batch34.py",
+ "tests/test_causal_review_batch35.py",
+ "tests/test_causal_review_batch36.py",
+ "tests/test_causal_review_batch37.py",
+ "tests/test_causal_review_batch38.py",
+ "tests/test_causal_review_batch39.py",
+ "tests/test_causal_review_batch40.py",
+ "tests/test_causal_review_batch41.py",
+ "tests/test_causal_review_batch42.py",
+ "tests/test_causal_review_batch43.py",
+ "tests/test_causal_review_batch44.py",
+ "tests/test_causal_review_batch45.py",
+ "tests/test_causal_review_batch46.py",
+ "tests/test_causal_review_batch47.py",
+ "tests/test_causal_review_batch48.py",
+ "tests/test_causal_review_batch49.py",
+ "tests/test_causal_review_batch5.py",
+ "tests/test_causal_review_batch50.py",
+ "tests/test_causal_review_batch51.py",
+ "tests/test_causal_review_batch52.py",
+ "tests/test_causal_review_batch53.py",
+ "tests/test_causal_review_batch54.py",
+ "tests/test_causal_review_batch55.py",
+ "tests/test_causal_review_batch56.py",
+ "tests/test_causal_review_batch57.py",
+ "tests/test_causal_review_batch58.py",
+ "tests/test_causal_review_batch59.py",
+ "tests/test_causal_review_batch6.py",
+ "tests/test_causal_review_batch60.py",
+ "tests/test_causal_review_batch61.py",
+ "tests/test_causal_review_batch62.py",
+ "tests/test_causal_review_batch63.py",
+ "tests/test_causal_review_batch64.py",
+ "tests/test_causal_review_batch65.py",
+ "tests/test_causal_review_batch66.py",
+ "tests/test_causal_review_batch67.py",
+ "tests/test_causal_review_batch68.py",
+ "tests/test_causal_review_batch69.py",
+ "tests/test_causal_review_batch7.py",
+ "tests/test_causal_review_batch70.py",
+ "tests/test_causal_review_batch71.py",
+ "tests/test_causal_review_batch72.py",
+ "tests/test_causal_review_batch73.py",
+ "tests/test_causal_review_batch74.py",
+ "tests/test_causal_review_batch75.py",
+ "tests/test_causal_review_batch76.py",
+ "tests/test_causal_review_batch77.py",
+ "tests/test_causal_review_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-batch77/regressions.log",
+ "log_sha256": "7870a7836f37cda8dc5e381fa75c7935c1e855f1b775a529cf2f65e18e144afb",
+ "output_tail": "........................................................................ [ 10%]\n........................................................................ [ 20%]\n........................................................................ [ 31%]\n........................................................................ [ 41%]\n........................................................................ [ 52%]\n........................................................................ [ 62%]\n........................................................................ [ 73%]\n........................................................................ [ 83%]\n........................................................................ [ 94%]\n...................................... [100%]\n686 passed in 188.36s (0:03:08)\n"
+ },
+ {
+ "check": "black",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black",
+ "--check",
+ "tests/test_causal_review_batch77.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/black.log",
+ "log_sha256": "1a56c7cd8457fd05d978cfbd139d7bfd86e86acaa9b57668e718ef8bccc0cf48",
+ "output_tail": "All done! \u2728 \ud83c\udf70 \u2728\n1 file would be left unchanged.\n"
+ },
+ {
+ "check": "ruff",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/wCcxEYRM4HeHgwYPZemHX/bin/ruff",
+ "check",
+ "tests/test_causal_review_batch77.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/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-batch77/diff-check.log",
+ "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "output_tail": ""
+ },
+ {
+ "check": "primary-graph-proof",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-c",
+ "import hashlib,json,pathlib,yaml\nP=pathlib.Path\nledger=yaml.safe_load(P('reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml').read_text())\nfor p,h in ledger['primary_artifacts'].items():\n assert hashlib.sha256(P(p).read_bytes()).hexdigest()==h\nmanifest=json.loads(P('/private/tmp/communitymech-batch77/primary-manifest.json').read_text())\nsources={v['reference']:[''.join(P(v['extracted_body']).read_text().split())] for v in manifest.values()}\nsources['PMID:32414793'].append(''.join(P('/private/tmp/communitymech-batch77/mercury-no-margin-numbers.txt').read_text().split()))\ncount=0\nfor row in ledger['records']:\n doc=yaml.safe_load(P(row['path']).read_text())\n for n in doc.get('ecological_interactions',[]):\n for e in n['evidence']:\n assert any(''.join(e['snippet'].split()) in text for text in sources[e['reference']])\n count+=1\nassert count==12\nassert sum(len(r['node_decisions']) for r in ledger['records'])==9\nassert sum(len(r['edges_before']) for r in ledger['records'])==3\nassert sum(len(r['edges_after']) for r in ledger['records'])==2\nassert sum(len(r['removed_edge_decisions']) for r in ledger['records'])==1\nassert sum(r['curation_events_added'] for r in ledger['records'])==3\nassert [r['status'] for r in ledger['records']]==['needs_research','reviewed','reviewed','needs_research']\nprint(json.dumps(dict(primary_matched=count,new_nodes_or_arrows=0,complete_main_bodies_read=3,nasal_fulltext_provenance='pre-existing cache',ldpe_abstract_bounded=True,ngawha_table2_visually_inspected=True,other_original_figure_pixels_or_separate_pdfs_inspected=False)))\n"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/primary-graph-proof.log",
+ "log_sha256": "197cf30c334664eb03c29fda78fe40566fe3a2edbcef14e6ead1d63e6d10f4b0",
+ "output_tail": "{\"primary_matched\": 12, \"new_nodes_or_arrows\": 0, \"complete_main_bodies_read\": 3, \"nasal_fulltext_provenance\": \"pre-existing cache\", \"ldpe_abstract_bounded\": true, \"ngawha_table2_visually_inspected\": true, \"other_original_figure_pixels_or_separate_pdfs_inspected\": false}\n"
+ },
+ {
+ "check": "focused-final",
+ "command": [
+ "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3",
+ "-m",
+ "pytest",
+ "-q",
+ "tests/test_causal_review_batch77.py",
+ "tests/test_participating_taxa.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "log": "/private/tmp/communitymech-batch77/focused-final.log",
+ "log_sha256": "6d8f8831d825a3ca0f8d4223a01269b87fe12636347b52f9a392a26249f53910",
+ "output_tail": ".................. [100%]\n18 passed in 16.41s\n"
+ }
+ ],
+ "limitations": [
+ "Fresh before-paper baseline covers460 records and920 caches across both roots including ignored/hidden files. All9 existing nodes and3 arrows reviewed;9nodes2arrows remain. Three guarded repairs/histories; Nasal byte-for-byte unchanged but needs_research, not complete.",
+ "Nasal full cached main body and embedded captions read with folded bounded output; initial oversized-line truncation and S6 caption gap were corrected by rereading. Fresh abstract only independently retrieved. Cached supplement table extraction read, not original PDF pixels. BioRxiv403 was respected.",
+ "Xylan complete main body, tables and captions read from publisher-indexed PDF acquired before normal download403. PMC challenge respected; screenshot tool returned citation text rather than image pixels, so no visual figure audit is claimed. EuropePMC XML500 was not absence of full text.",
+ "Ngawha author manuscript main body, tables and captions read; Table2 page44 visually inspected. Original figure panels and separate supplement not audited. Final abstract and author manuscript are distinct versions; no silent replacement of final abstract numbers.",
+ "LDPE review is primary-abstract bounded. Missing Methods are not evidence that controls do not exist. Genomics plus proteomics and actual recombinant enzyme assays are preserved; no isotope-traced assimilation or full-dose matched synergy inferred.",
+ "All12 graph excerpts independently match fresh abstract or author-PDF text. Only22 quoted words from actual Ngawha Results are appended to one cache with URL/version/PDF digest; original abstract and919 other caches preserved. No full paper or publication PDF uploaded. String matching is not entailment proof.",
+ "Preserve xylan hydrogen transfer, utilization and specific-enzyme gains. Utilization is not depolymerization; panel maxima are not uniform PNK2 effects. Two existing arrows retained as partial/hypothesized mediation; sugar-uptake control remains unresolved.",
+ "Preserve Ngawha environmental Hg pools and actual atmospheric Hg(0), sequence potential and diversity. Unbinned hgcA, paralog filtering, sequencing depth and geogenic inputs bound causality. No temporal stability, demonstrated niche partitioning, syntrophy or transport process is inferred. Prior four-edge removal is preserved.",
+ "Nasal graph and Z123 measured endpoint extensions remain needs_research. Two separate one-record Edison LITERATURE dry runs used zero credits; no provider submission. Scoped questions await actual reply; generic authorization and earlier pending or denied scopes are not broadened.",
+ "Dedup:920 all-state issue titles/bodies and22 local matching files with ignored/hidden-inclusive search excluding git/docs/site/cache. Matching969-972 read and retained. No exhaustive PR-comment audit. One incorrect research-source path errored; corrected script inspection supersedes it and is not an absence claim.",
+ "Repairs1637-1639 remain OPEN until protected-main merge; research1640/1641 and metadata1642 remain OPEN afterward. Non-graph blocks and canonical taxa are preserved, not certified. Self-adversarial review is not independent approval or corpus completion.",
+ "Exact HTML-description parser and repeat-render checks, not browser screenshots. Post-commit docs-current is separate."
+ ],
+ "snippet_counts_by_record": {
+ "kb/communities/Nasal_SynCom_C_Bioreactor.yaml": {
+ "MATCH": 25,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml": {
+ "MATCH": 17,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml": {
+ "MATCH": 16,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ },
+ "kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml": {
+ "MATCH": 10,
+ "RENDERING": 0,
+ "ASSEMBLED": 0,
+ "WEAK": 0,
+ "MISMATCH": 0,
+ "NOCONTENT": 0
+ }
+ },
+ "unchanged_raw_blocks": 62,
+ "unchanged_record_files": 457,
+ "unchanged_cache_files": 919,
+ "cache_changes": [
+ {
+ "path": "references_cache/PMID_32414793.md",
+ "original_sha256": "0dabdbcc6bfedb6a3941d5ee284628d1d9679351cfa113c96bb9b73d948f96bd",
+ "sha256": "a75f648c2ea5f44d46a64de72ef5b19ba1a8d9ae076e0369d05834efd06d81c3",
+ "added_quoted_words": 22,
+ "scope": "Original abstract retained plus three selected author-manuscript result excerpts; no full-text redistribution."
+ }
+ ],
+ "edison": {
+ "required_for_this_repair": false,
+ "required_for_unresolved_extensions": true,
+ "provider_submissions": 0,
+ "credits_spent": 0,
+ "dry_runs": [
+ {
+ "community_id": "CommunityMech:000395",
+ "job": "LITERATURE",
+ "query_chars": 10512,
+ "query_sha256": "ac0cadaf9977b247dcff336ef57ae50ea322b7c3f24fa78d75b1848e3974f365",
+ "meta_path": "/private/tmp/communitymech-batch77/edison-nasal/Nasal_SynCom_C_Bioreactor-edison-literature-causal-meta.yaml",
+ "authorization": "Scoped asynchronous question unanswered; preselection is not approval."
+ },
+ {
+ "community_id": "CommunityMech:000342",
+ "job": "LITERATURE",
+ "query_chars": 8208,
+ "query_sha256": "4287fdb9eb800acdc04b5ab0f1e3725588bbadefce5cbe6c7ea6309e079e8f79",
+ "meta_path": "/private/tmp/communitymech-batch77/edison-ldpe/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-edison-literature-causal-meta.yaml",
+ "authorization": "Scoped asynchronous question unanswered; preselection is not approval."
+ }
+ ]
+ },
+ "primary_artifacts": {
+ "/private/tmp/communitymech-batch77/baseline.json": "aa0e4b3ab8218fc1bb1820fa686ed00ac6c7f45c41b1bcce986879cdb8843928",
+ "/private/tmp/communitymech-batch77/edison-ldpe/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom-edison-literature-causal-meta.yaml": "e044c5321ced283e62c4a4c983feab2865446fd6e5bd6f2d58c888dcebde26ac",
+ "/private/tmp/communitymech-batch77/edison-nasal/Nasal_SynCom_C_Bioreactor-edison-literature-causal-meta.yaml": "d749acbc08cdb8e8950dcda5db92f2620a397d801134990850e1942fffbfd76f",
+ "/private/tmp/communitymech-batch77/ldpe-metadata.json": "129c073a3674e59170a514cc0fa6ab15376d3a02275b9faa6466df097099b806",
+ "/private/tmp/communitymech-batch77/ldpe-primary.txt": "ae767abcc3cd26b5eb40a65b8ba6f749cb9f8f00262e464148dd468abdec74fd",
+ "/private/tmp/communitymech-batch77/mercury-metadata.json": "82efe014cf42d08d80c1f48fa2f391f0b8d92f7039f460aa4c15ff24fd8c13e7",
+ "/private/tmp/communitymech-batch77/mercury-no-margin-numbers.txt": "d539fab727ad7dd1ec8a5cc7e0614f0e54a33037944c83d60a62b042e98d482e",
+ "/private/tmp/communitymech-batch77/mercury-osti.pdf": "dde4319ba9bd4ee4fd8789cea57733f67a88220341c48780b6c1a7215a909701",
+ "/private/tmp/communitymech-batch77/mercury-osti.txt": "08e829f235160268c9adad55ccc5d4668b8923d821c0668a0045296e95bb0ff0",
+ "/private/tmp/communitymech-batch77/mercury-primary.txt": "854608bd4b801f31ecde2cc814c427bcc35e13f73647445ce0226a46f97dadf5",
+ "/private/tmp/communitymech-batch77/mercury-table2.png": "a9447b17be0a1bcd4e159751b349fe8df284688171619c447b96435d6bfbad9e",
+ "/private/tmp/communitymech-batch77/primary-manifest.json": "3a38a0f64a57e1d721265591dde637309229736dec053fcb59abe89520dc575d",
+ "/private/tmp/communitymech-batch77/xylan-indexed-0.txt": "003c81836bd3fa6a8f3e24445fcd57d3a8861c1b17bcbcdbe7373175bf994c27",
+ "/private/tmp/communitymech-batch77/xylan-indexed-250.txt": "cdd3851de904c5bbc3906b088f791f9b71e39312884e8e98d633adb990dd6bb1",
+ "/private/tmp/communitymech-batch77/xylan-indexed-625.txt": "eb9c897f11cddccaf1083997fee6c52007dcb1d2366dbe4ad4a55cc248db0ad5",
+ "/private/tmp/communitymech-batch77/xylan-metadata.json": "7ade09f265b849b220012ae11a130a025f4be10ff6162654151af9a03b0584ad",
+ "/private/tmp/communitymech-batch77/xylan-primary.txt": "774f40a32c18d0504690430487c01bd5c2c074853102d47453830ccaccc560cf",
+ "/private/tmp/communitymech-causal-batch77/references_cache/doi_10.64898_2026.03.16.712028.md": "46a337ff25e4f9f16f874d9d305a212c9a437bdb96305d753827450e06e4be6d",
+ "/private/tmp/communitymech-causal-batch77/references_cache/doi_10.64898_2026.03.16.712028.supplement.md": "90b71bdcf0f071f2b99b53174601664edf903690f1bc4e61cda1b282ee85e23e"
+ },
+ "network_delta": {
+ "existing_findings_preserved": 44,
+ "added_findings": {},
+ "removed_findings": {},
+ "interpretation": "All44 baseline warnings preserved exactly. Community scope remains aggregate, not resolved member-specific activity. No taxonomy or auditor-rule changes."
+ },
+ "render_determinism": true,
+ "published_description_coverage": {
+ "pages": 456,
+ "nodes": 1433,
+ "arrows": 607
+ },
+ "participant_census": {
+ "measurements": {
+ "baseline": {
+ "records": 460,
+ "with_community_level": 393,
+ "mixed": 125,
+ "community_level_only": 268,
+ "taxa": 1511,
+ "credited_solely_by_the_rule": 1240
+ },
+ "current": {
+ "records": 460,
+ "with_community_level": 393,
+ "mixed": 125,
+ "community_level_only": 268,
+ "taxa": 1511,
+ "credited_solely_by_the_rule": 1240
+ }
+ },
+ "delta": {
+ "records": 0,
+ "with_community_level": 0,
+ "mixed": 0,
+ "community_level_only": 0,
+ "taxa": 0,
+ "credited_solely_by_the_rule": 0
+ },
+ "interpretation": "No scope-count change, taxonomy edit, or auditor-rule change. Aggregate outcomes do not establish member-resolved activity."
+ },
+ "network_warning_count": 44,
+ "corpus": {
+ "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.",
+ "records": 460,
+ "nodes": 1447,
+ "edges": 615,
+ "records_without_nodes": 8,
+ "records_without_edges": 166,
+ "review_status_counts": {
+ "needs_research": 28,
+ "pending": 184,
+ "reviewed": 248
+ },
+ "structural_defects": []
+ },
+ "tested_file_sha256": {
+ "reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml": "0a99a772e824fc64f57a5bb1fb0d68a7f35fb6ad10b12e71fcef5a75739487cc",
+ "tests/test_causal_review_batch77.py": "33ca8c1ac9006dde5fc1e9a3a8b7322cb351010c5c3cca943879ee1f4b6a7a2a",
+ "kb/communities/Nasal_SynCom_C_Bioreactor.yaml": "4bd66811333c6960ebab5553e7ce71c8a4f92aa1d81f0fc2c9e2b4f6b75dac2e",
+ "kb/communities/Neocallimastix_Methanobrevibacter_Xylan_Coculture.yaml": "2dfcebb0ae5d58d6bedffe10cda2f9c71f2e8866278739376d7e788835859864",
+ "kb/communities/Ngawha_Geothermal_Mercury_Cycling_Community.yaml": "f483df7d09ad54db2c7ee6ef0e4bcaa8f40aa66a12fc8cb4aa5568c2f84243df",
+ "kb/communities/Nitratireductor_Gordonia_Z123_LDPE_Degradation_SynCom.yaml": "b782163d991445cbfabe4645db8c21b3597c0cb40046148fa0f5a208c5342838",
+ "reports/causal_graph_review/README.md": "f53c02d8e2f6d2b5c31555904159855ea85d269fef1424aea68e85d9512ca3c2",
+ "references_cache/PMID_32414793.md": "a75f648c2ea5f44d46a64de72ef5b19ba1a8d9ae076e0369d05834efd06d81c3"
+ },
+ "status": "verified_assay_boundary_graph_review",
+ "pre_research_baseline": {
+ "base_commit": "a74e8e81dc708280fedbf1fe63453275b3d53394",
+ "base_tree": "af15a3f4829604babf9569dce2e6b1e3d34ec83d",
+ "research_worktree": "/private/tmp/communitymech-causal-batch76",
+ "checks": [
+ {
+ "name": "rank",
+ "command": [
+ "just",
+ "rank-causal-graphs"
+ ],
+ "exit_code": 0,
+ "expected_exit_code": 0,
+ "log": "/private/tmp/communitymech-batch77/baseline-rank.log",
+ "sha256": "75f2ca8f0795c72f8a9cf7a7e3fa519e90d3572a57322c9fb2081a14c41b3f7e",
+ "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-batch77/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-batch77/baseline-network.log",
+ "sha256": "dcb33d46aa53f5e1dec55b1cd6463b83d3723e2ebf8c97999c93d0a5f4a2fed1",
+ "output_tail": " \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Staphylococcus capitis | K1-2-2-23 | ISS, V2A Steel | DSM 111179 | Sobisch et al., 2019 | GCA_025272695 | TSYB/TSYA | 37 \\u00b0C | 16\\u201324 h\",\n \"explanation\": \"Identifies S. capitis K1-2-2-23 as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Staphylococcus capitis K1-2-2-23' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Streptococcus halotolerans HTS9T\",\n \"taxon_id\": \"NCBITaxon:1814128\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Streptococcus halotolerans HTS9T\",\n \"term\": {\n \"id\": \"NCBITaxon:1814128\",\n \"label\": \"Streptococcus halotolerans\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the S. halotolerans type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"HTS9T\",\n \"genome_accession\": \"GCA_001598035\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"101996\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Streptococcus halotolerans | HTS9 T | Respiratory Tract of Marmota himalayana | DSM 101996 T | Niu et al., 2016 | GCA_001598035 | 2xLB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies S. halotolerans HTS9T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Streptococcus halotolerans HTS9T' has no interactions\"\n }\n ]\n}\n"
+ },
+ {
+ "name": "downstream",
+ "command": [
+ "rg",
+ "--no-ignore",
+ "--hidden",
+ "-n",
+ "downstream:",
+ "kb/communities",
+ "data/isolates",
+ "--glob",
+ "*.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_code": 0,
+ "log": "/private/tmp/communitymech-batch77/baseline-downstream.log",
+ "sha256": "fa44cbade7a4557ebe6636abdad75fd726f33886bb89d6b6e45037888a61f269",
+ "output_tail": "Consortium.yaml:311: downstream:\nkb/communities/Chlamydomonas_Bacterial_H2_Consortium.yaml:365: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:138: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:182: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:232: downstream:\nkb/communities/Pepper_Phytophthora_SynCom5.yaml:123: downstream:\nkb/communities/Pepper_Phytophthora_SynCom5.yaml:146: downstream:\nkb/communities/Clostridium_Carboxidivorans_Kluyveri_CO_Chain_Elongation_Coculture.yaml:247: downstream:\nkb/communities/Clostridium_Carboxidivorans_Kluyveri_CO_Chain_Elongation_Coculture.yaml:344: downstream:\nkb/communities/Phylogenetically_Diverse_Denitrifying_SynCom.yaml:76: downstream:\nkb/communities/Phylogenetically_Diverse_Denitrifying_SynCom.yaml:95: downstream:\nkb/communities/Phylogenetically_Diverse_Denitrifying_SynCom.yaml:122: downstream:\nkb/communities/SO3_BS3_Lithium_Battery_Bioleaching_Consortium.yaml:141: downstream:\nkb/communities/Emiliania_Phaeobacter_Dynamic_Interaction.yaml:143: downstream:\nkb/communities/Methylotuvimicrobium_Synechococcus_Gas_Feedstock_Coculture.yaml:157: downstream:\nkb/communities/Methylotuvimicrobium_Synechococcus_Gas_Feedstock_Coculture.yaml:205: downstream:\nkb/communities/Avena_Rhizosphere_Detritusphere_Niche_Succession.yaml:104: downstream:\nkb/communities/Avena_Rhizosphere_Detritusphere_Niche_Succession.yaml:127: downstream:\nkb/communities/Lake_Washington_Methane_Oxygen_Methylotroph_Community.yaml:342: downstream:\nkb/communities/PMI_Variovorax_Thermotolerance_Collection.yaml:330: downstream:\nkb/communities/Synechococcus_Bacillus_SPC.yaml:120: downstream:\nkb/communities/Synechococcus_Bacillus_SPC.yaml:152: downstream:\nkb/communities/BioModels_MODEL2204300001_Kefir_Community_Model.yaml:203: downstream:\nkb/communities/Salar_Atacama_Lithium_Brine_Community.yaml:295: downstream:\nkb/communities/Salar_Atacama_Lithium_Brine_Community.yaml:339: downstream:\n"
+ }
+ ],
+ "baseline_sha256": "aa0e4b3ab8218fc1bb1820fa686ed00ac6c7f45c41b1bcce986879cdb8843928"
+ },
+ "reference_validator_caveat": "All four full-record reference validators exit0. CLI Total checks counts issues, not executed checks. All12 graph quotations independently match primary abstract or author-PDF extraction; the latter removes marginal line numbers. One cache adds22 quoted words with provenance;919 others are unchanged. String matching is not entailment. Nasal full-text provenance is a prior cache; LDPE remains abstract-bounded. No recertification of all920 caches."
+}
diff --git a/tests/test_causal_review_batch77.py b/tests/test_causal_review_batch77.py
new file mode 100644
index 000000000..eb33925f5
--- /dev/null
+++ b/tests/test_causal_review_batch77.py
@@ -0,0 +1,178 @@
+"""Preserve measured outcomes while bounding hypotheses and missing graph work."""
+
+import hashlib
+from pathlib import Path
+
+import yaml
+
+ROOT = Path(__file__).resolve().parents[1]
+LEDGER = ROOT / "reports/causal_graph_review/decisions/20261007-four-records-batch77.yaml"
+
+
+def records():
+ ledger = yaml.safe_load(LEDGER.read_text())
+ rows = ledger["records"]
+ return ledger, rows, [yaml.safe_load((ROOT / r["path"]).read_text()) for r in rows]
+
+
+def test_empty_nasal_graph_is_an_explicit_research_gap_not_a_completed_review():
+ ledger, rows, docs = records()
+ row, doc = rows[0], docs[0]
+ assert not doc.get("ecological_interactions")
+ assert row["status"] == "needs_research" and row["outcome"] == "unchanged"
+ assert row["original_sha256"] == row["record_sha256"]
+ assert row["curation_events_added"] == 0 and not row["history_files"]
+ assert row["issues"] == [1640]
+ assert ledger["unresolved_research_issues"] == [1640, 1641]
+
+
+def test_xylan_positive_outcomes_survive_with_qualified_mediation():
+ _, _, docs = records()
+ transfer, utilization, enzymes = docs[1]["ecological_interactions"]
+ assert all(n["interaction_type"] == "SYNTROPHY" for n in [transfer, utilization, enzymes])
+ assert all(
+ e["supports"] == "SUPPORT" for n in [transfer, utilization, enzymes] for e in n["evidence"]
+ )
+ assert transfer["source_taxon"]["term"]["id"] == "NCBITaxon:4757"
+ assert transfer["target_taxon"]["term"]["id"] == "NCBITaxon:2173"
+ assert [e["target"] for e in transfer["downstream"]] == [utilization["name"], enzymes["name"]]
+ assert transfer["downstream"][0]["description"].startswith("PARTIAL -")
+ assert transfer["downstream"][1]["description"].startswith("HYPOTHESIZED -")
+ assert "catabolite repression" in transfer["downstream"][1]["description"]
+
+
+def test_xylan_utilization_is_not_depolymerization_or_uniform_enzyme_response():
+ _, _, docs = records()
+ transfer, utilization, enzymes = docs[1]["ecological_interactions"]
+ assert "alone did not utilize xylan" in transfer["description"]
+ assert "18-day" in utilization["description"]
+ assert (
+ "does not imply a corresponding increase in polymer depolymerization"
+ in utilization["description"]
+ )
+ for phrase in [
+ "normalized to fungal protein",
+ "not uniform fold changes",
+ "endopeptidase was not increased",
+ ]:
+ assert phrase in enzymes["description"]
+
+
+def test_ngawha_positive_gene_evidence_is_not_resolved_activity_for_every_member():
+ _, _, docs = records()
+ nodes = docs[2]["ecological_interactions"]
+ potential = nodes[1]
+ assert "hgcA/hgcB" in potential["description"]
+ assert "could not be assigned to a resolved genome" in potential["description"]
+ assert "sequencing-depth bounded" in potential["description"]
+ assert "paralog filtering" in potential["description"]
+ assert [e["supports"] for e in potential["evidence"]] == ["PARTIAL", "SUPPORT"]
+ assert all(e["evidence_source"] == "COMPUTATIONAL" for e in potential["evidence"])
+ assert all(
+ "downstream" not in n and "interaction_type" not in n and "biological_processes" not in n
+ for n in nodes
+ )
+
+
+def test_ngawha_measured_gaseous_mercury_is_preserved_without_biotic_attribution():
+ _, _, docs = records()
+ _, _, diversity, emission, model = docs[2]["ecological_interactions"]
+ assert "does not demonstrate temporal stability" in diversity["description"]
+ assert emission["name"] == "Measured Gaseous Mercury With Unresolved Microbial Contribution"
+ assert "was measured above Tiger and Cub Baths" in emission["description"]
+ assert "not an isolated microbial emission rate" in emission["description"]
+ assert "deep geological inputs" in emission["description"]
+ assert emission["evidence"][0]["supports"] == "SUPPORT"
+ assert model["description"].startswith("HYPOTHESIZED -")
+ assert model["evidence"][0]["supports"] == "PARTIAL"
+
+
+def test_ldpe_proteomic_model_and_actual_outcomes_remain_distinct():
+ _, rows, docs = records()
+ row, doc = rows[3], docs[3]
+ (node,) = doc["ecological_interactions"]
+ assert row["status"] == "needs_research" and row["issues"] == [1639, 1641]
+ assert "genomic and proteomic" in node["description"]
+ assert node["evidence"][0]["supports"] == "PARTIAL"
+ assert "interaction_type" not in node and "downstream" not in node
+ assert "recombinant MCO1/Lcp3" in node["description"]
+ rationale = doc["discussions"][-1]["rationale"]
+ for phrase in [
+ "9.98%",
+ "50.88%",
+ "half-dose",
+ "not isotope-traced",
+ "full-dose-matched synergy",
+ ]:
+ assert phrase in rationale
+ assert doc["discussions"][0]["discussion_id"] == "z123_strain_specific_ldpe_steps"
+
+
+def test_ngawha_cache_addition_is_bounded_and_provenance_tagged():
+ ledger, _, docs = records()
+ (change,) = ledger["cache_changes"]
+ cache = ROOT / change["path"]
+ assert hashlib.sha256(cache.read_bytes()).hexdigest() == change["sha256"]
+ text = cache.read_text()
+ assert "abstract_with_selected_author_manuscript_excerpts" in text
+ assert "https://www.osti.gov/servlets/purl/1661210" in text
+ assert "dde4319ba9bd4ee4fd8789cea57733f67a88220341c48780b6c1a7215a909701" in text
+ nodes = docs[2]["ecological_interactions"]
+ quotes = [e["snippet"] for n in [nodes[1], nodes[3]] for e in n["evidence"]]
+ assert sum(len(q.split()) for q in quotes) == change["added_quoted_words"] == 22
+ assert all(q in text for q in quotes)
+
+
+def test_all_nodes_and_arrows_are_accounted_for_without_unapproved_extension():
+ ledger, rows, docs = records()
+ assert sum(len(r["node_decisions"]) for r in rows) == 9
+ assert sum(len(r["edges_before"]) for r in rows) == 3
+ assert sum(len(r["edges_after"]) for r in rows) == 2
+ assert sum(len(r["removed_edge_decisions"]) for r in rows) == 1
+ assert (
+ ledger["primary_graph_snippet_count"] == ledger["cache_matched_graph_snippet_count"] == 12
+ )
+ assert all(c["independent_primary_match"] for c in ledger["snippet_checks"])
+ assert ledger["edison"]["provider_submissions"] == ledger["edison"]["credits_spent"] == 0
+ assert [(d["community_id"], d["query_chars"]) for d in ledger["edison"]["dry_runs"]] == [
+ ("CommunityMech:000395", 10512),
+ ("CommunityMech:000342", 8208),
+ ]
+ for row, doc in zip(rows, docs, strict=True):
+ rename = row["renamed_nodes"]
+ before = {
+ (rename.get(e["source"], e["source"]), rename.get(e["target"], e["target"]))
+ for e in row["edges_before"]
+ }
+ after = {(e["source"], e["target"]) for e in row["edges_after"]}
+ removed = {
+ (rename.get(e["source"], e["source"]), rename.get(e["target"], e["target"]))
+ for e in row["removed_edge_decisions"]
+ }
+ assert after.isdisjoint(removed) and after | removed == before
+ names = {n["name"] for n in doc.get("ecological_interactions", [])}
+ assert names == {n["node"] for n in row["node_decisions"]}
+ assert all(
+ a.split("#", 1)[1] in names
+ for d in doc.get("discussions", [])
+ for a in d["attaches_to"]
+ if a.startswith("ecological_interactions#")
+ )
+
+
+def test_scoped_histories_and_issue_lifecycle_remain_explicit():
+ ledger, rows, docs = records()
+ assert ledger["independent_approval"] is False
+ assert ledger["issues"] == [1637, 1638, 1639]
+ assert ledger["unresolved_non_graph_issues"] == [1642]
+ assert sum(r["curation_events_added"] for r in rows) == 3
+ for row, doc in zip(rows, docs, strict=True):
+ assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"]
+ changed = row["outcome"] == "changed"
+ assert row["curation_events_added"] == len(row["history_files"]) == int(changed)
+ assert row["allowed_changed_fields"] == (
+ ["curation_history", "discussions", "ecological_interactions"] if changed else []
+ )
+ if changed:
+ assert doc["curation_history"][-1]["llm_assisted"] is True
+ assert all((ROOT / p).exists() for p in row["history_files"])