-
Notifications
You must be signed in to change notification settings - Fork 0
feat(autonomy): autonomy plugin — category, topology contracts, guided-setup v0 (WP1) #333
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
14 commits
Select commit
Hold shift + click to select a range
fc3eb8c
feat(autonomy): add autonomy category + plugin scaffold (WP1 phases 1-2)
kyle-sexton 92d676a
feat(autonomy): topology contract docs (WP1 phase 3)
kyle-sexton 1b8c182
feat(autonomy): guided-setup v0 discovery skill + evals (WP1 phase 4)
kyle-sexton e56cd9d
feat(autonomy): standing fleet-name gate in contract validator (WP1 p…
kyle-sexton af68164
feat(autonomy): gate vendor tokens in reference/ via standing validator
kyle-sexton c9a59c9
docs(topics): advance WP1 PLAN phases 1-5 to DONE
kyle-sexton 27312c8
fix(autonomy): normalize the binding version field to schema_version
kyle-sexton 0f0d012
fix(autonomy): org rung in check, root-anchored writes, narrow manife…
kyle-sexton d500337
fix(autonomy): make the binding ladder an additive layer merge
kyle-sexton 01a24bb
fix(autonomy): nullable roles + org binding document resolution
kyle-sexton 057fcef
fix(autonomy): check eval covers the org rung
kyle-sexton 9fa88cd
fix(autonomy): layer summary includes the org rung
kyle-sexton 5a168c1
fix(autonomy): align purpose sentence and README with the four-layer …
kyle-sexton 62f21bd
fix(autonomy): serialize binding keys + standardize per-layer file name
kyle-sexton 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
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
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,12 @@ | ||
| { | ||
| "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", | ||
| "name": "autonomy", | ||
| "version": "0.1.0", | ||
| "description": "Governed autonomous agent operation: role-topology, binding-seam, and wiring-vs-advisor contracts for climbing the AI-adoption ladder, plus a guided-setup skill that discovers an adopting org's state and writes its schema-versioned binding.", | ||
| "author": { | ||
| "name": "Melodic Software", | ||
| "email": "info@melodicsoftware.com" | ||
| }, | ||
| "license": "MIT", | ||
| "keywords": ["autonomy", "adoption", "governance", "topology", "binding", "guided-setup"] | ||
| } |
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,44 @@ | ||
| # autonomy | ||
|
|
||
| Governed autonomous agent operation. This plugin is the capability-distribution home for the | ||
| AI-adoption-ladder contract set: it ships the tool-agnostic contracts an adopting org binds to | ||
| its own repositories, tools, and policies, plus a guided-setup skill that discovers the org's | ||
| state and records that binding. | ||
|
|
||
| ## Shipped capability (0.1.0) | ||
|
|
||
| - **Topology contracts** (`reference/`): role topology for the repositories an adoption spans, | ||
| the binding-seam shape that maps contract roles to an org's real instances, and the | ||
| wiring-vs-advisor principle governing how setup lands changes. | ||
| - **Guided setup** (`/autonomy:setup`): discovery-first interview of the adopting org's state — | ||
| role homes, substrate availability, budget posture — writing a schema-versioned binding under | ||
| `.claude/autonomy/` as reviewable changes. Never assumes any particular org or repo shape. | ||
|
|
||
| ## Roadmap (deferred, trigger-gated) | ||
|
|
||
| Each capability below lands with its own work package; none ships before its contracts are | ||
| locked (no step-skipping — trust before scale). | ||
|
|
||
| | Capability | Trigger | | ||
| |---|---| | ||
| | Telemetry contract + setup slice | Telemetry work package build lands. | | ||
| | Return-accounting convention + capture slice | Return-accounting work package build lands. | | ||
| | Trigger/dispatch adapters | Trigger-layer work package build lands. | | ||
| | Guardrail matrix + sandbox-ladder binding | Guardrails work package build lands. | | ||
| | Standing-routine catalog + v1 definitions | Routines work package build lands. | | ||
| | Runner charter execution pack | The runner build trigger fires (charter's own conditions). | | ||
|
|
||
| ## Trigger register (plugin-scoped) | ||
|
|
||
| | Trigger | Action | | ||
| |---|---| | ||
| | Role vocabulary changes in `reference/role-topology.md` | Update the org-policy home's binding instance doc to the new vocabulary version. | | ||
| | A second plugin consumes `.claude/autonomy/` config | Graduate the binding schema to a versioned concern contract per the marketplace's concern-named-folder convention. | | ||
|
|
||
| ## Configuration | ||
|
|
||
| Setup writes tracked config to `.claude/autonomy/` in the consuming repo (concern-named — the | ||
| config outlives any plugin restructure). Personal overlays follow the marketplace overlay | ||
| convention: `.claude/autonomy/**/*.local.*` stays gitignored; layers resolve per the | ||
| binding-seam ladder — user-global → org binding (when pointed) → project → local overlay — | ||
| additively. |
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,53 @@ | ||
| # Binding seam | ||
|
|
||
| Normative contract for how an adopting org maps the roles in `role-topology.md` (and every | ||
| per-capability contract that follows) to its real instances — repositories, trackers, tools, | ||
| policies. The contract defines the SHAPE of a binding; every concrete value is org-supplied. | ||
|
|
||
| ## Binding shape | ||
|
|
||
| A binding is a written, schema-versioned record mapping contract vocabulary to org instances: | ||
| each topology role to a repository, each capability's seam to the org's chosen instance, plus | ||
| the org's declared postures (budget, substrate availability). Bindings carry a | ||
| `schema_version` field from v0 — consumers read the version before the body, and schema | ||
| changes are reviewed migrations. A role MAY be bound to null: an unborn role (one whose birth | ||
| trigger has not fired) or a role the org has no instance for stays explicitly unbound — | ||
| consumers treat null as absent capability and never invent an instance. | ||
|
|
||
| The org-policy-home pointer is a repository locator that MAY carry an explicit document path | ||
| (`<repo-locator>#<path>`). Absent a path, the consumer discovers the binding instance | ||
| document at bind time (by its schema-versioned binding shape, per the org repo's own layout) | ||
| and PERSISTS the resolved path alongside the pointer so later fetches are deterministic. | ||
|
|
||
| ## Resolution ladder | ||
|
|
||
| A consumer resolves the effective binding as an ADDITIVE layer merge — a later layer adds to | ||
| or refines earlier layers per value, never wholesale replacement: | ||
|
|
||
| 1. **User-global base** — the consumer's own machine-level binding config. | ||
| 2. **Org binding at the org-policy home** — the org's binding instance document. Reaching this | ||
| layer requires an org-policy-home pointer, which persists in repo-local or user-global | ||
| config; the fetch mechanism is the hosting platform's own CLI with the consumer's own | ||
| authentication (the contract grants no credentials). | ||
| 3. **Repo-local binding** — tracked config in the consuming repository (the concrete location | ||
| is a tool-specific detail the setup capability documents). Per value, this layer overrides | ||
| the org binding. | ||
| 4. **Local overlay** — the consumer's untracked personal refinement of the repo-local layer. | ||
|
|
||
| A value no layer answers falls to the **setup interview**, which asks and persists the answer | ||
| into the repo-local layer so the next resolution is deterministic. | ||
|
|
||
| Terminal default when no org exists (solo adopter, no org-policy home): the merge degenerates | ||
| to the local layers, populated with free-tier defaults — zero paid dependencies. | ||
|
|
||
| ## Known limitation | ||
|
|
||
| The org-policy-home pointer can go stale when an org moves its policy home. A consumer that | ||
| fails to fetch the org layer surfaces that failure (warned as not-considered) and falls to the | ||
| remaining layers or the interview rather than silently reusing a cached org binding; setup | ||
| re-records the pointer. | ||
|
|
||
| ## Layout convention | ||
|
|
||
| Each capability this plugin ships lands exactly one contract document in `reference/` with its | ||
| owning work package. The convention states shape only — it enumerates no future filenames. | ||
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,38 @@ | ||
| # Role topology | ||
|
|
||
| Normative contract for the repository roles an autonomy adoption spans. Contract text — here | ||
| and in every sibling contract document — names roles only; the mapping from each role to an | ||
| adopting org's real repository lives in that org's binding instance document (see | ||
| `binding-seam.md`). | ||
|
|
||
| ## Roles | ||
|
|
||
| | Role | Owns | | ||
| |---|---| | ||
| | capability-distribution home | The distributable capabilities and their contract documents — this plugin's own home. | | ||
| | CI-orchestration home | Reusable pipeline execution logic: event handlers, emission steps, verification lanes. | | ||
| | settings-as-code home | Declarative platform settings: labels, permissions, runner-policy admission, repository configuration. | | ||
| | org-policy home | Org-wide policy and conventions, including the org's binding instance document. | | ||
| | runner-execution home | The autonomous-runner execution substrate. **Unborn**: this role is created only when the runner charter's build trigger fires; until then no repository holds it. | | ||
|
|
||
| ## Adapter split rule | ||
|
|
||
| A signal adapter (an event or schedule that starts governed autonomous work) splits by role: | ||
|
|
||
| - **Handler logic** — the executable steps a pipeline runs — lands in the CI-orchestration home. | ||
| - **Enabling settings** — labels, permissions, admission policy that let the handler fire — | ||
| land in the settings-as-code home. Admission-policy changes are reviewed contract changes, | ||
| never silent edits. | ||
|
|
||
| ## Composition stance | ||
|
|
||
| This plugin composes existing capability seams rather than duplicating them: | ||
|
|
||
| - the work-item queue, lease, and dispatch seam; | ||
| - deterministic guardrail hooks; | ||
| - verification gates; | ||
| - session observability. | ||
|
|
||
| A capability here that near-duplicates a capability an adopting deployment already has is a | ||
| defect: compose the seam, or route a change to the seam's own home. Orchestration that | ||
| composes existing capabilities is the sanctioned model. |
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.