{
  "schemaVersion": 1,
  "providers": [
    "pi-core",
    "aili-core",
    "pi-web-access",
    "pi-quota-status",
    "pi-permission-modes",
    "pi-mcp-adapter",
    "aili-context-runtime",
    "aili-provider-retry",
    "aili-persistent-agents",
    "optional-pack:web-research",
    "optional-pack:browser-qa",
    "optional-pack:artifact-runtime"
  ],
  "capabilities": [
    {
      "id": "repo.read",
      "provider": "pi-core",
      "adapterOwner": "pi-core",
      "platforms": ["linux"],
      "class": "required",
      "risk": { "secret": "none", "network": "none", "sideEffect": "read-only" },
      "probe": { "id": "pi.tools.read", "kind": "runtime-api", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "repo.read" }
    },
    {
      "id": "repo.write",
      "provider": "pi-permission-modes",
      "adapterOwner": "pi-permission-modes@2.2.0",
      "platforms": ["linux"],
      "class": "required",
      "risk": { "secret": "possible", "network": "none", "sideEffect": "local-write" },
      "probe": { "id": "aili.permissions.write", "kind": "runtime-component", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "repo.write" }
    },
    {
      "id": "subagent.dispatch",
      "provider": "aili-persistent-agents",
      "adapterOwner": "src/runtime/persistent-agents/production.ts (AILI-owned task/hub with parent-scoped Pi sessions)",
      "platforms": ["linux"],
      "class": "required",
      "risk": { "secret": "possible", "network": "provider-dependent", "sideEffect": "delegated" },
      "probe": { "id": "aili.roles.dispatch", "kind": "runtime-component", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "subagent.dispatch" }
    },
    {
      "id": "mcp.runtime",
      "provider": "pi-mcp-adapter",
      "adapterOwner": "pi-mcp-adapter@2.23.0 composed by src/runtime/mcp.ts",
      "platforms": ["linux"],
      "class": "required",
      "risk": { "secret": "possible", "network": "provider-dependent", "sideEffect": "external-provider-state" },
      "probe": { "id": "aili.mcp.runtime", "kind": "runtime-component", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "mcp.runtime" }
    },
    {
      "id": "context.compaction",
      "provider": "aili-context-runtime",
      "adapterOwner": "src/runtime/context-runtime.ts with @narumitw/pi-codex-compact@0.50.0 and complete upstream/billion-context-pi@0.1.34",
      "platforms": ["linux"],
      "class": "required",
      "risk": { "secret": "possible", "network": "provider-dependent", "sideEffect": "session-context-and-provider-state" },
      "probe": { "id": "aili.context.runtime", "kind": "runtime-component", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "context.compaction" }
    },
    {
      "id": "provider.retry",
      "provider": "aili-provider-retry",
      "adapterOwner": "src/runtime/provider-retry.ts adapted from @narumitw/pi-retry@0.31.0; Pi 0.84.1 owns attempt budget/backoff",
      "platforms": ["linux"],
      "class": "required",
      "risk": { "secret": "possible", "network": "provider-dependent", "sideEffect": "provider-turn-abort-classification" },
      "probe": { "id": "aili.provider.retry", "kind": "runtime-component", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "provider.retry" }
    },
    {
      "id": "memory.provider.mempalace",
      "provider": "aili-core",
      "adapterOwner": "src/runtime/mcp.ts via pi-mcp-adapter@2.23.0",
      "platforms": ["linux"],
      "class": "optional",
      "risk": { "secret": "possible", "network": "provider-dependent", "sideEffect": "external-provider-state" },
      "probe": { "id": "aili.memory.mempalace", "kind": "optional-pack", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "memory.provider.mempalace" },
      "optionalPack": {
        "id": "mempalace-memory",
        "missingBehavior": "MemPalace durable memory is unavailable; no fallback store is created.",
        "enableGuidance": "Enable only after the MCP/MemPalace configuration and operation gates are satisfied.",
        "sideEffects": ["external Palace reads and writes through MCP"],
        "futureOwner": "aili-pi"
      }
    },
    {
      "id": "web.fetch",
      "provider": "pi-web-access",
      "adapterOwner": "pi-web-access@0.13.0",
      "platforms": ["linux"],
      "class": "required",
      "risk": { "secret": "possible", "network": "provider-dependent", "sideEffect": "external-read-local-cache-and-process" },
      "probe": { "id": "pi-web-access.extension", "kind": "extension-load", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "web.fetch" }
    },
    {
      "id": "browser.qa",
      "provider": "optional-pack:browser-qa",
      "adapterOwner": "optional-pack:browser-qa",
      "platforms": ["linux"],
      "class": "optional",
      "risk": { "secret": "possible", "network": "possible", "sideEffect": "browser-process" },
      "probe": { "id": "pack.browser-qa", "kind": "optional-pack", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "browser.qa" },
      "optionalPack": {
        "id": "browser-qa",
        "missingBehavior": "Browser-rendered behavior cannot be inspected.",
        "enableGuidance": "Install a separately accepted browser QA provider and browser runtime.",
        "sideEffects": ["browser installation", "browser process", "possible network access"],
        "futureOwner": "provider adapter"
      }
    },
    {
      "id": "artifact.store",
      "provider": "optional-pack:artifact-runtime",
      "adapterOwner": "optional-pack:artifact-runtime",
      "platforms": ["linux"],
      "class": "optional",
      "risk": { "secret": "possible", "network": "none", "sideEffect": "local-write" },
      "probe": { "id": "pack.artifact-runtime.store", "kind": "optional-pack", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "artifact.store" },
      "optionalPack": {
        "id": "artifact-runtime",
        "missingBehavior": "Durable artifact storage is unavailable.",
        "enableGuidance": "Install only the artifact provider required by the accepted task.",
        "sideEffects": ["local files", "possible toolchain installation"],
        "futureOwner": "artifact provider adapter"
      }
    },
    {
      "id": "artifact.transform",
      "provider": "optional-pack:artifact-runtime",
      "adapterOwner": "optional-pack:artifact-runtime",
      "platforms": ["linux"],
      "class": "optional",
      "risk": { "secret": "possible", "network": "possible", "sideEffect": "process-and-write" },
      "probe": { "id": "pack.artifact-runtime.transform", "kind": "optional-pack", "timeoutMs": 1000 },
      "dependentSkills": { "source": "manifests/skill-compatibility.json", "capability": "artifact.transform" },
      "optionalPack": {
        "id": "artifact-runtime",
        "missingBehavior": "Format-specific artifact transformation is unavailable.",
        "enableGuidance": "Install only the formatter/toolchain required by the accepted task.",
        "sideEffects": ["process execution", "local files", "possible downloads"],
        "futureOwner": "artifact provider adapter"
      }
    }
  ]
}
