{"repo":"people-analytics-toolbox","updated":"2026-07-06","summary":{"total":70,"byStatus":{"adopted":2,"shipped":38,"building":30}},"capabilities":[{"id":"jobframe-canon","name":"JobFrame canonical Job Family × Focus × Level taxonomy + classifier","type":"data","summary":"The governed job substrate — SOC/O*NET registry + families × functions × universal levels + verbatim profiles + aliases + /classify; the spine every other JobFrame + comp capability maps into.","doc":"docs/CAPABILITY-MANIFEST.md#jobframe-canon","illustration":"docs/CAPABILITY-MANIFEST.md#jobframe-canon","consumers":["performix","people-analytics-toolbox","peopleanalyst-site"],"surfaces":{"rest":"/api/spokes/job-family-agent/classify","mcp":"job-family-agent.classify","cli":null,"ui":"/jobframe","data":"src/spokes/job-family-agent/data/"},"realization":{"functioning":{"state":true,"evidence":"Live MVP-0 deployed 2026-05-25; /classify + resolve-title + bulk-map + export return real data. Contract 1.16.0."},"valuable":{"state":true,"evidence":"Performix calls the toolbox for job-family classification post-PAT-71 (meta-factory-prod no longer hosts it)."},"understood":{"state":true,"evidence":"docs/jobframe/ (COORDINATES-EXPLAINER, PANTONE-PLAYBOOK, REBUILD-PLAN) + spoke README."},"integrated":{"state":true,"evidence":"REST + MCP from one declaration; contract vendored by consumers."}},"status":"adopted"},{"id":"jobframe-coordinates","name":"JobFrame coordinate system ('Pantone for jobs')","type":"algo","summary":"Per-profile computable coordinates in measurable spaces (structural + content live, pay@1 + semantic staged) with 3-state Delta-E matching, versioned editions, and the Job Swatch UI — making similarity, leveling, and pricing measurable.","doc":"docs/CAPABILITY-MANIFEST.md#jobframe-coordinates","illustration":"docs/CAPABILITY-MANIFEST.md#jobframe-coordinates","consumers":["people-analytics-toolbox","peopleanalyst-site"],"surfaces":{"rest":"/api/spokes/job-family-agent/coordinates","mcp":"job-family-agent.coordinates","cli":null,"ui":"/jobframe","data":"src/spokes/job-family-agent/core/coordinates.ts"},"realization":{"functioning":{"state":true,"evidence":"structural + content + pay@1 spaces live; 3-state match in coordinates.ts (contract 1.4.0, live 2026-06-17)."},"valuable":{"state":true,"evidence":"The tent-pole differentiator — JobFrame=core product, jobbrief.ai redirects to it."},"understood":{"state":true,"evidence":"docs/jobframe/COORDINATES-EXPLAINER.md + PANTONE-PLAYBOOK.md."},"integrated":{"state":"partial","evidence":"Live on profile + match; pay@1 is level-only (FU-2b super-function pending) and the semantic space is not yet built."}},"status":"shipped"},{"id":"two-sided-matcher","name":"Non-infringing two-sided matcher + capability-DAG (PAT-204)","type":"algo","summary":"IP-clean design-arounds for two in-force matching patents: symmetric per-dimension twoSidedMatch, alignCapabilities via LCS + set coverage, and scoreDagGaps over a static prerequisite DAG — explainable match + gap typing, no GNN, no gated shared vocabulary.","doc":"docs/CAPABILITY-MANIFEST.md#two-sided-matcher","illustration":"docs/CAPABILITY-MANIFEST.md#two-sided-matcher","consumers":["people-analytics-toolbox","performix"],"surfaces":{"rest":null,"mcp":null,"cli":null,"ui":null,"data":"src/spokes/job-family-agent/core/two-sided-matching.ts"},"realization":{"functioning":{"state":true,"evidence":"core/{two-sided-matching,capability-alignment}.ts with passing tests (two-sided-matching.test.ts, capability-alignment.test.ts)."},"valuable":{"state":true,"evidence":"IP-clean matcher routed from the patent-radar sweep (HO-163) for JobFrame + hiring; design-around posture verified."},"understood":{"state":true,"evidence":"docs/PATENT-RADAR-PAT-204-TRIAGE.md + per-blueprint design_around_sketch."},"integrated":{"state":"partial","evidence":"Code lives on branch feat/patent-radar-impl-toolbox (commit f9daaa2c), not yet merged to main; no REST/MCP surface yet."}},"status":"building"},{"id":"anycomp-decision-layer","name":"AnyComp decision layer (strategy → optimizer → simulator → scenarios)","type":"algo","summary":"The compensation Decision OS loop over three-value-rooted measures: elicit strategy → priorities → objective → optimize → simulate → several scenarios ('never one option'). The flagship custom comp engagement.","doc":"docs/CAPABILITY-MANIFEST.md#anycomp-decision-layer","illustration":"docs/CAPABILITY-MANIFEST.md#anycomp-decision-layer","consumers":["people-analytics-toolbox","human:comp-analyst"],"surfaces":{"rest":"/api/spokes/anycomp/decision/metric-driven-optimize","mcp":"anycomp.scenarios.generate","cli":null,"ui":"/anycomp/decision","data":null},"realization":{"functioning":{"state":true,"evidence":"decision/* loop callable end-to-end (metric-driven-optimize, strategy-assessment, philosophy-archetypes routes). Contract 1.54.0."},"valuable":{"state":true,"evidence":"The custom-engagement flagship of the comp family."},"understood":{"state":true,"evidence":"docs/anycomp/DECISION-MODEL.md + NORTH-STAR.md."},"integrated":{"state":"partial","evidence":"MVP internals: optimizer is a greedy heuristic, simulator uses STUB_EFFECT_PER_ACTION, market-matching stubbed, pay-model market anchor not yet consumed. Sell as advisory/scenario; matures via PAT-JFE-PAY-17."}},"status":"shipped"},{"id":"onboarded-comp-run","name":"Onboarded comp-service cloud run (the data-services gate)","type":"integration","summary":"Runs a comp service over a client's onboarded dataset end-to-end: segmentation-studio intake → roster adapter → pluggable midpoint (incl. pay-model market reference) → compa-ratio audit → persisted, tenant-scoped, auditable run. The gate every cloud comp data-service rides; paid-or-internal entitlement-gated.","doc":"docs/CAPABILITY-MANIFEST.md#onboarded-comp-run","illustration":"docs/CAPABILITY-MANIFEST.md#onboarded-comp-run","consumers":["people-analytics-toolbox","human:comp-analyst","human:buyer"],"surfaces":{"rest":"/api/spokes/anycomp/onboarded-run","mcp":"anycomp.onboarded-run","cli":null,"ui":null,"data":"anycomp.comp_service_runs"},"realization":{"functioning":{"state":true,"evidence":"POST/GET live (anycomp 1.56.0); 14 pure tests + compile-run smoke; migration 0134 applied (comp_service_runs verified in prod, 12 cols)."},"valuable":{"state":true,"evidence":"Turns the existing onboarding pipeline + comp engines into a sellable cloud run (pre-staged comp-cloud-run SKU); the gate all cloud comp data-services reuse."},"understood":{"state":true,"evidence":"docs/CAPABILITY-MANIFEST.md + anycomp CHANGELOG 1.55/1.56; queue PAT-JFE-PAY-18-B/C/D."},"integrated":{"state":"partial","evidence":"compa-audit wired + persisted + entitlement-gated; fan-out to exit-risk/evaluate/cycle, MCP-run persistence, datasetId self-fetch, and SKU go-live are war-carded."}},"status":"shipped"},{"id":"byos-source-calibration","name":"Tier 3 Bring-Your-Own-Survey source calibration","type":"algo","summary":"Builds a client's pay model on THEIR licensed survey: fits a source log-offset so our model reproduces their observed medians (the source-as-a-variable mechanism), then gap-fills the cells their survey didn't cover. The enterprise-credibility tier; client data never persisted/redistributed.","doc":"docs/CAPABILITY-MANIFEST.md#byos-source-calibration","illustration":"docs/CAPABILITY-MANIFEST.md#byos-source-calibration","consumers":["people-analytics-toolbox","human:comp-consultant","human:buyer"],"surfaces":{"rest":"/api/spokes/anycomp/byos/calibrate","mcp":"anycomp.byos.calibrate","cli":null,"ui":null,"data":null},"realization":{"functioning":{"state":true,"evidence":"POST/MCP live (anycomp 1.57.0); 9 tests (7 pure + 2 vs the real pay model) + compile-run smoke; recovers a known premium, gap-fills, skips unknown cells honestly."},"valuable":{"state":true,"evidence":"Turns the $6K–$100K manual Tier-3 engagement (HO-151) into a real pipeline; pre-staged comp-byos-tier3 SKU."},"understood":{"state":true,"evidence":"docs/CAPABILITY-MANIFEST.md + anycomp CHANGELOG 1.57; HO-151."},"integrated":{"state":"partial","evidence":"End-to-end calibrate → audit (byos midpoint) → structure (byos pay-structure, 1.59.0); SKU comp-byos-tier3 LIVE $18,000. Remaining (war-carded): integrated crosswalk (auto-map native labels) + per-tenant calibration persistence."}},"status":"shipped"},{"id":"benchmark-store","name":"Proprietary benchmark store (the data flywheel)","type":"data","summary":"Cross-client, JobFrame-matched comp + HR-metric benchmark database that every data-absorbing tool contributes to automatically (by design). Aggregates-only + min-N + HMAC-tenant; turns accumulated observations into Bayesian priors with honest error ranges that tighten as data grows — the durable moat competitors can't accumulate.","doc":"docs/BENCHMARK-STORE-INTEGRATION.md","illustration":"docs/BENCHMARK-STORE-INTEGRATION.md","consumers":["people-analytics-toolbox","human:operator","human:buyer"],"surfaces":{"rest":"/api/benchmark/contribute","mcp":null,"cli":null,"ui":null,"data":"benchmark.benchmark_observations"},"realization":{"functioning":{"state":true,"evidence":"Schema + contribute (fire-and-forget, min-N, HMAC) + getBenchmarkPrior (n-weighted, honest CI, 3-state) + REST contribute/prior/stats; migration 0135; 3 aggregation tests + typecheck gate."},"valuable":{"state":true,"evidence":"The durable data-flywheel moat (project_commercial_strategy_own_domain_low_price); sharpens pay priors over time."},"understood":{"state":true,"evidence":"docs/BENCHMARK-STORE-INTEGRATION.md + AGENTS.md standing rule."},"integrated":{"state":"partial","evidence":"Auto-contribution wired into byos.calibrate + onboarded-run; war-carded: priors->salary-benchmark/predict, more contributors, raw-HRIS classify, MCP twin, periodic rollup."}},"status":"shipped"},{"id":"pay-model","name":"Market-pay model (combined-source equation + benchmark + dataset SKU)","type":"algo","summary":"The combined-source ridge equation (holdout R²≈0.89) — predict + differentials + equity — with a free single-lookup SEO magnet and a gated bulk/feed dataset SKU; combines all comp sources with source-as-a-variable, IP-clean per PAT-203.","doc":"docs/CAPABILITY-MANIFEST.md#pay-model","illustration":"docs/CAPABILITY-MANIFEST.md#pay-model","consumers":["people-analytics-toolbox","peopleanalyst-site","human:buyer"],"surfaces":{"rest":"/api/salary-benchmark/predict","mcp":null,"cli":null,"ui":"/salary-benchmark","data":"src/lib/salary-benchmark/dataset.ts"},"realization":{"functioning":{"state":true,"evidence":"equation_combined.json live in lib/salary-benchmark; predict + dataset + equity_measures tested (holdout R²≈0.89)."},"valuable":{"state":true,"evidence":"comp-model-pay-dataset $490 SKU live (buy surface shipped HO-158); feeds the pay@1 coordinate."},"understood":{"state":true,"evidence":"docs/jobframe/PAY-MODEL-STATE.md."},"integrated":{"state":"partial","evidence":"Live equation is hand-distilled; Modal re-home + multi-dimensional refit + automated refresh remain open (PAT-JFE-PAY-1). pay-equity has no HTTP route until PAT-JFE-PAY-14."}},"status":"shipped"},{"id":"commerce-till","name":"Commerce till (Stripe checkout → entitlement → gated fulfillment)","type":"integration","summary":"The reusable till: a SKU catalog → Stripe checkout → entitlement → accessUrlFor gated download/feed, plus the offerings feed that drives the storefront. Powers every paid toolbox dataset/pack.","doc":"docs/CAPABILITY-MANIFEST.md#commerce-till","illustration":"docs/CAPABILITY-MANIFEST.md#commerce-till","consumers":["people-analytics-toolbox","peopleanalyst-site"],"surfaces":{"rest":"/api/commerce/checkout","mcp":null,"cli":null,"ui":null,"data":"/api/offerings"},"realization":{"functioning":{"state":true,"evidence":"Live SKUs sell via Stripe (Bicycle LLC); checkout → entitlement → gated download verified (402 without token)."},"valuable":{"state":true,"evidence":"Every paid toolbox SKU (datasets, $19 packs, model-pay) rides this till; registered reusable in devplane HO-072."},"understood":{"state":true,"evidence":"devplane docs/CAPABILITIES/commerce-till.md + in-repo products.ts header."},"integrated":{"state":true,"evidence":"Live Stripe + entitlement + offerings drift-guard test; PAT-JFE-PAY-22 added the launched pre-stage gate."}},"status":"adopted"},{"id":"niche-benchmark-consortium","name":"Niche Benchmark Survey — consortium pooling engine + per-niche GTM","type":"algo","summary":"Pools N peer companies' auto-matched comp/HR rosters into min-N-protected, anonymized benchmark cuts (profile + function rollups; sparse Focuses release upward). A cut publishes only with min-N datapoints AND >=2 contributors. One niche registry drives per-niche landing pages + systematized outreach kits. Metric-agnostic (pay + HR metrics).","doc":"docs/CAPABILITY-MANIFEST.md#niche-benchmark-consortium","illustration":"docs/CAPABILITY-MANIFEST.md#niche-benchmark-consortium","consumers":["people-analytics-toolbox","peopleanalyst-site"],"surfaces":{"rest":"/api/surfaces/niche-benchmark/consortium","mcp":null,"cli":null,"ui":"/niche-benchmark","data":"/api/surfaces/niche-benchmark/outreach"},"realization":{"functioning":{"state":true,"evidence":"buildConsortiumBenchmark() pools 3-grain cuts with the min-N + min-participant gate; 19 node:test cases green incl. sparse-Focus rollup + metric-agnostic HR-metric path. POST /consortium + GET /outreach live; hub + per-niche landings shipped."},"valuable":{"state":"partial","evidence":"GTM surface live (6 niche landings + outreach kits + pre-staged consortium-seat SKU); revenue pending founding-cohort recruitment + Stripe pricing."},"understood":{"state":true,"evidence":"docs/jobframe/NICHE-FOCUS-AND-BENCHMARK.md + src/surfaces/niche-benchmark/README.md + session report 2026-06-21-pat-jfe-niche-3."},"integrated":{"state":"partial","evidence":"Closed-loop onboarding + dual-substrate longitudinal (flywheel values + survey-orchestrator program/wave/company structure; /trend = pay movement + coverage growth; closes NICHE-4) + method #1 RAW+ADJUSTED (η² outcome-correlation + direct standardization, lib/adjust.ts) + method #2 RAW-DATA-IN-WE-COMPUTE (raw HR records → turnover/time-to-fill per cell, /compute-metric, lib/metrics.ts). 44 node:tests. Method canon docs/POSITIONING/BENCHMARK-AND-SURVEY-METHOD.md; #3 (infinite combos + Modal model) + survey-application sequenced next."}},"status":"shipped"},{"id":"enterprise-jobframe-workspace","name":"Enterprise Job Architecture Workspace + governance","type":"ui","summary":"Tenant PRD-16 workspace: never-type top-down constructor, draft-to-approved versioned lifecycle, tenant overlays/overrides, job-person-position graph, thin governance (tenants never mutate canon).","doc":"docs/jobframe/ENTERPRISE-JOBFRAME-BUILDOUT.md","illustration":"docs/CAPABILITY-MANIFEST.md#enterprise-jobframe","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"/api/spokes/enterprise-jobframe/profiles","mcp":"enterprise-jobframe.profiles.list","cli":null,"ui":"/enterprise-jobframe","data":null},"realization":{"functioning":{"state":true,"evidence":"Live + health-checked (schemaReachable:true), routes verified in production 2026-06-21/22."},"valuable":{"state":true,"evidence":"The monetization surface; HCMs ship empty containers (12-24mo, 6-7-fig) — this inherits the canon."},"understood":{"state":true,"evidence":"Spoke README + SURFACE + BrandScript + ENTERPRISE-JOBFRAME-BUILDOUT.md + ENTERPRISE-PHASE-2-ROADMAP.md."},"integrated":{"state":true,"evidence":"REST + MCP from one declaration; composes live spokes via contracts; in the health aggregate."}},"status":"shipped"},{"id":"organizational-overlays","name":"Organizational Overlays (philosophy / change / strategy)","type":"algo","summary":"Flagship, plausibly first-of-its-kind: apply a philosophy/transformation/strategy org-wide through the JD system; source-tagged fragments injected by level x function, composing with Focus, versioned + rollout-tracked.","doc":"docs/jobframe/ENTERPRISE-JOBFRAME-BUILDOUT.md","illustration":"docs/CAPABILITY-MANIFEST.md#enterprise-jobframe","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"/api/spokes/enterprise-jobframe/overlays/catalog","mcp":"enterprise-jobframe.overlays.adopt","cli":null,"ui":"/enterprise-jobframe","data":null},"realization":{"functioning":{"state":true,"evidence":"Live + health-checked (schemaReachable:true), routes verified in production 2026-06-21/22."},"valuable":{"state":true,"evidence":"No competitor operationalizes a philosophy/transformation into every JD org-wide."},"understood":{"state":true,"evidence":"Spoke README + SURFACE + BrandScript + ENTERPRISE-JOBFRAME-BUILDOUT.md + ENTERPRISE-PHASE-2-ROADMAP.md."},"integrated":{"state":true,"evidence":"REST + MCP from one declaration; composes live spokes via contracts; in the health aggregate."}},"status":"shipped"},{"id":"assessment-rubric-library","name":"Assessment & Rubric Library","type":"data","summary":"Paired kits per Family x Focus x Level: interview banks (STAR), BARS, perf criteria, with a validity/EEOC adverse-impact trail; reincarnation-composed.","doc":"docs/jobframe/ENTERPRISE-JOBFRAME-BUILDOUT.md","illustration":"docs/CAPABILITY-MANIFEST.md#enterprise-jobframe","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"/api/spokes/assessment-library/kits","mcp":"assessment-library.kit.generate","cli":null,"ui":"/assessment-library","data":null},"realization":{"functioning":{"state":true,"evidence":"Live + health-checked (schemaReachable:true), routes verified in production 2026-06-21/22."},"valuable":{"state":true,"evidence":"Market gap: nobody ties one leveled architecture to BOTH interview kits AND perf criteria with a validity trail."},"understood":{"state":true,"evidence":"Spoke README + SURFACE + BrandScript + ENTERPRISE-JOBFRAME-BUILDOUT.md + ENTERPRISE-PHASE-2-ROADMAP.md."},"integrated":{"state":true,"evidence":"REST + MCP from one declaration; composes live spokes via contracts; in the health aggregate."}},"status":"shipped"},{"id":"career-development","name":"Career Architecture + Learning loop","type":"algo","summary":"Career pathing off universal levels + coordinates + development gap + learning catalog, closing assess-gap-learn-re-measure with the assessment library.","doc":"docs/jobframe/ENTERPRISE-JOBFRAME-BUILDOUT.md","illustration":"docs/CAPABILITY-MANIFEST.md#enterprise-jobframe","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"/api/spokes/career-development/paths","mcp":"career-development.path.read","cli":null,"ui":"/career-development","data":null},"realization":{"functioning":{"state":true,"evidence":"Live + health-checked (schemaReachable:true), routes verified in production 2026-06-21/22."},"valuable":{"state":true,"evidence":"Market gap #1: the learning loop is broken everywhere (completion not capability re-measured) — this closes it."},"understood":{"state":true,"evidence":"Spoke README + SURFACE + BrandScript + ENTERPRISE-JOBFRAME-BUILDOUT.md + ENTERPRISE-PHASE-2-ROADMAP.md."},"integrated":{"state":true,"evidence":"REST + MCP from one declaration; composes live spokes via contracts; in the health aggregate."}},"status":"shipped"},{"id":"hris-dataset-mapper","name":"HRIS Dataset Mapper (the enterprise wedge)","type":"integration","summary":"Bulk-map noisy client job records to canonical Family x Focus x Level: detect, cluster, predict (confidence+evidence, abstaining), cluster-grain correct, tenant overlay, export.","doc":"docs/jobframe/ENTERPRISE-JOBFRAME-BUILDOUT.md","illustration":"docs/CAPABILITY-MANIFEST.md#enterprise-jobframe","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"/api/spokes/hris-mapper/mapping-runs","mcp":"hris-mapper.mapping-run.create","cli":null,"ui":"/hris-mapper","data":null},"realization":{"functioning":{"state":true,"evidence":"Live + health-checked (schemaReachable:true), routes verified in production 2026-06-21/22."},"valuable":{"state":true,"evidence":"The land wedge: messy job data to governed canon — strongest enterprise opener per the research."},"understood":{"state":true,"evidence":"Spoke README + SURFACE + BrandScript + ENTERPRISE-JOBFRAME-BUILDOUT.md + ENTERPRISE-PHASE-2-ROADMAP.md."},"integrated":{"state":true,"evidence":"REST + MCP from one declaration; composes live spokes via contracts; in the health aggregate."}},"status":"shipped"},{"id":"jobframe-analytics","name":"People Analytics + Clarification Campaigns","type":"agent","summary":"Analytics with 5-state value provenance + a clarification-campaign builder routing minimal questions to the people who know, turning corrections into governed evidence.","doc":"docs/jobframe/ENTERPRISE-JOBFRAME-BUILDOUT.md","illustration":"docs/CAPABILITY-MANIFEST.md#enterprise-jobframe","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"/api/spokes/jobframe-analytics/analytics","mcp":"jobframe-analytics.analytics","cli":null,"ui":"/jobframe-analytics","data":null},"realization":{"functioning":{"state":true,"evidence":"Live + health-checked (schemaReachable:true), routes verified in production 2026-06-21/22."},"valuable":{"state":true,"evidence":"Analytics fused with confidence/provenance/correction that drive review tasks; the crowd-correction moat."},"understood":{"state":true,"evidence":"Spoke README + SURFACE + BrandScript + ENTERPRISE-JOBFRAME-BUILDOUT.md + ENTERPRISE-PHASE-2-ROADMAP.md."},"integrated":{"state":true,"evidence":"REST + MCP from one declaration; composes live spokes via contracts; in the health aggregate."}},"status":"shipped"},{"id":"public-standards-crosswalk","name":"Public-standards crosswalk (ESCO + Lightcast)","type":"data","summary":"IP-clean crosswalk canon to open standards (O*NET/SOC + ESCO + Lightcast) via computed coordinate position, no copyrighted codes stored (PAT-203); global + EU-compliance interop.","doc":"docs/jobframe/ENTERPRISE-JOBFRAME-BUILDOUT.md","illustration":"docs/CAPABILITY-MANIFEST.md#enterprise-jobframe","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"/api/spokes/job-family-agent/crosswalk","mcp":"job-family-agent.crosswalk","cli":null,"ui":"/jobframe","data":null},"realization":{"functioning":{"state":true,"evidence":"Live + health-checked (schemaReachable:true), routes verified in production 2026-06-21/22."},"valuable":{"state":true,"evidence":"Interop backbone the HCMs lack; honors the IP-clean firewall."},"understood":{"state":true,"evidence":"Spoke README + SURFACE + BrandScript + ENTERPRISE-JOBFRAME-BUILDOUT.md + ENTERPRISE-PHASE-2-ROADMAP.md."},"integrated":{"state":true,"evidence":"REST + MCP from one declaration; composes live spokes via contracts; in the health aggregate."}},"status":"shipped"},{"id":"persona-library","name":"Persona Library (GTM Toolbox)","type":"service","summary":"The toolbox-owned library + serving + monetization of buyer personas (pa-site Bicycle generates; this persists/serves/sells). First deliverable of the GTM Toolbox cluster (GTM-TOOLBOX-1, G0).","doc":"src/spokes/persona-library/README.md","illustration":"docs/programs/gtm-toolbox/HANDOFF-BRIEF.md","consumers":["peopleanalyst-site","benchmark-outreach"],"surfaces":{"rest":"/api/spokes/persona-library/list","mcp":"persona-library.list","cli":null,"ui":null},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Spoke shipped 2026-06-22 (contract 0.1.0): persona_library schema (migration 0143) + REST generate-and-store/list/get/health + MCP persona-library.* + 8 tests. Deploy verified."},"valuable":{"state":true,"evidence":"Live consumer as of T3 (PAT-GTM-6, contract 0.2.0): benchmark-outreach resolves its 4 audiences to persona slugs (AUDIENCE_PERSONA_SLUG + hydratePersonaForAudience in src/lib/benchmark-outreach/persona-resolver.ts), surfaced by the benchmark-outreach.audiences MCP tool; seeded people-manager + individual-contributor. Contract 0.2.0 adds derived jobsToBeDone {functional,social,emotional}. Also consumed by pa-site (GTM offer)."},"understood":{"state":true,"evidence":"src/spokes/persona-library/README.md + docs/programs/gtm-toolbox/ (HANDOFF-BRIEF, PERSONA-LIBRARY-SPEC, TOOLBOX-RESPONSE)."},"integrated":{"state":false,"evidence":"Pending first cross-repo consumer + seed + Bicycle env wiring (G1)."}},"status":"building"},{"id":"gtm-positioning","name":"T1 — Positioning & Differentiation Wizard (GTM Toolbox)","type":"service","summary":"Offer + buyer + competitive set → a positioning statement, a differentiation map (where you win vs each alternative), and a StoryBrand one-liner. The 'how to sell it' tool.","doc":"docs/programs/gtm-toolbox/EXPLAINER.md","illustration":"docs/CAPABILITY-MANIFEST.md#gtm-toolbox","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/surfaces/gtm-positioning/compose","mcp":"gtm.positioning.compose","cli":null,"ui":null,"data":"/api/spokes/gtm-studio/artifacts"},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Shipped + deploy-verified (PAT-GTM-6): /api/surfaces/gtm-positioning/compose (POST, service-key) + MCP gtm.positioning.compose; deterministic composer (free rung) + persist to gtm-studio (tool discriminator); node:test green; route present in Vercel build manifest."},"valuable":{"state":true,"evidence":"Free: one positioning statement + a category-vs-differentiation read. Paid: full differentiation map + variants + saved/shareable + optional Sonnet prose-polish. Grounded in the Bicycle Guide to Marketing 34-construct model (HO-232). Used to market the portfolio first, then sold to local businesses."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/EXPLAINER.md + TOOLS-BACKLOG-RECONCILIATION.md (HO-232) + the surface compose.ts header."},"integrated":{"state":false,"evidence":"API surface published to pa-site via /api/capabilities + /api/registry (PAT-GTM-6); first cross-repo consumption + commerce SKU (Mike-gated pricing) pending."}},"status":"building"},{"id":"gtm-message","name":"T2 — StoryBrand / Message Builder (GTM Toolbox)","type":"service","summary":"Customer + problem + guide role + plan + stakes → a complete SB7 brandscript + a website one-liner + an elevator pitch. Emits the universal brandscript contract verbatim (no new generator).","doc":"docs/programs/gtm-toolbox/EXPLAINER.md","illustration":"docs/CAPABILITY-MANIFEST.md#gtm-toolbox","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/surfaces/gtm-message/compose","mcp":"gtm.message.build","cli":null,"ui":null,"data":"/api/spokes/gtm-studio/artifacts"},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Shipped + deploy-verified (PAT-GTM-6): /api/surfaces/gtm-message/compose (POST, service-key) + MCP gtm.message.build; deterministic composer (free rung) + persist to gtm-studio (tool discriminator); node:test green; route present in Vercel build manifest."},"valuable":{"state":true,"evidence":"Free: one-liner + brandscript skeleton. Paid: channel-variant copy (site hero / email / ad / sales) off the one brandscript + Sonnet polish. Grounded in the Bicycle Guide to Marketing 34-construct model (HO-232). Used to market the portfolio first, then sold to local businesses."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/EXPLAINER.md + TOOLS-BACKLOG-RECONCILIATION.md (HO-232) + the surface compose.ts header."},"integrated":{"state":false,"evidence":"API surface published to pa-site via /api/capabilities + /api/registry (PAT-GTM-6); first cross-repo consumption + commerce SKU (Mike-gated pricing) pending."}},"status":"building"},{"id":"gtm-offer","name":"T4 — Offer & Value-Prop Composer (GTM Toolbox)","type":"service","summary":"Product + target segment + price + pain removed → a value-prop statement, an offer structure (bonuses / risk-reversal / guarantee), and a value-vs-price framing.","doc":"docs/programs/gtm-toolbox/EXPLAINER.md","illustration":"docs/CAPABILITY-MANIFEST.md#gtm-toolbox","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/surfaces/gtm-offer/compose","mcp":"gtm.offer.compose","cli":null,"ui":null,"data":"/api/spokes/gtm-studio/artifacts"},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Shipped + deploy-verified (PAT-GTM-6): /api/surfaces/gtm-offer/compose (POST, service-key) + MCP gtm.offer.compose; deterministic composer (free rung) + persist to gtm-studio (tool discriminator); node:test green; route present in Vercel build manifest."},"valuable":{"state":true,"evidence":"Free: value-prop statement + a risk-reversal suggestion. Paid: A/B offer variants + a willingness-to-pay estimate with its VoI bridge (never a number the inputs don't carry). Grounded in the Bicycle Guide to Marketing 34-construct model (HO-232). Used to market the portfolio first, then sold to local businesses."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/EXPLAINER.md + TOOLS-BACKLOG-RECONCILIATION.md (HO-232) + the surface compose.ts header."},"integrated":{"state":false,"evidence":"API surface published to pa-site via /api/capabilities + /api/registry (PAT-GTM-6); first cross-repo consumption + commerce SKU (Mike-gated pricing) pending."}},"status":"building"},{"id":"gtm-channel","name":"T5 — Channel-Mix & Distribution Planner (GTM Toolbox)","type":"service","summary":"Segment + budget band + product type + where attention already lives → a ranked channel shortlist + a starter paid/owned/earned mix + the one channel to start with.","doc":"docs/programs/gtm-toolbox/EXPLAINER.md","illustration":"docs/CAPABILITY-MANIFEST.md#gtm-toolbox","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/surfaces/gtm-channel/compose","mcp":"gtm.channel.plan","cli":null,"ui":null,"data":"/api/spokes/gtm-studio/artifacts"},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Shipped + deploy-verified (PAT-GTM-6): /api/surfaces/gtm-channel/compose (POST, service-key) + MCP gtm.channel.plan; deterministic composer (free rung) + persist to gtm-studio (tool discriminator); node:test green; route present in Vercel build manifest."},"valuable":{"state":true,"evidence":"Free: ranked shortlist + start-here channel. Paid: a channel calendar + budget allocation tied to the North Star, each ROI ranking paired with its VoI bridge (the cheapest confirming test). Grounded in the Bicycle Guide to Marketing 34-construct model (HO-232). Used to market the portfolio first, then sold to local businesses."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/EXPLAINER.md + TOOLS-BACKLOG-RECONCILIATION.md (HO-232) + the surface compose.ts header."},"integrated":{"state":false,"evidence":"API surface published to pa-site via /api/capabilities + /api/registry (PAT-GTM-6); first cross-repo consumption + commerce SKU (Mike-gated pricing) pending."}},"status":"building"},{"id":"gtm-content","name":"T6 — Content Engine (GTM Toolbox)","type":"service","summary":"Buyer + positioning → content pillars, an editorial calendar, and drafted pieces. The drafts ARE the value-first gifts in the give-before-you-ask doctrine.","doc":"docs/programs/gtm-toolbox/EXPLAINER.md","illustration":"docs/CAPABILITY-MANIFEST.md#gtm-toolbox","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/surfaces/gtm-content/compose","mcp":"gtm.content.generate","cli":null,"ui":null,"data":"/api/spokes/gtm-studio/artifacts"},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Shipped + deploy-verified (PAT-GTM-6): /api/surfaces/gtm-content/compose (POST, service-key) + MCP gtm.content.generate; deterministic composer (free rung) + persist to gtm-studio (tool discriminator); node:test green; route present in Vercel build manifest."},"valuable":{"state":true,"evidence":"Free: pillars + a 7-day starter calendar. Paid: the full 30-day calendar + drafted pieces + Sonnet prose-polish. Grounded in the Bicycle Guide to Marketing 34-construct model (HO-232). Used to market the portfolio first, then sold to local businesses."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/EXPLAINER.md + TOOLS-BACKLOG-RECONCILIATION.md (HO-232) + the surface compose.ts header."},"integrated":{"state":false,"evidence":"API surface published to pa-site via /api/capabilities + /api/registry (PAT-GTM-6); first cross-repo consumption + commerce SKU (Mike-gated pricing) pending."}},"status":"building"},{"id":"gtm-experiment","name":"T7 — Growth-Experiment & Funnel Designer (GTM Toolbox, flagship)","type":"service","summary":"The AARRR stage that hurts + the per-stage rates you know → a diagnosed bottleneck (worst-converting stage wins) + an ICE-ranked, falsifiable pass/fail experiment backlog, each with a value-of-information bridge.","doc":"docs/programs/gtm-toolbox/EXPLAINER.md","illustration":"docs/CAPABILITY-MANIFEST.md#gtm-toolbox","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/surfaces/gtm-experiment/compose","mcp":"gtm.experiment.design","cli":null,"ui":null,"data":"/api/spokes/gtm-studio/artifacts"},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Shipped + deploy-verified (PAT-GTM-6): /api/surfaces/gtm-experiment/compose (POST, service-key) + MCP gtm.experiment.design; deterministic composer (free rung) + persist to gtm-studio (tool discriminator); node:test green; route present in Vercel build manifest."},"valuable":{"state":true,"evidence":"Free: the diagnosed bottleneck + the single highest-ICE experiment. Paid: the full ICE-ranked backlog + a tracked pass/fail test ledger on the user's data; each test framed as what-you-learn vs what-the-test-costs. Grounded in the Bicycle Guide to Marketing 34-construct model (HO-232). Used to market the portfolio first, then sold to local businesses."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/EXPLAINER.md + TOOLS-BACKLOG-RECONCILIATION.md (HO-232) + the surface compose.ts header."},"integrated":{"state":false,"evidence":"API surface published to pa-site via /api/capabilities + /api/registry (PAT-GTM-6); first cross-repo consumption + commerce SKU (Mike-gated pricing) pending."}},"status":"building"},{"id":"gtm-northstar","name":"T8 — North-Star Metric & Measurement Scorer (GTM Toolbox)","type":"service","summary":"Business model + funnel → a recommended North Star metric, the 3-4 input metrics that move it, and a 'what you're flying blind on' gap read (each gap paired with its value-at-risk + cheapest close).","doc":"docs/programs/gtm-toolbox/EXPLAINER.md","illustration":"docs/CAPABILITY-MANIFEST.md#gtm-toolbox","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/surfaces/gtm-northstar/compose","mcp":"gtm.northstar.recommend","cli":null,"ui":null,"data":"/api/spokes/gtm-studio/artifacts"},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Shipped + deploy-verified (PAT-GTM-6): /api/surfaces/gtm-northstar/compose (POST, service-key) + MCP gtm.northstar.recommend; deterministic composer (free rung) + persist to gtm-studio (tool discriminator); node:test green; route present in Vercel build manifest."},"valuable":{"state":true,"evidence":"Free: North Star + input-metric tree + gap read (the gap read IS the value-at-risk signal). Paid: an attribution scorecard on the user's data (war-carded). Grounded in the Bicycle Guide to Marketing 34-construct model (HO-232). Used to market the portfolio first, then sold to local businesses."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/EXPLAINER.md + TOOLS-BACKLOG-RECONCILIATION.md (HO-232) + the surface compose.ts header."},"integrated":{"state":false,"evidence":"API surface published to pa-site via /api/capabilities + /api/registry (PAT-GTM-6); first cross-repo consumption + commerce SKU (Mike-gated pricing) pending."}},"status":"building"},{"id":"gtm-studio-store","name":"GTM Studio — artifact store + run ledger + commerce seam","type":"service","summary":"The shelf where every GTM tool saves its outputs, where the paid version gets gated, and where every run is logged (tool_runs) — built once for all the tools. Generic artifact store (0.2.0) discriminated by tool.","doc":"src/spokes/gtm-studio/README.md","illustration":"docs/programs/gtm-toolbox/EXPLAINER.md","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/spokes/gtm-studio/artifacts","mcp":"gtm-studio.create-artifact","cli":null,"ui":null,"data":"/api/spokes/gtm-studio/artifacts"},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Shipped + deploy-verified (PAT-GTM-6): /api/spokes/gtm-studio/artifacts (POST, service-key) + MCP gtm-studio.create-artifact; deterministic composer (free rung) + persist to gtm-studio (tool discriminator); node:test green; route present in Vercel build manifest."},"valuable":{"state":true,"evidence":"Free/portfolio visibility for internal use; customer visibility is the commerce-gated paid seam. The tool_runs ledger is the GTM data flywheel. Grounded in the Bicycle Guide to Marketing 34-construct model (HO-232). Used to market the portfolio first, then sold to local businesses."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/EXPLAINER.md + TOOLS-BACKLOG-RECONCILIATION.md (HO-232) + the surface compose.ts header."},"integrated":{"state":true,"evidence":"Auto-fed to pa-site via /api/capabilities + /api/registry (PAT-GTM-6)."}},"status":"shipped"},{"id":"benchmark-outreach","name":"Benchmark-Outreach — find niche people + run value-first sequences","type":"service","summary":"The engine that finds the right niche people and runs value-first email sequences to gather pay data. Four audience types, each resolving to one canonical persona. Exposed read-only to AI tools (sends stay gated).","doc":"src/lib/benchmark-outreach/README.md","illustration":"docs/programs/gtm-toolbox/VALUE-FIRST-GTM.md","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":null,"mcp":"benchmark-outreach.audiences","cli":null,"ui":null,"data":"/api/spokes/gtm-studio/artifacts"},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Shipped + deploy-verified (PAT-GTM-6): null (POST, service-key) + MCP benchmark-outreach.audiences; deterministic composer (free rung) + persist to gtm-studio (tool discriminator); node:test green; route present in Vercel build manifest."},"valuable":{"state":true,"evidence":"Free read access to audiences + sequences; sending is human-gated (never auto-send). Feeds the niche benchmark consortium (longitudinal pay-data moat). Grounded in the Bicycle Guide to Marketing 34-construct model (HO-232). Used to market the portfolio first, then sold to local businesses."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/EXPLAINER.md + TOOLS-BACKLOG-RECONCILIATION.md (HO-232) + the surface compose.ts header."},"integrated":{"state":true,"evidence":"Auto-fed to pa-site via /api/capabilities + /api/registry (PAT-GTM-6)."}},"status":"shipped"},{"id":"gtm-agency-services","name":"GTM Agency Services (web + app development)","type":"service","summary":"Done-for-you delivery operating the GTM Toolbox as an agency: the tools generate the strategy, the agency builds it. Four productized packages — Landing Page Sprint (fixed), Marketing Website + Web App MVP (quote), Care & Growth retainer (fixed).","doc":"src/surfaces/gtm-shared/lib/services.ts","illustration":"docs/programs/gtm-toolbox/PRICING.md","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/marketing/inquiry","mcp":null,"cli":null,"ui":"/gtm/services","data":null},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Shipped (PAT-GTM-6): /gtm/services storefront; fixed packages → commerce checkout (Stripe prices LIVE on Bicycle LLC: gtm-svc-landing-sprint $1,500, gtm-svc-care-monthly $750/mo); quote packages → /api/marketing/inquiry capture (inquiries table). Route in the Vercel build manifest."},"valuable":{"state":true,"evidence":"Closes the strategy→execution loop: every tool output is a warm lead-in to a build engagement (the agency upsell ladder). Productized fixed-price + custom-quote tiers."},"understood":{"state":true,"evidence":"src/surfaces/gtm-shared/lib/services.ts + docs/programs/gtm-toolbox/PRICING.md (services section)."},"integrated":{"state":false,"evidence":"API surface auto-fed to pa-site via /api/capabilities; SKUs pre-staged launched:false (flip after a live test purchase); inquiry→CRM routing is a follow-up."}},"status":"building"},{"id":"gtm-market-inventory","name":"GTM Market Inventory (build-ahead 'Spots')","type":"service","summary":"The proactive flip: build + SEO-rank a staged listing page for a (niche × geography) ahead of demand, then rent it exclusively (one business per market) to the deliverer who serves it. Composes content-engine + canonical-segmentation + company-intelligence + benchmark-outreach + commerce.","doc":"docs/programs/gtm-toolbox/MARKET-INVENTORY-STRATEGY.md","illustration":"docs/programs/gtm-toolbox/MARKET-INVENTORY-STRATEGY.md","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/marketing/inquiry","mcp":null,"cli":null,"ui":"/gtm/spots","data":null},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Phase 0 shipped (PAT-GTM-6): Spot model + seed registry (src/surfaces/gtm-shared/lib/market-inventory.ts) + /gtm/spots index + /gtm/spots/[id] staged-listing surface with the claim→inquiry mechanic. Routes in the Vercel build manifest."},"valuable":{"state":false,"evidence":"Substrate only — value lands when real listing pages are generated + ranked (Phase 1) and the find-deliverer/outreach/close loop runs (Phases 2-3). Strategy + economics: MARKET-INVENTORY-STRATEGY.md."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/MARKET-INVENTORY-STRATEGY.md (model, advantages, pipeline, risks, phased plan)."},"integrated":{"state":false,"evidence":"Phase 0 substrate; Phase 1+ wires content-engine generation, company-intelligence (find deliverers), benchmark-outreach (pitch), commerce (recurring rent)."}},"status":"building"},{"id":"gtm-technical-recruiting","name":"Technical-Recruiting Directory + comp-survey flywheel (GTM-F1)","type":"service","summary":"The lead market-inventory vertical and the center of the technical-talent flywheel: niche engineering markets (JobFrame Focuses incl. emerging roles the big surveys miss) × metros → SEO listing pages carrying role intelligence + an honest comp snapshot. The micro comp survey is the flywheel — recruiters/employers contribute → proprietary pay data → better content → better ranking.","doc":"docs/programs/gtm-toolbox/VISION.md","illustration":"docs/programs/gtm-toolbox/VISION.md","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/marketing/inquiry","mcp":null,"cli":null,"ui":"/recruiting","data":null},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"GTM-F1 Phase-1 start (PAT-GTM-6): niche catalog (6 JobFrame Focuses w/ emerging roles) × 6 metros, deterministic listing composer, /recruiting index + /recruiting/[niche]/[geo] pages with the dual mechanic (recruiter claims spot · employer joins comp survey). Routes in the Vercel build manifest."},"valuable":{"state":false,"evidence":"Substrate + content; value lands when pages rank (SEO) and the micro comp surveys produce real min-N pay data (GTM-F2/F3). No fabricated pay — survey-in-progress until real data lands (test-enforced)."},"understood":{"state":true,"evidence":"docs/programs/gtm-toolbox/VISION.md (the technical-talent flywheel) + WORK-CLUSTERS.md (Cluster F)."},"integrated":{"state":false,"evidence":"Phase-1 content surface; GTM-F2/F3 wire the niche-benchmark consortium + real comp data; GTM-E3 wires company-intelligence + benchmark-outreach to find + pitch buyers."}},"status":"building"},{"id":"fairness-monitor","name":"Single-model fairness monitor (automated-decision disparity audit)","type":"algo","summary":"ONE classifier trained with a fairness-aware loss (demographic-parity / equalized-odds penalty) plus an external held-out audit cohort that measures protected-class disparity post-hoc. Non-infringing design-around of US11922435B2's dual-model bias architecture: no second/monitoring model, no pseudo-unbiased corpus, no dual-classifier comparison. Complements the HO-191 pay-equity analyzer (compensation disparity) on the protected-class fairness thread.","doc":"src/spokes/wage-benchmark/README.md#single-model-fairness-monitor-us11922435b2-design-around","illustration":"src/spokes/wage-benchmark/README.md#single-model-fairness-monitor-us11922435b2-design-around","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"/api/spokes/wage-benchmark/fairness-monitor/train, /api/spokes/wage-benchmark/fairness-monitor/audit","mcp":"wage-benchmark.fairness-monitor.train, wage-benchmark.fairness-monitor.audit","cli":null,"ui":null,"data":"src/spokes/wage-benchmark/core/fairness-monitor.ts"},"realization":{"functioning":{"state":true,"evidence":"train + audit implemented (core/fairness-monitor.ts); 8/8 tests pass (tests/fairness-monitor.test.ts): biased cohort flags disparity, fairness-loss training reduces measured disparity, degenerate single-group case, deterministic, structural boundary."},"valuable":{"state":"partial","evidence":"Complements the HO-191 pay-equity analyzer on the protected-class fairness thread (decision-outcome disparity vs compensation disparity). No paying consumer yet; in-force design-around pending legal review before commercial use."},"understood":{"state":true,"evidence":"README section + mermaid (train-with-fairness-loss -> audit-cohort -> disparity-report) + machine-readable boundaryAttestation in every report."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration (registered in wage-benchmark MCP register + registry.ts contracts). No downstream consumer wired yet."}},"status":"building"},{"id":"semantic-candidate-ranking","name":"Semantic candidate↔role ranking via transformer embeddings (US11403597B2 design-around)","type":"algo","summary":"Rank a candidate pool against a role by cosine similarity of TRANSFORMER CONTEXTUAL EMBEDDINGS (dense sentence/text embeddings of role + candidate skill/experience text). IP-clean design-around of in-force US11403597B2 — the representation is a dense contextual embedding, explicitly NOT the patent's topic-model (LDA bag-of-words) document vector, and the rank is cosine, NOT token-set overlap. The dense-embedding complement to the PAT-204 token-overlap two-sided matcher (not a fork). Embedding-provider-agnostic: precomputed embeddings OR a pluggable Embedder port with a deterministic mock fallback.","doc":"docs/PATENT-RADAR-US11403597B2-TRIAGE.md","illustration":"src/spokes/job-family-agent/README.md#semantic-candidate-role-ranking","consumers":["people-analytics-toolbox","performix"],"surfaces":{"rest":"/api/spokes/job-family-agent/semantic-rank","mcp":"job-family-agent.semantic-rank","cli":null,"ui":null,"data":"src/spokes/job-family-agent/core/semantic-ranking.ts"},"realization":{"functioning":{"state":true,"evidence":"core/semantic-ranking.ts (cosine over contextual embeddings, deterministic mock embedder + pluggable port) + REST + MCP (job-family-agent.semantic-rank) wired from one contract; 7 passing tests (npm run test:semantic-rank), changed-files typecheck clean, check:spokes + check:standards green."},"valuable":{"state":false,"evidence":"IP-clean ranking routed from the patent-radar sweep; complements the PAT-204 token-overlap matcher with semantic recall. No live consumer yet, and IN-FORCE patent — pending legal review on the non-infringement path before any commercial use."},"understood":{"state":true,"evidence":"docs/PATENT-RADAR-US11403597B2-TRIAGE.md (claim vs design-around table, synthesis decision, provider seam) + spoke README section with mermaid."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration on branch feat/semantic-candidate-ranking-us11403597b2 (PR open, NOT merged); reuses the two-sided ProfileSide vocabulary. No live consumer wiring yet."}},"status":"building"},{"id":"skill-trajectory-matching","name":"Time-aware skill-trajectory matching via sequence alignment (CN120525496A design-around)","type":"algo","summary":"Match a candidate's skill TRAJECTORY against a role's required trajectory by SEQUENCE ALIGNMENT (Needleman-Wunsch) of two typed (skill → proficiency → time) sequences, blended with final-state coverage and an optional deterministic recency attention — rewarding demonstrated GROWTH over time (proficiency that rose to the required level beats the same final skills with no/late progression). IP-clean design-around of in-force CN120525496A: 1-D sequence alignment (+ optional deterministic attention), explicitly NOT a graph neural network over a capability-evolution graph (no nodes/edges, no message-passing, no learned params). The time-aware complement to the PAT-204 token-overlap matcher and the US11403597B2 semantic-rank — both of which are point-in-time. Pure + deterministic, no external model dependency.","doc":"docs/PATENT-RADAR-CN120525496A-TRIAGE.md","illustration":"src/spokes/job-family-agent/README.md#skill-trajectory-matching","consumers":["people-analytics-toolbox","performix"],"surfaces":{"rest":"/api/spokes/job-family-agent/trajectory-match","mcp":"job-family-agent.trajectory-match","cli":null,"ui":null,"data":"src/spokes/job-family-agent/core/skill-trajectory.ts"},"realization":{"functioning":{"state":true,"evidence":"core/skill-trajectory.ts (Needleman-Wunsch alignment over (skill,proficiency,time) sequences + deterministic recency attention, no external model) + REST + MCP (job-family-agent.trajectory-match) wired from one contract; 7 passing tests (npm run test:trajectory-match) incl. grower-beats-flat, deterministic ties, honest empty case, and a sequence-alignment-not-GNN/not-set-overlap assertion; changed-files typecheck clean, check:spokes job-family-agent + check:standards green."},"valuable":{"state":false,"evidence":"Adds the time/trajectory dimension neither static matcher has (succession, internal mobility, early-career ramp). Routed from the patent-radar sweep. No live consumer yet, and IN-FORCE patent — pending legal review on the non-infringement path before any commercial use."},"understood":{"state":true,"evidence":"docs/PATENT-RADAR-CN120525496A-TRIAGE.md (claim vs design-around table, synthesis decision, deterministic-by-construction note) + spoke README section with mermaid."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration on branch feat/skill-trajectory-matching-cn120525496a (PR open, NOT merged); reuses the two-sided ProfileSide vocabulary. No live consumer wiring yet."}},"status":"building"},{"id":"causal-discovery-kpi-graph","name":"Causal-discovery KPI dependency engine (US11620601B2 design-around)","type":"algo","summary":"Constraint-based causal-structure recovery over a single block of tabular workforce/KPI data from ordinary ETL: the PUBLISHED PC algorithm (Spirtes/Glymour/Scheines) with partial-correlation Fisher-z conditional-independence tests builds a KPI DEPENDENCY GRAPH (skeleton + v-structure/collider orientation -> a CPDAG subset) and a LEVERAGE RANKING of drivers by their DIRECT (partial) effect on a named outcome KPI -- a confounded/mediated correlation (X _||_ Z | Y) is NOT scored as a direct driver. Deterministic, stateless, pure compute; no external service, no API key. IP-clean design-around of in-force US11620601B2: published causal-discovery on standard ETL, explicitly NOT the patent's integrated multi-engine value-graph platform with multi-source ingestion and continuous ML retraining. The MULTIVARIATE complement to the bivariate calculus.key-driver importance screen (not a fork).","doc":"src/spokes/causal-discovery/README.md","illustration":"src/spokes/causal-discovery/README.md#the-flow","consumers":[],"surfaces":{"rest":"/api/spokes/causal-discovery/discover","mcp":"causal-discovery.discover","cli":null,"ui":null,"data":"src/spokes/causal-discovery/core/causal-discovery.ts"},"realization":{"functioning":{"state":true,"evidence":"core/causal-discovery.ts (PC skeleton via partial-correlation Fisher-z CI tests + collider orientation + direct-effect leverage ranking) + REST (POST /api/spokes/causal-discovery/discover, service-key gated) + MCP (causal-discovery.discover) wired from one contract; 11 passing tests (tsx --test src/spokes/causal-discovery/tests/causal-discovery.test.ts) incl. chain X->Y->Z recovery, confounded non-edge (X _||_ Z | Y), leverage ranking, determinism, degenerate cases, collider orientation; changed-files typecheck clean, check:spokes (0 required gaps) + check:standards green."},"valuable":{"state":false,"evidence":"Multivariate dependency-graph + direct-leverage capability routed from the patent-radar sweep; complements the bivariate calculus.key-driver screen (which cannot tell a direct cause from a confounded correlation). No live consumer yet, and IN-FORCE patent -- pending legal review on the non-infringement path before any commercial use."},"understood":{"state":true,"evidence":"spoke README (claim-vs-design-around table, synthesis decision vs calculus.key-driver, mermaid of tabular ETL -> causal discovery -> KPI dependency graph -> leverage ranking) + docs/SURFACE.md + CHANGELOG."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration on branch feat/causal-value-graph-us11620601b2 (PR open, NOT merged); registry + discovery + register-tools + health-aggregate + drizzle + db-barrel wired. No live consumer wiring yet."}},"status":"building"},{"id":"validity-loop","name":"Outcome-first assessment↔performance validity loop (US20160092822A1, public-domain)","type":"algo","summary":"Correlates a PREDICTOR BATTERY against actual job performance to refine which predictors actually predict here: captures the realized outcome as one INDEPENDENT measurement event, correlates each predictor against it (composing the single-pair criterion-validity primitive), emits per-predictor observed + operational validity coefficients, ranks predictors by realized validity, and returns a predictor-refinement report with refined normalized weights (proportional to positive significant validity; noise/counter predictors -> 0; signal-free battery -> honest uniform fallback). A standard criterion-validity loop in public-domain I-O psychometrics. COMPLEMENTS (does not duplicate) PAT-204's outcome-feedback weight loop (#196): that learns weights for one specific matcher's signals; this is a general assessment->performance VALIDITY layer over any predictor battery vs any realized-outcome event. Pure / deterministic / stateless; no live source or API key.","doc":"src/spokes/performance-validity/README.md#outcome-first-validity-loop-post-validity-loop-mcp-performance-validityanalyzevalidity-loop","illustration":"src/spokes/performance-validity/README.md#outcome-first-validity-loop-post-validity-loop-mcp-performance-validityanalyzevalidity-loop","consumers":[],"surfaces":{"rest":"/api/spokes/performance-validity/validity-loop","mcp":"performance-validity.analyze.validity-loop","cli":null,"ui":null,"data":"src/spokes/performance-validity/core/validity-loop.ts"},"patent":{"routes_around":["US20160092822A1"],"status":"public-domain","legal_note":"free to implement (abandoned)"},"realization":{"functioning":{"state":true,"evidence":"core/validity-loop.ts composes computeCriterionValidity across the battery (per-predictor observed + operational validity, ranking, refined normalized weights) + REST (POST /api/spokes/performance-validity/validity-loop, service-key gated) + MCP (performance-validity.analyze.validity-loop) wired from one contract (1.4.0); 8 passing tests (tsx --test src/spokes/performance-validity/tests/validity-loop.test.ts) incl. correlated predictor -> high validity + top rank + dominant weight, noise/counter predictor -> dropped + zero weight, report ranks by validity, determinism, thin-join honesty, signal-free uniform fallback; changed-files typecheck clean, check:spokes (0 required gaps) + check:standards green."},"valuable":{"state":"partial","evidence":"Outcome-first validity layer routed from the patent-radar sweep; turns a hiring/assessment battery + realized outcomes into per-predictor validity + refined weights (which predictors actually predict performance here). Public-domain (abandoned patent) -> no legal gate. No live consumer wiring yet."},"understood":{"state":true,"evidence":"spoke README (outcome-first validity loop section: synthesis decision vs criterion-validity + vs PAT-204 #196, mermaid of predictor battery + independent outcome -> per-predictor validity -> ranking -> refined weights -> refinement report) + docs/SURFACE.md use-case + CHANGELOG 1.4.0."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration on branch feat/validity-loop-us20160092822a1 (PR open, NOT merged); contract + handlers + register-tools + discovery roster wired into the existing performance-validity spoke. No live consumer wiring yet."}},"status":"building"},{"id":"comp-normalizer","name":"Schema-first canonical comp-data normalizer (US11829954B2 design-around)","type":"algo","summary":"Ingests HETEROGENEOUS compensation records (arbitrary pay-component labels, periods, currencies, FTEs) and maps every component onto a CANONICAL COMP SCHEMA: classified base/variable/commission/allowance, converted to one display currency, annualized, and FTE-normalized -> canonical records + per-class totals. A DATA-QUALITY report (missing currency, missing/mismatched period, unmapped class, unknown FX rate, negative amount) is emitted as a BYPRODUCT of schema conformance -- it never compares against an expected payroll amount and removing it would change no normalized number. Deterministic, stateless, pure compute; static FX snapshot, no live source/API key. IP-clean design-around of in-force US11829954B2: that patent is an ERROR-DETECTION-FIRST pipeline that normalizes commission & performance-pay to FLAG PAYROLL ERRORS; this inverts the posture -- normalization is primary, anomaly/quality flags fall out of canonicalization rules. The missing front-door COMPLEMENT (not a fork) to anycomp.onboarded-roster (which assumes already-normalized rows) and wage-compliance/currency (single-amount FX) -- it produces the single comparable canonical basis those primitives assume, feeding benchmark integrity.","doc":"src/spokes/comp-normalizer/README.md","illustration":"src/spokes/comp-normalizer/README.md#the-flow","patent":{"routes_around":["US11829954B2"],"status":"in-force","legal_note":"pending legal review on the non-infringement path before any commercial use"},"consumers":[],"surfaces":{"rest":"/api/spokes/comp-normalizer/normalize","mcp":"comp-normalizer.normalize","cli":null,"ui":null,"data":"src/spokes/comp-normalizer/core/comp-normalizer.ts"},"realization":{"functioning":{"state":true,"evidence":"core/comp-normalizer.ts (component-class inference + period annualization + static-table FX conversion + FTE normalization + quality byproduct) + REST (POST /api/spokes/comp-normalizer/normalize, service-key gated) + MCP (comp-normalizer.normalize) wired from one contract; 17 passing tests (tsx --test src/spokes/comp-normalizer/tests/comp-normalizer.test.ts) incl. messy multi-source canonicalization, monthly->annual + GBP->USD + FTE normalization, byproduct quality flags (missing-currency/period-mismatch/unmapped-class/unknown-FX), determinism, honest clean/empty cases; changed-files typecheck clean, check:spokes (0 required gaps) + check:standards green."},"valuable":{"state":false,"evidence":"Schema-first comp-normalization front door routed from the patent-radar sweep; complements anycomp.onboarded-roster (already-normalized rows) + wage-compliance currency (single-amount FX) and feeds benchmark integrity (like-for-like comparison needs one canonical basis). No live consumer yet, and IN-FORCE patent -- pending legal review on the non-infringement path before any commercial use."},"understood":{"state":true,"evidence":"spoke README (claim-vs-design-around table, synthesis decision vs anycomp.onboarded-roster + wage-compliance/currency, mermaid of heterogeneous records -> classify -> canonicalize -> canonical records + quality report) + docs/SURFACE.md + CHANGELOG."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration on branch feat/comp-normalizer-us11829954b2 (PR open, NOT merged); registry + discovery + register-tools + health-aggregate + drizzle + db-barrel wired. No live consumer wiring yet."}},"status":"building"},{"id":"counterfactual-recs","name":"Deterministic counterfactual recommendations (US11836633B2 design-around)","type":"algo","summary":"Actionable-explainability layer ON TOP of the JobFrame matchers: given a candidate FEATURE VECTOR + per-feature ATTRIBUTIONS (SHAP/anchor-style, supplied or derived by a transparent deterministic attributor) + a current/target score + declared CONSTRAINTS (immutable features, [min,max] ranges, step granularity), compute the MINIMAL feasible feature edits that raise the predicted outcome to the target -- \"what would make this candidate rank higher\". Output is edits to the REAL candidate feature vector (from->to->delta + per-change score contribution + rationale), never a synthesized profile; immutable features are never proposed for change; sparsity-budgeted (maxChanges); honest already-met + infeasible (reasoned, no partial answer). Pure + deterministic, no external model / no API key. IP-clean design-around of in-force US11836633B2 (which GENERATES counterfactual candidate profiles with a GAN -- adversarial generator/discriminator synthesizing fictional higher-ranking profiles): the mechanism here is deterministic feature attribution + constrained search over the declared feasible region -- NO GAN, no generator, no discriminator, no sampling, no learned synthesis. COMPLEMENT (not a duplicate) to the two-sided matcher / semantic-rank / trajectory-match: those give the score + gaps, this gives the minimal change set to clear a threshold.","doc":"src/spokes/job-family-agent/README.md","illustration":"src/spokes/job-family-agent/README.md#counterfactual-recommendations-us11836633b2-design-around-in-force","patent":{"routes_around":["US11836633B2"],"status":"in-force","legal_note":"pending legal review on the non-infringement path before any commercial use"},"consumers":["people-analytics-toolbox","performix"],"surfaces":{"rest":"/api/spokes/job-family-agent/counterfactual-recs","mcp":"job-family-agent.counterfactual-recs","cli":null,"ui":null,"data":"src/spokes/job-family-agent/core/counterfactual-recs.ts"},"realization":{"functioning":{"state":true,"evidence":"core/counterfactual-recs.ts (recommendCounterfactual + deriveAttributions: constrained greedy minimal-change search over the declared feasible region, immutable-feature guard, step-snapping, sparsity budget, honest already-met/infeasible) + contracts/counterfactual-recs.ts (Zod) + REST (POST /api/spokes/job-family-agent/counterfactual-recs, public IP-rate-limited) + MCP (job-family-agent.counterfactual-recs) wired from one contract; 7 passing tests (tsx --test src/spokes/job-family-agent/tests/counterfactual-recs.test.ts) incl. below-threshold->minimal change reaching target, immutable-feature-respected, already-above->no change, honest infeasibility, determinism (byte-identical reruns), no-generative-step assertion (edits to real features only), derived-attribution fallback; changed-files typecheck clean, check:spokes (0 required gaps) + check:standards green."},"valuable":{"state":false,"evidence":"The actionable layer the matchers lack -- turns a match score + gap into the minimal feasible next steps to clear a threshold (candidate guidance + hiring-manager what-if). No live consumer wiring yet, and IN-FORCE patent -- pending legal review on the non-infringement path before any commercial use."},"understood":{"state":true,"evidence":"spoke README section (claim-vs-design-around prose, synthesis decision: complements .match/.semantic-rank/.trajectory-match rather than duplicating, mermaid of feature vector + attributions + target + constraints -> constrained minimal-change search -> counterfactual recommendations + honest empty) + CHANGELOG 1.21.0."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration on branch feat/counterfactual-recs-us11836633b2 (PR open, NOT merged); MCP tool wired in tools.ts/tool-descriptions.ts/handlers.ts/register.ts within the live job-family-agent spoke. No live consumer wiring yet."}},"status":"building"},{"id":"pay-structure-retention","name":"Pay-structure-for-retention recommender (US11636435B2 design-around)","type":"algo","summary":"Given a workforce COHORT (attributes + current compa-ratio + headcount), its CURRENT pay structure (band midpoint, range spread, base<->variable mix), and a RETENTION SIGNAL (current annual attrition), recommends STRUCTURE ADJUSTMENTS (midpoint lift, variable-share trim, spread widening) that optimize a retention objective -> the recommended structure + per-lever adjustments with rationale + the PREDICTED RETENTION EFFECT (projected attrition, attrition reduction, retained headcount, projected compa-ratio). A transparent, a-priori, OVERRIDABLE dose-response (every coefficient exposed; market-pressure-amplified; capped at the retention floor); below-band high-attrition cohorts get a bounded midpoint lift + mix/spread moves, well-paid low-attrition cohorts get an honest minimal/no-change result. Deterministic, stateless, pure compute; no live source/API key. IP-clean design-around of in-force US11636435B2: that patent predicts which BENEFITS/PLAN an employee SELECTS vs org financial goals; this INVERTS the I/O -- the target is the pay-STRUCTURE design and the objective is RETENTION (structure -> retention), NOT plan selection. The missing structure->retention RECOMMENDER complement (not a fork) to anycomp.byos-structure-build (prices grade ranges from supplied midpoints) and anycomp.exit-risk (per-employee P(exit) predictor) -- it recommends what structure to change and the retention payoff those leave out.","doc":"src/spokes/pay-structure-retention/README.md","illustration":"src/spokes/pay-structure-retention/README.md#the-flow","patent":{"routes_around":["US11636435B2"],"status":"in-force","legal_note":"pending legal review on the non-infringement path before any commercial use"},"consumers":[],"surfaces":{"rest":"/api/spokes/pay-structure-retention/recommend","mcp":"pay-structure-retention.recommend","cli":null,"ui":null,"data":"src/spokes/pay-structure-retention/core/pay-structure-retention.ts"},"realization":{"functioning":{"state":true,"evidence":"core/pay-structure-retention.ts (retention-floor gate + bounded midpoint-lift sizing from compa-ratio deficit + variable-share trim + spread widening + market-pressure-amplified a-priori dose-response, capped at floor/zero) + REST (POST /api/spokes/pay-structure-retention/recommend, service-key gated) + MCP (pay-structure-retention.recommend) wired from one contract; 16 passing tests (tsx --test src/spokes/pay-structure-retention/tests/pay-structure-retention.test.ts) incl. below-band high-attrition -> midpoint lift + positive retention effect, well-paid -> minimal change, at-band -> non-pay levers only, bounds respected, determinism, validation guards; check:spokes (0 required gaps) + check:standards green."},"valuable":{"state":false,"evidence":"Structure->retention recommender routed from the patent-radar sweep; the missing recommender complement to anycomp.byos-structure-build (band pricing) + anycomp.exit-risk (per-employee predictor). No live consumer yet; the dose-response is a-priori (not yet empirically calibrated), and IN-FORCE patent -- pending legal review on the non-infringement path before any commercial use."},"understood":{"state":true,"evidence":"spoke README (claim-vs-design-around table, synthesis decision vs anycomp.byos-structure-build + anycomp.exit-risk + wage-benchmark/comp-normalizer, mermaid of cohort+structure+signal -> floor gate -> lever scoring -> recommended structure + predicted effect) + docs/SURFACE.md + CHANGELOG."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration on branch feat/pay-structure-retention-us11636435b2 (PR open, NOT merged); registry + discovery + register-tools + health-aggregate + drizzle + db-barrel wired. No live consumer wiring yet."}},"status":"building"},{"id":"job-similarity","name":"Dense semantic job-to-job similarity (US12524739B2 design-around)","type":"algo","summary":"Scores how similar two JOB descriptions are (role-to-role) — each a bundle of role/responsibility/skill TEXT or precomputed dense EMBEDDINGS — by COSINE similarity in a shared vector space with standard facet-weighted HIERARCHICAL aggregation, returning the aggregate similarity in [0,1] + a per-facet cosine breakdown; also ranks a candidate job set against a query job. Embedding-provider AGNOSTIC: supply precomputed embeddings, OR let the spoke embed free text via a pluggable EMBEDDER PORT with a deterministic in-repo mock (feature-hashing; no live API key) — the same seam JobFrame's `semantic` coordinate space staged (FU-3) but left unimplemented. Deterministic, stateless, pure compute. IP-clean design-around of in-force US12524739B2: that patent parses a job description into a CUSTOM TRIPLET schema and scores hierarchical job-similarity over that proprietary structure; this uses a DIFFERENT representation — dense semantic-role EMBEDDINGS + standard cosine + standard hierarchical aggregation. The non-infringement is the representation (a dense embedding vector, NOT a triplet structure): no triplet extraction, no triplet-similarity schema, no structured-relation scoring; similarity == cosine over dense vectors. Job<->job is a DIFFERENT pair than JobFrame's candidate<->role two-sided matcher and is the missing concrete implementation of JobFrame's staged semantic seam — it complements (does not fork) the matcher + coordinate engine.","doc":"src/spokes/job-similarity/README.md","illustration":"src/spokes/job-similarity/README.md#the-flow","patent":{"routes_around":["US12524739B2"],"status":"in-force","legal_note":"pending legal review on the non-infringement path before any commercial use"},"consumers":[],"surfaces":{"rest":"/api/spokes/job-similarity/score","mcp":"job-similarity.score","cli":null,"ui":null,"data":"src/spokes/job-similarity/core/job-similarity.ts"},"realization":{"functioning":{"state":true,"evidence":"core/job-similarity.ts (per-facet cosine + renormalized facet-weighted hierarchical aggregation, honest-empty on no shared facet) + core/embedder.ts (pluggable Embedder port + deterministic feature-hashing mock, no API key) + REST (POST /api/spokes/job-similarity/score + /rank, service-key gated; GET /health) + MCP (job-similarity.score/rank/health) wired from one contract; passing tests (tsx --test src/spokes/job-similarity/tests/job-similarity.test.ts) incl. similar-jobs-high, dissimilar-low, paraphrase-with-no-shared-tokens-still-similar (score == embedding cosine, not token overlap, not triplet schema), precomputed-embedding path, facet aggregation, ranking + topK, determinism, honest-empty, validation guards; check:spokes (0 required gaps) + check:standards green."},"valuable":{"state":false,"evidence":"Job-to-job dense-similarity scorer routed from the patent-radar sweep; the missing concrete implementation of JobFrame's staged `semantic` coordinate space (FU-3) and the unwired `semantic: 0.05` matcher signal. No live consumer yet; the default embedder is a deterministic mock (not a calibrated semantic model), and IN-FORCE patent -- pending legal review on the non-infringement path before any commercial use."},"understood":{"state":true,"evidence":"spoke README (claim-vs-design-around table, synthesis decision vs JobFrame two-sided matcher + coordinate engine's staged semantic space, mermaid of job texts -> embeddings -> cosine + hierarchical aggregation -> job-similarity) + docs/SURFACE.md + CHANGELOG."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration on branch feat/job-similarity-us12524739b2 (PR open, NOT merged); registry + discovery + register-tools + health-aggregate + drizzle TOOLBOX_SCHEMAS + db-barrel wired. No live consumer wiring yet."}},"status":"building"},{"id":"career-pathing-cohort-similarity","name":"Cohort-similarity career-pathing over a skill ontology (US20200372473A1, public-domain)","type":"algo","summary":"Recommends a person's likely/feasible NEXT ROLES from a corpus of historical role transitions, ranked by cohort similarity over the skill graph, with the skill gaps to close for each. Given a current role + weighted skill profile and a transition corpus (from->to + each mover's skills + count): represents the person and every mover's origin profile as a sparse skill vector over the shared skill ontology, computes cohort similarity = cosine(person, mover) (no-skills movers get a small floor), keeps movers >= minCohortSimilarity (the cohort \"people like you\"), ranks destination roles by similarity-weighted move-share (the cohort's share of onward moves into that role), and for each destination emits the skill gaps = cohort prevalence - held weight (clamped >=0), largest first. The public-domain implementation of US20200372473A1's roles-as-skill-nodes + learned role-transition cohorts, via standard cohort/cosine-similarity methods. COMPLEMENTS (does not duplicate) career-development (taxonomy/coordinate ladders+lattices over the canon, no behavioral data) and job-family-agent (candidate<->role matching / single-role fit): this is pathing by behavioral DATA — \"what did people with a profile like yours actually move into next?\". A unique profile with no similar movers returns an honest empty/sparse result. Pure / deterministic / stateless; the transition corpus is posted in the request (no live source, no API key, nothing persisted).","doc":"src/spokes/career-pathing/README.md","illustration":"src/spokes/career-pathing/README.md#what-it-does","consumers":[],"surfaces":{"rest":"/api/spokes/career-pathing/recommend-next-roles","mcp":"career-pathing.recommend-next-roles","cli":null,"ui":null,"data":"src/spokes/career-pathing/core/cohort-pathing.ts"},"patent":{"routes_around":["US20200372473A1"],"status":"public-domain","legal_note":"free to implement (abandoned)"},"realization":{"functioning":{"state":true,"evidence":"core/cohort-pathing.ts (cosine cohort similarity over the skill graph -> similarity-weighted destination move-share ranking -> per-destination skill gaps) + REST (POST /api/spokes/career-pathing/recommend-next-roles, service-key gated, empty body -> seeded example) + MCP (career-pathing.recommend-next-roles) wired from one contract (contracts/types.ts 0.1.0); 6 passing tests (npx tsx --test src/spokes/career-pathing/tests/cohort-pathing.test.ts) incl. cohort match -> destination ranked first + correct skill gaps (held skills excluded), unique profile -> honest empty, determinism, topK, empty-cohort safety, cosine helper; check:spokes career-pathing (0 required gaps) + check:standards green; scoped tsc clean over changed files."},"valuable":{"state":"partial","evidence":"Empirical next-role pathing routed from the patent-radar sweep (US20200372473A1, public-domain -> no legal gate): turns a profile + a historical transition corpus into ranked, evidence-based next-roles + the skills to close. The net-new behavioral-data layer alongside career-development (taxonomy) + job-family-agent (matching). No live consumer wiring yet."},"understood":{"state":true,"evidence":"spoke README (synthesis decision vs career-development + vs job-family-agent, mermaid: profile + transition corpus -> cohort similarity over skill graph -> ranked next-roles + gaps, patent posture) + docs/SURFACE.md (8-section) + CHANGELOG 0.1.0."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration on branch feat/career-pathing-us20200372473a1 (PR open, NOT merged); new career-pathing spoke wired into contracts/registry.ts, mcp/register-tools.ts, mcp/discovery.ts, health/aggregate.ts, drizzle.config TOOLBOX_SCHEMAS, src/db/schema.ts. No live consumer wiring yet."}},"status":"building"},{"id":"knowledge-graph","name":"Knowledge Graph (Marketing Intelligence Stack substrate)","type":"service","summary":"The entity/relationship substrate at the center of the Marketing Intelligence Stack: a typed, tenant-scoped graph that FEDERATES JobFrame roles + company-intelligence companies (reference nodes) and owns the cross-cutting marketing edges (competes-with, hires-for, covers-topic, ranks-for…). The join layer that makes CI/SEO/AI-Inbound/Content cohere + the grounding layer for AI-cited answers.","doc":"src/spokes/knowledge-graph/README.md","illustration":"docs/programs/gtm-toolbox/spokes/knowledge-graph-SPEC.md","consumers":["seo","ai-inbound","content-development","competitive-intelligence"],"surfaces":{"rest":"/api/spokes/knowledge-graph/neighborhood","mcp":"knowledge-graph.entity.neighbors","cli":null,"ui":null},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Spoke shipped (GTM-HKG-1/2/3, PAT-GTM-6): knowledge_graph schema (migration 0146) + entities/entity_aliases/relationships/topic_clusters/sources + upsert (federate-guarded) + resolve + neighborhood (depth-3 BFS) over REST + MCP (knowledge-graph.*). check:spokes green; 7 identity/federate-guard tests; routes in the Vercel build manifest."},"valuable":{"state":false,"evidence":"Substrate; value lands once seeded (GTM-HKG-4: tech-recruiting domain seed script ready) + the canonical reference-node import (JobFrame/company-intelligence resolvers) + the sibling spokes write/read edges. Migration applies to prod on merge to main."},"understood":{"state":true,"evidence":"src/spokes/knowledge-graph/README.md + docs/SURFACE.md + docs/programs/gtm-toolbox/spokes/knowledge-graph-SPEC.md (federate-don't-duplicate boundary)."},"integrated":{"state":false,"evidence":"Registry live + auto-fed to pa-site via /api/registry + /api/capabilities; cross-spoke edge wiring (GTM-HKG-6) + per-client RLS (GTM-HKG-7) pending."}},"status":"building"},{"id":"seo","name":"SEO (search-visibility engine)","type":"service","summary":"Marketing Intelligence Stack search engine: keyword research, rank tracking (append-only time series), technical/on-page audits, and (Phase 2) content gaps + briefs. Instruments the build-ahead market-inventory Spots + /recruiting directory so they rank — and proves it with real, never-fabricated rank/traffic. Internal + a productized agency SKU (audit · rank-tracking · keyword strategy).","doc":"src/spokes/seo/README.md","illustration":"docs/programs/gtm-toolbox/spokes/seo-SPEC.md","consumers":["content-development","ai-inbound","gtm-market-inventory"],"surfaces":{"rest":"/api/spokes/seo/rank-trend","mcp":"seo.rank.trend","cli":null,"ui":null},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Spoke shipped (GTM-HSEO Phase 1, PAT-GTM-6): seo schema (migration 0147; sites/pages/keywords/keyword_targets/rank_history/serp_snapshots/audits/audit_findings/content_gaps) + honest keyword candidate gen + site/page registration + rank ingest/trend + deterministic technical audit, REST + MCP (seo.*). check:spokes green; 4 core tests; routes in the Vercel build manifest."},"valuable":{"state":false,"evidence":"Value lands when the GSC connector ingests real measured rank/clicks for our Spots (Phase 1 connector) + content-gaps/briefs feed Content Development (Phase 2). NO fabricated metrics — measured(gsc)/estimated(provider)/null, test-enforced."},"understood":{"state":true,"evidence":"src/spokes/seo/README.md + docs/SURFACE.md + docs/programs/gtm-toolbox/spokes/seo-SPEC.md."},"integrated":{"state":false,"evidence":"Registry live + auto-fed to pa-site via /api/registry + /api/capabilities; cross-spoke (KG entity links, CI competitor gaps, Marketing/GA GSC handshake) + Spot rank instrumentation pending."}},"status":"building"},{"id":"marketing-analytics","name":"Marketing / Google Analytics (measurement layer)","type":"service","summary":"The measurement layer of the Marketing Intelligence Stack: GA4 + Google Search Console + a conversion warehouse. Ingests measured metrics (GA4 sampling flagged), mirrors the commerce till's real conversions, serves calculus-ready rollups, and supplies the HONEST market-inventory Spot traffic number (null until real). T8 recommends metrics; this computes the real ones. SEO reads our GSC rows.","doc":"src/spokes/marketing-analytics/README.md","illustration":"docs/programs/gtm-toolbox/spokes/marketing-analytics-SPEC.md","consumers":["seo","gtm-northstar","gtm-market-inventory"],"surfaces":{"rest":"/api/spokes/marketing-analytics/metrics","mcp":"marketing-analytics.metrics.query","cli":null,"ui":null},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Spoke shipped (GTM-HMA Phase 1, PAT-GTM-6): marketing_analytics schema (migration 0148; properties + metric_rollups + conversions) + property connect/list + GA4/GSC rollup ingest (idempotent) + conversion ingest (honest commerce join) + metrics query + honest Spot-performance, REST + MCP. check:spokes green; 6 compute/contract tests; routes in the Vercel build manifest."},"valuable":{"state":false,"evidence":"Value lands when the GA4/GSC OAuth connector ingests real measured data for our properties (Phase 1 connector) + the T8 north-star bind + attribution/funnels/reports (Phase 2). NO fabricated metrics — sampling flagged, Spot number null/honest:false until real (test-enforced), no raw tokens stored."},"understood":{"state":true,"evidence":"src/spokes/marketing-analytics/README.md + docs/SURFACE.md + docs/programs/gtm-toolbox/spokes/marketing-analytics-SPEC.md."},"integrated":{"state":false,"evidence":"Registry live + auto-fed to pa-site via /api/registry + /api/capabilities; the GSC handshake with SEO + T8 north-star bind + commerce-conversion feed wiring pending."}},"status":"building"},{"id":"competitive-intelligence","name":"Competitive Intelligence (monitoring + gap findings)","type":"service","summary":"Marketing Intelligence Stack competitor-monitoring layer: an append-only observation store (SERP / keywords / content / backlinks / positioning / hiring over time) that derives a ranked gap-findings opportunity list the rest of the stack consumes (SEO, Content, positioning). Distinct from company-intelligence (the company master): CI owns OBSERVATIONS + references the master by key. Internal + a productized competitive-audit/monitoring SKU.","doc":"src/spokes/competitive-intelligence/README.md","illustration":"docs/programs/gtm-toolbox/spokes/competitive-intelligence-SPEC.md","consumers":["seo","content-development","knowledge-graph"],"surfaces":{"rest":"/api/spokes/competitive-intelligence/gaps","mcp":"competitive-intelligence.gaps.list","cli":null,"ui":null},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Spoke shipped (GTM-HCI Phase 1, PAT-GTM-6): competitive_intelligence schema (migration 0149; competitors + monitoring_profiles + serp/keyword/content/backlink/positioning/hiring observations + gap_findings + captures) + register + observation ingest + SERP movement diff + keyword-gap recompute, REST + MCP. check:spokes green; 3 compute tests; routes in the Vercel build manifest."},"valuable":{"state":false,"evidence":"Value lands when the capture connectors (SERP/backlink/positioning providers, ATS hiring) feed real observations + the company-intelligence shell-register seam wires. NO fabricated ranks/prices — null never imputed, LLM positioning carries confidence (test-enforced)."},"understood":{"state":true,"evidence":"src/spokes/competitive-intelligence/README.md + docs/SURFACE.md + docs/programs/gtm-toolbox/spokes/competitive-intelligence-SPEC.md (boundary vs company-intelligence)."},"integrated":{"state":false,"evidence":"Registry live + auto-fed to pa-site via /api/registry + /api/capabilities; the SEO gap handshake + KG topic links + company-intel shell-register pending."}},"status":"building"},{"id":"ai-inbound","name":"AI Inbound (AEO/GEO + capture)","type":"service","summary":"Marketing Intelligence Stack AI-native inbound layer, two halves: (1) Answer-Engine Optimization — citability audits + 3-state answer-engine citation probes + the llms.txt answer-feed so AI engines cite us; (2) AI inbound capture — intent detection + conversational qualification → PII-redacted routed leads. Internal (our properties get cited + capture leads) + a productized agency service.","doc":"src/spokes/ai-inbound/README.md","illustration":"docs/programs/gtm-toolbox/spokes/ai-inbound-SPEC.md","consumers":["knowledge-graph","content-development","marketing-analytics"],"surfaces":{"rest":"/api/spokes/ai-inbound/aeo/audits","mcp":"ai-inbound.aeo.audit","cli":null,"ui":null},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Spoke shipped (GTM-HAI Phase 1, PAT-GTM-6): ai_inbound schema (migration 0150; aeo_audits + answer_engine_runs/probes + llms_feeds + inbound_sessions/intents + conversation_turns + captured_leads) + deterministic citability scoring + 3-state probe storage w/ honest shares + llms.txt generate/serve + intent-classifying capture/qualify (PII-redacted) → leads, REST + MCP. check:spokes green; 6 compute tests; routes in the Vercel build manifest."},"valuable":{"state":false,"evidence":"Value lands when real answer-engine citation probes run (connector) + data-anonymizer HMAC tokenization + lead routing to inquiries/CRM wire. HONESTY enforced: 3-state citation (unknownShare explicit, never fabricated), PII redacted before persistence (test-enforced)."},"understood":{"state":true,"evidence":"src/spokes/ai-inbound/README.md + docs/SURFACE.md + docs/programs/gtm-toolbox/spokes/ai-inbound-SPEC.md."},"integrated":{"state":false,"evidence":"Registry live + auto-fed to pa-site via /api/registry + /api/capabilities; KG-grounded llms feed + SEO structured-data handshake + lead routing pending."}},"status":"building"},{"id":"content-development","name":"Content Development (governed lifecycle)","type":"service","summary":"Marketing Intelligence Stack content layer: the governed brief→draft→optimize→publish→measure lifecycle that produces the pages the market-inventory Spots + /recruiting directory rank on. Immutable versions + an optimization gate (seo/aeo/editorial/fact-grounding) + a human publish gate. CONSUMES the T6 content engine + Knowledge Graph + the existing corpus/library (referenced grounding) — never re-ingests books. Internal + a productized managed-content service.","doc":"src/spokes/content-development/README.md","illustration":"docs/programs/gtm-toolbox/spokes/content-development-SPEC.md","consumers":["seo","knowledge-graph","ai-inbound","marketing-analytics"],"surfaces":{"rest":"/api/spokes/content-development/pieces","mcp":"content-development.pieces.list","cli":null,"ui":null},"cluster":"gtm-toolbox","realization":{"functioning":{"state":true,"evidence":"Spoke shipped (GTM-HCD Phase 1, PAT-GTM-6): content_development schema (migration 0151; briefs + content_pieces + content_versions(immutable) + optimization_checks + publications + content_topic_links) + the full lifecycle (create brief → promote/draft → optimization gate → HITL publish), REST + MCP. check:spokes green; 3 compute tests; routes in the Vercel build manifest."},"valuable":{"state":false,"evidence":"Value lands when T6/LLM grounded drafting consumes the corpus/library (read-only via cross-repo contract — NEVER re-ingests) + dataviz assets + KG write-back wire (Phase 2). Governance honest: originality/readability flagged as not-yet-enforced placeholders."},"understood":{"state":true,"evidence":"src/spokes/content-development/README.md + docs/SURFACE.md + docs/programs/gtm-toolbox/spokes/content-development-SPEC.md (consume-don't-rebuild boundary vs T6 + the library)."},"integrated":{"state":false,"evidence":"Registry live + auto-fed to pa-site via /api/registry + /api/capabilities; SEO/CI brief feed + KG grounding + library-consume + Marketing-Analytics measurement wiring pending."}},"status":"building"},{"id":"network-analysis","name":"Organizational Network Analysis (connectivity + ONA summary measures)","type":"method","summary":"Boils a collaboration graph down to theory-grounded, benchmark-bearing ONA summary measures (reach, density, broker-dependency, community structure, siloing E-I, assortativity, vertex similarity, tie diversity) — interpretable scalars for leaders, plus before/after graph similarity — never a node-link hairball.","doc":"src/spokes/network-analysis/README.md","illustration":"src/spokes/network-analysis/docs/SURFACE.md","consumers":["peopleanalyst-site","human:people-analyst"],"surfaces":{"rest":"POST /networks · GET /networks/{networkId}","mcp":"network-analysis.{connectivity.compute, measures.compute, similarity.compute, networks.upsert}","cli":null,"ui":null,"data":"src/spokes/network-analysis/"},"realization":{"functioning":{"state":true,"evidence":"Pure-TS measures (Brandes betweenness, eigenvector, modularity, E-I, categorical + degree assortativity, vertex similarity, Blau tie-diversity) computed in core/measures.ts; 13 unit tests pass. MCP measures.compute returns benchmark-bearing measures."},"valuable":{"state":true,"evidence":"The ONA readout for the people-analytics guide — homophily, structural redundancy, network drift, boundary-spanner diversity, not just a centrality list."},"understood":{"state":true,"evidence":"README + docs/SURFACE.md; every measure grounded in McNulty, Handbook of Graphs and Networks in People Analytics (Ch.5-8) with a one-line interpretation."},"integrated":{"state":true,"evidence":"Measures surface automatically through the existing network-analysis.measures.compute MCP tool + REST; no new surface needed (MF-195 added assortativity/similarity/diversity into summarizeNetwork)."}},"status":"shipped"},{"id":"exec-ask-translator","name":"Exec-ask translator (catalog front door / MF-180)","type":"service","summary":"Takes a vague executive question and walks it backwards to the analytical question, the construct(s) at stake, the method, the data to pull, and the pitfalls — then routes the analyst into the matching acting tool (e.g. the MF-181 scale validator). The free front door / navigation model of the catalog. EXTENDS the intent-router (PAT-N1): reuses its centralized getModel client + generateObject discipline, adds the analyst-facing walk-back + a data-driven acting-tool routing registry.","doc":"docs/explainers/exec-ask-translator.md","illustration":"docs/explainers/exec-ask-translator.md#diagram","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"/api/intent-router/translate","mcp":"toolbox.intent-router.translate","cli":null,"ui":null,"data":"src/lib/intent-router/acting-tools.ts"},"realization":{"functioning":{"state":true,"evidence":"Prove-one 2026-06-27: two real vague asks translated end-to-end. \"why is attrition up in sales?\" -> walk-back (3 constructs, segmented survival + logistic method, 4 data sources, 8 pitfalls) + routed to LIVE attrition-analysis tool (/bin/zsh.038, 56s). \"is our engagement survey measuring reliably?\" -> routed to PENDING scale-instrument-validator (MF-181) with auto \"callable when it ships\" note (/bin/zsh.037, 45s). 10 offline finalizer/registry tests pass."},"valuable":{"state":true,"evidence":"The free hook that drives demand to the paid acting tools (MF-181/182/183) per PRODUCT-AND-LOOPS-STRATEGY §4. Routing telemetry (which acting tool the market asks for) picks the next build."},"understood":{"state":true,"evidence":"docs/explainers/exec-ask-translator.md (walk-back model + mermaid + routing registry + prove-one transcript); intent-router README note."},"integrated":{"state":true,"evidence":"REST (/api/intent-router/translate) + MCP (toolbox.intent-router.translate) from one declaration; registered via the existing registerIntentRouterTools aggregator. Routes through centralized @/lib/ai getModel (telemetry-wrapped, no raw SDK). Routing table data-driven so MF-181 lights up when its route/mcp land."}},"status":"shipped"},{"id":"skill-equivalence","name":"Cross-cultural / cross-industry skill-equivalence (CN121503503A design-around)","type":"algo","summary":"Scores how EQUIVALENT a source skill descriptor is to one or more target-market skills — each free text or a precomputed dense EMBEDDING — by COSINE in a shared vector space, returning a continuous Bayesian CONFIDENCE INTERVAL (not a discrete strict/approx tier) plus a POST-HOC region/industry adjuster applied at match time; also ranks a target-market skill set against a source skill. Embedding-provider AGNOSTIC (precomputed embeddings or a deterministic in-repo feature-hashing mock, no API key). Deterministic, stateless, pure compute. IP-clean design-around of IN-FORCE CN121503503A: that patent reads equivalence off a labeled-tier culture KNOWLEDGE GRAPH with pre-built culture labels; this uses a DIFFERENT mechanism on three axes — a DENSE embedding representation (no labeled graph), a continuous Bayesian confidence interval (no discrete tiers), and runtime POST-HOC region adjusters (no pre-baked culture labels). Cross-cultural use case: US \"stakeholder management\" <-> JP \"nemawashi\". Complements (does not fork) job-similarity (job<->job) and Principia equivalences (instrument<->instrument).","doc":"src/spokes/skill-equivalence/README.md","illustration":"src/spokes/skill-equivalence/README.md#the-flow","patent":{"routes_around":["CN121503503A"],"status":"in-force","legal_note":"design-around (dense embeddings + Bayesian confidence + post-hoc region adjusters, NOT a labeled-tier culture knowledge graph); pending legal courtesy-check before any commercial use"},"consumers":[],"surfaces":{"rest":"/api/spokes/skill-equivalence/equivalence","mcp":"skill-equivalence.equivalence","cli":null,"ui":null,"data":"src/spokes/skill-equivalence/core/skill-equivalence.ts"},"realization":{"functioning":{"state":true,"evidence":"core/skill-equivalence.ts (dense cosine -> bayesianConfidence Beta posterior + post-hoc regionFactor) + core/embedder.ts (pluggable Embedder port + deterministic feature-hashing mock, no API key) + REST (POST /api/spokes/skill-equivalence/equivalence + /match, service-key gated; GET /health) + MCP (skill-equivalence.equivalence/match/health) from one contract; 8/8 core tests (node --test) incl. confidence monotonic-in-cosine + tightens-with-concentration, post-hoc region multiplier, precomputed-embedding path, match ranking + topK."},"valuable":{"state":false,"evidence":"Routed from the patent-radar sweep (rank #8). No live consumer yet; default embedder is a deterministic mock (not a calibrated multilingual model), and IN-FORCE patent — pending legal courtesy-check on the non-infringement path before commercial use."},"understood":{"state":true,"evidence":"spoke README (claim-vs-design-around table on all 3 axes, US<->JP nemawashi example, mermaid skill text -> embeddings -> cosine -> Bayesian confidence -> region-adjusted match) + docs/SURFACE.md + CHANGELOG."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration; registered in lib/mcp/register-tools.ts. No live consumer wiring yet; coordinate with job-similarity owner (adjacent, distinct unit)."}},"status":"building"},{"id":"skill-evidence","name":"Task-as-Skill-Evidence — verifiable skills from completed work (US20210035048A1 free)","type":"algo","summary":"Derives a VERIFIABLE, evidence-grounded skill profile from the work a person actually completed — not self-report. Given completed-task records (description, outcome, difficulty, completedAt) + a skill ontology, tags each task to the skills it evidences by dense-embedding cosine, calibrates per-skill proficiency by NOISY-OR over evidence weighted by recency × outcome × difficulty, returns a Bayesian confidence interval (tightening with corroboration), the supporting tasks as PROVENANCE, honest unevidenced-skill gaps (never claimed), and co-occurrence skill adjacencies. Skill is demonstrated, not declared. Embedding-provider agnostic (deterministic in-repo feature-hashing mock, no API key); deterministic, stateless, pure compute. US20210035048A1 (project & skill-set verification) is ABANDONED → free to implement, no design-around. Complements: output FEEDS Principia competency-rollup as evidence; the missing tasks→skills inference that skill-trajectory-matching (skill SEQUENCES) does not do.","doc":"src/spokes/skill-evidence/README.md","illustration":"src/spokes/skill-evidence/README.md#the-flow","patent":{"routes_around":[],"status":"abandoned-free","legal_note":"US20210035048A1 abandoned → free to implement; no design-around constraint"},"consumers":["principia:competency-rollup"],"surfaces":{"rest":"/api/spokes/skill-evidence/derive","mcp":"skill-evidence.derive","cli":null,"ui":null,"data":"src/spokes/skill-evidence/core/skill-evidence.ts"},"realization":{"functioning":{"state":true,"evidence":"core/skill-evidence.ts (embedding tagging → recency/outcome/difficulty-weighted noisy-OR proficiency + Bayesian confidence + co-occurrence adjacencies + honest gaps) + core/embedder.ts (feature-hashing mock, no API key) + REST (POST /api/spokes/skill-evidence/derive, service-key; GET /health) + MCP (skill-evidence.derive/health) from one contract; 7/7 core tests incl. tagging+provenance, noisy-OR proficiency rises with corroboration, recency decay, outcome weighting, adjacencies, honest unevidenced gaps."},"valuable":{"state":false,"evidence":"Routed from the patent-radar sweep (rank #10, Tier-A free). No live consumer yet; default embedder is a deterministic lexical mock (swap a real model at the port seam for semantic task→skill tagging). Output is designed to feed Principia competency-rollup as evidence."},"understood":{"state":true,"evidence":"spoke README (use case: evidence-derived profile vs inflated self-report, engineer task-history example; flow mermaid tasks → tagging → calibration → profile + provenance) + docs/SURFACE.md + CHANGELOG."},"integrated":{"state":"partial","evidence":"REST + MCP from one declaration; registered in lib/mcp/register-tools.ts + db barrel. No live consumer wiring yet; coordinate with skill-trajectory-matching owner (adjacent, distinct unit)."}},"status":"building"},{"id":"transactional-outbox","name":"Transactional outbox — at-least-once secondary writes","type":"service","summary":"Durable delivery for secondary writes (benchmark contributions, consumer feeds, authz tuple-sync): callers enqueue an event IN the same DB transaction as the primary write; a drainer delivers it with retries + dead-letter. Ends fire-and-forget writes that could silently vanish.","doc":"docs/DECISIONS/2026-06-29-pat-platform-infra-authz-integrity-agentinfra.md","illustration":"docs/CAPABILITY-MANIFEST.md#transactional-outbox","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"/api/cron/outbox/drain","mcp":null,"cli":null,"ui":null,"data":"src/lib/outbox/"},"realization":{"functioning":{"state":true,"evidence":"Live in prod 2026-06-29 (migration 0161; outbox.outbox_event + benchmark.contribution_delivery verified in prod). FOR UPDATE SKIP LOCKED claim + lock-TTL crash recovery + exponential backoff + dead-letter."},"valuable":{"state":true,"evidence":"The benchmark data-flywheel moat (contributeComp) routes through it — a transient blip no longer silently under-collects. Reused by the adaptive-ledger + authz tuple-sync."},"understood":{"state":true,"evidence":"src/lib/outbox/ (enqueue/drain/policy) + the AUTHZ/integrity/agent-infra decision doc."},"integrated":{"state":true,"evidence":"Consumed by benchmark-store (OUTBOX-B), adaptive-ledger (LEDGER-0), authz tuple-sync (AUTHZ-B-2). Cron drainer every 5 min."}},"status":"shipped"},{"id":"adaptive-decision-ledger","name":"Adaptive Decision Ledger — every adaptive loop learns whether it patterned right","type":"service","summary":"The decision/prediction half of every adaptive surface: log what a policy predicted (features, policyVersion, candidates), joined to the outcome signal on decisionId, so calibration scores predicted-vs-realized per policy. Adopted by JobFrame matching, reincarnation selection, and the Insight Player exec feed.","doc":"docs/STANDARDS/ADAPTIVE-DECISION-LEDGER.md","illustration":"docs/CAPABILITY-MANIFEST.md#adaptive-decision-ledger","consumers":["people-analytics-toolbox","performix","vela","devplane"],"surfaces":{"rest":"/api/spokes/job-family-agent/match/review","mcp":"job-family-agent.match.review","cli":null,"ui":"/feed","data":"src/lib/adaptive-ledger/"},"realization":{"functioning":{"state":true,"evidence":"Live in prod 2026-06-30 (migrations 0162/0163; adaptive_ledger.decision + signal_event.decision_id verified). calibrationReport joins decisions to signals per policyVersion."},"valuable":{"state":true,"evidence":"Turns “measure engagement” into “learn if we patterned right” across 4 surfaces (JobFrame match-confidence, reincarnation info-gain, /feed usefulness, anycomp exec deck); JobFrame learned weights update from human review."},"understood":{"state":true,"evidence":"docs/STANDARDS/ADAPTIVE-DECISION-LEDGER.md; signals 0.5.0 decisionId join key."},"integrated":{"state":true,"evidence":"Durable via the outbox; consumers vendor the contract. Cross-repo (confirmed): vela HO-296, devplane optimizer-ledger HO-297, Performix HO-303."}},"status":"shipped"},{"id":"rebac-authorization","name":"ReBAC fine-grained authorization (OpenFGA)","type":"service","summary":"Relationship-based access control behind a swappable adapter: owner then editor then viewer + team memberships + share semantics, evaluated by OpenFGA in production. Durable tuple-sync via the outbox keeps the app DB and FGA consistent; RLS remains the last-line tenant guarantee (defense in depth).","doc":"docs/DECISIONS/2026-07-01-pat-authz-b-openfga-live.md","illustration":"docs/CAPABILITY-MANIFEST.md#rebac-authorization","consumers":["people-analytics-toolbox"],"surfaces":{"rest":null,"mcp":null,"cli":null,"ui":"/jobframe/my-collections","data":"src/lib/authz/"},"realization":{"functioning":{"state":true,"evidence":"OpenFGA engine live in prod 2026-07-01; a differential smoke passes 7/7 vs the in-memory reference against the live store. Tuple-sync + listObjects + HigherConsistency checks verified live (AUTHZ-B-2)."},"valuable":{"state":true,"evidence":"Fine-grained sharing (view/edit/share across users + teams) that RBAC models badly. Engine-agnostic: managed to self-host is an env change."},"understood":{"state":true,"evidence":"docs/DECISIONS/2026-06-30-pat-authz-a-openfga-seam.md + 2026-07-01-pat-authz-b-openfga-live.md; src/lib/authz/ (contract + model + adapters)."},"integrated":{"state":true,"evidence":"getAuthz() env-switch (in-memory reference ↔ OpenFGA); tuple-sync reuses the outbox. First enforcing consumer LIVE: user-owned shareable collections (/jobframe/my-collections) — create/share/unshare/view/edit each gated by getAuthz().check, proven 6/6 by the hermetic gate test (AUTHZ-B-2 feature)."}},"status":"shipped"},{"id":"mcp-agent-governance","name":"MCP agent governance — keys, scopes, rate-limiting, sensitive-op confirmation, audit","type":"service","summary":"AI-native control plane for the MCP gateway: per-consumer keys to scope sets, enforced per-consumer rate-limiting (token bucket), sensitive-op confirmation (a mutating tool requires confirm:true or is rejected + audited), and a full audit trail. The Barndoor/Aegis governance primitive set, in-house.","doc":"docs/DECISIONS/2026-06-29-pat-platform-infra-authz-integrity-agentinfra.md","illustration":"docs/CAPABILITY-MANIFEST.md#mcp-agent-governance","consumers":["people-analytics-toolbox","performix"],"surfaces":{"rest":null,"mcp":"*","cli":null,"ui":null,"data":"src/lib/mcp/"},"realization":{"functioning":{"state":true,"evidence":"Live in prod 2026-07-01: per-consumer token-bucket rate-limit (AGENTGOV-A) + sensitive-op confirmation gate (AGENTGOV-B; first adopter job-family-agent.match.review) atop per-consumer keys/scopes + the mcp_audit trail."},"valuable":{"state":true,"evidence":"Governs AI agents operating our tools without buying Barndoor/Aegis: throttle abuse, require confirmation for destructive ops, attribute + audit every call."},"understood":{"state":true,"evidence":"docs/DECISIONS/2026-06-29-... (buy/build) + AGENTS.md MCP transport section; src/lib/mcp/ (auth/scope/rate-limit/wrap/audit)."},"integrated":{"state":true,"evidence":"Enforced in wrapTool for every MCP tool; env kill-switch/tuning for rate limits; sensitive tools opt in via sensitive:true."}},"status":"shipped"},{"id":"zero-llm-serving-guarantee","name":"Zero-LLM-serving guarantee — CI-enforced, publicly verifiable","type":"standard","summary":"Every runtime AI import site is declared in a manifest with a fallback posture; CI (check:runtime-llm + runtime-llm-guard.yml) fails undeclared sites, stale entries, or serving paths without a fallback. hardDependencies is EMPTY (compiled plan + walk-back libraries serve the intent-router family deterministically). Published as the servingLlm field on GET /api/registry so buyers verify instead of trusting.","doc":"docs/POSITIONING/BUILD-TIME-AI-PLAN.md","illustration":"docs/CAPABILITY-MANIFEST.md#zero-llm-serving-guarantee","consumers":["people-analytics-toolbox","peopleanalyst-site"],"surfaces":{"rest":"/api/registry (servingLlm)","mcp":null,"cli":"npm run check:runtime-llm","ui":"peopleanalyst.com/trust/no-llm-serving","data":"src/lib/ai/runtime-llm-manifest.json"},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"Live 2026-07-02: guard green in CI, servingLlm.hardDependencies=[] verified on prod apex; trust page renders the live feed."},"valuable":{"state":true,"evidence":"The procurement/security-review differentiator (THE-HILL-WE-DIE-ON made enforceable); trust page is the sales asset."},"understood":{"state":true,"evidence":"BUILD-TIME-AI-PLAN.md doctrine + manifest _doc + trust page explain it at three altitudes."},"integrated":{"state":true,"evidence":"CI on every PR/push; registry feed consumed by pa-site trust page (ISR hourly)."}}},{"id":"canon-verify-harness","name":"Canon-verify — adversarial certification harness for generated datasets","type":"primitive","summary":"Before a generated dataset cell enters canon, N refuter lenses (Sonnet) attempt to falsify it against cited sources; a PURE policy decides (1 refutation kills; 2 unsupported quarantine; missing lens verdict = failed check). Persisted VerificationTrail = the certification stamp shipped with a dataset. First target: the superfunction pay crosswalk — converged 16/16 verified across three grounding iterations + Mike's review disposition.","doc":"docs/POSITIONING/BUILD-TIME-AI-PLAN.md","illustration":"docs/CAPABILITY-MANIFEST.md#canon-verify-harness","consumers":["people-analytics-toolbox"],"surfaces":{"rest":null,"mcp":null,"cli":"npx tsx scripts/canon-verify/verify-superfunction-crosswalk.mts","ui":null,"data":"src/lib/canon-verify/ + data/verification-trails/"},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"Live 2026-07-02: three real certification runs (6/18 -> 8/18 -> 15/18 -> post-review 16/16); trail committed."},"valuable":{"state":true,"evidence":"Exposed two real canon-quality gaps (stub definitions; a crosswalk contradiction) and produced Mike's review list — the 'AI cannot bless its own work' gate for every dataset SKU."},"understood":{"state":true,"evidence":"Contract header + BUILD-TIME-AI-PLAN Lane B document the doctrine; quarantine reasons are self-explaining."},"integrated":{"state":false,"evidence":"Wired to ONE target; FU-B = standing gate in dataset builds (JobFrame gap cells, A3 crosswalk manufacture, WDQ extraction)."}}},{"id":"jobframe-coordinates-all-live","name":"JobFrame coordinates — all four spaces live (structural, content, pay@2, semantic@1)","type":"service","summary":"The Pantone claim realized: one API call returns a role's position in four measurable spaces — structural (Gower), content (O*NET cosine, 154 dims), pay@2 (level + certified super-function premium, abstain-on-ambiguity), semantic@1 (frozen build-time embeddings, 256 dims, 2158/2158). Frozen dated editions, 3-state Delta-E matching, deterministic serving.","doc":"docs/jobframe/COORDINATES-EXPLAINER.md","illustration":"docs/CAPABILITY-MANIFEST.md#jobframe-coordinates-all-live","consumers":["people-analytics-toolbox","peopleanalyst-site"],"surfaces":{"rest":"/api/spokes/job-family-agent/coordinates","mcp":"job-family-agent.coordinates(.neighbors)","cli":"scripts/build-jobframe-{coordinates,semantic}.mjs","ui":"Job Swatch","data":"src/spokes/job-family-agent/data/jobframe-{coordinates,semantic}.json"},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"Prod-verified 2026-07-02: SWE.GEN.P6 returns 4 computed coordinates; pay + semantic neighbors queryable on the apex."},"valuable":{"state":true,"evidence":"The differentiated matching/leveling/pricing substrate; PANTONE program (docs/jobframe/OWN-JOB-MATCHING-PROGRAM.md) monetizes it."},"understood":{"state":true,"evidence":"COORDINATES-EXPLAINER all-live; PANTONE-3 cards the public explainer."},"integrated":{"state":false,"evidence":"AnyComp/comp-toolbox not yet consuming (PANTONE-1 P0); mapping SKU + confirmation loop carded (PANTONE-4/5)."}}},{"id":"benchmark-canonical-gate","name":"Benchmark flywheel canonicalization gate (PANTONE-0)","type":"primitive","summary":"Every observation entering the proprietary benchmark store passes deterministic JobFrame canonicalization (normalize case/spacing/padding, membership vs universal levels + canon super-function slugs) or is rejected with a logged reason — raw client vocabulary can never seed the moat. Store verified EMPTY at gate time: zero contamination ever landed.","doc":"docs/BENCHMARK-STORE-INTEGRATION.md","illustration":"docs/CAPABILITY-MANIFEST.md#benchmark-canonical-gate","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"POST /api/benchmark/contribute (gated internally)","mcp":null,"cli":null,"ui":null,"data":"src/lib/benchmark-store/canonicalize.ts"},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"Live 2026-07-02 inside buildObservationRows; 7 gate tests; prod store verified empty pre-gate."},"valuable":{"state":true,"evidence":"Protects the declared primary moat (cross-client canonical observations); makes the schema's 'JobFrame canonical' contract true."},"understood":{"state":true,"evidence":"canonicalize.ts header + PANTONE-0 card document the deterministic-or-reject doctrine."},"integrated":{"state":true,"evidence":"All contributors pass through it by construction (it lives inside the shared row builder)."}}},{"id":"canonical-identity-pricing","name":"Canonical-identity comp pricing (PANTONE-1)","type":"seam","summary":"AnyComp resolves every roster (title|level|function) tuple to the JobFrame canonical identity BEFORE pricing — auto-accepts price at focus grain via focus-pay, review-band at the canonical marginal, unresolvable rows skipped + reported. Raw client strings never price against the bare equation again; responses carry the resolution table ('your roster in Pantone').","doc":"docs/session-reports/2026-07-03-pat-f5-pantone-1-canonical-identity-repoint.md","illustration":"docs/CAPABILITY-MANIFEST.md#canonical-identity-pricing","consumers":["people-analytics-toolbox","comp-toolbox"],"surfaces":{"rest":"POST /api/spokes/anycomp/onboarded-run · /byos/calibrate (anycomp 1.62.0)","mcp":null,"cli":null,"ui":null,"data":"src/spokes/anycomp/core/{roster-resolution,resolved-pricing}.ts"},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"Prod-verified 2026-07-03: market-canonical provenance; junk reported not priced; golden harness froze the pre-change baseline."},"valuable":{"state":true,"evidence":"Repairs the wiring Mike ruled unsellable ('lousy'); the sellable pay model is reached only through profileKey."},"understood":{"state":true,"evidence":"Seam decision (HTTP composition) + rationale in the session report; CHANGELOG 1.62.0."},"integrated":{"state":true,"evidence":"Both money-path routes + benchmark contribution resolve through it; market tools accept profileKey."}}},{"id":"inbound-schema-licensing-boundary","name":"Inbound-schema licensing boundary (PANTONE-7)","type":"policy+gate","summary":"Every source-level-mapping row carries schemaOrigin (public | customer-proprietary | vendor-licensed); vendor structures map per-tenant only — tighten-only origin claims and no-global-non-public writes are enforced with 422s, and the intake statement tells customers verbatim what we keep vs never keep.","doc":"docs/jobframe/INBOUND-SCHEMA-LICENSING-POLICY.md","illustration":"docs/CAPABILITY-MANIFEST.md#inbound-schema-licensing-boundary","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"POST /api/spokes/job-family-agent/source-level-mappings/propose (jfa 1.26.0)","mcp":null,"cli":null,"ui":null,"data":"migration 0165 + INBOUND_SCHEMA_INTAKE_STATEMENT"},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"Prod 422 verified live ('Radford' declared public refused); 48 grandfathered rows truthfully labeled."},"valuable":{"state":true,"evidence":"Legal hygiene AND the trust-wedge selling point gating the mapping SKU's launch."},"understood":{"state":true,"evidence":"Policy doc + CHANGELOG; grandfathered-rows decision item flagged to Mike."},"integrated":{"state":true,"evidence":"Schema-map runs label proposals automatically; PANTONE-4 intake renders the statement."}}},{"id":"jobframe-schema-map-service","name":"JobFrame Schema Map service (PANTONE-4, LIVE + selling)","type":"product","summary":"Bring an HRIS roster + any documented job schema; the service maps every job through the JobFrame canon — watermarked crosswalk / review-queue / schema deliverables, 3-state honest, entitlement-derived tenant binding, deterministic flywheel contribution through the PANTONE-0 gate. Priced per Mike's approved ladder ($0.25/row · $49 · $990; maintained $99–$1,990) with per-row checkout. PANTONE-9: the maintained (rung-2) subscription now has its recurring engine — a quarterly re-map of stored imports against each new canon edition plus a per-job DRIFT REPORT (moved / new / retired / confidence-shift), delivered via the token-gated `drift` file and driven automatically by the maintained-remap cron.","doc":"docs/jobframe/PANTONE-PRICING-STRATEGY.md","illustration":"docs/CAPABILITY-MANIFEST.md#jobframe-schema-map-service","consumers":["people-analytics-toolbox","peopleanalyst-site"],"surfaces":{"rest":"POST /api/spokes/job-family-agent/schema-map/run · GET /schema-map/deliverable (file=crosswalk|review|schema|summary|drift) · POST /schema-map/remap (maintained SKUs) · cron /api/cron/jobframe/maintained-remap (jfa 1.29.0)","mcp":null,"cli":null,"ui":"/jobframe/map","data":null},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"Prod fulfillment walk 2026-07-03 (real entitlement → run → 4 deliverables → 403 cross-buyer probe); live per-row checkout session minted."},"valuable":{"state":true,"evidence":"Rung 1 of the approved ladder — customer-acquisition AND data-acquisition (datasets arrive WITH pay)."},"understood":{"state":true,"evidence":"Program doc + pricing strategy (APPROVED) + CHANGELOG; offerings feed carries the SKUs."},"integrated":{"state":true,"evidence":"Till (checkout→entitlement→magic link) + PANTONE-0/7 gates + the mapping loop; HO-318 to pa-site."}}},{"id":"match-confirmation-loop","name":"Per-person match-confirmation loop (PANTONE-5)","type":"loop","summary":"One-tap per-person confirmation of proposed matches: campaign generation mints an adaptive-ledger decision per item, brandscript'd Resend emails carry single-purpose expiring tokens, and every confirm/correct writes back through recordMatchReview (outcome signals + trackers + calibration). The label moat — 'every instance strengthens our knowledge advantage'.","doc":"docs/session-reports/2026-07-03-pat-f5-pantone-5-6-8-finish.md","illustration":"docs/CAPABILITY-MANIFEST.md#match-confirmation-loop","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"POST /confirmations/generate · GET/POST /confirmations/respond · GET /confirmations/stats (jfa 1.28.0)","mcp":null,"cli":null,"ui":"/jobframe/confirm/[token]","data":null},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"Prod walk 2026-07-03: generate → view → confirm + correct → replay refused → stats {2 total, 1 confirmed, 1 corrected}."},"valuable":{"state":true,"evidence":"Labeled match outcomes = the compounding data advantage Mike declared central; feeds learned weights + PANTONE-8."},"understood":{"state":true,"evidence":"Email copy recorded in the brandscript doc FIRST; CHANGELOG 1.28.0 documents the PAT-11 token-gate exception."},"integrated":{"state":true,"evidence":"Same learning join as the match engine; stats respect min-N; no flywheel writes by design."}}},{"id":"jobframe-matching-meters","name":"JobFrame matching meters (D3 — agent-buyable API)","type":"product","summary":"resolve ($0.01/call, 1k/mo free) · match ($0.05, pairwise distance+band or neighbors over frozen editions) · bulk-map ($0.02/row) on the D2 gate/metering machinery, plus /api/v1/prior and /api/v1/metrics on existing tiers — with a machine-readable price book on the registry feed so an AI agent can discover the meters and buy a key without a human.","doc":"docs/session-reports/2026-07-03-pat-f5-d3-matching-meters-and-showwork-explainer.md","illustration":"docs/CAPABILITY-MANIFEST.md#jobframe-matching-meters","consumers":["people-analytics-toolbox","peopleanalyst-site","ai-agents"],"surfaces":{"rest":"GET /api/v1/{resolve,match,prior,metrics} · POST /api/v1/bulk-map","mcp":null,"cli":null,"ui":null,"data":"registry apiPricing + /api/v1/openapi.json x-pricing"},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"Prod-verified: free resolve round-trip; match/bulk-map 402 unkeyed; null prior never billed."},"valuable":{"state":true,"evidence":"Rung 4 of the approved ladder — systems + agent integration revenue on posted meters."},"understood":{"state":true,"evidence":"OpenAPI + registry price book; HO-320 for pa-site posting."},"integrated":{"state":true,"evidence":"Rides D2 gate/metering/envelope unchanged; every response carries the /jobframe/matching explainer pointer."}}},{"id":"edition-release-chain","name":"JobFrame edition release chain (PANTONE-6)","type":"runbook+guard","summary":"One chained release script (canon build with the authored-overlay merge WIRED IN → coordinates → semantic re-embed → certification → tests → frozen-edition bump checklist) with preflight/dry-run, plus a CI stub-regression guard grounded in the data's actual stub form — the production line for editions as the honest recurring subscription mechanic.","doc":"docs/jobframe/EDITION-RELEASE-RUNBOOK.md","illustration":"docs/CAPABILITY-MANIFEST.md#edition-release-chain","consumers":["people-analytics-toolbox"],"surfaces":{"rest":null,"mcp":null,"cli":null,"ui":null,"data":"scripts/release-jobframe-edition.mjs · .github/workflows/jobframe-edition-guard.yml"},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"Guard 5/5 against committed data; dry-run correctly detects the corpus-absent constraint."},"valuable":{"state":true,"evidence":"Defuses the landmines a naive canon rebuild would detonate; the Maintained Mapping deliverable depends on it."},"understood":{"state":true,"evidence":"Runbook documents each landmine + its guard."},"integrated":{"state":true,"evidence":"Overlay merge lives INSIDE the builder; guard is path-filtered CI."}}},{"id":"match-quality-harness","name":"Match-quality evaluation harness (PANTONE-8)","type":"instrument","summary":"Empirical precision/agreement per match band, per signal, per edition, computed from human review + confirmation outcomes via the adaptive-ledger join — with MIN_CELL_N=5 honest floors (no rate off 2 observations) and a verified empty state. The evidence base for tolerance recalibration, PANTONE-2's unify-or-bless decision, and the public 'confirmed by the people in the roles' proof point.","doc":"docs/session-reports/2026-07-03-pat-f5-pantone-5-6-8-finish.md","illustration":"docs/CAPABILITY-MANIFEST.md#match-quality-harness","consumers":["people-analytics-toolbox"],"surfaces":{"rest":"GET /api/spokes/job-family-agent/match-quality (service-key)","mcp":null,"cli":null,"ui":null,"data":"src/spokes/job-family-agent/core/match-quality{,-load}.ts"},"status":"shipped","realization":{"functioning":{"state":true,"evidence":"8/8 hermetic tests; empty-state verified against real prod data (1 decision, 0 reviewed → all-null + note)."},"valuable":{"state":true,"evidence":"Turns match quality from a claim into a computable statistic; complements canon-verify (data vs behavior)."},"understood":{"state":true,"evidence":"Report shape + min-n doctrine in the core header."},"integrated":{"state":true,"evidence":"Reads both match + confirmation surfaces — PANTONE-5 labels feed it from day one."}}},{"id":"paid-api","name":"Paid agent-commerce data API (HO-218)","type":"service","summary":"The metered /api/v1/* data API over the commerce till: pa_ API keys (sha256-hashed, minted on Developer-plan purchase, race-safe across webhook + success page), a per-call priced usage ledger (commerce.api_usage — volume steps + plan policy: 25k included lookup-class calls on Developer, no per-call metering on Enterprise), 402-with-Checkout-link inline agent purchase, and a nightly cents-denominated Stripe Billing Meter push. Endpoints: minimum-wage lookup/dataset, roster compliance, OEWS benchmark, JobFrame resolve/match/bulk-map; OpenAPI at /api/v1/openapi.json. Contract + posted prices owned by pa-site (PAID-API-CONTRACT.md / api-pricing.ts, vendored).","doc":"docs/session-reports/2026-06-29-ho-218-paid-agent-commerce-data-api.md","illustration":"docs/CAPABILITY-MANIFEST.md#paid-api","consumers":["peopleanalyst-site","people-analytics-toolbox"],"surfaces":{"rest":"GET/POST /api/v1/* (Authorization: Bearer pa_…)","mcp":null,"cli":null,"ui":"/store/success API-key reveal","data":"GET /api/v1/openapi.json"},"realization":{"functioning":{"state":true,"evidence":"16 hermetic tests (volume-step pricing, plan policy, key extraction, Stripe-push grouping); end-to-end smoke 2026-06-29 (keyed roster billed 10¢; 402 + checkoutUrl over free ceiling)."},"valuable":{"state":"partial","evidence":"The agent-commerce till for data SKUs (pa-site PA-804/PA-874 gate); revenue pending first metered consumer + Stripe meter go-live."},"understood":{"state":true,"evidence":"pa-site docs/api/PAID-API-CONTRACT.md + session reports 2026-06-29 HO-218 / 2026-07-03 PAT-F5-D3; go-live runbook in src/lib/paid-api/stripe-push.ts header."},"integrated":{"state":true,"evidence":"Rides the commerce till (products/webhook/entitlements); prices vendored from pa-site api-pricing.ts; /developers on pa-site markets it; nightly push cron in vercel.ts."}},"status":"shipped"},{"id":"jobframe-work-products","name":"Per-profile work products (assessment criteria · performance standards · goal instruments) — PAT-JFE-RUBRIC","type":"service","summary":"Deterministic, zero-LLM-serving work products on every canonical JobFrame profile: level-scoped evaluation criteria with BARS frames + structured-interview dimensions (/profile/[key]/assessment), performance standards at this level, and SMART/OKR/MBO/scorecard goal templates (/profile/[key]/goals). Generators are pure functions over canon + source-registered artifacts (O*NET 30.3 work-products @ 923 SOCs with CC BY attribution baked in; 236 verbatim leveled anchors from UK CS (OGL) + OPM (public domain), Canada KLC extracted but license-excluded from serving). Every block basis-labeled observed/derived per the JCV extrapolation architecture; honest empty states; kit SKUs pre-staged (assessment-kit-*, flip at RUBRIC-3).","doc":"docs/jobframe/PROFILE-WORK-PRODUCTS-PROGRAM.md","illustration":"docs/CAPABILITY-MANIFEST.md#jobframe-work-products","consumers":["people-analytics-toolbox"],"surfaces":{"rest":null,"mcp":null,"cli":null,"ui":"/jobframe/profile/[profileKey]/assessment + /goals (jobframe.global clean paths)","data":"src/spokes/job-family-agent/data/{onet-workproducts,leveled-anchors}.json (source-registered, attributed)"},"realization":{"functioning":{"state":true,"evidence":"38 hermetic tests across the two artifacts + two generators (19 onet + 13 anchors + 6 assessment-criteria); live verify 2026-07-05 on jobframe.global/profile/ACCO.GEN.P3/assessment (criteria, anchors, interview dimensions, attribution all render)."},"valuable":{"state":"partial","evidence":"Declared a major potential revenue source (Mike 2026-07-04); pricing ratified 2026-07-05 ($29/$99/$49mo/$490yr) but SKUs pre-staged launched:false until RUBRIC-3 completes the kit; free pages seed funnel attribution now."},"understood":{"state":true,"evidence":"Charter (PROFILE-WORK-PRODUCTS-PROGRAM.md) + sources/extrapolation register (WORK-PRODUCTS-SOURCES.md) + claim-keyed evidence register (docs/research/SELECTION-ASSESSMENT-EVIDENCE.md)."},"integrated":{"state":"partial","evidence":"Upsell rail links per-profile kits on all 2,158 profiles; conformance audit (RUBRIC-6) + cross-book model (RUBRIC-5, canonicai lane) pending; interview guides (RUBRIC-3) not yet built."}},"status":"shipped"},{"id":"interview-scoring","name":"Interview scoring — uninfluenced multi-rater capture (PAT-JFE-LOOP-1)","type":"service","summary":"The first Work-Product Operating Loop: scored interviews by interviewer × candidate, pinned to a JobFrame profileKey + guide edition. The product guarantee is the uninfluenced-panel discipline, enforced in one shared pure module (src/lib/uninfluenced) that both HTTP and MCP route through: raters never read others' scores pre-reconciliation, submit-once-then-locked with append-only corrections, reconciliation unlocks only at full-panel-submit or audited owner force-close. Two identity anchors: Tenant Platform (enterprise) + entitlement-as-tenant (individual). Simple interrater snapshot v1; κ/G-theory composes performance-validity later.","doc":"docs/jobframe/WORK-PRODUCT-OPERATING-LOOPS.md","illustration":"docs/CAPABILITY-MANIFEST.md#interview-scoring","consumers":[],"surfaces":{"rest":"POST/GET /api/spokes/interview-scoring/* (service key / entitlement / invite token)","mcp":"interview-scoring.roster.create · .roster.status · .scores.submit · .reconciliation.get","cli":null,"ui":null,"data":null},"realization":{"functioning":{"state":true,"evidence":"31 pure gate/scoring/reliability tests; live prod smoke 2026-07-05: roster created on jobframe.global apex, reconciliation correctly 403s pre-submit (migrations 0167+0168)."},"valuable":{"state":"partial","evidence":"The rung-2 operating loop for the live interview-guide product; dedicated SKUs pending Mike's pricing; v1 access via the assessment-kit product family."},"understood":{"state":true,"evidence":"Design + template in WORK-PRODUCT-OPERATING-LOOPS.md; the guarantee documented at src/lib/uninfluenced."},"integrated":{"state":"partial","evidence":"Registry/MCP/health wired, check:spokes green; UI + invite emails + guide-page CTA + RLS policies deferred (v-next list in README)."}},"status":"shipped"},{"id":"evaluation-capture","name":"Performance-evaluation capture — uninfluenced review rounds (PAT-JFE-LOOP-2)","type":"service","summary":"The second Operating Loop, extending performance-calibration (1.1.0): multi-rater evaluation rounds pinned to a JobFrame profileKey + criteria-source edition, verbatim criterion text at score time, append-only corrections, audited reconciliation. Shares the src/lib/uninfluenced gates with interview scoring — one provable discipline. Individual tier via evaluation-round/$99 + Operating Loops subscription; enterprise via Tenant Platform. RLS forced on all 7 tables.","doc":"docs/jobframe/WORK-PRODUCT-OPERATING-LOOPS.md","illustration":"docs/CAPABILITY-MANIFEST.md#evaluation-capture","consumers":[],"surfaces":{"rest":"POST/GET /api/spokes/performance-calibration/evaluation-*","mcp":"performance-calibration.evaluation.{round.create,scores.submit,reconciliation.get}","cli":null,"ui":null,"data":null},"realization":{"functioning":{"state":true,"evidence":"37 spoke tests (30 evaluation); live prod verify 2026-07-05: full auth chain enforced (tenant registry + service-entitlement gate correctly denied an un-entitled tenant); 7 tables migrated (0169), RLS forced+policied."},"valuable":{"state":"partial","evidence":"Rung-2 loop for the assessment-criteria product; SKUs live 2026-07-05 (evaluation-round $99 + loops subs)."},"understood":{"state":true,"evidence":"WORK-PRODUCT-OPERATING-LOOPS.md + spoke SURFACE/README."},"integrated":{"state":"partial","evidence":"Registry + MCP + RLS wired; run-it UI + registry consumers pending."}},"status":"shipped"},{"id":"goal-tracking","name":"Goal-outcome tracking — longitudinal goal instances (PAT-JFE-LOOP-3)","type":"service","summary":"The third Operating Loop, extending survey-orchestrator (0.16.0): goal instances record filled SMART/OKR/MBO/scorecard template rows verbatim (target/baseline/due), append-only check-ins over cycles, one outcome closes the instance; honest last-3 trend (never fabricated). decision_ref reserves the adaptive-ledger join. Individual tier via the Operating Loops subscription; enterprise via Tenant Platform. RLS forced on all 3 tables.","doc":"docs/jobframe/WORK-PRODUCT-OPERATING-LOOPS.md","illustration":"docs/CAPABILITY-MANIFEST.md#goal-tracking","consumers":[],"surfaces":{"rest":"POST/GET /api/spokes/survey-orchestrator/goal-instances*","mcp":"survey-orchestrator.goal.{create,checkin,close}","cli":null,"ui":null,"data":null},"realization":{"functioning":{"state":true,"evidence":"23 pure tests (spoke suite 114/114); migration 0170 verified on prod; RLS forced+policied post-deploy."},"valuable":{"state":"partial","evidence":"Operationalizes the shipped goal templates; loops subscription SKUs live 2026-07-05."},"understood":{"state":true,"evidence":"WORK-PRODUCT-OPERATING-LOOPS.md + spoke docs."},"integrated":{"state":"partial","evidence":"Registry + MCP + RLS wired; adaptive ledger not yet built (join reserved); UI pending."}},"status":"shipped"}]}