-
Notifications
You must be signed in to change notification settings - Fork 0
docs: add public repo front door and missing execution contracts #14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
97d96de
docs(agentplane): add root README for public execution-control surface
mdheller 397200c
docs(agentplane): add replay boundary note for public contract
mdheller b111464
schema(agentplane): add ValidationArtifact public contract
mdheller 9512996
schema(agentplane): add PlacementDecision public contract
mdheller be7306b
Merge branch 'main' into chatgpt/agentplane-public-surface-delta
mdheller File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| # Replay boundary | ||
|
|
||
| This document defines what the current public `ReplayArtifact` means in `agentplane` and, just as importantly, what it does **not** mean. | ||
|
|
||
| ## Current replay contract | ||
|
|
||
| `ReplayArtifact` records the minimum inputs needed to attempt deterministic re-entry: | ||
|
|
||
| - bundle path | ||
| - bundle revision when available | ||
| - artifact directory | ||
| - policy pack reference and hash when available | ||
| - required secret names (never secret values) | ||
| - upstream workspace evidence references when available | ||
|
|
||
| This is an **input reconstruction contract**, not a claim that arbitrary side effects are automatically safe to reissue. | ||
|
|
||
| ## What is replayed today | ||
|
|
||
| At the current public contract level, replay means: | ||
|
|
||
| 1. re-identifying the bundle and bundle revision, | ||
| 2. re-establishing the evidence directory, | ||
| 3. recovering policy pointers and required secret names, | ||
| 4. recovering upstream workspace evidence references, | ||
| 5. providing enough information for a runner or operator to attempt a controlled re-run. | ||
|
|
||
| ## What is not promised today | ||
|
|
||
| The current public contract does **not** promise all of the following: | ||
|
|
||
| - checkpoint-level continuation semantics, | ||
| - automatic side-effect suppression across arbitrary backends, | ||
| - cryptographic attestation of replay safety, | ||
| - full authority / delegation reconstruction, | ||
| - complete version-set pinning across runtime, model, connector, schema, and policy layers. | ||
|
|
||
| Those may be added later, but they are not implied by the current `ReplayArtifact` alone. | ||
|
|
||
| ## Side-effect rule | ||
|
|
||
| Until a stronger replay model is published, external effects should be treated conservatively: | ||
|
|
||
| - effects may require explicit operator review before reissue, | ||
| - secret values must never be embedded in replay artifacts, | ||
| - policy and workspace evidence references should be reused rather than rediscovered, | ||
| - backends should prefer idempotent or evidence-first operations when possible. | ||
|
|
||
| ## Relationship to receipts | ||
|
|
||
| The repo now also contains receipt-oriented examples under `examples/receipts/`. | ||
| Those examples enrich the broader runtime evidence story, but they do not replace the narrower `ReplayArtifact` contract. | ||
|
|
||
| ## Relationship to governance | ||
|
|
||
| `docs/runtime-governance/control-matrix-integration.md` extends the evidence model toward row-level governance and incident linkage. | ||
| That document should be read as governance integration work layered above the current replay contract, not as proof that the replay contract already includes full control-loop semantics. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| { | ||
| "$schema": "https://json-schema.org/draft/2020-12/schema", | ||
| "title": "Agentplane Placement Decision v0.1", | ||
| "type": "object", | ||
| "required": [ | ||
| "kind", | ||
| "capturedAt", | ||
| "backendIntent", | ||
| "requiresKvm", | ||
| "chosenExecutor", | ||
| "sshRef", | ||
| "caps", | ||
| "rejected" | ||
| ], | ||
| "properties": { | ||
| "kind": { | ||
| "const": "PlacementDecision" | ||
| }, | ||
| "capturedAt": { | ||
| "type": "string", | ||
| "format": "date-time" | ||
| }, | ||
| "backendIntent": { | ||
| "type": "string", | ||
| "enum": [ | ||
| "qemu", | ||
| "microvm", | ||
| "lima-process", | ||
| "fleet" | ||
| ] | ||
| }, | ||
| "requiresKvm": { | ||
| "type": "boolean" | ||
| }, | ||
| "chosenExecutor": { | ||
| "type": "string" | ||
| }, | ||
| "sshRef": { | ||
| "type": "string" | ||
| }, | ||
| "caps": { | ||
| "type": "object" | ||
| }, | ||
| "rejected": { | ||
| "type": "array", | ||
| "items": { | ||
| "type": "object", | ||
| "properties": { | ||
| "name": { | ||
| "type": [ | ||
| "string", | ||
| "null" | ||
| ] | ||
| }, | ||
| "sshRef": { | ||
| "type": [ | ||
| "string", | ||
| "null" | ||
| ] | ||
| }, | ||
| "reason": { | ||
| "type": [ | ||
| "string", | ||
| "null" | ||
| ] | ||
| } | ||
| }, | ||
| "additionalProperties": false | ||
| } | ||
| } | ||
| }, | ||
| "additionalProperties": false | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,98 @@ | ||
| { | ||
| "$schema": "https://json-schema.org/draft/2020-12/schema", | ||
| "title": "Agentplane Validation Artifact v0.1", | ||
| "type": "object", | ||
| "required": [ | ||
| "kind", | ||
| "bundle", | ||
| "capturedAt", | ||
| "valid", | ||
| "checks" | ||
| ], | ||
| "properties": { | ||
| "kind": { | ||
| "const": "ValidationArtifact" | ||
| }, | ||
| "bundle": { | ||
| "type": "string" | ||
| }, | ||
| "bundlePath": { | ||
| "type": [ | ||
| "string", | ||
| "null" | ||
| ] | ||
| }, | ||
| "capturedAt": { | ||
| "type": "string", | ||
| "format": "date-time" | ||
| }, | ||
| "valid": { | ||
| "type": "boolean" | ||
| }, | ||
| "lane": { | ||
| "type": [ | ||
| "string", | ||
| "null" | ||
| ], | ||
| "enum": [ | ||
| "staging", | ||
| "prod", | ||
| null | ||
| ] | ||
| }, | ||
| "checks": { | ||
| "type": "array", | ||
| "items": { | ||
| "type": "object", | ||
| "required": [ | ||
| "name", | ||
| "status" | ||
| ], | ||
| "properties": { | ||
| "name": { | ||
| "type": "string" | ||
| }, | ||
| "status": { | ||
| "enum": [ | ||
| "pass", | ||
| "fail", | ||
| "warn" | ||
| ] | ||
| }, | ||
| "message": { | ||
| "type": [ | ||
| "string", | ||
| "null" | ||
| ] | ||
| } | ||
| }, | ||
| "additionalProperties": false | ||
| } | ||
| }, | ||
| "bundleMetadata": { | ||
| "type": "object", | ||
| "properties": { | ||
| "name": { | ||
| "type": [ | ||
| "string", | ||
| "null" | ||
| ] | ||
| }, | ||
| "version": { | ||
| "type": [ | ||
| "string", | ||
| "null" | ||
| ] | ||
| }, | ||
| "createdAt": { | ||
| "type": [ | ||
| "string", | ||
| "null" | ||
| ] | ||
| } | ||
| }, | ||
| "additionalProperties": false | ||
| } | ||
| }, | ||
| "additionalProperties": false | ||
| } | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new schema requires
capturedAt,valid, andchecks, butscripts/validate_bundle.pycurrently writesvalidatedAtandresultand does not emit achecksarray (see thereportobject in that script). This means the validation artifact produced by the existing workflow cannot satisfy the published contract, so any schema-based validation step will fail for every run.Useful? React with 👍 / 👎.