PM Composability (G3 -- feature interaction validation)
An in-development validation engine that governs which of the 65 PM features can be enabled, disabled, and combined. It models features as a directed graph with four edge types, checks interactions at enable time, at runtime, and at disable time, and ships 13 internally consistent presets across lane, engineering, and platform-import categories.
What it is
An in-development validation engine governing which PM features can be enabled, disabled, and combined. It is the piece that keeps a board's feature set coherent, so turning one thing on never quietly leaves another thing broken.
Where to find it
There is no direct interface for this -- it is pure backend logic with no UI of its own, and it is
consumed by the G12 Progressive Disclosure Engine (see pm-feature-profiles.md).
It is in development, gated behind the pm-composability unreleased feature flag
(pmComposabilityEnabled), so it is off in a normal install.
How it behaves
65 PM features form a directed graph with four edge types (requires, enhances, modifies-behavior, resource-cost). The composability resolver validates feature interactions at three timing phases:
- Enable-time -- blocks turning on a feature when prerequisites are missing; reports behavior changes and enhancement opportunities in plain language.
- Runtime -- detects inconsistent states (from imports or API changes) and produces graceful degradation messages with a legacy grace period.
- Disable-time -- analyzes impact scaled to data involvement: no data = instant off, dependent features = show chain, existing data = simplest default action + 30-day undo window.
13 presets across three categories are internally consistent subsets of the feature catalog:
- Lane presets (3): Tasks, Projects, Operations — validated as
tasks < projects < operations. - Engineering presets (2): Engineering-Linear, Engineering-Jira.
- Platform-import presets (8): First-Agent-Board, Trello, Jira, Asana, Linear, Notion, ClickUp, Airtable — auto-applied when importing from the matching platform.
For agents
- Shared data layer in
src/shared/pm-composability/(feature catalog, graph, presets, plain-language templates). - Backend services in
src/main/services/pm/composability/(composability resolver, graph traversal, three validators, availability computer, preset validator, undo tracker, data involvement checker). - 8 IPC channels + 7 CLI routes.
- DAG no-cycles invariant locked by
pm-composability-guards.test.ts. - Contract:
pm-composability-contract.md.
Related
The boards whose features this engine validates are described in mission-control.md. The consumer of its output -- progressive disclosure, which decides what a given board actually shows -- is covered by pm-feature-profiles.md, and the gate that decides whether a board has accumulated enough usage data to justify suggesting anything new is pm-data-density.md. The inbox cards that offer those new features come from pm-discovery-callouts.md.
Last verified 2026-09-23