chore: set up branching, CI, and PR workflow #1

Merged
BBergle merged 2 commits from chore/repo-scaffolding into main 2026-09-20 21:21:50 -04:00
Owner

Prepares the repo for parallel agent work. No application code.

  • CLAUDE.md: conventions, branch naming, and the six non-negotiable
    invariants from the design (immutable raw bytes, no stored odometers,
    SI integers, dual-layer user isolation, secret containment, single
    ingestion path). Also records a model-allocation policy: the
    orchestrator runs Opus 5, workers default to Sonnet, and Opus is
    reserved for review plus the areas where a mistake is silent and
    expensive (ingest, wear SQL, auth/RLS, the Bryton protocol client).
    And the Gitea Actions gotchas, so nobody rediscovers them:
    GITEA_TOKEN cannot push to the container registry, jobs.*.environment
    is ignored, and cron needs a workflow_dispatch pair.
  • CONTRIBUTING.md: day-to-day flow, worktrees for parallel branches,
    review expectations.
  • .gitea/workflows/ci.yml: repo hygiene (branch naming, secret scan,
    no ride data in git), plus API/web/migration jobs that guard on whether
    the code exists yet, so CI is meaningful now and grows into the real
    thing rather than being rewritten.
  • .gitea/PULL_REQUEST_TEMPLATE.md: forces an honest "how this was
    verified" and an invariant checklist.
  • scripts/pr.sh, scripts/review.sh: open and inspect PRs via the Gitea API.
  • Directory scaffold with placeholder READMEs.

Agents open PRs; humans merge them.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

Prepares the repo for parallel agent work. No application code. - CLAUDE.md: conventions, branch naming, and the six non-negotiable invariants from the design (immutable raw bytes, no stored odometers, SI integers, dual-layer user isolation, secret containment, single ingestion path). Also records a model-allocation policy: the orchestrator runs Opus 5, workers default to Sonnet, and Opus is reserved for review plus the areas where a mistake is silent and expensive (ingest, wear SQL, auth/RLS, the Bryton protocol client). And the Gitea Actions gotchas, so nobody rediscovers them: GITEA_TOKEN cannot push to the container registry, jobs.*.environment is ignored, and cron needs a workflow_dispatch pair. - CONTRIBUTING.md: day-to-day flow, worktrees for parallel branches, review expectations. - .gitea/workflows/ci.yml: repo hygiene (branch naming, secret scan, no ride data in git), plus API/web/migration jobs that guard on whether the code exists yet, so CI is meaningful now and grows into the real thing rather than being rewritten. - .gitea/PULL_REQUEST_TEMPLATE.md: forces an honest "how this was verified" and an invariant checklist. - scripts/pr.sh, scripts/review.sh: open and inspect PRs via the Gitea API. - Directory scaffold with placeholder READMEs. Agents open PRs; humans merge them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
BBergle added 1 commit 2026-09-20 21:14:01 -04:00
chore: set up branching, CI, and PR workflow
CI / Repo hygiene (pull_request) Successful in 24s
CI / API (lint, types, tests) (pull_request) Successful in 55s
CI / Web (lint, typecheck, build) (pull_request) Successful in 25s
CI / Migrations reversible (pull_request) Successful in 3s
d5e473959c
Prepares the repo for parallel agent work. No application code.

- CLAUDE.md: conventions, branch naming, and the six non-negotiable
  invariants from the design (immutable raw bytes, no stored odometers,
  SI integers, dual-layer user isolation, secret containment, single
  ingestion path). Also records a model-allocation policy: the
  orchestrator runs Opus 5, workers default to Sonnet, and Opus is
  reserved for review plus the areas where a mistake is silent and
  expensive (ingest, wear SQL, auth/RLS, the Bryton protocol client).
  And the Gitea Actions gotchas, so nobody rediscovers them:
  GITEA_TOKEN cannot push to the container registry, jobs.*.environment
  is ignored, and cron needs a workflow_dispatch pair.
- CONTRIBUTING.md: day-to-day flow, worktrees for parallel branches,
  review expectations.
- .gitea/workflows/ci.yml: repo hygiene (branch naming, secret scan,
  no ride data in git), plus API/web/migration jobs that guard on whether
  the code exists yet, so CI is meaningful now and grows into the real
  thing rather than being rewritten.
- .gitea/PULL_REQUEST_TEMPLATE.md: forces an honest "how this was
  verified" and an invariant checklist.
- scripts/pr.sh, scripts/review.sh: open and inspect PRs via the Gitea API.
- Directory scaffold with placeholder READMEs.

Agents open PRs; humans merge them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
BBergle added 1 commit 2026-09-20 21:18:20 -04:00
chore(scripts): resolve Gitea token from keychain or config file
CI / Repo hygiene (pull_request) Successful in 1s
CI / API (lint, types, tests) (pull_request) Successful in 3s
CI / Web (lint, typecheck, build) (pull_request) Successful in 2s
CI / Migrations reversible (pull_request) Successful in 2s
e34c1d92ad
An exported GITEA_TOKEN only exists in the shell that exported it, so
tooling invoked from elsewhere could not find it. Resolve in order:
$GITEA_TOKEN, ~/.config/gitea/token, then the macOS Keychain — so the
token can live somewhere durable and non-world-readable instead of a
plaintext dotfile.

Also factors the API call and repo coordinates into scripts/lib/gitea.sh
so pr.sh and review.sh stop duplicating them, and adds
`review.sh --list` for enumerating open PRs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
BBergle merged commit e7cb06a6bc into main 2026-09-20 21:21:50 -04:00
BBergle deleted branch chore/repo-scaffolding 2026-09-20 21:21:50 -04:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: BBergle/bike-app#1