{
  "tools": [
    {
      "kind": "tool",
      "slug": "calculate-true-roi",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "calculate_true_roi",
      "title": "Calculate True ROI",
      "category": "Executive proof",
      "description": "Calculate fully-loaded True ROI for a single event or the entire portfolio. Returns ROI value, cost breakdown, pipeline attribution, and confidence scoring.",
      "jobs": [
        "justify-spend"
      ],
      "outputType": "deterministic",
      "minimumRole": "member",
      "timeoutSeconds": 30,
      "whenToUse": "Use for governed event or portfolio ROI, fully-loaded cost, and cost-per-pipeline-dollar questions.",
      "questionPatterns": [
        "What was the True ROI of this event?",
        "Which events justified their spend?"
      ],
      "input": {
        "eventId": {
          "type": "string",
          "required": false
        },
        "period": {
          "type": "string",
          "required": false,
          "enumValues": [
            "Q1",
            "Q2",
            "Q3",
            "Q4",
            "year"
          ]
        },
        "year": {
          "type": "number",
          "required": false
        },
        "includeCapacityCost": {
          "type": "boolean",
          "required": false
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "True ROI",
        "fully-loaded cost",
        "pipeline influenced"
      ],
      "relatedCapabilities": [
        "bty://portfolio/roi",
        "generate_cfo_report"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "get-recommendations",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "get_recommendations",
      "title": "Get Recommendations",
      "category": "Decisions",
      "description": "Get named, actionable recommendations for the event portfolio — filtered by type and surface. Each includes diagnosis, recommended action, expected impact, and audit links.",
      "jobs": [
        "justify-spend",
        "choose-better-mix",
        "force-gtm-follow-through"
      ],
      "outputType": "heuristic",
      "minimumRole": "member",
      "timeoutSeconds": 30,
      "whenToUse": "Use when a governed portfolio diagnosis must end in a named action and quantified impact.",
      "questionPatterns": [
        "What should we change in the portfolio?",
        "Where are we leaking value?"
      ],
      "input": {
        "period": {
          "type": "string",
          "required": false,
          "enumValues": [
            "Q1",
            "Q2",
            "Q3",
            "Q4",
            "year"
          ]
        },
        "year": {
          "type": "number",
          "required": false
        },
        "types": {
          "type": "string[]",
          "required": false,
          "enumValues": [
            "cut_zero_yield",
            "cut_negative_roi",
            "shift_timing",
            "tier_rebalance",
            "tier_invest",
            "followup_leakage",
            "outsource_signal",
            "data_coverage"
          ]
        },
        "limit": {
          "type": "number",
          "required": false
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "DecisionBlock",
        "portfolio action"
      ],
      "relatedCapabilities": [
        "bty://portfolio/recommendations",
        "portfolio_health_check"
      ],
      "policyDomains": [
        "recommendation_scoring",
        "attribution"
      ]
    },
    {
      "kind": "tool",
      "slug": "generate-cfo-report",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "generate_cfo_report",
      "title": "Generate CFO Report",
      "category": "Executive proof",
      "description": "Generate a board-ready executive narrative with portfolio summary, top/bottom performers, budget variance, and decision recommendations.",
      "jobs": [
        "justify-spend"
      ],
      "outputType": "deterministic",
      "minimumRole": "member",
      "timeoutSeconds": 30,
      "whenToUse": "Use for a governed executive or board summary of event-led revenue performance.",
      "questionPatterns": [
        "Create the CFO report for this quarter.",
        "How should I explain event performance to finance?"
      ],
      "input": {
        "period": {
          "type": "string",
          "required": false
        },
        "year": {
          "type": "number",
          "required": false
        },
        "format": {
          "type": "string",
          "required": false,
          "enumValues": [
            "executive_summary",
            "full"
          ]
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "CFO Pack",
        "executive proof"
      ],
      "relatedCapabilities": [
        "calculate_true_roi",
        "bty://reports/budget/{year}"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "compare-events",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "compare_events",
      "title": "Compare Events",
      "category": "Portfolio analysis",
      "description": "Side-by-side comparison of 2-10 events across dimensions: ROI, cost, pipeline, yield, capacity, attendance. Identifies best/worst performer per dimension.",
      "jobs": [
        "justify-spend",
        "choose-better-mix"
      ],
      "outputType": "deterministic",
      "minimumRole": "member",
      "timeoutSeconds": 30,
      "whenToUse": "Use to compare a known set of events on governed performance dimensions.",
      "questionPatterns": [
        "How did these events compare?",
        "Which event performed best on yield?"
      ],
      "input": {
        "eventIds": {
          "type": "string[]",
          "required": true
        },
        "dimensions": {
          "type": "string[]",
          "required": false,
          "enumValues": [
            "roi",
            "cost",
            "pipeline",
            "yield",
            "capacity",
            "attendance"
          ]
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "event benchmark",
        "performance comparison"
      ],
      "relatedCapabilities": [
        "find_similar_events",
        "bty://events/{eventId}/kpis"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "find-similar-events",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "find_similar_events",
      "title": "Find Similar Events",
      "category": "Portfolio analysis",
      "description": "Find events with a similar profile to a given event, scored by tier, format, region, and budget range.",
      "jobs": [
        "choose-better-mix"
      ],
      "outputType": "heuristic",
      "minimumRole": "member",
      "timeoutSeconds": 30,
      "whenToUse": "Use to find historical analogues for a reference event.",
      "questionPatterns": [
        "Which events are most like this one?",
        "Find comparable events for planning."
      ],
      "input": {
        "eventId": {
          "type": "string",
          "required": true
        },
        "dimensions": {
          "type": "string[]",
          "required": false,
          "enumValues": [
            "tier",
            "format",
            "region",
            "budget_range"
          ]
        },
        "limit": {
          "type": "number",
          "required": false
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "similarity",
        "event analogue"
      ],
      "relatedCapabilities": [
        "compare_events",
        "bty://events/{eventId}"
      ],
      "policyDomains": [
        "attribution"
      ]
    },
    {
      "kind": "tool",
      "slug": "explain-variance",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "explain_variance",
      "title": "Explain Variance",
      "category": "Executive proof",
      "description": "Explain why a metric (budget, pipeline, attendance, ROI) differed from expectation. Returns named causes from the provenance trail with magnitude and direction.",
      "jobs": [
        "justify-spend"
      ],
      "outputType": "heuristic",
      "minimumRole": "member",
      "timeoutSeconds": 30,
      "whenToUse": "Use when a specific event metric changed or missed expectation and governed causes are needed.",
      "questionPatterns": [
        "Why did this event miss budget?",
        "What caused the ROI variance?"
      ],
      "input": {
        "eventId": {
          "type": "string",
          "required": true
        },
        "metric": {
          "type": "string",
          "required": true,
          "enumValues": [
            "budget",
            "pipeline",
            "attendance",
            "roi"
          ]
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "variance",
        "provenance"
      ],
      "relatedCapabilities": [
        "bty://events/{eventId}/provenance",
        "bty://events/{eventId}/changelog"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "analyze-portfolio-yield",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "analyze_portfolio_yield",
      "title": "Analyze Portfolio Yield",
      "category": "Portfolio strategy",
      "description": "Portfolio yield analysis — pipeline per capacity hour, broken down by tier/format/region with period-over-period comparison and mix health assessment.",
      "jobs": [
        "choose-better-mix"
      ],
      "outputType": "deterministic",
      "minimumRole": "member",
      "timeoutSeconds": 60,
      "whenToUse": "Use for governed Portfolio Yield trends and mix efficiency.",
      "questionPatterns": [
        "How is Portfolio Yield trending?",
        "Which tiers produce the most pipeline per hour?"
      ],
      "input": {
        "period": {
          "type": "string",
          "required": false,
          "enumValues": [
            "Q1",
            "Q2",
            "Q3",
            "Q4",
            "year"
          ]
        },
        "year": {
          "type": "number",
          "required": false
        },
        "breakdown": {
          "type": "string",
          "required": false,
          "enumValues": [
            "tier",
            "format",
            "region",
            "all"
          ]
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "Portfolio Yield",
        "mix health"
      ],
      "relatedCapabilities": [
        "bty://portfolio/yield",
        "optimize_tier_mix"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "identify-anomalies",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "identify_anomalies",
      "title": "Identify Anomalies",
      "category": "Portfolio intelligence",
      "description": "Flag events with unusual cost, pipeline, attendance, or ROI patterns. Uses statistical analysis with tier normalization and MAD fallback for skewed distributions.",
      "jobs": [
        "justify-spend",
        "choose-better-mix"
      ],
      "outputType": "associative",
      "minimumRole": "member",
      "timeoutSeconds": 60,
      "whenToUse": "Use to detect outlier events that merit investigation, not to assert causation.",
      "questionPatterns": [
        "Which events are unusual?",
        "Where are the cost or ROI outliers?"
      ],
      "input": {
        "threshold": {
          "type": "string",
          "required": false,
          "enumValues": [
            "moderate",
            "significant",
            "critical"
          ]
        },
        "categories": {
          "type": "string[]",
          "required": false,
          "enumValues": [
            "cost",
            "pipeline",
            "attendance",
            "roi"
          ]
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "anomaly",
        "outlier"
      ],
      "relatedCapabilities": [
        "identify_portfolio_patterns",
        "explain_variance"
      ],
      "policyDomains": [
        "attribution"
      ]
    },
    {
      "kind": "tool",
      "slug": "calculate-outsourcing-case",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "admin"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [
        "salary_rate_data"
      ],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not present the scenario as committed capacity, apply it, or treat salary assumptions as actuals.",
      "name": "calculate_outsourcing_case",
      "title": "Calculate Outsourcing Case",
      "category": "Capacity strategy",
      "description": "In-house vs agency cost analysis — break-even, capacity impact, and per-tier recommendation. Scenario-based; review assumptions before acting.",
      "jobs": [
        "choose-better-mix"
      ],
      "outputType": "scenario",
      "minimumRole": "admin",
      "timeoutSeconds": 30,
      "whenToUse": "Use to preview an outsourcing business case without changing planned or committed capacity.",
      "questionPatterns": [
        "Should we outsource part of the event portfolio?",
        "What is the outsourcing break-even?"
      ],
      "input": {
        "year": {
          "type": "number",
          "required": false
        },
        "tiers": {
          "type": "string[]",
          "required": false
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "outsourcing",
        "break-even",
        "scenario"
      ],
      "relatedCapabilities": [
        "generate_headcount_case",
        "bty://portfolio/capacity/{year}"
      ],
      "policyDomains": [
        "outsourcing",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "generate-headcount-case",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "admin"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [
        "salary_rate_data"
      ],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not present the scenario as an approved hire, apply it to committed capacity, or treat salary assumptions as actuals.",
      "name": "generate_headcount_case",
      "title": "Generate Headcount Case",
      "category": "Capacity strategy",
      "description": "Build a data-driven business case for additional headcount — FTE gap, cost of not hiring, pipeline at risk, and executive narrative. Scenario-based; review assumptions before acting.",
      "jobs": [
        "justify-spend",
        "choose-better-mix"
      ],
      "outputType": "scenario",
      "minimumRole": "admin",
      "timeoutSeconds": 30,
      "whenToUse": "Use to preview a staffing scenario and its governed business case.",
      "questionPatterns": [
        "Do we need another FTE?",
        "Build a headcount justification."
      ],
      "input": {
        "year": {
          "type": "number",
          "required": false
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "headcount",
        "FTE gap",
        "scenario"
      ],
      "relatedCapabilities": [
        "calculate_outsourcing_case",
        "analyze_resource_capacity"
      ],
      "policyDomains": [
        "headcount_justification",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "analyze-resource-capacity",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "analyze_resource_capacity",
      "title": "Analyze Resource Capacity",
      "category": "Capacity strategy",
      "description": "Analyze resource capacity utilization and overtime risk. Returns per-resource utilization %, overtime risk flags, and projected OT cost. Supports single resource or portfolio-wide analysis.",
      "jobs": [
        "choose-better-mix"
      ],
      "outputType": "deterministic",
      "minimumRole": "member",
      "timeoutSeconds": 60,
      "whenToUse": "Use for year-specific resource utilization and policy-classified overtime risk.",
      "questionPatterns": [
        "Who is over capacity?",
        "Where is overtime risk concentrated?"
      ],
      "input": {
        "resourceId": {
          "type": "string",
          "required": false
        },
        "year": {
          "type": "number",
          "required": true
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "capacity utilization",
        "overtime risk"
      ],
      "relatedCapabilities": [
        "bty://reports/capacity/{year}",
        "bty://resources/{resourceId}/assignments"
      ],
      "policyDomains": [
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "list-governed-proposals",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not expose proposal payloads, cross Chapter boundaries, approve, reject, resume, or commit.",
      "name": "list_governed_proposals",
      "title": "List Governed Proposals",
      "category": "Decision history",
      "description": "List Chapter-scoped Decision History. Filter by status or action type and pass next_cursor back as cursor to continue paging.",
      "jobs": [
        "force-gtm-follow-through"
      ],
      "outputType": "deterministic",
      "minimumRole": "member",
      "timeoutSeconds": 30,
      "whenToUse": "Use to inspect Chapter-scoped governed proposal status and audit history.",
      "questionPatterns": [
        "What governed proposals are pending?",
        "Show recent Decision History."
      ],
      "input": {
        "status": {
          "type": "string",
          "required": false,
          "enumValues": [
            "pending_approval",
            "approved",
            "committing",
            "committed",
            "rejected",
            "expired",
            "failed"
          ]
        },
        "action_type": {
          "type": "string",
          "required": false
        },
        "limit": {
          "type": "number",
          "required": false
        },
        "cursor": {
          "type": "string",
          "required": false
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "Decision History",
        "proposal"
      ],
      "relatedCapabilities": [
        "bty://governance/proposals",
        "bty://governance/proposals/{proposalId}"
      ],
      "policyDomains": [
        "governed_writes"
      ]
    },
    {
      "kind": "tool",
      "slug": "sync-templates",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "admin"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [
        "capacity_write_proposal"
      ],
      "operationType": "write_proposal",
      "sideEffects": true,
      "approvalRequired": true,
      "writeContract": {
        "sideEffects": true,
        "actions": [
          "preview",
          "propose"
        ],
        "requiresHumanApproval": true,
        "requiresHumanCommit": true
      },
      "doNot": "Do not approve, reject, resume, commit, or directly mutate event allocations; MCP is preview/propose only.",
      "name": "sync_templates",
      "title": "Sync Templates",
      "category": "Governed write",
      "description": "Preview or propose a governed sync of updated tier role templates to existing events. Use action \"preview\" to see how many events would be affected, then \"propose\" to create an approval record. This tool cannot commit changes.",
      "jobs": [
        "choose-better-mix"
      ],
      "outputType": "deterministic",
      "minimumRole": "admin",
      "timeoutSeconds": 30,
      "whenToUse": "Use preview first, then propose a template synchronization for human approval and commit.",
      "questionPatterns": [
        "Preview template synchronization.",
        "Propose applying updated tier role templates."
      ],
      "input": {
        "action": {
          "type": "string",
          "required": true,
          "enumValues": [
            "preview",
            "propose"
          ]
        },
        "tier_id": {
          "type": "string",
          "required": true
        },
        "event_type_id": {
          "type": "string",
          "required": true
        },
        "event_format_id": {
          "type": "string",
          "required": true
        }
      },
      "relatedTerms": [
        "template sync",
        "governed proposal"
      ],
      "relatedCapabilities": [
        "list_governed_proposals",
        "bty://governance/proposals"
      ],
      "policyDomains": [
        "governed_writes",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "propose-wrap-up-completion",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "admin"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [
        "event_write_proposal"
      ],
      "operationType": "write_proposal",
      "sideEffects": true,
      "approvalRequired": true,
      "writeContract": {
        "sideEffects": true,
        "actions": [
          "preview",
          "propose"
        ],
        "requiresHumanApproval": true,
        "requiresHumanCommit": true
      },
      "doNot": "Do not approve, reject, resume, commit, or directly update the event; MCP is preview/propose only.",
      "name": "propose_wrap_up_completion",
      "title": "Propose Wrap-Up Completion",
      "category": "Governed write",
      "description": "Preview wrap-up completion eligibility or create a governed proposal. This tool cannot approve, reject, commit, or directly update the event.",
      "jobs": [
        "force-gtm-follow-through"
      ],
      "outputType": "deterministic",
      "minimumRole": "admin",
      "timeoutSeconds": 30,
      "whenToUse": "Use to preview eligibility or propose event wrap-up completion for distinct-human approval.",
      "questionPatterns": [
        "Can this event be wrapped up?",
        "Propose completing this event wrap-up."
      ],
      "input": {
        "action": {
          "type": "string",
          "required": true,
          "enumValues": [
            "preview",
            "propose"
          ]
        },
        "event_id": {
          "type": "string",
          "required": true
        }
      },
      "relatedTerms": [
        "wrap-up",
        "governed proposal"
      ],
      "relatedCapabilities": [
        "list_governed_proposals",
        "bty://events/{eventId}"
      ],
      "policyDomains": [
        "governed_writes",
        "event_lifecycle"
      ]
    },
    {
      "kind": "tool",
      "slug": "propose-capacity-decision",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "admin"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [
        "capacity_write_proposal"
      ],
      "operationType": "write_proposal",
      "sideEffects": true,
      "approvalRequired": true,
      "writeContract": {
        "sideEffects": true,
        "actions": [
          "preview",
          "propose"
        ],
        "requiresHumanApproval": true,
        "requiresHumanCommit": true
      },
      "doNot": "Do not approve, reject, resume, commit, alter allocations, apply scenarios, or change committed capacity; MCP is preview/propose only.",
      "name": "propose_capacity_decision",
      "title": "Propose Capacity Decision",
      "category": "Governed write",
      "description": "Preview or propose a record-only governed capacity decision. This tool cannot approve, reject, commit, alter allocations, apply scenarios, or change committed capacity.",
      "jobs": [
        "choose-better-mix"
      ],
      "outputType": "deterministic",
      "minimumRole": "admin",
      "timeoutSeconds": 30,
      "whenToUse": "Use to preview or record a proposed monthly capacity disposition without mutating capacity.",
      "questionPatterns": [
        "Preview a capacity decision.",
        "Propose acknowledging this month’s capacity risk."
      ],
      "input": {
        "action": {
          "type": "string",
          "required": true,
          "enumValues": [
            "preview",
            "propose"
          ]
        },
        "year": {
          "type": "number",
          "required": true
        },
        "month": {
          "type": "number",
          "required": true
        },
        "disposition": {
          "type": "string",
          "required": true,
          "enumValues": [
            "accept_risk",
            "will_rebalance",
            "escalate"
          ]
        },
        "note": {
          "type": "string",
          "required": false
        }
      },
      "relatedTerms": [
        "capacity decision",
        "record-only"
      ],
      "relatedCapabilities": [
        "analyze_resource_capacity",
        "bty://governance/proposals"
      ],
      "policyDomains": [
        "governed_writes",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "identify-portfolio-patterns",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "identify_portfolio_patterns",
      "title": "Identify Portfolio Patterns",
      "category": "Portfolio intelligence",
      "description": "Analyze what drives high or low performance across the event portfolio. Splits events into quartiles by the target metric, compares tier/format/budget/capacity dimensions, and identifies statistically significant differences. Uses associative language (correlation, not causation).",
      "jobs": [
        "justify-spend",
        "choose-better-mix"
      ],
      "outputType": "associative",
      "minimumRole": "member",
      "timeoutSeconds": 60,
      "whenToUse": "Use to explore recurring portfolio correlations without claiming causation.",
      "questionPatterns": [
        "What patterns distinguish high performers?",
        "What correlates with strong yield?"
      ],
      "input": {
        "metric": {
          "type": "string",
          "required": true,
          "enumValues": [
            "roi",
            "yield",
            "cost_efficiency",
            "pipeline"
          ]
        },
        "period": {
          "type": "string",
          "required": false,
          "enumValues": [
            "Q1",
            "Q2",
            "Q3",
            "Q4",
            "year"
          ]
        },
        "year": {
          "type": "number",
          "required": false
        },
        "minEvents": {
          "type": "number",
          "required": false
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "portfolio pattern",
        "correlation"
      ],
      "relatedCapabilities": [
        "identify_anomalies",
        "analyze_portfolio_yield"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "compare-periods",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "compare_periods",
      "title": "Compare Periods",
      "category": "Portfolio intelligence",
      "description": "Period-over-period comparison with named deltas explaining what changed. Compares pipeline, cost, yield, event mix, and capacity across two periods. Identifies top drivers of each change and flags concerning trends.",
      "jobs": [
        "justify-spend",
        "choose-better-mix"
      ],
      "outputType": "associative",
      "minimumRole": "member",
      "timeoutSeconds": 60,
      "whenToUse": "Use to compare two governed portfolio periods and name the drivers of change.",
      "questionPatterns": [
        "What changed quarter over quarter?",
        "Why did portfolio performance move?"
      ],
      "input": {
        "currentPeriod": {
          "type": "string",
          "required": true,
          "enumValues": [
            "Q1",
            "Q2",
            "Q3",
            "Q4",
            "year"
          ]
        },
        "currentYear": {
          "type": "number",
          "required": true
        },
        "previousPeriod": {
          "type": "string",
          "required": true,
          "enumValues": [
            "Q1",
            "Q2",
            "Q3",
            "Q4",
            "year"
          ]
        },
        "previousYear": {
          "type": "number",
          "required": true
        },
        "dimensions": {
          "type": "string[]",
          "required": false,
          "enumValues": [
            "pipeline",
            "cost",
            "yield",
            "mix",
            "capacity"
          ]
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "period comparison",
        "trend driver"
      ],
      "relatedCapabilities": [
        "analyze_portfolio_yield",
        "explain_variance"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ]
    },
    {
      "kind": "tool",
      "slug": "optimize-tier-mix",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not apply the recommendation, change committed capacity, or present historical averages as guaranteed outcomes.",
      "name": "optimize_tier_mix",
      "title": "Optimize Tier Mix",
      "category": "Portfolio strategy",
      "description": "Given capacity constraints, recommend the tier allocation that maximizes portfolio yield. Uses greedy optimization based on historical yield per hour by tier. Every recommendation includes reasoning citing historical evidence. This is an indicative recommendation based on historical averages.",
      "jobs": [
        "choose-better-mix"
      ],
      "outputType": "heuristic",
      "minimumRole": "member",
      "timeoutSeconds": 60,
      "whenToUse": "Use for an indicative tier-mix recommendation under explicit capacity and optional budget constraints.",
      "questionPatterns": [
        "What tier mix maximizes Portfolio Yield?",
        "How should we allocate constrained capacity?"
      ],
      "input": {
        "totalCapacityHours": {
          "type": "number",
          "required": true
        },
        "totalBudget": {
          "type": "number",
          "required": false
        },
        "targetPipeline": {
          "type": "number",
          "required": false
        },
        "fixedEvents": {
          "type": "string[]",
          "required": false
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "tier mix",
        "Portfolio Yield"
      ],
      "relatedCapabilities": [
        "analyze_portfolio_yield",
        "bty://portfolio/capacity"
      ],
      "policyDomains": [
        "capacity",
        "attribution"
      ]
    },
    {
      "kind": "tool",
      "slug": "portfolio-health-check",
      "chapterScope": "chapter-isolated",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "actorCategories": [
        "personal_agent",
        "service_principal"
      ],
      "entitlementRequired": "elg_basic",
      "sensitivityFlags": [],
      "operationType": "read",
      "sideEffects": false,
      "doNot": "Do not treat scenario, planned, committed, and actual values as interchangeable or bypass governed provenance.",
      "name": "portfolio_health_check",
      "title": "Portfolio Health Check",
      "category": "Portfolio intelligence",
      "description": "Comprehensive portfolio health assessment across 6 categories: yield efficiency, cost control, data quality, capacity health, follow-through, and mix balance. Returns an overall score (0-100), red flags, green lights, and specific action items.",
      "jobs": [
        "justify-spend",
        "choose-better-mix",
        "force-gtm-follow-through"
      ],
      "outputType": "heuristic",
      "minimumRole": "member",
      "timeoutSeconds": 60,
      "whenToUse": "Use for a broad governed portfolio diagnosis and prioritized action list.",
      "questionPatterns": [
        "How healthy is the portfolio?",
        "What are the portfolio red flags?"
      ],
      "input": {
        "period": {
          "type": "string",
          "required": false,
          "enumValues": [
            "Q1",
            "Q2",
            "Q3",
            "Q4",
            "year"
          ]
        },
        "year": {
          "type": "number",
          "required": false
        },
        "verbosity": {
          "type": "string",
          "required": false,
          "enumValues": [
            "summary",
            "standard",
            "detailed"
          ]
        }
      },
      "relatedTerms": [
        "portfolio health",
        "red flag"
      ],
      "relatedCapabilities": [
        "get_recommendations",
        "bty://portfolio/recommendations"
      ],
      "policyDomains": [
        "portfolio_health",
        "attribution",
        "capacity"
      ]
    }
  ],
  "resources": [
    {
      "kind": "resource",
      "slug": "health",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "health",
      "title": "Server Health",
      "uri": "bty://health",
      "description": "Server health check — returns server status and org context",
      "minimumRole": "viewer",
      "category": "System",
      "jobs": [],
      "relatedCapabilities": [],
      "policyDomains": [],
      "chapterScope": "org-global",
      "whenToUse": "Use to confirm the MCP server is reachable and identify the current organization context before other reads.",
      "relatedTerms": [
        "Server Health"
      ]
    },
    {
      "kind": "resource",
      "slug": "context",
      "mimeType": "text/markdown",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "context",
      "title": "BTY Context",
      "uri": "bty://context",
      "description": "Full org context as markdown — attribution policy, portfolio performance, capacity, data confidence, recommendations, connected systems, and capability routing guide",
      "minimumRole": "viewer",
      "category": "Context",
      "jobs": [
        "justify-spend",
        "choose-better-mix",
        "force-gtm-follow-through"
      ],
      "relatedCapabilities": [
        "org-overview"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use at the start of an MCP session to orient on Chapter-bound policies, portfolio performance, confidence, integrations, and available capabilities.",
      "relatedTerms": [
        "BTY Context"
      ]
    },
    {
      "kind": "resource",
      "slug": "org-overview",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "org-overview",
      "title": "Organization Overview",
      "uri": "bty://org/overview",
      "description": "Organization overview — KPIs, attribution policy, data confidence, capacity, connected systems",
      "minimumRole": "viewer",
      "category": "Context",
      "jobs": [
        "justify-spend",
        "choose-better-mix"
      ],
      "relatedCapabilities": [
        "context"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use for a concise health snapshot of organization KPIs, attribution policy, data confidence, capacity, and connected systems.",
      "relatedTerms": [
        "Organization Overview"
      ]
    },
    {
      "kind": "resource",
      "slug": "events-list",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "events-list",
      "title": "Events List",
      "uri": "bty://events",
      "description": "Paginated list of all events with key metrics and aggregate totals",
      "minimumRole": "viewer",
      "category": "Event ledger",
      "jobs": [
        "justify-spend",
        "choose-better-mix"
      ],
      "relatedCapabilities": [
        "event-detail"
      ],
      "policyDomains": [
        "attribution"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to enumerate events, scan key metrics and totals, or obtain an event ID before opening detail resources.",
      "relatedTerms": [
        "Events List"
      ]
    },
    {
      "kind": "resource",
      "slug": "event-detail",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "eventId",
          "type": "string",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "event-detail",
      "title": "Event Detail",
      "uri": "bty://events/{eventId}",
      "description": "Full event detail — ledger, True ROI, provenance trail",
      "minimumRole": "viewer",
      "category": "Event ledger",
      "jobs": [
        "justify-spend"
      ],
      "relatedCapabilities": [
        "event-kpis",
        "event-provenance"
      ],
      "policyDomains": [
        "attribution"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use when you need one event's full governed ledger record, True ROI, and provenance summary.",
      "relatedTerms": [
        "Event Detail"
      ]
    },
    {
      "kind": "resource",
      "slug": "event-costs",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "eventId",
          "type": "string",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "event-costs",
      "title": "Event Costs",
      "uri": "bty://events/{eventId}/costs",
      "description": "Event cost breakdown — budget, actuals, variance, capacity hours",
      "minimumRole": "member",
      "category": "Executive proof",
      "jobs": [
        "justify-spend"
      ],
      "relatedCapabilities": [
        "explain_variance"
      ],
      "policyDomains": [
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to reconcile one event's budget, actual cost, variance, and capacity hours.",
      "relatedTerms": [
        "Event Costs"
      ]
    },
    {
      "kind": "resource",
      "slug": "event-outcomes",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "eventId",
          "type": "string",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "event-outcomes",
      "title": "Event Outcomes",
      "uri": "bty://events/{eventId}/outcomes",
      "description": "Event outcomes — pipeline influenced, revenue attributed, opportunities",
      "minimumRole": "viewer",
      "category": "Executive proof",
      "jobs": [
        "justify-spend",
        "force-gtm-follow-through"
      ],
      "relatedCapabilities": [
        "calculate_true_roi"
      ],
      "policyDomains": [
        "attribution"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to inspect one event's pipeline influence, attributed revenue, and linked opportunities.",
      "relatedTerms": [
        "Event Outcomes"
      ]
    },
    {
      "kind": "resource",
      "slug": "event-kpis",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "eventId",
          "type": "string",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "event-kpis",
      "title": "Event KPIs",
      "uri": "bty://events/{eventId}/kpis",
      "description": "Event KPIs — True ROI, cost-per-lead, yield, confidence breakdown",
      "minimumRole": "viewer",
      "category": "Executive proof",
      "jobs": [
        "justify-spend"
      ],
      "relatedCapabilities": [
        "calculate_true_roi"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to evaluate one event's True ROI, cost per lead, yield, and metric confidence.",
      "relatedTerms": [
        "Event KPIs"
      ]
    },
    {
      "kind": "resource",
      "slug": "event-provenance",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "admin"
      },
      "variables": [
        {
          "name": "eventId",
          "type": "string",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "event-provenance",
      "title": "Event Provenance",
      "uri": "bty://events/{eventId}/provenance",
      "description": "Event provenance — field-level source records for every tracked value",
      "minimumRole": "admin",
      "category": "Governance",
      "jobs": [
        "justify-spend"
      ],
      "relatedCapabilities": [
        "event-changelog"
      ],
      "policyDomains": [
        "attribution"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to audit the field-level source behind a tracked event value.",
      "relatedTerms": [
        "Event Provenance"
      ]
    },
    {
      "kind": "resource",
      "slug": "event-changelog",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "eventId",
          "type": "string",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "event-changelog",
      "title": "Event Changelog",
      "uri": "bty://events/{eventId}/changelog",
      "description": "Event changelog — timestamped changes from provenance and activity logs",
      "minimumRole": "viewer",
      "category": "Governance",
      "jobs": [
        "justify-spend"
      ],
      "relatedCapabilities": [
        "event-provenance"
      ],
      "policyDomains": [],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to review when an event changed and which provenance or activity records document the change.",
      "relatedTerms": [
        "Event Changelog"
      ]
    },
    {
      "kind": "resource",
      "slug": "portfolio-yield",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "portfolio-yield",
      "title": "Portfolio Yield",
      "uri": "bty://portfolio/yield",
      "description": "Portfolio yield — pipeline per capacity hour, tier breakdown, period comparison",
      "minimumRole": "viewer",
      "category": "Portfolio strategy",
      "jobs": [
        "choose-better-mix"
      ],
      "relatedCapabilities": [
        "analyze_portfolio_yield"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to assess pipeline generated per capacity hour across tiers and compare portfolio periods.",
      "relatedTerms": [
        "Portfolio Yield"
      ]
    },
    {
      "kind": "resource",
      "slug": "portfolio-roi",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "portfolio-roi",
      "title": "Portfolio ROI",
      "uri": "bty://portfolio/roi",
      "description": "Portfolio ROI — overall True ROI, top/bottom events, tier breakdown",
      "minimumRole": "viewer",
      "category": "Executive proof",
      "jobs": [
        "justify-spend"
      ],
      "relatedCapabilities": [
        "calculate_true_roi"
      ],
      "policyDomains": [
        "attribution",
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to evaluate overall True ROI and identify top, bottom, or tier-level portfolio performance.",
      "relatedTerms": [
        "Portfolio ROI"
      ]
    },
    {
      "kind": "resource",
      "slug": "portfolio-recommendations",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "portfolio-recommendations",
      "title": "Portfolio Recommendations",
      "uri": "bty://portfolio/recommendations",
      "description": "Portfolio recommendations — actionable decisions with diagnosis, impact, and audit links",
      "minimumRole": "viewer",
      "category": "Decisions",
      "jobs": [
        "justify-spend",
        "choose-better-mix",
        "force-gtm-follow-through"
      ],
      "relatedCapabilities": [
        "get_recommendations"
      ],
      "policyDomains": [
        "recommendation_scoring"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use when portfolio facts must resolve into governed actions with diagnosis, impact, and audit links.",
      "relatedTerms": [
        "Portfolio Recommendations"
      ]
    },
    {
      "kind": "resource",
      "slug": "portfolio-capacity",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "portfolio-capacity",
      "title": "Portfolio Capacity",
      "uri": "bty://portfolio/capacity",
      "description": "Portfolio capacity — total hours, utilization percentage, resource count (current year)",
      "minimumRole": "member",
      "category": "Capacity strategy",
      "jobs": [
        "choose-better-mix"
      ],
      "relatedCapabilities": [
        "analyze_resource_capacity"
      ],
      "policyDomains": [
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use for a current-year portfolio summary of total hours, utilization, and resource count.",
      "relatedTerms": [
        "Portfolio Capacity"
      ]
    },
    {
      "kind": "resource",
      "slug": "portfolio-capacity-year",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "year",
          "type": "number",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "portfolio-capacity-year",
      "title": "Portfolio Capacity by Year",
      "uri": "bty://portfolio/capacity/{year}",
      "description": "Portfolio capacity for a specific year — total hours, utilization percentage, resource count",
      "minimumRole": "member",
      "category": "Capacity strategy",
      "jobs": [
        "choose-better-mix"
      ],
      "relatedCapabilities": [
        "analyze_resource_capacity"
      ],
      "policyDomains": [
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to retrieve portfolio hours, utilization, and resource count for a specified year.",
      "relatedTerms": [
        "Portfolio Capacity by Year"
      ]
    },
    {
      "kind": "resource",
      "slug": "policies-attribution",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "policies-attribution",
      "title": "Attribution Policy",
      "uri": "bty://policies/attribution",
      "description": "Attribution policy — metric, window, touch model governing pipeline numbers",
      "minimumRole": "viewer",
      "category": "Governance",
      "jobs": [
        "justify-spend"
      ],
      "relatedCapabilities": [
        "calculate_true_roi"
      ],
      "policyDomains": [
        "attribution"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to verify the attribution metric, window, and touch model governing pipeline and ROI results.",
      "relatedTerms": [
        "Attribution Policy"
      ]
    },
    {
      "kind": "resource",
      "slug": "custom-fields-definitions",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "custom-fields-definitions",
      "title": "Custom Field Definitions",
      "uri": "bty://custom-fields/definitions",
      "description": "Org-defined custom field schemas — keys, types, labels, allowed values, confidence defaults",
      "minimumRole": "viewer",
      "category": "Event ledger",
      "jobs": [
        "justify-spend"
      ],
      "relatedCapabilities": [
        "custom-fields-event"
      ],
      "policyDomains": [],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to discover organization-defined event fields, their types, allowed values, and confidence defaults.",
      "relatedTerms": [
        "Custom Field Definitions"
      ]
    },
    {
      "kind": "resource",
      "slug": "custom-fields-event",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "eventId",
          "type": "string",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "custom-fields-event",
      "title": "Event Custom Fields",
      "uri": "bty://custom-fields/events/{eventId}",
      "description": "Custom field values for a specific event — with confidence level and provenance per field",
      "minimumRole": "viewer",
      "category": "Event ledger",
      "jobs": [
        "justify-spend"
      ],
      "relatedCapabilities": [
        "custom-fields-definitions"
      ],
      "policyDomains": [],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to read governed custom-field values and provenance for one event after discovering the field definitions.",
      "relatedTerms": [
        "Event Custom Fields"
      ]
    },
    {
      "kind": "resource",
      "slug": "reports-capacity",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "year",
          "type": "number",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "reports-capacity",
      "title": "Capacity Report",
      "uri": "bty://reports/capacity/{year}",
      "description": "Resource capacity report — per-resource monthly utilization, overtime risk flags, and projected OT cost",
      "minimumRole": "member",
      "category": "Reports",
      "jobs": [
        "choose-better-mix"
      ],
      "relatedCapabilities": [
        "analyze_resource_capacity"
      ],
      "policyDomains": [
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use for a year-specific monthly capacity report with per-resource utilization, overtime risk, and projected overtime cost.",
      "relatedTerms": [
        "Capacity Report"
      ]
    },
    {
      "kind": "resource",
      "slug": "reports-budget",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "year",
          "type": "number",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "reports-budget",
      "title": "Budget Report",
      "uri": "bty://reports/budget/{year}",
      "description": "Budget report — planned vs. actual spend by month with variance",
      "minimumRole": "member",
      "category": "Reports",
      "jobs": [
        "justify-spend"
      ],
      "relatedCapabilities": [
        "generate_cfo_report"
      ],
      "policyDomains": [
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to compare planned and actual spend by month for a specified year and inspect variance.",
      "relatedTerms": [
        "Budget Report"
      ]
    },
    {
      "kind": "resource",
      "slug": "reports-events",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "year",
          "type": "number",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "reports-events",
      "title": "Events Report",
      "uri": "bty://reports/events/{year}",
      "description": "Event report — per-event planned/committed hours, budget vs. actual, and variance",
      "minimumRole": "member",
      "category": "Reports",
      "jobs": [
        "justify-spend",
        "choose-better-mix"
      ],
      "relatedCapabilities": [
        "compare_events"
      ],
      "policyDomains": [
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to compare planned and committed hours, budget, actuals, and variance across events for a specified year.",
      "relatedTerms": [
        "Events Report"
      ]
    },
    {
      "kind": "resource",
      "slug": "reports-resources",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "year",
          "type": "number",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "reports-resources",
      "title": "Resources Report",
      "uri": "bty://reports/resources/{year}",
      "description": "Resource report — per-resource annual hours, utilization, event count, and estimated labor cost",
      "minimumRole": "member",
      "category": "Reports",
      "jobs": [
        "choose-better-mix"
      ],
      "relatedCapabilities": [
        "analyze_resource_capacity"
      ],
      "policyDomains": [
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to compare annual hours, utilization, event load, and estimated labor cost across resources for a specified year.",
      "relatedTerms": [
        "Resources Report"
      ]
    },
    {
      "kind": "resource",
      "slug": "resource-assignments",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "resourceId",
          "type": "string",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "resource-assignments",
      "title": "Resource Assignments",
      "uri": "bty://resources/{resourceId}/assignments",
      "description": "Resource assignments — all event assignments for a specific resource with role and event details",
      "minimumRole": "member",
      "category": "Capacity strategy",
      "jobs": [
        "choose-better-mix"
      ],
      "relatedCapabilities": [
        "analyze_resource_capacity"
      ],
      "policyDomains": [
        "capacity"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to list every event assignment, role, and event detail for one known resource ID.",
      "relatedTerms": [
        "Resource Assignments"
      ]
    },
    {
      "kind": "resource",
      "slug": "chapter",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "chapter",
      "title": "Active Chapter",
      "uri": "bty://chapter",
      "description": "Active chapter context — identity, scope, and organization relationship for the current MCP session",
      "minimumRole": "viewer",
      "category": "Context",
      "jobs": [
        "justify-spend",
        "choose-better-mix",
        "force-gtm-follow-through"
      ],
      "relatedCapabilities": [
        "context"
      ],
      "policyDomains": [],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to confirm the active Chapter identity and organization relationship that bounds the current MCP session.",
      "relatedTerms": [
        "Active Chapter"
      ]
    },
    {
      "kind": "resource",
      "slug": "integration-chapter-status",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "integration_chapter_status",
      "title": "Integration Chapter Status",
      "uri": "bty://integrations/chapter-status",
      "description": "Per-provider integration health and per-chapter CRM campaign mapping coverage — chapter-scoped unmapped count drives ei insight thresholds",
      "minimumRole": "viewer",
      "category": "Integration",
      "jobs": [
        "force-gtm-follow-through"
      ],
      "relatedCapabilities": [
        "org-overview"
      ],
      "policyDomains": [
        "attribution"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to diagnose provider health and Chapter CRM campaign-mapping coverage before following up on integration gaps.",
      "relatedTerms": [
        "Integration Chapter Status"
      ]
    },
    {
      "kind": "resource",
      "slug": "governance-proposals",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "governance-proposals",
      "title": "Decision History",
      "uri": "bty://governance/proposals",
      "description": "Chapter-scoped Decision History with cursor pagination metadata",
      "minimumRole": "member",
      "category": "Decision history",
      "jobs": [
        "force-gtm-follow-through"
      ],
      "relatedCapabilities": [
        "list_governed_proposals"
      ],
      "policyDomains": [
        "governed_writes"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to page through Chapter-scoped governed proposals and inspect their lifecycle status.",
      "relatedTerms": [
        "Decision History"
      ]
    },
    {
      "kind": "resource",
      "slug": "governance-proposal-detail",
      "mimeType": "application/json",
      "doNot": "Do not infer missing tenant data, remove governance labels, or combine Chapter data outside the bound context.",
      "eiExposure": {
        "enabled": true,
        "audience": "all"
      },
      "variables": [
        {
          "name": "proposalId",
          "type": "string",
          "required": true
        }
      ],
      "timeoutSeconds": 10,
      "sensitivityFlags": [],
      "entitlementRequired": "elg_basic",
      "name": "governance-proposal-detail",
      "title": "Decision History Entry",
      "uri": "bty://governance/proposals/{proposalId}",
      "description": "One Chapter-scoped Decision History entry with approval and commit evidence",
      "minimumRole": "member",
      "category": "Decision history",
      "jobs": [
        "force-gtm-follow-through"
      ],
      "relatedCapabilities": [
        "list_governed_proposals"
      ],
      "policyDomains": [
        "governed_writes"
      ],
      "chapterScope": "chapter-isolated",
      "whenToUse": "Use to audit one known Chapter-scoped governed proposal's approval and commit evidence.",
      "relatedTerms": [
        "Decision History Entry"
      ]
    }
  ]
}
