← WebMCP Directory

Tool tree

living-evidence.doralemon.chatgpt.site

Health & EducationTools verified
Website
A Living Evidence document: a meta-analysis of the Pygmalion effect that you — and your AI agent — can cross-examine, re-run, and extend, right on this page.
Explore capabilities

    page: Home

    get_document_overviewAnswer

    Orientation for agents: what this living document claims, the current state of its evidence base, which analyses its tools can run, and the rules of engagement. Call this first.

    View tool JSON
    {
      "name": "get_document_overview",
      "kind": "answer",
      "impl": "imperative",
      "description": "Orientation for agents: what this living document claims, the current state of its evidence base, which analyses its tools can run, and the rules of engagement. Call this first.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    list_claimsAnswer

    List addressable claims, their document-registered rules, and canonical rule outcomes (not_run / passed / failed / inconclusive). Legacy status codes remain for compatibility. A rule outcome reports document-registered rule outcome only — not an independent judgment of truth, validity, risk of bias, or evidence quality.

    View tool JSON
    {
      "name": "list_claims",
      "kind": "answer",
      "impl": "imperative",
      "description": "List addressable claims, their document-registered rules, and canonical rule outcomes (not_run / passed / failed / inconclusive). Legacy status codes remain for compatibility. A rule outcome reports document-registered rule outcome only — not an independent judgment of truth, validity, risk of bias, or evidence quality.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    get_data_manifestAnswer

    Return the citeable scientific-state manifest: dataset identity, record and experiment counts, estimand definition, unit note, claim rules, provenance-completeness counts, risk-of-bias coverage, and SHA-256 state id. Records are omitted by default to protect context; set include_records=true for the full evidence table.

    View tool JSON
    {
      "name": "get_data_manifest",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return the citeable scientific-state manifest: dataset identity, record and experiment counts, estimand definition, unit note, claim rules, provenance-completeness counts, risk-of-bias coverage, and SHA-256 state id. Records are omitted by default to protect context; set include_records=true for the full evidence table.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "include_records": {
            "type": "boolean",
            "description": "include every effect-size record with provenance and risk-of-bias fields (default false)"
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }
    get_studiesAnswer

    Return the full effect-size evidence table with record and experiment counts, experiment cluster ids, yi/vi, moderators, sample sizes, source locator/DOI/derivation/verification provenance, and structured risk-of-bias state. Set include_pending=true to include proposals.

    View tool JSON
    {
      "name": "get_studies",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return the full effect-size evidence table with record and experiment counts, experiment cluster ids, yi/vi, moderators, sample sizes, source locator/DOI/derivation/verification provenance, and structured risk-of-bias state. Set include_pending=true to include proposals.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "include_pending": {
            "type": "boolean",
            "description": "also list pending proposals (default false)"
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }
    run_meta_analysisAction

    Fit a meta-analytic model to the current evidence base and RENDER A FOREST PLOT into the document. method: REML or DL random-effects, or FE common-effect (FE assumes one common effect; tau2 is null by model assumption, not estimated as zero). p is a two-sided test of the pooled effect against zero. Optionally exclude specific study ids (e.g. to test sensitivity to one study). Returns pooled estimate, 95% CI, p, tau^2, I^2, and heterogeneity Q.

    View tool JSON
    {
      "name": "run_meta_analysis",
      "kind": "act",
      "impl": "imperative",
      "description": "Fit a meta-analytic model to the current evidence base and RENDER A FOREST PLOT into the document. method: REML or DL random-effects, or FE common-effect (FE assumes one common effect; tau2 is null by model assumption, not estimated as zero). p is a two-sided test of the pooled effect against zero. Optionally exclude specific study ids (e.g. to test sensitivity to one study). Returns pooled estimate, 95% CI, p, tau^2, I^2, and heterogeneity Q.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "enum": [
              "REML",
              "DL",
              "FE"
            ],
            "description": "model / tau^2 estimator: REML or DL random-effects, FE common-effect (default REML)"
          },
          "exclude": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "study ids to exclude, e.g. [\"s04\"]"
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }
    leave_one_outAction

    Leave-one-record-out sensitivity analysis: re-fit the random-effects model omitting each effect-size record in turn, and RENDER the plot into the document. Shows whether any single record drives the pooled result (min/max estimates, significance flips). It reports estimate changes and p<.05-status flips only — not stability of magnitude, dependence, moderators, heterogeneity, or bias diagnostics.

    View tool JSON
    {
      "name": "leave_one_out",
      "kind": "act",
      "impl": "imperative",
      "description": "Leave-one-record-out sensitivity analysis: re-fit the random-effects model omitting each effect-size record in turn, and RENDER the plot into the document. Shows whether any single record drives the pooled result (min/max estimates, significance flips). It reports estimate changes and p<.05-status flips only — not stability of magnitude, dependence, moderators, heterogeneity, or bias diagnostics.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    subgroup_analysisAction

    Split the studies into subgroups, fit each subgroup separately, test the between-group difference, and RENDER a subgroup forest plot. For weeks, omit split_at to use 1 or provide another threshold; split_at is rejected for setting/tester (categorical fields split by value, so a threshold would be silently meaningless).

    View tool JSON
    {
      "name": "subgroup_analysis",
      "kind": "act",
      "impl": "imperative",
      "description": "Split the studies into subgroups, fit each subgroup separately, test the between-group difference, and RENDER a subgroup forest plot. For weeks, omit split_at to use 1 or provide another threshold; split_at is rejected for setting/tester (categorical fields split by value, so a threshold would be silently meaningless).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "split_field": {
            "type": "string",
            "enum": [
              "weeks",
              "setting",
              "tester"
            ],
            "description": "field to split on"
          },
          "split_at": {
            "type": "number",
            "description": "threshold for the numeric field weeks (group A: value <= split_at; default 1). Rejected for setting/tester."
          }
        },
        "required": [
          "split_field"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    meta_regressionAction

    Mixed-effects meta-regression of effect size on a numeric moderator (REML), RENDERING a bubble plot with the fitted line. cap truncates the moderator (cap=3 replicates the published Raudenbush model min(weeks,3)); it must be > 0 and is only accepted for moderator "weeks" — capping any other field is rejected rather than silently fitted. Returns slope, p, and R^2 (a boundary-clipped proportional reduction in estimated tau^2, with no uncertainty interval).

    View tool JSON
    {
      "name": "meta_regression",
      "kind": "act",
      "impl": "imperative",
      "description": "Mixed-effects meta-regression of effect size on a numeric moderator (REML), RENDERING a bubble plot with the fitted line. cap truncates the moderator (cap=3 replicates the published Raudenbush model min(weeks,3)); it must be > 0 and is only accepted for moderator \"weeks\" — capping any other field is rejected rather than silently fitted. Returns slope, p, and R^2 (a boundary-clipped proportional reduction in estimated tau^2, with no uncertainty interval).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "moderator": {
            "type": "string",
            "enum": [
              "weeks",
              "year"
            ],
            "description": "numeric moderator field"
          },
          "cap": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "optional truncation: x = min(field, cap). Must be > 0, and only accepted for moderator \"weeks\"."
          }
        },
        "required": [
          "moderator"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    funnel_checkAction

    Small-study asymmetry diagnostics: render a funnel plot and run Egger's regression test. Asymmetry can have causes other than publication bias, and a non-significant result (especially at k≈19) is not evidence of absence of bias. Returns the intercept, p-value and an interpretation.

    View tool JSON
    {
      "name": "funnel_check",
      "kind": "act",
      "impl": "imperative",
      "description": "Small-study asymmetry diagnostics: render a funnel plot and run Egger's regression test. Asymmetry can have causes other than publication bias, and a non-significant result (especially at k≈19) is not evidence of absence of bias. Returns the intercept, p-value and an interpretation.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    cumulative_metaAction

    Retrospective cumulative meta-analysis in publication-year order: prefixes of the CURRENT corpus. It does not reconstruct which evidence was actually available or discoverable at each historical date. RENDERS the step plot.

    View tool JSON
    {
      "name": "cumulative_meta",
      "kind": "act",
      "impl": "imperative",
      "description": "Retrospective cumulative meta-analysis in publication-year order: prefixes of the CURRENT corpus. It does not reconstruct which evidence was actually available or discoverable at each historical date. RENDERS the step plot.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    evaluate_claimAction

    Run one claim's document-registered rule. The analysis renders into the document and the badge reports passed / failed / inconclusive. It is not a truth, validity, bias, or evidence-quality rating. Legacy verdict codes remain in the response. Scope: document-registered rule outcome only — not an independent judgment of truth, validity, risk of bias, or evidence quality.

    View tool JSON
    {
      "name": "evaluate_claim",
      "kind": "act",
      "impl": "imperative",
      "description": "Run one claim's document-registered rule. The analysis renders into the document and the badge reports passed / failed / inconclusive. It is not a truth, validity, bias, or evidence-quality rating. Legacy verdict codes remain in the response. Scope: document-registered rule outcome only — not an independent judgment of truth, validity, risk of bias, or evidence quality.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "claim_id": {
            "type": "string",
            "description": "claim id from list_claims"
          }
        },
        "required": [
          "claim_id"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    propose_studyAction

    Propose one independent SMD record. Source locator, quote, derivation, design, outcome/timepoint, experiment id, SMD variant/direction, collection frame and explicit risk-of-bias status are required. An assessed RoB label additionally requires instrument, assessor, date, source, and domain rationales; otherwise use not_assessed. DOI remains optional when none exists. Dependent records and incompatible estimands are rejected because this v1 package runtime does not model their covariance. Human approval accepts an extraction into the local evidence base; it does not independently verify it.

    View tool JSON
    {
      "name": "propose_study",
      "kind": "act",
      "impl": "imperative",
      "description": "Propose one independent SMD record. Source locator, quote, derivation, design, outcome/timepoint, experiment id, SMD variant/direction, collection frame and explicit risk-of-bias status are required. An assessed RoB label additionally requires instrument, assessor, date, source, and domain rationales; otherwise use not_assessed. DOI remains optional when none exists. Dependent records and incompatible estimands are rejected because this v1 package runtime does not model their covariance. Human approval accepts an extraction into the local evidence base; it does not independently verify it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "author": {
            "type": "string",
            "minLength": 1
          },
          "year": {
            "type": "integer",
            "minimum": 1900,
            "maximum": 2100
          },
          "yi": {
            "type": "number",
            "minimum": -10,
            "maximum": 10,
            "description": "standardized mean difference, coded in effect_direction"
          },
          "vi": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "sampling variance of yi"
          },
          "weeks": {
            "type": "number",
            "minimum": 0,
            "description": "weeks of prior teacher-student contact"
          },
          "setting": {
            "type": "string",
            "enum": [
              "group",
              "indiv"
            ],
            "description": "IQ test administration setting (group|indiv)"
          },
          "tester": {
            "type": "string",
            "enum": [
              "aware",
              "blind"
            ],
            "description": "whether the tester knew the expectancy assignment (aware|blind)"
          },
          "n1i": {
            "type": "integer",
            "minimum": 1,
            "description": "expectancy-group sample size"
          },
          "n2i": {
            "type": "integer",
            "minimum": 1,
            "description": "control-group sample size"
          },
          "source": {
            "type": "string",
            "minLength": 1,
            "description": "citation or URL for provenance"
          },
          "quote": {
            "type": "string",
            "minLength": 1,
            "description": "short verbatim excerpt the extracted numbers were read from (required)"
          },
          "derivation": {
            "type": "string",
            "minLength": 1,
            "description": "how yi and vi were derived, including the metafor measure or source cells used"
          },
          "source_url": {
            "type": "string",
            "description": "resolvable source URL when available; the page does not fetch or verify it"
          },
          "source_locator": {
            "type": "string",
            "minLength": 1,
            "description": "page, table, figure, row, cell, or supplement locator"
          },
          "doi": {
            "type": "string",
            "description": "DOI when one exists; omit rather than inventing one"
          },
          "study_design": {
            "type": "string",
            "minLength": 1,
            "description": "design relevant to interpreting this effect-size record"
          },
          "outcome": {
            "type": "string",
            "minLength": 1,
            "description": "outcome represented by yi"
          },
          "timepoint": {
            "type": "string",
            "minLength": 1,
            "description": "measurement time point represented by yi"
          },
          "experiment_id": {
            "type": "string",
            "minLength": 1,
            "description": "unique experiment id; v1 rejects a second record with the same id because dependent effects are unsupported"
          },
          "record_role": {
            "type": "string",
            "description": "what this row represents within its experiment"
          },
          "smd_variant": {
            "type": "string",
            "enum": [
              "Hedges_g",
              "Cohen_d",
              "Glass_delta",
              "other"
            ],
            "description": "exact standardized-mean-difference definition"
          },
          "smd_variant_detail": {
            "type": "string",
            "description": "required description when smd_variant is other"
          },
          "effect_direction": {
            "type": "string",
            "minLength": 1,
            "description": "what a positive yi means, including contrast direction"
          },
          "collection_frame": {
            "type": "string",
            "minLength": 1,
            "description": "eligibility/search frame defining what this evidence base attempted to collect"
          },
          "risk_of_bias_status": {
            "type": "string",
            "enum": [
              "low",
              "some_concerns",
              "high",
              "not_assessed"
            ],
            "description": "overall status; an assessed label requires all assessment metadata and remains author-supplied/unverified"
          },
          "risk_of_bias_instrument": {
            "type": "string",
            "description": "named assessment instrument/version when assessed"
          },
          "risk_of_bias_assessor": {
            "type": "string",
            "description": "person or team responsible for the assessment"
          },
          "risk_of_bias_date": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "assessment date (YYYY-MM-DD)"
          },
          "risk_of_bias_source": {
            "type": "string",
            "description": "citation, file, registry or record locating the assessment"
          },
          "risk_of_bias_overall_rationale": {
            "type": "string",
            "minLength": 1,
            "description": "rationale for the overall judgment; stored verbatim and not checked against an instrument-specific algorithm"
          },
          "risk_of_bias_domains": {
            "type": "array",
            "minItems": 1,
            "description": "instrument-specific domain judgments with a rationale",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "domain": {
                  "type": "string",
                  "minLength": 1
                },
                "judgment": {
                  "type": "string",
                  "enum": [
                    "low",
                    "some_concerns",
                    "high",
                    "unclear",
                    "not_applicable"
                  ]
                },
                "rationale": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "domain",
                "judgment",
                "rationale"
              ]
            }
          }
        },
        "required": [
          "author",
          "year",
          "yi",
          "vi",
          "weeks",
          "source",
          "quote",
          "source_locator",
          "derivation",
          "study_design",
          "outcome",
          "timepoint",
          "experiment_id",
          "smd_variant",
          "effect_direction",
          "collection_frame",
          "risk_of_bias_status"
        ],
        "allOf": [
          {
            "if": {
              "properties": {
                "risk_of_bias_status": {
                  "const": "not_assessed"
                }
              },
              "required": [
                "risk_of_bias_status"
              ]
            },
            "then": {
              "properties": {
                "risk_of_bias_domains": {
                  "type": "array",
                  "maxItems": 0
                }
              }
            },
            "else": {
              "required": [
                "risk_of_bias_instrument",
                "risk_of_bias_assessor",
                "risk_of_bias_date",
                "risk_of_bias_source",
                "risk_of_bias_overall_rationale",
                "risk_of_bias_domains"
              ]
            }
          }
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    get_audit_logAnswer

    Return the reload-persistent, append-ordered audit ledger. Every entry carries SHA-256 result_digest, previous_entry_hash and entry_hash. The chain detects edits and reordering; it does not prove author identity or provide a trusted timestamp. Use create_reproducibility_receipt to sign a state with the current browser-session key.

    View tool JSON
    {
      "name": "get_audit_log",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return the reload-persistent, append-ordered audit ledger. Every entry carries SHA-256 result_digest, previous_entry_hash and entry_hash. The chain detects edits and reordering; it does not prove author identity or provide a trusted timestamp. Use create_reproducibility_receipt to sign a state with the current browser-session key.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    get_reproducibility_statusAnswer

    Return SHA-256 scientific-state identity, audit-chain verification, persistence scope and the latest signed receipt. Runtime/artifact hashes are signed claims but are not self-verified in-page; use the detached receipt verifier for exact artifact bytes. This distinguishes content integrity from authorship, peer review, primary-source correctness and preservation.

    View tool JSON
    {
      "name": "get_reproducibility_status",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return SHA-256 scientific-state identity, audit-chain verification, persistence scope and the latest signed receipt. Runtime/artifact hashes are signed claims but are not self-verified in-page; use the detached receipt verifier for exact artifact bytes. This distinguishes content integrity from authorship, peer review, primary-source correctness and preservation.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    create_reproducibility_receiptAction

    Create and visibly render an ECDSA P-256 signed receipt for the current scientific-state SHA-256 and audit-chain head. The signing key is generated for this browser session; pin its fingerprint externally before treating the signature as authorship evidence.

    View tool JSON
    {
      "name": "create_reproducibility_receipt",
      "kind": "act",
      "impl": "imperative",
      "description": "Create and visibly render an ECDSA P-256 signed receipt for the current scientific-state SHA-256 and audit-chain head. The signing key is generated for this browser session; pin its fingerprint externally before treating the signature as authorship evidence.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }

    page: Workspace

    set_hypothesisAction

    Set the hypothesis this workspace examines (1–500 characters). Shown at the top of the page and carried into the exported document.

    View tool JSON
    {
      "name": "set_hypothesis",
      "kind": "act",
      "impl": "imperative",
      "description": "Set the hypothesis this workspace examines (1–500 characters). Shown at the top of the page and carried into the exported document.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "description": "the hypothesis, as one sentence (1–500 characters, not blank after trimming)"
          }
        },
        "required": [
          "text"
        ],
        "additionalProperties": false
      },
      "page": "/workspace.html"
    }
    add_claimAction

    Register a new addressable claim with its deterministic machine check. `test` is the declarative rule AST: {analysis, args?, focus?, verdicts:[{when:[{path,op,value}], verdict, reason}, …, {default:true, verdict, reason}]}. Ops: lt, le, gt, ge, eq, ne, abs_lt, abs_ge. Copy an existing claim's machine_check from list_claims as a template. Only the SHAPE is validated here — a claim is registered because it is well-formed, not because it currently passes. Use evaluate_claim afterwards to get a canonical passed / failed / inconclusive rule outcome.

    View tool JSON
    {
      "name": "add_claim",
      "kind": "act",
      "impl": "imperative",
      "description": "Register a new addressable claim with its deterministic machine check. `test` is the declarative rule AST: {analysis, args?, focus?, verdicts:[{when:[{path,op,value}], verdict, reason}, …, {default:true, verdict, reason}]}. Ops: lt, le, gt, ge, eq, ne, abs_lt, abs_ge. Copy an existing claim's machine_check from list_claims as a template. Only the SHAPE is validated here — a claim is registered because it is well-formed, not because it currently passes. Use evaluate_claim afterwards to get a canonical passed / failed / inconclusive rule outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "optional claim id; auto-assigned (wc01, wc02, …) when omitted"
          },
          "statement": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300,
            "description": "the claim in plain language, as a reader would argue about it"
          },
          "rule": {
            "type": "string",
            "minLength": 1,
            "description": "human-readable description of the check (\"Supported iff …\")"
          },
          "test": {
            "type": "object",
            "description": "the machine-check AST; mirrors what list_claims returns as machine_check",
            "properties": {
              "analysis": {
                "type": "string",
                "enum": [
                  "overall",
                  "loo",
                  "subgroup",
                  "metareg",
                  "funnel",
                  "cumulative"
                ],
                "description": "which page analysis produces the result the conditions read"
              },
              "args": {
                "type": "object",
                "description": "arguments passed to that analysis, e.g. {\"method\":\"REML\"} or {\"moderator\":\"weeks\",\"cap\":3}"
              },
              "focus": {
                "type": "object",
                "description": "optional: pick one element of a result collection and expose it as ctx.f (e.g. one subgroup)",
                "properties": {
                  "collection": {
                    "type": "string",
                    "description": "array field of the result, e.g. \"groups\""
                  },
                  "match_field": {
                    "type": "string",
                    "description": "field of each element to match on, e.g. \"group\""
                  },
                  "match_substring": {
                    "type": "string",
                    "description": "substring that identifies the element, e.g. \"≤ 1\""
                  }
                },
                "required": [
                  "collection",
                  "match_field",
                  "match_substring"
                ],
                "additionalProperties": false
              },
              "verdicts": {
                "type": "array",
                "minItems": 2,
                "description": "walked in order; the LAST entry must be {default:true} and carries no conditions",
                "items": {
                  "type": "object",
                  "properties": {
                    "when": {
                      "type": "array",
                      "description": "all conditions must hold for this entry to match",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string",
                            "description": "dotted path into the analysis result, e.g. \"moderator.p\""
                          },
                          "op": {
                            "type": "string",
                            "enum": [
                              "lt",
                              "le",
                              "gt",
                              "ge",
                              "eq",
                              "ne",
                              "abs_lt",
                              "abs_ge"
                            ]
                          },
                          "value": {
                            "description": "comparison value; numeric for every op except eq/ne"
                          }
                        },
                        "required": [
                          "path",
                          "op",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "default": {
                      "type": "boolean",
                      "description": "true on the final fallthrough entry only"
                    },
                    "verdict": {
                      "type": "string",
                      "enum": [
                        "supported",
                        "challenged",
                        "nuanced"
                      ]
                    },
                    "reason": {
                      "type": "string",
                      "description": "template rendered against the result, e.g. \"pooled SMD {estimate}, p = {p}\""
                    }
                  },
                  "required": [
                    "verdict"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "analysis",
              "verdicts"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "statement",
          "rule",
          "test"
        ],
        "additionalProperties": false
      },
      "page": "/workspace.html"
    }
    export_documentAction

    Write a self-contained single-file Living Evidence document with evidence provenance, registered rules, runtime, WebMCP tools and an embedded ECDSA-signed scientific-state receipt. Returns an exact artifact_sha256 plus a detached receipt that must be saved and checked externally for byte-level artifact verification; HTML is included only when requested.

    View tool JSON
    {
      "name": "export_document",
      "kind": "act",
      "impl": "imperative",
      "description": "Write a self-contained single-file Living Evidence document with evidence provenance, registered rules, runtime, WebMCP tools and an embedded ECDSA-signed scientific-state receipt. Returns an exact artifact_sha256 plus a detached receipt that must be saved and checked externally for byte-level artifact verification; HTML is included only when requested.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "include_html": {
            "type": "boolean",
            "description": "return the full HTML in the response (large); default false"
          }
        },
        "additionalProperties": false
      },
      "page": "/workspace.html"
    }

    page: Atlas

    atlas_overviewAction

    Orientation for agents: what this evidence map is, how big the graph is, the one estimand cell’s current synthesis, the honesty labels that constrain what the map may claim, and which tool to reach for. Call this first.

    View tool JSON
    {
      "name": "atlas_overview",
      "kind": "act",
      "impl": "imperative",
      "description": "Orientation for agents: what this evidence map is, how big the graph is, the one estimand cell’s current synthesis, the honesty labels that constrain what the map may claim, and which tool to reach for. Call this first.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/atlas.html"
    }
    get_cellAnswer

    Everything hanging off the one estimand cell: its canonical definition, the live synthesis (spec + result), heterogeneity, the claims attached to it and the record counts per band of prior teacher–pupil contact.

    View tool JSON
    {
      "name": "get_cell",
      "kind": "answer",
      "impl": "imperative",
      "description": "Everything hanging off the one estimand cell: its canonical definition, the live synthesis (spec + result), heterogeneity, the claims attached to it and the record counts per band of prior teacher–pupil contact.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cell_id": {
            "type": "string",
            "const": "cell:teacher-expectancy-iq",
            "description": "optional, and only this value: the map holds exactly one estimand cell (cell:teacher-expectancy-iq)"
          }
        },
        "additionalProperties": false
      },
      "page": "/atlas.html"
    }
    list_claimsAnswer

    The claims asserted about this cell, each with its human-readable rule, declarative machine-check AST and current registered-rule outcome. An outcome reports document-registered rule outcome only — not an independent judgment of truth, validity, risk of bias, or evidence quality. Legacy verdict codes remain for compatibility.

    View tool JSON
    {
      "name": "list_claims",
      "kind": "answer",
      "impl": "imperative",
      "description": "The claims asserted about this cell, each with its human-readable rule, declarative machine-check AST and current registered-rule outcome. An outcome reports document-registered rule outcome only — not an independent judgment of truth, validity, risk of bias, or evidence quality. Legacy verdict codes remain for compatibility.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/atlas.html"
    }
    evaluate_claimAction

    Run the deterministic machine check behind one claim against the full record set. It does not inherit synthesize exclusions. The node gets a registered-rule glyph (✓ passed / ✗ failed / △ inconclusive); this is document-registered rule outcome only — not an independent judgment of truth, validity, risk of bias, or evidence quality. Legacy verdict codes remain in the response.

    View tool JSON
    {
      "name": "evaluate_claim",
      "kind": "act",
      "impl": "imperative",
      "description": "Run the deterministic machine check behind one claim against the full record set. It does not inherit synthesize exclusions. The node gets a registered-rule glyph (✓ passed / ✗ failed / △ inconclusive); this is document-registered rule outcome only — not an independent judgment of truth, validity, risk of bias, or evidence quality. Legacy verdict codes remain in the response.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "claim_id": {
            "type": "string",
            "description": "claim id from list_claims, e.g. c-textbook (the node form claim:c-textbook is accepted too)"
          }
        },
        "required": [
          "claim_id"
        ],
        "additionalProperties": false
      },
      "page": "/atlas.html"
    }
    get_gapsAnswer

    The three typed gaps this map computes from the records themselves: a coverage gap along the weeks-of-prior-contact dimension, a replication gap and a verification gap. Each carries its collection frame — computed absence is not the same as "not searched".

    View tool JSON
    {
      "name": "get_gaps",
      "kind": "answer",
      "impl": "imperative",
      "description": "The three typed gaps this map computes from the records themselves: a coverage gap along the weeks-of-prior-contact dimension, a replication gap and a verification gap. Each carries its collection frame — computed absence is not the same as \"not searched\".",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/atlas.html"
    }
    get_study_briefAnswer

    Compile a gap into a prospective study-design brief: the design inputs the Atlas can supply, filled in and labelled for what they are, plus the ones it cannot, named. It computes NO sample size — the inputs that would justify one are not present in this Atlas or its corpus, and a pooled τ² is not an outcome variance. Gaps without a brief return {available: false, reason}, not an error. Renders the brief as a card in the detail panel; ledgered.

    View tool JSON
    {
      "name": "get_study_brief",
      "kind": "answer",
      "impl": "imperative",
      "description": "Compile a gap into a prospective study-design brief: the design inputs the Atlas can supply, filled in and labelled for what they are, plus the ones it cannot, named. It computes NO sample size — the inputs that would justify one are not present in this Atlas or its corpus, and a pooled τ² is not an outcome variance. Gaps without a brief return {available: false, reason}, not an error. Renders the brief as a card in the detail panel; ledgered.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "gap_id": {
            "type": "string",
            "enum": [
              "gap:coverage-weeks",
              "gap:replication",
              "gap:verification"
            ],
            "description": "gap id from get_gaps; only gaps whose get_gaps entry has brief_available:true compile — currently gap:coverage-weeks"
          }
        },
        "required": [
          "gap_id"
        ],
        "additionalProperties": false
      },
      "page": "/atlas.html"
    }
    focus_nodeAction

    Select a node on the map the human is looking at and open it in the detail panel, returning that node’s full detail object. This is the shared surface: your exploration is visible on their screen. Changes only which node is selected — no record, edge or claim is touched. Ledgered as navigation.

    View tool JSON
    {
      "name": "focus_node",
      "kind": "act",
      "impl": "imperative",
      "description": "Select a node on the map the human is looking at and open it in the detail panel, returning that node’s full detail object. This is the shared surface: your exploration is visible on their screen. Changes only which node is selected — no record, edge or claim is touched. Ledgered as navigation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "node_id": {
            "type": "string",
            "description": "node id or bare id — rec:s10 or s10, claim:c-window or c-window, gap:coverage-weeks or coverage-weeks (see list_nodes)"
          }
        },
        "required": [
          "node_id"
        ],
        "additionalProperties": false
      },
      "page": "/atlas.html"
    }
    synthesizeAction

    Re-fit the cell under a named spec: method REML or DL random-effects, or FE common-effect (FE assumes one common effect; tau2 is null by model assumption, not estimated as zero). p is a two-sided test of the pooled effect against zero. Optional record exclusions. Changes only the displayed synthesis (cell node + panel) — the record set is untouched and evaluate_claim does not inherit the exclusions; ledgered. Excluding down to fewer than 2 records is an error, not a silent empty fit.

    View tool JSON
    {
      "name": "synthesize",
      "kind": "act",
      "impl": "imperative",
      "description": "Re-fit the cell under a named spec: method REML or DL random-effects, or FE common-effect (FE assumes one common effect; tau2 is null by model assumption, not estimated as zero). p is a two-sided test of the pooled effect against zero. Optional record exclusions. Changes only the displayed synthesis (cell node + panel) — the record set is untouched and evaluate_claim does not inherit the exclusions; ledgered. Excluding down to fewer than 2 records is an error, not a silent empty fit.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "enum": [
              "REML",
              "DL",
              "FE"
            ],
            "description": "tau^2 estimator / model: REML or DL random-effects, FE common-effect (default REML)"
          },
          "exclude": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "record ids to leave out, bare or node form, e.g. [\"s04\"] or [\"rec:s04\"]"
          }
        },
        "additionalProperties": false
      },
      "page": "/atlas.html"
    }
    list_nodesAnswer

    Every addressable node on the map, grouped by type, with its label — the id directory for focus_node. Record entries carry {record_id, node_id, author, year, weeks, yi, vi} so a record can be picked without a second call. Pure read: not ledgered, nothing on the human’s screen changes.

    View tool JSON
    {
      "name": "list_nodes",
      "kind": "answer",
      "impl": "imperative",
      "description": "Every addressable node on the map, grouped by type, with its label — the id directory for focus_node. Record entries carry {record_id, node_id, author, year, weeks, yi, vi} so a record can be picked without a second call. Pure read: not ledgered, nothing on the human’s screen changes.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/atlas.html"
    }
    get_audit_logAnswer

    Return this page’s append-only audit ledger: every claim verdict, synthesis, brief and navigation in this session, in order. Each entry is {run, time, actor (human|agent|system), kind, tool, inputs, summary, evidence_version, result_digest}. result_digest is a non-cryptographic FNV-1a checksum for detecting accidental payload changes, not tamper evidence. The ledger is session-local: it lives in this page for this visit and is not published, synced or shared.

    View tool JSON
    {
      "name": "get_audit_log",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return this page’s append-only audit ledger: every claim verdict, synthesis, brief and navigation in this session, in order. Each entry is {run, time, actor (human|agent|system), kind, tool, inputs, summary, evidence_version, result_digest}. result_digest is a non-cryptographic FNV-1a checksum for detecting accidental payload changes, not tamper evidence. The ledger is session-local: it lives in this page for this visit and is not published, synced or shared.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/atlas.html"
    }