{"serverId":"mcp-registry/com.peopleprincipia/principia","tools":[{"name":"principia.canonical_items.list","fixed":{"name":"principia_canonical_items_list","description":"List CanonicalSurveyItem rows (PRN-050 item-level dedup spine). Each row aggregates one normalized item stem across N source instruments via source_items[].","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":500,"exclusiveMinimum":0},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.canonical_items.list\" → \"principia_canonical_items_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":123,"tokensAfter":123},{"name":"principia.canonical_items.lookup","fixed":{"name":"principia_canonical_items_lookup","description":"Lookup one CanonicalSurveyItem by canonical_item_id (e.g., CITM_7350938cb42d). Unknown ids return found:false.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string","minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.canonical_items.lookup\" → \"principia_canonical_items_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"principia.canonical_items.search","fixed":{"name":"principia_canonical_items_search","description":"Keyword search over normalized_text + alternative_texts. Optional instrument_id filter narrows to canonical items whose source_items[] reference that instrument.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","minLength":1},"limit":{"type":"integer","maximum":100,"exclusiveMinimum":0},"instrument_id":{"type":"string","minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.canonical_items.search\" → \"principia_canonical_items_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":135,"tokensAfter":135},{"name":"principia.canonical_priors.lookup","fixed":{"name":"principia_canonical_priors_lookup","description":"Lookup a synthesized Bayesian prior by id OR (from_construct_id, predicate, to_construct_id). Empty until PRN-021 synthesis engine ships. PRN-N1013-M4: a prior's r pools observed and corrected contributing effects without a per-row marker yet (EFFECT_ESTIMATE_GLOSSARY.units_not_recorded, @people-analyst/measurement-core) — read it as basis-not-recorded, not as raw r.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"id":{"type":"string"},"predicate":{"type":"string"},"sample_culture":{"type":"string"},"to_construct_id":{"type":"string"},"from_construct_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.canonical_priors.lookup\" → \"principia_canonical_priors_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":192,"tokensAfter":192},{"name":"principia.canonical_priors.search","fixed":{"name":"principia_canonical_priors_search","description":"Search canonical priors by from/predicate/to. Empty until PRN-021 synthesis engine ships.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"to":{"type":"string"},"from":{"type":"string"},"limit":{"type":"integer","maximum":500,"exclusiveMinimum":0},"predicate":{"type":"string"},"to_construct_id":{"type":"string"},"from_construct_id":{"type":"string"},"min_freshness_score":{"type":"number","maximum":1,"minimum":0},"min_informativeness":{"enum":["uninformative","weakly_informative","informative","highly_informative"],"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.canonical_priors.search\" → \"principia_canonical_priors_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":180,"tokensAfter":180},{"name":"principia.citations.lookup","fixed":{"name":"principia_citations_lookup","description":"Lookup one citation by id OR doi. Scans both id-keyed and doi-keyed candidates.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"id":{"type":"string"},"doi":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.citations.lookup\" → \"principia_citations_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":78,"tokensAfter":78},{"name":"principia.citations.search","fixed":{"name":"principia_citations_search","description":"Keyword search over title + apa_reference + doi + authors.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","minLength":1},"limit":{"type":"integer","maximum":100,"exclusiveMinimum":0}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.citations.search\" → \"principia_citations_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":91,"tokensAfter":91},{"name":"principia.constructs.list","fixed":{"name":"principia_constructs_list","description":"List canonical constructs (resolved CanonicalVariable rows). Supports limit/offset, engagement_family_only, and abstraction_level (PRN-271).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":500,"exclusiveMinimum":0},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0},"abstraction_level":{"enum":["broad_trait","facet","competency","condition","process","composite"],"type":"string"},"engagement_family_only":{"type":"boolean"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.constructs.list\" → \"principia_constructs_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":162,"tokensAfter":162},{"name":"principia.constructs.lookup","fixed":{"name":"principia_constructs_lookup","description":"Lookup one canonical construct by id (a canonical variable_id, e.g. VAR_000376). Unknown ids return found:false (soft validation).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string","minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.constructs.lookup\" → \"principia_constructs_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"principia.constructs.measures","fixed":{"name":"principia_constructs_measures","description":"Return instruments that measure a given construct, ranked by composite score (reliability + validity + literature usage + recency). Optional filters: min_reliability, cross_cultural_only, length_lte. Read-only — no mutation (curator-policy D4).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["construct_id"],"properties":{"limit":{"type":"integer","maximum":100,"exclusiveMinimum":0},"length_lte":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"construct_id":{"type":"string","minLength":1},"min_reliability":{"type":"number","maximum":1,"minimum":0},"cross_cultural_only":{"type":"boolean"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.constructs.measures\" → \"principia_constructs_measures\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":200,"tokensAfter":200},{"name":"principia.constructs.resolve","fixed":{"name":"principia_constructs_resolve","description":"Resolve a source-side construct {name, definition?, variable_code?} against the canonical store. READ-ONLY — does not mutate. Uses meta-factory's matcher (name@0.9 / code@0.85 / definition@0.6).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name"],"properties":{"name":{"type":"string","minLength":1},"definition":{"type":"string"},"variable_code":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.constructs.resolve\" → \"principia_constructs_resolve\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":132,"tokensAfter":132},{"name":"principia.constructs.search","fixed":{"name":"principia_constructs_search","description":"Keyword search over construct name + definition + alternative_names + variable_codes. Argument is `q` (not `query`).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","minLength":1},"limit":{"type":"integer","maximum":100,"exclusiveMinimum":0}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.constructs.search\" → \"principia_constructs_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"principia.critiques.lookup","fixed":{"name":"principia_critiques_lookup","description":"Look up one MethodologyCritique by `critique_id`. Returns `{matches, total, note?}` — array-shaped for parity with equivalences. Matches list contains 0 or 1 element.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.critiques.lookup\" → \"principia_critiques_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"principia.critiques.search","fixed":{"name":"principia_critiques_search","description":"Search MethodologyCritique rows by composite filter (`subject_id`, `subject_type`, `critique_type`, `severity`). All filters AND together; any subset of the four is valid. Read-only (curator-policy D4).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":500,"exclusiveMinimum":0},"severity":{"enum":["minor","moderate","major","fatal"],"type":"string"},"subject_id":{"type":"string"},"subject_type":{"enum":["instrument","construct","model","theoretical_model","effect_size","citation"],"type":"string"},"critique_type":{"enum":["construct_validity","method_bias","sampling","scoring","reliability","applicability","factor_structure","common_method_variance","other"],"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.critiques.search\" → \"principia_critiques_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":229,"tokensAfter":229},{"name":"principia.effects.search","fixed":{"name":"principia_effects_search","description":"Search EffectSize rows by from/to/statistic_type. Each returned value's observed/corrected basis is named per EFFECT_ESTIMATE_GLOSSARY (@people-analyst/measurement-core) — PRN-N1013-M4; a row with no typed estimates block reads 'basis not recorded', never a bare statistic symbol.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"to":{"type":"string"},"from":{"type":"string"},"limit":{"type":"integer","maximum":100,"exclusiveMinimum":0},"statistic_type":{"type":"string"},"to_construct_id":{"type":"string"},"from_construct_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.effects.search\" → \"principia_effects_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":181,"tokensAfter":181},{"name":"principia.equivalences.lookup","fixed":{"name":"principia_equivalences_lookup","description":"Look up InstrumentEquivalence rows by `id` OR by the canonical tuple (`construct_id` + `instrument_a` + `instrument_b` [+ optional `mapping_method`]). Pair ordering is normalized server-side so (Q12, UWES-9) and (UWES-9, Q12) resolve to the same row. Returns `{matches, total, note?}` — array-shaped because a (construct, pair) can carry multiple methods.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"id":{"type":"string"},"construct_id":{"type":"string"},"instrument_a":{"type":"string"},"instrument_b":{"type":"string"},"mapping_method":{"enum":["linear","equipercentile","irt_concordance","linking_study","expert_judgment"],"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.equivalences.lookup\" → \"principia_equivalences_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":210,"tokensAfter":210},{"name":"principia.equivalences.search","fixed":{"name":"principia_equivalences_search","description":"Search InstrumentEquivalence rows by `construct_id` and/or `instrument_id`. `instrument_id` matches either side of the pair. Optional `mapping_method` filter.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":500,"exclusiveMinimum":0},"construct_id":{"type":"string"},"instrument_id":{"type":"string"},"mapping_method":{"enum":["linear","equipercentile","irt_concordance","linking_study","expert_judgment"],"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.equivalences.search\" → \"principia_equivalences_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":157,"tokensAfter":157},{"name":"principia.evidence.for","fixed":{"name":"principia_evidence_for","description":"Return Evidence[] edges that name a given entity_id as the claim subject.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["entity_id"],"properties":{"limit":{"type":"integer","maximum":1000,"exclusiveMinimum":0},"entity_id":{"type":"string","minLength":1},"subject_type":{"enum":["construct","instrument","model","effect_size"],"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.evidence.for\" → \"principia_evidence_for\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"principia.evidence.trace","fixed":{"name":"principia_evidence_trace","description":"Retrieve the full causal chain from a construct, condition, or problem to interventions, with evidence grades at each hop. problem_id accepts pf.* addresses from the problemframe-2026-v1 frozen registry (cert d0770859) and resolves construct mappings via the MF-711 pf→construct join (landed 2026-09-11); an address with no join coverage yet resolves the problem frame with an honestly empty linked_constructs[], not an error. condition_id accepts bicycle-guide's minted cond_<slug> ConditionFrame id","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"problem_id":{"type":"string"},"condition_id":{"type":"string"},"construct_id":{"type":"string"},"limit_priors":{"type":"integer","maximum":20,"minimum":1},"limit_interventions":{"type":"integer","maximum":50,"minimum":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.evidence.trace\" → \"principia_evidence_trace\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":243,"tokensAfter":243},{"name":"principia.evidence_statements.search","fixed":{"name":"principia_evidence_statements_search","description":"Search owned, OA-sourced, attributed, stance-classified evidence quotes for a construct→construct relationship (from/to), or any statement naming a single construct. Filters: stance, displayable_only. The display layer for the metric profile page + book.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"to":{"type":"string","minLength":1},"from":{"type":"string","minLength":1},"limit":{"type":"integer","maximum":200,"exclusiveMinimum":0},"stance":{"enum":["supports","disputes"],"type":"string"},"construct":{"type":"string","minLength":1},"min_grade":{"enum":["A","B","C","D"],"type":"string"},"displayable_only":{"type":"boolean"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.evidence_statements.search\" → \"principia_evidence_statements_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":209,"tokensAfter":209},{"name":"principia.instruments.list","fixed":{"name":"principia_instruments_list","description":"List InstrumentCard rows. Optional construct_id filter narrows to instruments covering a given construct.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":500,"exclusiveMinimum":0},"owned":{"type":"boolean"},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0},"license":{"type":"string"},"construct_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.instruments.list\" → \"principia_instruments_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":132,"tokensAfter":132},{"name":"principia.instruments.lookup","fixed":{"name":"principia_instruments_lookup","description":"Lookup one instrument by instrument_id. Unknown ids return found:false.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string","minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.instruments.lookup\" → \"principia_instruments_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"principia.instruments.search","fixed":{"name":"principia_instruments_search","description":"Keyword search over instrument_name + developer + constructs_covered.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","minLength":1},"limit":{"type":"integer","maximum":100,"exclusiveMinimum":0}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.instruments.search\" → \"principia_instruments_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"principia.interventions.lookup","fixed":{"name":"principia_interventions_lookup","description":"Look up one Intervention by `intervention_id`. Returns `{matches, total, note?}` — array-shaped for parity with critiques + equivalences. Matches list contains 0 or 1 element.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string","minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.interventions.lookup\" → \"principia_interventions_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"principia.interventions.search","fixed":{"name":"principia_interventions_search","description":"Search Intervention rows by composite filter (`construct_id` — matches when `targets_constructs[]` includes the id; `problem_id` — a ProblemFrame pf.* address, resolved via the MF-711 pf→construct join to one or more construct ids and then matched the same way as `construct_id`; `modality` — matches when `delivery_modality[]` includes the modality; `cost_band` — exact match on `typical_cost_band`). All filters AND together; any subset is valid. Read-only (curator-policy D4).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":500,"exclusiveMinimum":0},"modality":{"enum":["training","coaching","tech","policy","structural","feedback","incentive","process_redesign","other"],"type":"string"},"cost_band":{"enum":["low","medium","high","enterprise"],"type":"string"},"problem_id":{"type":"string"},"construct_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.interventions.search\" → \"principia_interventions_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":271,"tokensAfter":271},{"name":"principia.items.lookup","fixed":{"name":"principia_items_lookup","description":"Lookup one survey item by item_id. SPEC §6/Q4 enforced: items_license != public_domain|open returns status:'restricted'.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string","minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.items.lookup\" → \"principia_items_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"principia.items.search","fixed":{"name":"principia_items_search","description":"Search items by text. Restricted items (proprietary instruments) are returned with text fields stripped; restricted_count surfaces how many.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","minLength":1},"limit":{"type":"integer","maximum":100,"exclusiveMinimum":0}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.items.search\" → \"principia_items_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"principia.measures.list","fixed":{"name":"principia_measures_list","description":"List Measure rows. entity_kind filter selects scientific_construct vs operational_metric.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":500,"exclusiveMinimum":0},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0},"entity_kind":{"enum":["scientific_construct","operational_metric"],"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.measures.list\" → \"principia_measures_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"principia.measures.lookup","fixed":{"name":"principia_measures_lookup","description":"Lookup one Measure by measure_id. Unknown ids return found:false.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string","minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.measures.lookup\" → \"principia_measures_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":76,"tokensAfter":76},{"name":"principia.models.list","fixed":{"name":"principia_models_list","description":"List Model rows (theoretical / structural frameworks).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":500,"exclusiveMinimum":0},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.models.list\" → \"principia_models_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"principia.models.lookup","fixed":{"name":"principia_models_lookup","description":"Lookup one Model by model_id. Unknown ids return found:false.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string","minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.models.lookup\" → \"principia_models_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"principia.models.search","fixed":{"name":"principia_models_search","description":"Keyword search over model_name + description.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","minLength":1},"limit":{"type":"integer","maximum":100,"exclusiveMinimum":0}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.models.search\" → \"principia_models_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":87,"tokensAfter":87},{"name":"principia.theoretical_models.list","fixed":{"name":"principia_theoretical_models_list","description":"List canonical theoretical models (JD-R, COR, SDT, AET, JCM, Goal-Setting, Equity, Two-Factor, etc.). Sorted by foundational publication year. Read-only.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":500,"exclusiveMinimum":0},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.theoretical_models.list\" → \"principia_theoretical_models_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":123,"tokensAfter":123},{"name":"principia.theoretical_models.lookup","fixed":{"name":"principia_theoretical_models_lookup","description":"Look up one CanonicalTheoreticalModel by id (e.g., theory.jd_r). Returns the theory's canonical constructs, canonical relations (with predicates), descendant per-study models, and foundational citations.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string","minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.theoretical_models.lookup\" → \"principia_theoretical_models_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"principia.theoretical_models.search","fixed":{"name":"principia_theoretical_models_search","description":"Search theoretical models by keyword over name/summary/constructs. Optional filters: invokes_construct_id (theories that invoke a specific construct), field_domain (classification axis).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","minLength":1},"limit":{"type":"integer","maximum":100,"exclusiveMinimum":0},"field_domain":{"type":"string"},"invokes_construct_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"principia.theoretical_models.search\" → \"principia_theoretical_models_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":150,"tokensAfter":150}],"toolsChanged":35,"tokensSaved":0,"todo":[{"tool":"principia_canonical_items_list","params":["limit","offset"]},{"tool":"principia_canonical_items_lookup","params":["id"]},{"tool":"principia_canonical_items_search","params":["q","limit","instrument_id"]},{"tool":"principia_canonical_priors_lookup","params":["id","predicate","sample_culture","to_construct_id","from_construct_id"]},{"tool":"principia_canonical_priors_search","params":["to","from","limit","predicate","to_construct_id","from_construct_id","min_freshness_score","min_informativeness"]},{"tool":"principia_citations_lookup","params":["id","doi"]},{"tool":"principia_citations_search","params":["q","limit"]},{"tool":"principia_constructs_list","params":["limit","offset","abstraction_level","engagement_family_only"]},{"tool":"principia_constructs_lookup","params":["id"]},{"tool":"principia_constructs_measures","params":["limit","length_lte","construct_id","min_reliability","cross_cultural_only"]},{"tool":"principia_constructs_resolve","params":["name","definition","variable_code"]},{"tool":"principia_constructs_search","params":["q","limit"]},{"tool":"principia_critiques_lookup","params":["id"]},{"tool":"principia_critiques_search","params":["limit","severity","subject_id","subject_type","critique_type"]},{"tool":"principia_effects_search","params":["to","from","limit","statistic_type","to_construct_id","from_construct_id"]},{"tool":"principia_equivalences_lookup","params":["id","construct_id","instrument_a","instrument_b","mapping_method"]},{"tool":"principia_equivalences_search","params":["limit","construct_id","instrument_id","mapping_method"]},{"tool":"principia_evidence_for","params":["limit","entity_id","subject_type"]},{"tool":"principia_evidence_trace","params":["problem_id","condition_id","construct_id","limit_priors","limit_interventions"]},{"tool":"principia_evidence_statements_search","params":["to","from","limit","stance","construct","min_grade","displayable_only"]},{"tool":"principia_instruments_list","params":["limit","owned","offset","license","construct_id"]},{"tool":"principia_instruments_lookup","params":["id"]},{"tool":"principia_instruments_search","params":["q","limit"]},{"tool":"principia_interventions_lookup","params":["id"]},{"tool":"principia_interventions_search","params":["limit","modality","cost_band","problem_id","construct_id"]},{"tool":"principia_items_lookup","params":["id"]},{"tool":"principia_items_search","params":["q","limit"]},{"tool":"principia_measures_list","params":["limit","offset","entity_kind"]},{"tool":"principia_measures_lookup","params":["id"]},{"tool":"principia_models_list","params":["limit","offset"]},{"tool":"principia_models_lookup","params":["id"]},{"tool":"principia_models_search","params":["q","limit"]},{"tool":"principia_theoretical_models_list","params":["limit","offset"]},{"tool":"principia_theoretical_models_lookup","params":["id"]},{"tool":"principia_theoretical_models_search","params":["q","limit","field_domain","invokes_construct_id"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}