SS-31 · Tekton + Chains + Fleet

CI/CD factory

Hermetic builds with waved agent autonomy.

13operations
5sub-capabilities
3endpoint groups
5services it composes

What it does

Hermetic builds with waved agent autonomy.

The sovereign build rail underneath SkyForge. A build run moves through source → built → gating → merged; builds fail closed on any non-hermetic dependency, provenance is signed, and the merge decision requires unanimous green gates. Self-approval is impossible by construction — the approver identity comes from edge-stamped headers, never a body field (FAC09).

In-mesh base http://ss-31-factory.shared-services.svc.cluster.local:8031 · auth is an SS-01 bearer token + X-Tenant-Id on every /api/v1 route.

Sub-capabilities

The real building blocks.

Agent-driven build runs

Open a run against a source ref in a declared change class; its effective autonomy wave is the lesser of the program wave and the class ceiling (FAC07/08).

POST /api/v1/runs

Hermetic build step

Fails closed the moment a dependency isn't served from the SS-04 proxy-cache — a direct fetch is a supply-chain violation, not a transient error. Identical inputs yield an identical digest.

POST /api/v1/runs/{id}/build

Signed provenance

Attach a signed attestation to a built run; a run with no signed attestation can never merge (ErrUnsigned).

POST /api/v1/runs/{id}/attest

Gate stack + merge decision

Record droplet/coderabbit/snyk verdicts; the decision auto-merges a governed class on unanimous green, else requires a human approval.

POST /api/v1/runs/{id}/decide

Change-class governance

Each class carries an autonomy ceiling and frozen state; misclassification is audit-recorded and rejected so a run can't be driven more permissively than its true content.

GET /api/v1/classes

Worked example

Open a run → hermetic build → attest → gate → decide

The governed merge path. The build fails closed on any dependency not served from the SS-04 proxy-cache, and no run merges unsigned.

  1. 1
    Open the runPOST/api/v1/runs

    {product, class}. An unknown class 404s, a frozen class 409s.

  2. 2
    Hermetic buildPOST/api/v1/runs/{id}/build

    Every dep must be from_cache: true, else the build aborts with no retry.

  3. 3
    Attest provenancePOST/api/v1/runs/{id}/attest

    Signed attestation derived from the reproducible digest.

  4. 4
    Record gate verdictsPOST/api/v1/runs/{id}/gates

    droplet / coderabbit / snyk → green.

  5. 5
    DecidePOST/api/v1/runs/{id}/decide

    Governed class + all green auto-merges; else 409 ErrNeedApproval.

Endpoint catalog

13 documented endpoints of 13 operations.

Real method + path from services/factory/openapi.json. The full contract, including ops endpoints, is the 13-operation surface.

Build runs

  • POST/api/v1/runsidempotentOpen an agent-driven build run in a change class
  • GET/api/v1/runsList runs with phase, class, wave and gate stack
  • GET/api/v1/runs/{id}One run's full record incl. digest + attestation
  • POST/api/v1/runs/{id}/buildidempotentRun the hermetic build (fails closed on non-cache dep)
  • POST/api/v1/runs/{id}/attestAttach signed provenance (FAC03)
  • POST/api/v1/runs/{id}/classifyValidate declared class vs actual diff (FAC07)
  • POST/api/v1/runs/{id}/gatesRecord a gate-stack verdict (FAC10)

Merge decision

  • POST/api/v1/runs/{id}/approveHuman merge approval (self-approval impossible, FAC09)
  • POST/api/v1/runs/{id}/decideRun the merge decision on a signed, gated run
  • POST/api/v1/runs/{id}/overrideT3 break-glass merge past a red gate (paged + audited)

Change classes (FAC07/08)

  • GET/api/v1/classesThe change-class taxonomy + autonomy ceilings
  • POST/api/v1/classes/{class}/ceilingSet a class's autonomy ceiling (human-owned)
  • POST/api/v1/classes/{class}/unfreezeUnfreeze a frozen class (audit-recorded)

Architecture placement

Where it sits in the platform.

CI/CD factory does not reimplement the platform — it composes it. These are the services it leans on and the seams between them.

SS-04 Registry

The proxy-cache every hermetic build fetches through; a direct fetch fails the build closed.

SS-32 Droplet

The independent merge gate — one of the gate-stack verdicts the decision requires green.

SS-01 Identity

Edge-stamped X-Subject / X-Agent-Identity drive approval; a body field never can.

SS-47 SkyForge

Consumes the built, admitted image as the input to the deploy saga's admit step.

SS-34 GRC

Signed run history and refusals are exported as compliance evidence.