{
  "product": "NextChapter",
  "description": "Local-first personal financial decision engine for humans and AI agents.",
  "version": "1.15.2",
  "agentAgnostic": true,
  "transport": [
    "mcp-stdio",
    "browser-bridge",
    "browser-extension-relay",
    "cli",
    "http-local",
    "structured-file"
  ],
  "permissions": [
    "read",
    "simulate",
    "edit"
  ],
  "resources": [
    "nextchapter://capabilities",
    "nextchapter://summary",
    "nextchapter://workspace",
    "nextchapter://health",
    "nextchapter://career",
    "nextchapter://wealth-strategy",
    "nextchapter://wealth-experiments",
    "nextchapter://financial-state",
    "nextchapter://financial-inventory",
    "nextchapter://duplicate-transactions",
    "nextchapter://accounts",
    "nextchapter://income",
    "nextchapter://expenses",
    "nextchapter://partner",
    "nextchapter://housing",
    "nextchapter://goals",
    "nextchapter://scenarios",
    "nextchapter://recommendations",
    "nextchapter://data-quality",
    "nextchapter://context-pack",
    "nextchapter://transactions",
    "nextchapter://decisions",
    "nextchapter://monthly-checkups",
    "nextchapter://agent-brief",
    "nextchapter://command-catalog",
    "nextchapter://automation-policy",
    "nextchapter://source-policy",
    "nextchapter://trusted-sources"
  ],
  "operations": [
    {
      "id": "wealth-strategy",
      "feature": "Wealth growth strategy",
      "kind": "read",
      "core": "wealth strategy engine",
      "cli": "wealth",
      "mcp": "resource:nextchapter://wealth-strategy",
      "http": "GET /v1/wealth-strategy"
    },
    {
      "id": "wealth-experiments",
      "feature": "Life and wealth experiments",
      "kind": "read",
      "core": "wealth experiment engine",
      "cli": "experiments",
      "mcp": "resource:nextchapter://wealth-experiments",
      "http": "GET /v1/wealth-experiments"
    },
    {
      "id": "financial-inventory",
      "feature": "Extended financial inventory",
      "kind": "read",
      "core": "financial inventory engine",
      "cli": "inventory",
      "mcp": "resource:nextchapter://financial-inventory",
      "http": "GET /v1/financial-inventory"
    },
    {
      "id": "duplicate-transactions",
      "feature": "Duplicate transaction detection",
      "kind": "read",
      "core": "transaction fingerprint engine",
      "cli": "duplicates",
      "mcp": "resource:nextchapter://duplicate-transactions",
      "http": "GET /v1/transactions/duplicates"
    },
    {
      "id": "workspace",
      "feature": "Workspace",
      "kind": "read",
      "core": "load",
      "cli": "status",
      "mcp": "resource:nextchapter://workspace",
      "http": "GET /v1/workspace"
    },
    {
      "id": "accounts",
      "feature": "Accounts",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "income",
      "feature": "Income",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "income:set-current",
      "mcp": "nextchapter_set_current_income",
      "http": "POST /v1/commands"
    },
    {
      "id": "expenses",
      "feature": "Expenses",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "expenses:set",
      "mcp": "nextchapter_set_expenses",
      "http": "POST /v1/commands"
    },
    {
      "id": "investments",
      "feature": "Investments",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "transfer:plan",
      "mcp": "nextchapter_plan_transfer",
      "http": "POST /v1/commands"
    },
    {
      "id": "housing",
      "feature": "Housing",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_patch_plan",
      "http": "POST /v1/commands"
    },
    {
      "id": "partner",
      "feature": "Partner",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "goals",
      "feature": "Goals",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "events",
      "feature": "Life events",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_patch_plan",
      "http": "POST /v1/commands"
    },
    {
      "id": "projection",
      "feature": "FIRE projection",
      "kind": "calculate",
      "core": "simulation engine",
      "cli": "simulate",
      "mcp": "nextchapter_simulate",
      "http": "POST /v1/simulations"
    },
    {
      "id": "monte-carlo",
      "feature": "Monte Carlo",
      "kind": "calculate",
      "core": "monte-carlo engine",
      "cli": "monte-carlo",
      "mcp": "nextchapter_monte_carlo",
      "http": "POST /v1/monte-carlo"
    },
    {
      "id": "backtest",
      "feature": "Backtest",
      "kind": "calculate",
      "core": "backtest engine",
      "cli": "backtest",
      "mcp": "nextchapter_backtest",
      "http": "POST /v1/backtests"
    },
    {
      "id": "scenarios",
      "feature": "Scenarios",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "comparison",
      "feature": "Comparator",
      "kind": "calculate",
      "core": "comparison engine",
      "cli": "compare",
      "mcp": "nextchapter_compare",
      "http": "POST /v1/comparisons"
    },
    {
      "id": "withdrawal",
      "feature": "Withdrawal",
      "kind": "calculate",
      "core": "withdrawal engine",
      "cli": "withdrawal",
      "mcp": "nextchapter_withdrawal",
      "http": "POST /v1/withdrawals"
    },
    {
      "id": "tax",
      "feature": "Tax",
      "kind": "calculate",
      "core": "tax engine",
      "cli": "tax",
      "mcp": "nextchapter_tax",
      "http": "POST /v1/taxes"
    },
    {
      "id": "costs",
      "feature": "Costs",
      "kind": "calculate",
      "core": "cost engine",
      "cli": "costs",
      "mcp": "nextchapter_compare_costs",
      "http": "POST /v1/costs"
    },
    {
      "id": "health",
      "feature": "Financial health",
      "kind": "calculate",
      "core": "health engine",
      "cli": "status",
      "mcp": "resource:nextchapter://health",
      "http": "GET /v1/health-benchmark"
    },
    {
      "id": "career",
      "feature": "Career comparison",
      "kind": "calculate",
      "core": "career engine",
      "cli": "career",
      "mcp": "nextchapter_compare_career",
      "http": "POST /v1/career"
    },
    {
      "id": "decisions",
      "feature": "Decisions",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "monthly-checkups",
      "feature": "Monthly checkups",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "goal-trajectory",
      "feature": "Goal trajectory",
      "kind": "calculate",
      "core": "goal engine",
      "cli": "goal:trajectory",
      "mcp": "nextchapter_goal_trajectory",
      "http": "POST /v1/goal-trajectories"
    },
    {
      "id": "batch-configuration",
      "feature": "One-shot configuration",
      "kind": "mutate",
      "core": "atomic workspace command batch",
      "cli": "batch",
      "mcp": "nextchapter_apply_commands",
      "http": "POST /v1/command-batches"
    },
    {
      "id": "conversational-intake",
      "feature": "Confirmed conversational intake",
      "kind": "mutate",
      "core": "atomic workspace commands and assessment engines",
      "cli": "intake",
      "mcp": "nextchapter_apply_and_assess",
      "http": "POST /v1/intake"
    },
    {
      "id": "assessment",
      "feature": "Agent assessment",
      "kind": "calculate",
      "core": "workspace analysis and simulation engines",
      "cli": "assess",
      "mcp": "nextchapter_assess",
      "http": "POST /v1/assessment"
    },
    {
      "id": "research-evidence",
      "feature": "Research evidence",
      "kind": "calculate",
      "core": "research source policy",
      "cli": "research:validate",
      "mcp": "nextchapter_validate_evidence",
      "http": "POST /v1/research/evidence"
    },
    {
      "id": "research-source-discovery",
      "feature": "Research source discovery",
      "kind": "read",
      "core": "research source registry",
      "cli": "research:sources",
      "mcp": "nextchapter_find_sources",
      "http": "POST /v1/research/sources/search"
    },
    {
      "id": "context-pack",
      "feature": "Context Pack",
      "kind": "export",
      "core": "context pack engine",
      "cli": "export",
      "mcp": "nextchapter_export_context",
      "http": "GET /v1/context"
    }
  ],
  "calculations": [
    {
      "id": "projection",
      "feature": "FIRE projection",
      "kind": "calculate",
      "core": "simulation engine",
      "cli": "simulate",
      "mcp": "nextchapter_simulate",
      "http": "POST /v1/simulations"
    },
    {
      "id": "monte-carlo",
      "feature": "Monte Carlo",
      "kind": "calculate",
      "core": "monte-carlo engine",
      "cli": "monte-carlo",
      "mcp": "nextchapter_monte_carlo",
      "http": "POST /v1/monte-carlo"
    },
    {
      "id": "backtest",
      "feature": "Backtest",
      "kind": "calculate",
      "core": "backtest engine",
      "cli": "backtest",
      "mcp": "nextchapter_backtest",
      "http": "POST /v1/backtests"
    },
    {
      "id": "comparison",
      "feature": "Comparator",
      "kind": "calculate",
      "core": "comparison engine",
      "cli": "compare",
      "mcp": "nextchapter_compare",
      "http": "POST /v1/comparisons"
    },
    {
      "id": "withdrawal",
      "feature": "Withdrawal",
      "kind": "calculate",
      "core": "withdrawal engine",
      "cli": "withdrawal",
      "mcp": "nextchapter_withdrawal",
      "http": "POST /v1/withdrawals"
    },
    {
      "id": "tax",
      "feature": "Tax",
      "kind": "calculate",
      "core": "tax engine",
      "cli": "tax",
      "mcp": "nextchapter_tax",
      "http": "POST /v1/taxes"
    },
    {
      "id": "costs",
      "feature": "Costs",
      "kind": "calculate",
      "core": "cost engine",
      "cli": "costs",
      "mcp": "nextchapter_compare_costs",
      "http": "POST /v1/costs"
    },
    {
      "id": "health",
      "feature": "Financial health",
      "kind": "calculate",
      "core": "health engine",
      "cli": "status",
      "mcp": "resource:nextchapter://health",
      "http": "GET /v1/health-benchmark"
    },
    {
      "id": "career",
      "feature": "Career comparison",
      "kind": "calculate",
      "core": "career engine",
      "cli": "career",
      "mcp": "nextchapter_compare_career",
      "http": "POST /v1/career"
    },
    {
      "id": "goal-trajectory",
      "feature": "Goal trajectory",
      "kind": "calculate",
      "core": "goal engine",
      "cli": "goal:trajectory",
      "mcp": "nextchapter_goal_trajectory",
      "http": "POST /v1/goal-trajectories"
    },
    {
      "id": "assessment",
      "feature": "Agent assessment",
      "kind": "calculate",
      "core": "workspace analysis and simulation engines",
      "cli": "assess",
      "mcp": "nextchapter_assess",
      "http": "POST /v1/assessment"
    },
    {
      "id": "research-evidence",
      "feature": "Research evidence",
      "kind": "calculate",
      "core": "research source policy",
      "cli": "research:validate",
      "mcp": "nextchapter_validate_evidence",
      "http": "POST /v1/research/evidence"
    }
  ],
  "mutations": [
    {
      "id": "accounts",
      "feature": "Accounts",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "income",
      "feature": "Income",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "income:set-current",
      "mcp": "nextchapter_set_current_income",
      "http": "POST /v1/commands"
    },
    {
      "id": "expenses",
      "feature": "Expenses",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "expenses:set",
      "mcp": "nextchapter_set_expenses",
      "http": "POST /v1/commands"
    },
    {
      "id": "investments",
      "feature": "Investments",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "transfer:plan",
      "mcp": "nextchapter_plan_transfer",
      "http": "POST /v1/commands"
    },
    {
      "id": "housing",
      "feature": "Housing",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_patch_plan",
      "http": "POST /v1/commands"
    },
    {
      "id": "partner",
      "feature": "Partner",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "goals",
      "feature": "Goals",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "events",
      "feature": "Life events",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_patch_plan",
      "http": "POST /v1/commands"
    },
    {
      "id": "scenarios",
      "feature": "Scenarios",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "decisions",
      "feature": "Decisions",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "monthly-checkups",
      "feature": "Monthly checkups",
      "kind": "mutate",
      "core": "workspace command",
      "cli": "command",
      "mcp": "nextchapter_execute_command",
      "http": "POST /v1/commands"
    },
    {
      "id": "batch-configuration",
      "feature": "One-shot configuration",
      "kind": "mutate",
      "core": "atomic workspace command batch",
      "cli": "batch",
      "mcp": "nextchapter_apply_commands",
      "http": "POST /v1/command-batches"
    },
    {
      "id": "conversational-intake",
      "feature": "Confirmed conversational intake",
      "kind": "mutate",
      "core": "atomic workspace commands and assessment engines",
      "cli": "intake",
      "mcp": "nextchapter_apply_and_assess",
      "http": "POST /v1/intake"
    }
  ],
  "exports": {
    "formats": [
      "json",
      "yaml",
      "markdown"
    ],
    "operation": {
      "id": "context-pack",
      "feature": "Context Pack",
      "kind": "export",
      "core": "context pack engine",
      "cli": "export",
      "mcp": "nextchapter_export_context",
      "http": "GET /v1/context"
    }
  },
  "research": {
    "publicPolicy": "/ai/research-policy.json",
    "mcpPolicy": "nextchapter://source-policy",
    "mcpSources": "nextchapter://trusted-sources",
    "validationTool": "nextchapter_validate_evidence",
    "persistence": false
  },
  "conversationalAutomation": {
    "policy": "nextchapter://automation-policy",
    "duplicateConfirmationRequired": false,
    "clearUserFactCanPersistOnce": true,
    "inferredOrResearchedFactCanPersist": false
  },
  "safety": {
    "localOnly": true,
    "modelApiCalls": false,
    "simulationsPersistByDefault": false,
    "persistentWritesRequireEditPermission": true,
    "persistentWritesRequireExpectedRevision": true,
    "browserBridgeLoopbackOnly": true,
    "browserBridgeAllowedOrigins": [
      "https://nextchapter.pavloh.com",
      "http://localhost:4200"
    ]
  },
  "compatibility": {
    "localMcpHosts": "full",
    "localCliAndScripts": "full",
    "browserWithLocalConnector": "full",
    "cloudChatWithLocalToolSupport": "full when the host can start or reach the local MCP runtime",
    "cloudOnlyChatWithoutLocalTools": "context export only",
    "publicFinancialBackend": false
  }
}
