A mandate is an artifact, not a setting.
Bounded delegation is a capability inside Execution Authorization, not a category of its own. A Task Contract frames the chain; it replaces no part of it. Each step still produces its own single-use Execution Grant and its own Action Receipt.
Design
TaskContractV1
The contract binds, in one signed object: the tenant, the actors allowed to act under it, the Guardian and audience it is addressed to, the revision, the steps, their constraints, the budget and its units, the validity window, the policy and manifest in force, and the revocation counter.
taskId · revisionIdentity and version. An approved contract is never edited in place: any change to a step yields a new revision that has to be reviewed again.
tenant · guardianId · audienceWho it belongs to and which single execution point may consume it. One mandate addresses one Guardian.
actors[]Each actor binds an identifier to a key and its thumbprint. A step is claimed by proving possession of that key against a fresh challenge, consumed atomically.
authoritySet per operation by the protocol. The caller neither chooses it nor may degrade it within the same request, and an approved mandate never lowers a step's threshold.
steps[]Each step names its canonical operation, its provider, its resource list, the digest of its exact parameters, and carries maxUses fixed at one.
budgetDurable and atomic per tenant, task, revision and step. Committed means consumed plus anything reserved whose outcome is pending or uncertain, so one grant cannot reserve twice.
issuedAt · expiresAtThe window. After it no new step is sent; there is no grace period and no renewal from inside the task.
policyVersion · revocationVersionThe signed local policy in force and the revocation counter. If storage or revocation is unavailable, no new effects go out.
The intersection still applies
effective permission = mandate ∩ grant ∩ signed local policy ∩ adapter constraints ∩ budget ∩ identity ∩ validity and revocation
The cloud never widens the local ceiling. A mandate is one more term in the intersection, never a way around it, and the Guardian enforces all of them before a provider is contacted.
State machine
A task occupies exactly one state, and the ledger records the transition rather than the intent.
- draft
- approved
- running
- paused
- completed
- revoked
- expired
Deliberate exclusions
- No subdelegation. One mandate, one Guardian, one budget; a task cannot hand part of itself to another actor or raise a second execution point.
- No open-ended effects. A step without a canonical operation and a parameter digest is not a step.
- No standing authorization. Every mandate expires, and expiry is not renewable from inside the task.
- What the actor reads — documents, tool output, web content, memory — is input, never authority. It cannot extend the contract.
- The adapter determines the canonical effect and the prestate. An agent's summary, a read-only schema or a destination taken from content is not accepted as truth.
The reader's role
The local reader is explanatory. In this profile an isolated finding, an abstention, a non-evaluation or a partial read does not block, revoke or force additional approvals on an exact effect already approved and permitted. Authority is never raised to compensate for an alert, and it is never lowered because no alert appeared. Identity, signature, budget, precondition and revocation keep failing closed — this is not permission to execute without controls.
Status
Design. The schema and its invariants exist and are covered by tests. No delegated mandate has been executed against a real provider, so this profile is labelled simulated. A result is never extrapolated from a mock or from a different connector, and a legacy connector tested with MFA or quorum does not credit multi-step delegation.
Open questions
Canonicalization details, size and count limits, clock handling and the rejection of unknown fields are fixed before any runtime is built, and published as versioned test vectors alongside the verifier. The verifier ships before the profile: nothing is emitted that cannot yet be verified independently.