Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ecosystem-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
repository: 8Dionysus/aoa-skills
ref: 9b009123e88cd864ef11147a6d9cba31a3bf81a5
ref: 86720fe6aed8c6d59a8d938209032787f2670d09
path: .deps/aoa-skills
token: ${{ secrets.AOA_ECOSYSTEM_READ_TOKEN || github.token }}

Expand Down
8 changes: 8 additions & 0 deletions DESIGN.AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ Architecture belongs to `DESIGN.md`. Commands and recovery procedures belong
to `PIPELINE.md`. Naming belongs to `NAMING.md`. Current status belongs to
live diagnostics.

The two advertised skill routers describe operations and required
capabilities. `skills/port.manifest.json` keeps admitted owner packages
separate from consumer exposures; the current Codex user profile is one
explicit exposure. A reader may inspect a neutral package without installing
it. Model or reasoning configuration does not change its evidence, authority,
or result contract. Codex hook events, JSONL ingress, app-server calls, and
live compaction remain under `session-memory.adapters.codex`.

## Agent Access Thesis

An agent should receive the smallest evidence-bearing packet that can answer
Expand Down
58 changes: 58 additions & 0 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,64 @@ explicit user-level installation. Other bundle skills stay local as focused
procedures. User skill links are host state and are not part of portable source
readiness.

## Scoped session-memory skill interface overlay

When an existing workspace runtime has a valid
`diagnostics/install-profile.json`, a source checkout may be applied through
the bounded skill-interface installer. This route updates the capability home,
generated capability read models, the two advertised session-memory skill
packages, and their package metadata. It does not run the full kernel installer
or rewrite the base install profile, sessions, generated runtime stores, maps,
hooks, systemd files, or user-level skill links.

The source checkout and the external `aoa-skills` contract checkout are named
explicitly. The source must be a clean Git checkout and pass the owner
validator before any target path is staged:

```bash
python3 scripts/install_skill_interface.py check \
--source-aoa-root /absolute/path/to/source-checkout \
--skills-root /absolute/path/to/aoa-skills \
--workspace-root /absolute/path/to/workspace \
--aoa-root /absolute/path/to/workspace/.aoa
```

Review the JSON plan, then authorize replacement of the selected component with
`install --force` (the `execute` spelling is an alias):

```bash
python3 scripts/install_skill_interface.py install --force \
--source-aoa-root /absolute/path/to/source-checkout \
--skills-root /absolute/path/to/aoa-skills \
--workspace-root /absolute/path/to/workspace \
--aoa-root /absolute/path/to/workspace/.aoa
```

The default closure contains the global router and evidence route. A further
graph-declared skill can be added by repeating `--skill <name>`; each selected
package is copied recursively. The installer records a separate
`diagnostics/skill-projection-install.json` receipt and a durable bounded
backup. Its claim is limited to source provenance and selected-byte parity;
the receipt does not prove prompt selection, invocation, route quality, runtime
health, or downstream outcomes.

Rollback is an explicit receipt-revalidated operation and remains available
when the candidate source or `aoa-skills` checkout is unavailable:

```bash
python3 scripts/install_skill_interface.py rollback \
--workspace-root /absolute/path/to/workspace \
--aoa-root /absolute/path/to/workspace/.aoa
```

Rollback verifies the receipt, base profile anchor, selected closed allowlist,
current after-state, and durable backup before restoring the selected paths and
the previous component receipt. `--source-aoa-root` and `--skills-root` may be
supplied for optional receipt identity checks; rollback never re-runs the
source or external owner validator. It leaves the kernel profile, sessions,
stores, maps, hooks, systemd files, and user skill links under their existing
owners.

## Validation after install

Source validation, installed-root health, and completion audit are different
Expand Down
6 changes: 3 additions & 3 deletions capabilities/families/session-memory.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ nodes:

- id: skill.aoa-session-memory-global-route
title: Global session-memory router
description: Use in any Codex session when the user mentions `.aoa`, session memory, Codex transcripts, compaction, prior session rehydration, hook failures, or AoA session-memory validation.
description: "Use when an agent needs to route `.aoa` session-memory work: evidence retrieval, archive lookup, rehydration, projection, validation, or an adapter-specific transcript, hook, or compaction operation."
purpose: Select the narrowest owner capability and preserve source, runtime, and proof boundaries.
kind: skill
contract_level: executable
Expand All @@ -148,7 +148,7 @@ nodes:
authority: authored
lifecycle:
state: experimental
version: 1.0.0
version: 1.0.1
visibility: advertised
evidence_state: manual-baseline
health: challenger
Expand Down Expand Up @@ -203,7 +203,7 @@ nodes:
authority: authored
lifecycle: &advertised_lifecycle
state: experimental
version: 1.0.0
version: 1.0.1
visibility: advertised
evidence_state: manual-baseline
health: challenger
Expand Down
108 changes: 108 additions & 0 deletions docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Independent Skill Interface Delivery

## Status

Accepted.

## Index Metadata

- Decision ID: AOA-SM-D-0102
- Original date: 2026-09-08
- Owner surfaces: `skills/`, `capabilities/`, `generated/`, `scripts/install_skill_interface.py`, `INSTALL.md`, `tests/`
- Surface classes: installation, skill routing, portability, source lineage
- Projection layers: capability graph, skill router, component install receipt
- Guard families: bounded mutation, package provenance, source authority, rollback, kernel preservation
- Posture: accepted component delivery boundary

## Context

The capability home and its skill packages can evolve independently of an
active capture and retrieval kernel. The full portable installer replaces
kernel source and records its provenance. Using that route solely to deliver
skill instructions couples two independently owned changes and can overwrite
an intentionally different active kernel. Copying only the entrypoint has the
opposite defect: manifests, references, and generated routing retain old
package identities.

## Options Considered

- Always reinstall the portable kernel. Rejected for an interface-only change
because it replaces unrelated executable source and its install provenance.
- Copy or redirect the two user entrypoints. Rejected because this detaches
active-root ownership or leaves the capability graph inconsistent.
- Deliver the complete selected skill interface as a separately reversible
owner operation, anchored to the existing kernel profile. Accepted.

## Decision

`scripts/install_skill_interface.py` owns a bounded interface overlay. Its
default selection is the two advertised routers; additional skill packages
must be explicitly selected from the owner capability graph. The fixed shared
closure contains capability declarations, the skill home manifest and owner
guidance, generated graph/readout, and the global router card. Selected skill
directories move as complete packages.

Source admission requires a clean Git identity and validation through an
explicitly selected `aoa-skills` contract checkout. Every unselected skill
package referenced by the new graph must already match the target. Kernel
source equality is not a prerequisite: the valid existing kernel install
profile is a preservation anchor, not provenance for the new interface.

The operation checks source and target identity before replacement, preserves
a durable bounded backup, and publishes its component receipt last. Failures
before mutation preserve concurrent changes. Recovery restores only the
operation's admitted component; changed or unverifiable rollback evidence
blocks restoration. A later full install changes the base-profile anchor and
makes an older component receipt stale.

User-skill links continue to target the active owner root. Their aggregate
profile receipt is checked and refreshed by the existing profile assembler.
The component installer does not own that receipt or the user's catalog.

## Rationale

Separate provenance allows a current interface to coexist honestly with a
different active kernel. Full package and graph parity preserves D-0018's
source/read-model boundary, while the unchanged kernel profile preserves the
executable lineage established by D-0097. Explicit contract binding makes
shared schema drift visible without substituting a nearby checkout.

## Consequences

- Interface changes can be delivered and reversed without a kernel restart.
- A component receipt describes selected bytes and their source identity;
kernel provenance remains in the full install profile.
- Shared graph changes may require selecting additional affected packages;
the operation must not silently broaden its selection.
- Recovery retains bounded backup storage until its disposition is chosen.

## Boundaries

This route does not alter sessions, raw evidence, capture hooks, runtime maps,
search stores, system services, or model configuration. It grants no exposure,
publication, execution, or promotion authority. Valid source and receipt data
do not prove prompt selection, successful invocation, runtime health, or
cross-host portability.

## Source Surfaces

- `scripts/install_skill_interface.py`
- `INSTALL.md`
- `capabilities/port.manifest.json`
- `skills/port.manifest.json`
- `tests/test_install_skill_interface.py`

## Follow-Up Route

Apply the owner component check/install/rollback path, then the profile
assembler and a fresh consumer read. Keep source validation, merge, selected
delivery, catalog visibility, and observed behavior as separate claims.

## Verification

Focused fixtures cover complete selected package delivery, unselected skill
parity, kernel/profile and archive preservation, stale identities, source and
target changes before commit, failed replacement recovery, and exact rollback
evidence. Run capability generated parity and portable export checks through
their owners. Live delivery and rollback evidence belongs to the bounded
operation record, not this durable decision.
1 change: 1 addition & 0 deletions docs/decisions/indexes/by-date.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

| Date | Decision | Status | Path |
| --- | --- | --- | --- |
| 2026-09-08 | [AOA-SM-D-0102 Independent Skill Interface Delivery](../AOA-SM-D-0102-independent-skill-interface-delivery.md) | Accepted | `docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md` |
| 2026-08-26 | [AOA-SM-D-0100 Bounded Fair Consumer Retirement Admission](../AOA-SM-D-0100-bounded-fair-consumer-retirement-admission.md) | Accepted | `docs/decisions/AOA-SM-D-0100-bounded-fair-consumer-retirement-admission.md` |
| 2026-08-26 | [AOA-SM-D-0099 Terminal Outbox Retirement and Staged Freshness Retry](../AOA-SM-D-0099-terminal-outbox-retirement-and-staged-freshness-retry.md) | Accepted | `docs/decisions/AOA-SM-D-0099-terminal-outbox-retirement-and-staged-freshness-retry.md` |
| 2026-08-26 | [AOA-SM-D-0098 Bounded Generated-Reader Process Boundary](../AOA-SM-D-0098-bounded-generated-reader-process-boundary.md) | Accepted | `docs/decisions/AOA-SM-D-0098-bounded-generated-reader-process-boundary.md` |
Expand Down
15 changes: 15 additions & 0 deletions docs/decisions/indexes/by-guard.md
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,12 @@
| --- | --- | --- | --- |
| [AOA-SM-D-0017 Bounded Temporal Interval Reading Before Answer Admission](../AOA-SM-D-0017-bounded-temporal-interval-reading-before-answer-admission.md) | 2026-07-18 | Accepted | `docs/decisions/AOA-SM-D-0017-bounded-temporal-interval-reading-before-answer-admission.md` |

## bounded mutation

| Decision | Date | Status | Path |
| --- | --- | --- | --- |
| [AOA-SM-D-0102 Independent Skill Interface Delivery](../AOA-SM-D-0102-independent-skill-interface-delivery.md) | 2026-09-08 | Accepted | `docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md` |

## bounded producer contract

| Decision | Date | Status | Path |
Expand Down Expand Up @@ -1217,6 +1223,12 @@
| --- | --- | --- | --- |
| [AOA-SM-D-0070 Coalesced Hook Intent and Contention-Neutral Retry](../AOA-SM-D-0070-coalesced-hook-intent-and-contention-neutral-retry.md) | 2026-08-13 | Accepted | `docs/decisions/AOA-SM-D-0070-coalesced-hook-intent-and-contention-neutral-retry.md` |

## kernel preservation

| Decision | Date | Status | Path |
| --- | --- | --- | --- |
| [AOA-SM-D-0102 Independent Skill Interface Delivery](../AOA-SM-D-0102-independent-skill-interface-delivery.md) | 2026-09-08 | Accepted | `docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md` |

## last-good fallback

| Decision | Date | Status | Path |
Expand Down Expand Up @@ -1403,6 +1415,7 @@
| Decision | Date | Status | Path |
| --- | --- | --- | --- |
| [AOA-SM-D-0018 Owner Capability Home And Skill Evidence Lifecycle](../AOA-SM-D-0018-owner-capability-home-and-skill-evidence-lifecycle.md) | 2026-07-18 | Accepted | `docs/decisions/AOA-SM-D-0018-owner-capability-home-and-skill-evidence-lifecycle.md` |
| [AOA-SM-D-0102 Independent Skill Interface Delivery](../AOA-SM-D-0102-independent-skill-interface-delivery.md) | 2026-09-08 | Accepted | `docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md` |

## parent-death

Expand Down Expand Up @@ -1839,6 +1852,7 @@
| Decision | Date | Status | Path |
| --- | --- | --- | --- |
| [AOA-SM-D-0023 Manifest-Committed Graph Sidecar Publication](../AOA-SM-D-0023-manifest-committed-graph-sidecar-publication.md) | 2026-07-19 | Accepted | `docs/decisions/AOA-SM-D-0023-manifest-committed-graph-sidecar-publication.md` |
| [AOA-SM-D-0102 Independent Skill Interface Delivery](../AOA-SM-D-0102-independent-skill-interface-delivery.md) | 2026-09-08 | Accepted | `docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md` |

## round-robin fairness

Expand Down Expand Up @@ -1989,6 +2003,7 @@
| Decision | Date | Status | Path |
| --- | --- | --- | --- |
| [AOA-SM-D-0028 Authoritative Registry Rebuild Excludes Generated History](../AOA-SM-D-0028-authoritative-registry-rebuild-excludes-generated-history.md) | 2026-07-20 | Accepted | `docs/decisions/AOA-SM-D-0028-authoritative-registry-rebuild-excludes-generated-history.md` |
| [AOA-SM-D-0102 Independent Skill Interface Delivery](../AOA-SM-D-0102-independent-skill-interface-delivery.md) | 2026-09-08 | Accepted | `docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md` |

## source epoch

Expand Down
1 change: 1 addition & 0 deletions docs/decisions/indexes/by-number.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,4 @@
| [AOA-SM-D-0099 Terminal Outbox Retirement and Staged Freshness Retry](../AOA-SM-D-0099-terminal-outbox-retirement-and-staged-freshness-retry.md) | 2026-08-26 | Accepted | scripts/aoa_session_memory.py, schemas/projection-outbox-retirement.schema.json, DESIGN.md, DESIGN.AGENTS.md, PIPELINE.md, INSTALL.md, READINESS.md, tests/test_session_memory.py | projection outbox, freshness orchestration, terminal proof | episode semantic, exact search, entity registry, graph | immutable work intent, exact completion receipt, retirement binding, staged retry | accepted | `docs/decisions/AOA-SM-D-0099-terminal-outbox-retirement-and-staged-freshness-retry.md` |
| [AOA-SM-D-0100 Bounded Fair Consumer Retirement Admission](../AOA-SM-D-0100-bounded-fair-consumer-retirement-admission.md) | 2026-08-26 | Accepted | scripts/aoa_session_memory.py, schemas/, tests/, docs/decisions/ | projection outbox, freshness orchestration, scheduling, evidence boundary | exact search, episode semantic, entity registry, graph | fair scheduling, restart safety, immutable identity, fail-closed admission, terminal retirement | accepted | `docs/decisions/AOA-SM-D-0100-bounded-fair-consumer-retirement-admission.md` |
| [AOA-SM-D-0101 Targeted Projection Outbox Consumers Reconcile One Exact Obligation](../AOA-SM-D-0101-targeted-outbox-consumer-reconciliation.md) | 2026-08-23 | Accepted | scripts/aoa_session_memory.py, tests/, docs/decisions/ | projection, freshness, orchestration, evidence boundary | component-delta outbox, exact consumer state, retirement | immutable identity, allowlisted route, dependency order, resource admission, bounded retry | accepted | `docs/decisions/AOA-SM-D-0101-targeted-outbox-consumer-reconciliation.md` |
| [AOA-SM-D-0102 Independent Skill Interface Delivery](../AOA-SM-D-0102-independent-skill-interface-delivery.md) | 2026-09-08 | Accepted | skills/, capabilities/, generated/, scripts/install_skill_interface.py, INSTALL.md, tests/ | installation, skill routing, portability, source lineage | capability graph, skill router, component install receipt | bounded mutation, package provenance, source authority, rollback, kernel preservation | accepted component delivery boundary | `docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md` |
18 changes: 18 additions & 0 deletions docs/decisions/indexes/by-projection-layer.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,12 @@
| --- | --- | --- | --- |
| [AOA-SM-D-0013 Indexed Graph Seed Before Retrieval Fallback](../AOA-SM-D-0013-indexed-graph-seed-before-retrieval-fallback.md) | 2026-07-17 | Accepted | `docs/decisions/AOA-SM-D-0013-indexed-graph-seed-before-retrieval-fallback.md` |

## capability graph

| Decision | Date | Status | Path |
| --- | --- | --- | --- |
| [AOA-SM-D-0102 Independent Skill Interface Delivery](../AOA-SM-D-0102-independent-skill-interface-delivery.md) | 2026-09-08 | Accepted | `docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md` |

## capture-time envelope adapter

| Decision | Date | Status | Path |
Expand Down Expand Up @@ -119,6 +125,12 @@
| --- | --- | --- | --- |
| [AOA-SM-D-0040 Served-Request Health Is Distinct from Provider Availability](../AOA-SM-D-0040-served-request-health-is-distinct-from-provider-availability.md) | 2026-07-31 | Accepted | `docs/decisions/AOA-SM-D-0040-served-request-health-is-distinct-from-provider-availability.md` |

## component install receipt

| Decision | Date | Status | Path |
| --- | --- | --- | --- |
| [AOA-SM-D-0102 Independent Skill Interface Delivery](../AOA-SM-D-0102-independent-skill-interface-delivery.md) | 2026-09-08 | Accepted | `docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md` |

## component-delta outbox

| Decision | Date | Status | Path |
Expand Down Expand Up @@ -1144,6 +1156,12 @@
| --- | --- | --- | --- |
| [AOA-SM-D-0014 Session-Scoped Structured Prompt-Visibility Probe](../AOA-SM-D-0014-session-scoped-structured-prompt-visibility-probe.md) | 2026-07-17 | Accepted | `docs/decisions/AOA-SM-D-0014-session-scoped-structured-prompt-visibility-probe.md` |

## skill router

| Decision | Date | Status | Path |
| --- | --- | --- | --- |
| [AOA-SM-D-0102 Independent Skill Interface Delivery](../AOA-SM-D-0102-independent-skill-interface-delivery.md) | 2026-09-08 | Accepted | `docs/decisions/AOA-SM-D-0102-independent-skill-interface-delivery.md` |

## stable session projection

| Decision | Date | Status | Path |
Expand Down
Loading