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
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ canonical source

The former `nddev-monorepo`, `forks-monorepo`, and
`example-user-monorepo` metadata repositories are not part of the active
topology. Their migration evidence is retained in `docs/migration/`.
topology.

## Local development

Expand Down Expand Up @@ -86,9 +86,9 @@ uv run --with-requirements requirements/test.txt --with pytest-cov python -m pyt
also runs the source-bound 2000-repository assurance scenario and requires
current source evidence before any artifact can be attested.

It does **not** prove harness runtime behaviour, and no longer claims to. All
seventeen harnesses are registered here as available and `provisional`; their
runtime suites live in the private `example-org/example-harnesses` repository,
It does **not** prove harness runtime behaviour, and no longer claims to. The
seven harnesses are registered here with delegated runtime evidence; their
runtime suites live in the private `NDDev-it-com/setup-systems` repository,
which `harnesses/module-bridge.yaml` names as the evidence owner. Each profile
records `runtime_tests.last_result: delegated`, and
`gds validate harnesses --runtime` reports `runtime_evidence: "delegated"` with
Expand All @@ -99,5 +99,4 @@ claiming `delegated` that the bridge does not map is rejected
evidence here nor delegates it (`GDS_HARNESS_RUNTIME_UNOWNED`). Promoting a
harness to `supported` still requires a local `pass`.

Architecture, contracts, migration evidence, and the remaining acceptance
order are in `docs/architecture/`, `docs/contracts/`, and `docs/migration/`.
Architecture and contracts are in `docs/architecture/` and `docs/contracts/`.
14 changes: 0 additions & 14 deletions docs/adr/0001-local-discovery-and-device-snapshots.md

This file was deleted.

48 changes: 0 additions & 48 deletions docs/adr/0017-antigravity-cli-canonical-identity.md

This file was deleted.

9 changes: 6 additions & 3 deletions docs/adr/0035-agent-first-explicit-control-plane.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,12 @@ performance gates, and device intent as a proxy for current device truth.
plan.
- Required check contexts are generated from an allowlisted security workflow
policy, exact caller pins, and content-digested reusable workflow facts.
- The harness catalogue remains seventeen identities. Work-policy active is
exactly antigravity-cli, claude-code, codex, cursor-cli, grok-build, opencode,
and pi. Every harness emits
- The harness catalogue and the work-policy active set are the same seven
identities: antigravity, claude-code, codex, cursor, grok-build, opencode and
pi. (As accepted, this read "seventeen identities" with an active subset of
seven, and named two of them `antigravity-cli` and `cursor-cli`; ADR 0036
corrected the identities and ADR 0037 removed the unbacked ten.) Every
harness emits
isolated signed exact-version evidence; a separately signed manifest binds the
aggregate. Canary may be provisional and never auto-promotes. Stable/frozen
require all seven.
Expand Down
22 changes: 11 additions & 11 deletions docs/adr/0036-harness-identity-follows-the-consumer.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,13 @@ Status: Accepted

Date: 2026-08-29

Supersedes: ADR 0017

## Context

ADR 0017 established that each harness has exactly one canonical machine
identity in GDS, that no parallel profile is generated for the same runtime,
and that an unknown identifier fails rather than being silently redirected.
That principle is correct and is retained in full.
An earlier decision, since removed from the tree with the rest of the
superseded record, established that each harness has exactly one canonical
machine identity in GDS, that no parallel profile is generated for the same
runtime, and that an unknown identifier fails rather than being silently
redirected. That principle is correct and is carried forward here in full.

What it got wrong was the value. It named `antigravity-cli` as the canonical
Google agent CLI identity, and the registry later recorded `antigravity` — the
Expand Down Expand Up @@ -47,13 +46,14 @@ Where GDS and the consumer disagree about a harness identity in future, the
consumer wins, and GDS records the change rather than negotiating it.

The previous strings are retained in `legacy_aliases` and in the harness
profile `aliases`. This does not reopen the compatibility-alias question ADR
0017 closed: an alias is migration provenance and collision-detection input,
profile `aliases`. This does not reopen the compatibility-alias question that
earlier decision closed: an alias is migration provenance and collision-detection input,
never a second live identity. Unknown identifiers still fail as unknown.

## Consequences

- The canonical registry remains an exact seventeen-harness set.
- The canonical registry remains an exact set. (As accepted this said
seventeen; ADR 0037 reduced it to seven the same day.)
- Release evidence archive members are renamed `antigravity.json` and
`cursor.json`. Two parties are involved and they are not the same one:
`NDDev-it-com/setup-systems` owns the harness *runtime* evidence and is what
Expand All @@ -76,8 +76,8 @@ never a second live identity. Unknown identifiers still fail as unknown.
- Keep `antigravity-cli` and ask `ai-stp` to change: rejected. GDS consumes
the identity and does not define it, and the consumer's set is derived from
a single literal specifically so it cannot drift.
- Accept both values as live identities: rejected for the reason ADR 0017 gave
— evidence and rollout state would diverge.
- Accept both values as live identities: rejected for the reason the earlier
decision gave — evidence and rollout state would diverge.
- Leave it and document the mismatch: rejected. A join on harness ID would
silently drop two of seven and report five as though that were the answer.

Expand Down
2 changes: 1 addition & 1 deletion docs/adr/0037-seven-harnesses-one-per-setup-system.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Status: Accepted

Date: 2026-08-29

Supersedes the seventeen-identity set in ADR 0011.
Supersedes: ADR 0011 (the seventeen-identity set only)

## Context

Expand Down
6 changes: 2 additions & 4 deletions docs/adr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ clause stops being normative.

| ADR | Title | Status | Supersedes | Superseded by |
|---|---|---|---|---|
| [0037](0037-seven-harnesses-one-per-setup-system.md) | Seven harnesses, one per setup system | Accepted | | — |
| [0036](0036-harness-identity-follows-the-consumer.md) | Harness identity follows the consumer contract | Accepted | ADR 0017 | — |
| [0037](0037-seven-harnesses-one-per-setup-system.md) | Seven harnesses, one per setup system | Accepted | ADR 0011 | — |
| [0036](0036-harness-identity-follows-the-consumer.md) | Harness identity follows the consumer contract | Accepted | | — |
| [0035](0035-agent-first-explicit-control-plane.md) | Agent-first explicit control plane and evidence-bound mutation | Accepted | — | — |
| [0034](0034-gh-cli-credential-provider.md) | gh CLI credential provider and permission superset contract | Accepted | — | — |
| [0033](0033-return-the-control-plane-to-private.md) | Return the control plane to a private repository | Accepted | — | — |
Expand All @@ -27,7 +27,6 @@ clause stops being normative.
| [0020](0020-single-controller-runtime-and-retention.md) | Single-controller runtime, loopback ingress, and retention | Accepted | — | — |
| [0019](0019-portable-secret-references-and-device-runtime.md) | Portable secret references and device-local GitHub runtime | Accepted | — | — |
| [0018](0018-device-workspaces-and-metadata-repository-retirement.md) | Use device workspaces instead of metadata repositories | Accepted | — | ADR 0027, ADR 0032 (in part) |
| [0017](0017-antigravity-cli-canonical-identity.md) | Use one canonical Antigravity CLI identity | Superseded by ADR 0036 | — | — |
| [0016](0016-detached-release-envelope.md) | Bind release artifacts with a detached envelope | Accepted | — | — |
| [0015](0015-projection-digest-layers.md) | Separate projection body, file, and aggregate digests | Accepted | — | — |
| [0014](0014-go-production-core.md) | Implement the production GDS core in Go | Accepted | — | — |
Expand All @@ -43,4 +42,3 @@ clause stops being normative.
| [0004](0004-portfolio-and-superproject-terminology.md) | Distinguish portfolios, monorepos, and superprojects | Accepted | — | — |
| [0003](0003-estate-and-device-separation.md) | Separate estate identity from device deployment | Accepted | — | — |
| [0002](0002-control-plane-and-bundle-architecture.md) | Canonical control plane and immutable bundle | Accepted | — | — |
| [0001](0001-local-discovery-and-device-snapshots.md) | Local discovery and device snapshots | Superseded by ADR 0018 | — | — |
Loading