Skip to content

Platform Orientation

Status: This page describes the established Wavemap platform as of August 5, 2026. It is the recommended first operations reading. Exact live identifiers belong in reviewed plans, provider readback, and private receipts rather than this public conceptual guide.

Wavemap is optimized for feature development without making deployment or infrastructure authority implicit. Source, artifacts, infrastructure, execution, and evidence therefore remain separate layers even though they validate one another.

Git and CI identify an exact candidate; product-owned Pulumi defines the Wavemap workload in AWS while Tendril protects its state; a human selects one bounded deployment or infrastructure operation; and smoke checks plus sanitized receipts prove the result.

LayerQuestion It AnswersPrimary Implementation
Source and policyWhat change is being proposed?Git, exact-SHA CI, path classification, TypeScript contracts, tests.
Artifact and contractWhat exact bytes or facts may be delivered?Immutable ECR images, deployment contracts, runtime parameters, release receipts, reviewed Pulumi saved plans.
Stable infrastructureWhat environment exists?Product-owned Pulumi source, AWS workload resources, and the Tendril-owned state foundation.
Bounded executionWhat one operation is authorized now?Manual GitHub workflows, protected environments, narrow OIDC roles, guarded CLI and shell entry points.
Evidence and recoveryWhat happened, and what could recover it?Workflow summaries, smoke results, versioned receipts, Pulumi history/checkpoints, retained recovery evidence.

These layers overlap in validation, not authority. A Pulumi role can exist without authorizing a deployment. A commit can pass CI without being selected for Development. A deployment contract can describe the runtime without granting access to Pulumi state or database mutation.

EnvironmentPurposeData PostureCurrent Delivery Boundary
Local developmentFast application and feature iteration on a developer machine.Docker-backed PostgreSQL, emulators, fixtures, resets, and local media are disposable.Local commands only; local proof is not cloud-delivery evidence.
DevelopmentShared cloud integration, smoke, demonstrations, and release proof.Containerized PostgreSQL and Development media remain disposable by policy, even when they persist across host stops.Human-selected application-only delivery or the separate reviewed operator workflow.
IncubationNot a Wavemap environment.None. Waveguide’s Incubation model must not be inferred for Wavemap.None.
Staging/ProductionNot established.No durability, availability, backup, recovery-objective, or compliance promise exists yet.Requires a new environment and durability review before implementation.

Development intentionally has no routine database-affecting CD. The application-only workflow cannot migrate, seed, or reset its database. Database status, migration, and destructive reset remain human-selected operator procedures because the database is disposable but still shared with other feature and demonstration work.

Before irreplaceable corpus or uploaded media becomes valuable in Development, stop and establish a separately reviewed durability program. That program must define backup ownership, recovery proof, media/database consistency, retention, and the gate for moving data into a durable environment. Existing Development persistence is convenience, not that program.

Tendril Systems Infrastructure owns the organization-level Pulumi state foundation. Wavemap owns the application stack whose encrypted state is stored there.

Tendril Systems Infrastructure
-> protected state backend and shared backend controls
-> /foundation Tendril foundation state
-> /wavemap Wavemap product state
-> /waveguide Waveguide product state
Wavemap repository
-> Wavemap Pulumi program and guarded launcher
-> Wavemap workload AWS resources and IAM
-> deployment contracts, runtime configuration, workflows, and recovery procedures

The paths are separate state namespaces, not permission for one product to own or inspect the other’s resources. The Tendril repository does not own Wavemap compute, databases, registries, DNS, runtime secrets, deployment contracts, or application workflows. Conversely, Wavemap does not own the shared backend bucket or its organization-level protection controls.

Wavemap’s former workload-account backend is retained as protected recovery evidence. It is not the active authority and must not be presented as a pending migration target. Current infrastructure work uses the guarded Wavemap launcher, which fixes the Tendril /wavemap backend, the Wavemap project and stack, both AWS account identities, the passphrase file, the exact source revision, and the reviewed saved plan.

There is no separate higher-level Tendril documentation site. Both product docs therefore explain the shared foundation with the same vocabulary and then continue into their product-specific environments and controls.

exact commit + successful merged-state CI
|
v
human selects the operation
|
+-- application-only
| -> exact source admission
| -> database-change classification
| -> immutable image digests
| -> runtime deploy + endpoint/browser smoke
| -> sanitized release receipt or bounded rollback
|
+-- database-affecting or destructive
| -> reviewed operator recipe
| -> explicit migration/reset authority
|
+-- infrastructure
-> guarded full-stack preview
-> reviewed saved-plan/source digests
-> separately authorized update

This is a routing decision rather than a risk score. A small schema change does not become application-only, and a successful CI run does not implicitly dispatch either delivery workflow.

Workflows own event policy, job ordering, selected-source admission, GitHub permissions, protected environments, OIDC handoff, and summaries. They should orchestrate repository-owned commands instead of becoming a second implementation of application or infrastructure logic.

The wavemap CLI is the discoverable operator trunk. Route definitions lead to shell wrappers; wrappers own external process execution, filesystem safety, environment setup, dry-run or --execute gates, and calls into typed operations.

The operations package owns typed parsing, validation, planning, bundle construction, deployment-contract handling, topology projection, and sanitized receipt shapes. It does not own GitHub credentials, public CLI compatibility, or Pulumi resources.

The Wavemap Pulumi project owns the workload resource graph and stable outputs. It does not decide which application commit to deploy, silently mutate the database, or gain authority merely because its program compiles.

Curated docs teach the current architecture and safe reading path. Working notes retain active plans, exact run history, and unresolved questions. Neither replaces code-owned contracts, provider readback, or live authorization.

Use these entry points to move from the mental model into implementation without trying to read the repository as one flat catalog.

ConcernStart HereFollow Into
CI ownership.github/workflows/ci.ymlbin/ci/classify-ci-assurance-paths.sh, root package.json, turbo.json, then the named package/app test scripts.
Application-only delivery.github/workflows/deploy-application-dev.ymlinfra/operations/src/deployed-dev/application-delivery*, bin/dev-deploy, then focused workflow and operations tests.
Reviewed operator delivery.github/workflows/deploy-dev.ymlbin/dev-deploy/resolve-deployed-dev-workflow-profile.sh, infra/operations/src/deployed-dev/workflow-profile.ts, the public CLI routes, then leaf deploy/smoke wrappers and profile tests.
Infrastructure changebin/infra/pulumi-stack.shinfra/pulumi/index.ts, infra/pulumi/src/providers/aws, saved-plan audit source, then launcher and Pulumi tests.
State foundationTendril infra/foundation/src/state-backend.tsTendril backend-policy tests and Wavemap’s guarded launcher; product workload source remains in this repository.
Data safetyapps/wavemap-back-end/src/db/databaseSafety.tsDB-backed Vitest configuration, reset helpers, migrations/seeds, and the dedicated CI service contract.
Docs publication.github/workflows/deploy-docs.yml.github/actions/prepare-docs-deploy-cloud-job, bin/docs-deploy, infra/operations/src/docs-deploy, and docs smoke source.

When following a row, read the immediate tests beside the owning source before moving outward. Tests usually reveal the boundary faster than searching for every caller, and they show which behavior maintainers consider contractual.

  1. Read Monorepo Map to understand application, package, CLI, operations, and Pulumi ownership.
  2. Read Testing Runtime And CI to trace how an exact revision earns repository confidence.
  3. Read Deployment Workflows to follow the manual application and operator paths.
  4. Read Deployed Dev Environment and Data Durability And Recovery for environment and data consequences.
  5. Read Infrastructure Change Policy before reviewing a Pulumi transition.
  6. Use Runbooks only when carrying out or diagnosing an operation.

The current architecture is deliberately bounded to local development and shared Development. New environments should reuse the separation of source, authority, execution, and evidence without copying Development’s capacity or disposable data posture by default.