Operations

Operations

Development, CI, infrastructure, and escalation guidance for transcript-service.

All repeatable operations are exposed through Taskfile.yaml. Prefer task commands over direct tool invocations so humans, agents, and CI use the same interface.

First-Time Setup

task setup

This prepares local env files, authenticates to the private package registry, and installs dependencies.

Development Commands

TaskPurpose
task --listShow available tasks.
task setup:installInstall project dependencies.
task build:lambdaBuild Lambda deployment packages.
task build:cleanRemove build artifacts.

Quality Gates

TaskPurpose
task lint:checkRun code quality checks without modifying files.
task lint:typesRun TypeScript type checking.
task lint:formatCheck Prettier formatting.
task lint:allRun all lint checks.
task test:unitRun unit tests.
task test:integrationRun integration tests.
task test:allRun unit and integration tests. Set INCLUDE_E2E=1 to include e2e tests.
task ci:allRun local CI: lint, tests, and build.

Infrastructure

Infrastructure lives under .infra/ and is managed with Terraform tasks.

TaskPurpose
task infra:initInitialize Terraform for the selected ENV.
task infra:planShow Terraform changes for the selected ENV.
task infra:applyApply Terraform changes for the selected ENV. Requires human approval.
task infra:fmtCheck Terraform formatting.
task infra:validateValidate Terraform configuration.

Set ENV=dev, ENV=pre, or ENV=prod before environment-specific operations.

Required Environment

Root .env values are used by setup and infrastructure tasks:

VariablePurpose
AWS_PROFILEAWS profile for authenticated operations.
ENVTarget environment for infrastructure and config tasks.
NPM_TOKENCodeArtifact token for private package installation.
ELEVENLABS_API_KEYTranscription provider credential.

Sandbox-specific credentials live in .sandbox/.env.

Non-Negotiable Constraints

  • Keep all cloud resources in eu-central-1.
  • Do not log audio content, transcript text, or personal data.
  • Validate final output against @ontopix/schemas.
  • Preserve stateless Lambda behavior.
  • Use SigV4 for production inbound API calls and callbacks.

Human Approval Required

Request explicit approval before:

  • Running task infra:apply or any destructive infrastructure command.
  • Changing the CustomerInteraction@v1.0 schema contract.
  • Adding or removing transcription providers.
  • Changing the processing pipeline contract.
  • Touching production data or credentials.