{
  "version": "pilzradar-1.0",
  "owner": "TH Analytica / Thomas Hullin",
  "website": "https://pilzradar.online",
  "lastUpdated": "2026-10-20",
  "formatStatus": "project-specific; not a web standard",
  "humanApprovalRequired": true,
  "autonomousPayments": false,
  "autonomousLogin": false,
  "autonomousFormSubmission": false,
  "outboundCommunicationRequiresAgentCapability": true,
  "outboundCommunicationRequiresUserAuthorization": true,
  "status": "documented-source-reviewed; runtime-not-measured",
  "discoveryOnly": true,
  "documentationIsNotProofOfEnforcement": true,
  "outcomeGuarantees": false,
  "identity": {
    "unauthenticatedScope": "public-read-only",
    "externalAgentIdentity": "not-supported",
    "roles": [
      "public",
      "plus",
      "internal-family"
    ]
  },
  "permissions": {
    "allowedActions": [
      "read-methodology",
      "open-free",
      "read-pricing"
    ],
    "conditionalActions": [
      "user-initiated analysis after server entitlement and quota checks"
    ],
    "prohibitedActions": [
      "autonomous-payment",
      "autonomous-login",
      "autonomous-form-submission",
      "access-other-user-data"
    ],
    "financialLimits": "Application quotas and shared reservation configured in backend; no agent spending authority."
  },
  "agenticControlContainment": {
    "operationalApproval": "not-granted",
    "controls": [
      {
        "id": "ACC-01",
        "name": "Authority Boundary",
        "owner": "Thomas Hullin",
        "applicability": "application-controls-only",
        "policyBoundary": "Server resolves identity and entitlement before paid analysis.",
        "source": "api/analyze.js; lib/entitlements.js",
        "evidence": {
          "documented": true,
          "implemented": "source-reviewed-partial",
          "tested": "agent-runtime-not-measured",
          "humanReviewed": "not-claimed"
        },
        "evidenceDate": "2026-10-20"
      },
      {
        "id": "ACC-02",
        "name": "Communication Boundary",
        "owner": "Thomas Hullin",
        "applicability": "application-controls-only",
        "policyBoundary": "Fixed OpenAI endpoint, no model tools. Infrastructure-wide egress containment not measured.",
        "source": "api/analyze.js; lib/ai-budget.js",
        "evidence": {
          "documented": true,
          "implemented": "source-reviewed-partial",
          "tested": "agent-runtime-not-measured",
          "humanReviewed": "not-claimed"
        },
        "evidenceDate": "2026-10-20"
      },
      {
        "id": "ACC-03",
        "name": "Goal Boundary",
        "owner": "Thomas Hullin",
        "applicability": "application-controls-only",
        "policyBoundary": "Two bounded analysis modes, structured output, limited tokens and budget reservation.",
        "source": "lib/analysis.js; lib/ai-budget.js",
        "evidence": {
          "documented": true,
          "implemented": "source-reviewed-partial",
          "tested": "agent-runtime-not-measured",
          "humanReviewed": "not-claimed"
        },
        "evidenceDate": "2026-10-20"
      },
      {
        "id": "ACC-04",
        "name": "Privilege/Credential Escalation",
        "owner": "Thomas Hullin",
        "applicability": "application-controls-only",
        "policyBoundary": "Credentials stay server-side; account privilege is resolved by server.",
        "source": "lib/customer-auth.js; lib/entitlements.js",
        "evidence": {
          "documented": true,
          "implemented": "source-reviewed-partial",
          "tested": "agent-runtime-not-measured",
          "humanReviewed": "not-claimed"
        },
        "evidenceDate": "2026-10-20"
      },
      {
        "id": "ACC-05",
        "name": "Collective/Emergent Behaviour",
        "owner": "Thomas Hullin",
        "applicability": "not-applicable",
        "policyBoundary": "No agent delegation, child agents or shared agent memory implemented.",
        "source": null,
        "evidence": {
          "documented": true,
          "implemented": "not-applicable",
          "tested": "agent-runtime-not-measured",
          "humanReviewed": "not-claimed"
        },
        "evidenceDate": "2026-10-20"
      },
      {
        "id": "ACC-06",
        "name": "Human Approval/Oversight",
        "owner": "Thomas Hullin",
        "applicability": "application-controls-only",
        "policyBoundary": "User-operated UI and server authorization; no external agent approval-token protocol.",
        "source": "api/analyze.js; api/checkout.js",
        "evidence": {
          "documented": true,
          "implemented": "source-reviewed-partial",
          "tested": "agent-runtime-not-measured",
          "humanReviewed": "not-claimed"
        },
        "evidenceDate": "2026-10-20"
      },
      {
        "id": "ACC-07",
        "name": "Auditability",
        "owner": "Thomas Hullin",
        "applicability": "application-controls-only",
        "policyBoundary": "Usage reservations and payment event records; tamper-proof general agent audit log not implemented.",
        "source": "lib/revenue-store.js",
        "evidence": {
          "documented": true,
          "implemented": "source-reviewed-partial",
          "tested": "agent-runtime-not-measured",
          "humanReviewed": "not-claimed"
        },
        "evidenceDate": "2026-10-20"
      },
      {
        "id": "ACC-08",
        "name": "Containment/Revocation",
        "owner": "Thomas Hullin",
        "applicability": "application-controls-only",
        "policyBoundary": "Logout, account eligibility and feature flags exist. Already-sent provider calls are not revoked; propagation latency not measured.",
        "source": "api/logout.js; lib/entitlements.js; config/beta.json",
        "evidence": {
          "documented": true,
          "implemented": "source-reviewed-partial",
          "tested": "agent-runtime-not-measured",
          "humanReviewed": "not-claimed"
        },
        "evidenceDate": "2026-10-20"
      },
      {
        "id": "ACC-09",
        "name": "Technical Policy Enforcement",
        "owner": "Thomas Hullin",
        "applicability": "application-controls-only",
        "policyBoundary": "Backend authentication, quotas and schema validation are independent of model instructions. This metadata is not a policy enforcement engine.",
        "source": "api/analyze.js; lib/ai-budget.js",
        "evidence": {
          "documented": true,
          "implemented": "source-reviewed-partial",
          "tested": "agent-runtime-not-measured",
          "humanReviewed": "not-claimed"
        },
        "evidenceDate": "2026-10-20"
      }
    ]
  },
  "runtimeControls": {
    "source": "api/analyze.js",
    "timeoutMs": 25000,
    "automaticRetries": 0,
    "maxOutputTokens": 1800,
    "localRateLimit": "12 attempts per 60 seconds per address per warm instance; not a global distributed limiter",
    "customerQuota": "6 units per UTC day, 60 per UTC month; habitat uses 2 units",
    "limitations": "Internal-family usage limiter is per warm instance. Durable shared budget is separately reserved. Live database configuration not revalidated by this publication."
  },
  "revocationAndIncident": {
    "humanHandover": "thomas@th-analytica.com",
    "incidentReport": "https://pilzradar.online/semantic-hub#incident",
    "emergencyProcedure": "Operator disables affected function, reviews protected logs and rotates affected credentials when required. No automated incident-response SLA is claimed.",
    "stopLatency": "not-measured"
  }
}
