Advanced Trust Debt

Status: Draft (Extension — v1.1 Preview)
Last Updated: 2026-02-26
Not required for ACGP v1.0 Standard or Safety-Critical conformance.

Abstract

The Advanced Trust Debt extension defines the trust debt provider model beyond the default deterministic provider. It introduces public provider descriptors, optional opaque attestations, configurable decay and compounding hooks, and private provider semantics while preserving the observable trust-debt constraints defined in ACGP-3.

Key Concepts (Preview)

  • Observable/public boundary: Provider identity, visibility, fail semantics, and optional attestation are public.
  • Private internals: Accumulation, decay, and compounding formulas MAY remain private.
  • Default provider: acgp.core.default@1 preserves the deterministic baseline.
  • TrustDebtProvider interface: Pluggable provider contract for domain-tuned debt models while preserving auditable outputs.

Hook Point

Core interface in ACGP-3: TrustDebtProvider.

Status

Implementations MAY provide this interface. If not provided, the core hook defaults to acgp.core.default@1. Conformance-bearing behavior is defined by ACGP-3 observable semantics plus the default provider rules.

Interface Signature

from typing import Protocol, Optional
from dataclasses import dataclass
from datetime import datetime

@dataclass
class TrustDebtState:
    current_debt: float
    last_eval_time: Optional[datetime]
    decay_model: str          # "linear", "exponential", "piecewise"
    recovery_credits: float

class TrustDebtProvider(Protocol):
    """Pluggable trust debt model for domain-tuned debt semantics."""

    def accumulate(
        self,
        current: TrustDebtState,
        decision: str,
        severity: Optional[str] = None,
    ) -> TrustDebtState:
        """Compute new debt state after an intervention."""
        ...

    def decay(
        self,
        current: TrustDebtState,
        eval_time: datetime,
    ) -> TrustDebtState:
        """Apply decay function to debt state."""
        ...

    def apply_recovery(
        self,
        current: TrustDebtState,
        safe_evaluations: int,
    ) -> TrustDebtState:
        """Apply recovery credits for sustained safe behavior."""
        ...

Public Descriptor [NORMATIVE]

Blueprints MAY declare a trust debt provider using public metadata only:

trust_debt:
    provider:
        id: "urn:acgp:ext:trust-debt-private@1"
        visibility: private
        fail_mode: deny
        attestation:
            digest: "sha256:..."
            issued_by: "did:example:steward"

The public protocol does not require provider formulas, compounding tables, or recovery logic to be disclosed.

Reserved Wire Field

Field Type Location Description
trust_debt_extended object EVAL payload Optional provider identifier, visibility, and opaque attestation metadata

Minimal Forward-Compatible Example

{
    "trace_id": "trace-12345",
    "blueprint_id": "finance_qa@2.1",
    "governance_tier": "GT-2",
    "ctq_dimensions": {
        "reasoning_quality": {
            "score": 0.89,
            "weight": 0.25,
            "status": "evaluated",
            "contributors": ["rationale_clarity", "plan_completeness"]
        },
        "knowledge_grounding": {
            "score": 0.87,
            "weight": 0.20,
            "status": "evaluated",
            "contributors": ["citation_coverage"]
        },
        "ethical_alignment": {
            "score": 0.92,
            "weight": 0.20,
            "status": "evaluated",
            "contributors": ["fairness_review"]
        },
        "tool_safety": {
            "score": 0.90,
            "weight": 0.20,
            "status": "evaluated",
            "contributors": ["permission_check"]
        },
        "context_awareness": {
            "score": 0.88,
            "weight": 0.15,
            "status": "evaluated",
            "contributors": ["situational_fit"]
        }
    },
    "ctq_score": 0.8915,
    "risk_score": 0.1085,
    "tripwires_triggered": [],
    "intervention": "ok",
    "flagged": false,
    "runtime_posture": "normal",
    "review_required": false,
    "trust_debt": {
        "provider_id": "urn:acgp:ext:trust-debt-private@1",
        "pre": 1.2000,
        "delta": 0.0000,
        "post": 1.2000,
        "thresholds_crossed": []
    },
    "trust_debt_extended": {
        "provider": {
            "id": "urn:acgp:ext:trust-debt-private@1",
            "visibility": "private"
        },
        "attestation": {
            "digest": "sha256:...",
            "issued_by": "did:example:steward"
        }
    }
}

Private providers MAY withhold formulas, compounding logic, and recovery internals, but MUST emit the core observable EVAL trust-debt fields defined in ACGP-3.

Private providers MUST preserve the ACGP-3 observable constraints: trust debt participates in canonical ordering, may tighten scrutiny, and must never relax an intervention.