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
100 changes: 43 additions & 57 deletions .github/workflows/atlas-production-conformance.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
# Atlas production-conformance (CI lane E skeleton).
# A green run is not production-network qualification, physical evidence, or a
# security audit. When apps/atlas-api exists, unit/contract tests may run; the
# production checks listed in the report remain unimplemented until a durable
# adapter, authz, rate limits, and migration tests ship.
# Atlas software-contract conformance lane.
#
# Schema migration discipline: every versioned Atlas/artifact contract requires
# parser + validator + ArtifactMigrationRegistryV1 tests in packages/validation
# before it is used in a release. This workflow must not change empirical v8
# gate semantics.
# A green run qualifies the checked Atlas client/API contracts on one exact
# software revision. It is not a public-network qualification, security audit,
# physical-object claim, or empirical release gate.
name: atlas-production-conformance

on:
Expand All @@ -30,75 +25,66 @@ env:
VITE_SOFTWARE_REVISION: ${{ github.event.pull_request.head.sha || github.sha }}

jobs:
skeleton:
contracts:
runs-on: ubuntu-24.04
timeout-minutes: 5
timeout-minutes: 20
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Emit production-conformance skeleton report
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 22
- name: Enable Corepack
run: corepack enable
- name: Install frozen dependencies
run: pnpm install --frozen-lockfile
- name: Typecheck Atlas client
run: pnpm --filter @everything-rings/atlas-client typecheck
- name: Test Atlas client
run: pnpm --filter @everything-rings/atlas-client test
- name: Typecheck Atlas API
run: pnpm --filter @everything-rings/atlas-api typecheck
- name: Test Atlas API contracts, HTTP surface, persistence, and V2 records
run: pnpm --filter @everything-rings/atlas-api test
- name: Emit scoped conformance report
run: |
set -euo pipefail
mkdir -p qualification
api_present=false
client_present=false
if [ -f apps/atlas-api/package.json ]; then api_present=true; fi
if [ -f packages/atlas-client/package.json ]; then client_present=true; fi
cat > qualification/atlas-production-conformance.json <<EOF
{
"conformanceContractVersion": "atlas-production-conformance-1",
"status": "skeleton",
"status": "software-contract-qualified",
"softwareOnly": true,
"physicalObjectTested": false,
"releaseGateEquivalent": false,
"publicNetworkQualified": false,
"sourceRevision": "${VITE_SOFTWARE_REVISION}",
"workflowRunId": "github-run:${{ github.run_id }}",
"productionAdapterPresent": false,
"atlasApiPackagePresent": ${api_present},
"atlasClientPackagePresent": ${client_present},
"memoryAdapterContract": "resonance-atlas-service-1",
"atlasApiPackagePresent": true,
"atlasClientPackagePresent": true,
"localFileStorePresent": true,
"httpSurfacePresent": true,
"qualifiedChecks": [
"atlas-client-typecheck-and-tests",
"atlas-api-typecheck-and-tests",
"atlas-v2-contract-tests",
"http-contract-tests",
"local-persistence-tests",
"service-conformance-tests"
],
"pendingProductionChecks": [
"restart-durability",
"concurrent-idempotent-publish",
"rollback",
"canonical-byte-preservation",
"snapshot-repeatability",
"schema-parser-validator-migration-tests",
"authz",
"rate-limits",
"malformed-artifact-rejection"
"production-authentication-and-authorization",
"rate-limits-and-abuse-controls",
"multi-tenant-durability-backup-and-restore",
"operational-rollback-and-recovery",
"deployment-security-review",
"load-and-concurrency-characterization"
]
}
EOF
cat qualification/atlas-production-conformance.json
- name: Upload skeleton report
- name: Upload conformance report
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: atlas-production-conformance-${{ env.VITE_SOFTWARE_REVISION }}
path: qualification/atlas-production-conformance.json
if-no-files-found: error

contracts:
runs-on: ubuntu-24.04
timeout-minutes: 20
if: hashFiles('apps/atlas-api/package.json', 'packages/atlas-client/package.json') != ''
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 22
- name: Enable Corepack
run: corepack enable
- name: Install frozen dependencies
run: pnpm install --frozen-lockfile
- name: Typecheck Atlas client when present
if: hashFiles('packages/atlas-client/package.json') != ''
run: pnpm --filter @everything-rings/atlas-client typecheck
- name: Atlas client tests when present
if: hashFiles('packages/atlas-client/package.json') != ''
run: pnpm --filter @everything-rings/atlas-client test
- name: Typecheck Atlas API when present
if: hashFiles('apps/atlas-api/package.json') != ''
run: pnpm --filter @everything-rings/atlas-api typecheck
- name: Atlas API tests when present
if: hashFiles('apps/atlas-api/package.json') != ''
run: pnpm --filter @everything-rings/atlas-api test
12 changes: 8 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

EVERYTHING RINGS combines a consumer acoustic instrument with empirical measurement and validation infrastructure. Contributions are welcome, but changes must preserve the distinction between product behavior, research diagnostics, and evidence-eligible empirical contracts.
EVERYTHING RINGS combines a consumer acoustic instrument with empirical measurement, research, provenance, and validation infrastructure. Contributions are welcome, but changes must preserve the distinction between product behavior, research diagnostics, and evidence-eligible empirical contracts.

## Development setup

Expand All @@ -23,7 +23,7 @@ Consumer UI, local history, sharing, visualization, and other non-empirical feat

### Research/diagnostic changes

Alternative DSP configurations, digital twins, external datasets, similarity baselines, and future embeddings must clearly state whether their output is evidence-eligible. Custom analysis configurations must not claim an `er-dsp-*` canonical algorithm version unless a new algorithm contract is explicitly versioned.
Alternative DSP configurations, digital twins, external datasets, similarity baselines, material/spatial models, and future embeddings must clearly state whether their output is evidence-eligible. Custom analysis configurations must not claim an `er-dsp-*` canonical algorithm version unless a new algorithm contract is explicitly versioned.

### Empirical-contract changes

Expand All @@ -43,8 +43,12 @@ Keep machine contracts, documentation, and advertised claims synchronized. A nea

## Privacy

Do not commit microphone PCM, private Gate B listening companions, device identifiers that should remain local, secrets, or user-private artifacts. Synthetic/digital-twin signals are acceptable when clearly labeled non-physical.
Do not commit microphone PCM, private Gate B listening companions, secrets, user-private artifacts, or device identifiers that should remain local. Synthetic/digital-twin signals are acceptable when clearly labeled non-physical.

Public Atlas artifacts must satisfy their versioned privacy and consent contracts. A content digest proves byte identity; it does not prove that an asserted physical-object identity or material label is true.

## Licensing

The repository currently has an open issue to choose an explicit project license. Until that decision is made, public repository visibility should not be interpreted as a grant of reuse rights beyond GitHub's platform terms. Contribution licensing language will be finalized with the repository license decision.
The software repository is licensed under the [MIT License](LICENSE). Unless a contribution explicitly states otherwise and is accepted under separate terms, software contributions are made under the same license.

Datasets, trained models, benchmark corpora, media, and future physical-corpus artifacts may carry separate licenses or usage terms. The repository's MIT software license does not automatically grant rights to separately identified data or third-party content.
Loading
Loading