Tool Group
Spec Introspection
Spec introspection: approaches, playbooks, regions, domains, lenses, frameworks.
apply_frameworkApply a framework (MoSCoW, RICE, Kano, ...) to a set of entities: creates a framework_exercise node and an `includes` edge to each entity. The per-entity result is recorded on the edge via score_entity, never on the entity node, so the same entity can sit in many exercises and any entity type can be scored. Returns { exercise_id, exercise, included, warnings }.
get_catalog_entryFetch one static spec catalog record by `kind` + `id` (one faceted tool replacing the 15 `get_*-by-id` spec-introspection tools). Reads `@unified-product-graph/core`. `id` is the record identifier for that kind: `playbook`/`framework`/`lens`/`scale`/`anti_pattern`/`tree_pattern`/`domain_ring`/`region`/`approach` take their record id; `entity_meta` takes an entity-type name; `edge_type` takes an edge-type key; `lifecycle`/`type_label` take an entity type; `domain_guide` takes a domain id; `template` takes a template id. Use `list_catalog` to enumerate a kind.
readget_import_recipeGet an import recipe for a source: (a) the target UPG schema slice (entity/edge types in play + fields), (b) the source→UPG mapping, a canonical CURATED table served verbatim when one exists (Notion, Jira, Dovetail, and 30+ more), else a schema-grounded SCAFFOLD, and (c) the write tools to call in order (batch_create_nodes → batch_create_edges). You already hold the source data and the write tools; this returns the mapping guidance, executes nothing. The consistency guarantee: a curated source resolves to ONE mapping, so the same source imported twice yields the same graph. Surfaces every deliberate-only edge (e.g. insight_informs_opportunity) as a warning, never a silent write. Sibling of get_catalog_entry (kind: "template"). Omit source to list curated sources.
readget_spec_versionSpec-level metadata for compatibility checks: `upg_version`, `markdown_format_version`, and canonical counts (entity types, edge types, atomic domains, super-domain regions). Pin against the version pair; counts are informational. Pass `changelog: true` to fold in the spec CHANGELOG (a `whats_new` surface); `since` (a version) returns only newer entries.
readlist_catalogList a static spec catalog by `kind` (one faceted tool replacing the 25 `list_*` spec-introspection tools). Reads `@unified-product-graph/core`; identical for every client on a given spec version. Kind-specific filters pass straight through: e.g. `playbooks` accepts `region` / `canonical_only` / `framework_id`; `entity_types` accepts `domain` / `maturity` / `deprecated` / `limit` / `cursor`; `benchmarks` requires `benchmark_kind` (`count` | `relationship` | `ratio` | `domain_activation`) plus optional `stage` / `domain`. Use `get_catalog_entry` to fetch one record by id.
readscore_entityRecord a framework's result for one entity on the exercise's includes edge (a MoSCoW bucket, a RICE score, a canvas slot). Auto-includes the entity if not already in scope. Merges into existing edge properties unless replace is set. Returns { edge, warnings }.