Bootstraps the §1.2 scaffolding for this repo: README.md, CONTRIBUTING.md, CODEOWNERS, CHANGELOG.md, .gitea/pull_request_template.md, .gitea/issue_template/{bug,feature}.md, LICENSE.
Adds the per-stack CI workflow at .gitea/workflows/ci.yaml plus the shared release.yaml.
Drops in the hand-rolled extras called out in templates/README.templates.md: commitlint.config.cjs, cliff.toml, .editorconfig, .gitignore, empty .env.example.
Repo-specific: Go CI workflow (go fmt, go vet, golangci-lint, go test with race + 70% coverage gate). Service scaffold + migrations land in M4.1.
Why
This is the M0.1 bootstrap PR — first work item in IMPLEMENTATION_PLAN.md. Every repo created under the new platform/ Gitea org needs the same §1.2 scaffolding before any feature work can land, so that CI, branch protection, commit conventions, audit/ownership, and the PR template are all enforced from the very first feature PR.
Linked milestone: M0.1
How
Templates copied verbatim from benjamin_boenisch/templates/, following the file-map in templates/README.templates.md.
Placeholders substituted per the table in that doc: {{REPO_NAME}}, {{ONE_LINE_DESCRIPTION}}, {{PORT}}, {{slug}}, {{x.y}}, plane, license token, status.
CI workflow chosen per repo stack:
tenant-registry → ci-go.yaml
portal, design-tokens → ci-typescript.yaml
orca-platform → minimal ci.yaml that runs orca validate only (no app code yet, so lint/test/build jobs would be no-ops)
docs, seed-data → ci-typescript.yaml skeleton (commitlint + gitleaks + trivy now; lint/test/build will light up when real package code lands)
Branch protection still needs to be configured in Gitea UI (or via API) — that's tracked under M0.2 and is intentionally out of scope here so this PR can land first to give M0.2 something to protect.
LICENSE is the canonical MIT for portal/docs/orca/seed-data, Apache-2.0 for the library-shaped repos (tenant-registry as a Go service consumed by other planes, design-tokens as a shared package).
Test plan
Unit tests added/updated
Integration tests added/updated (real DB via testcontainers)
Playwright e2e added/updated (only if user-facing flow changed)
Manual smoke on stage after deploy
Regression test added (only if this PR fixes a bug — must fail before the fix)
n/a — this PR adds no executable code. Verification is reviewer-eye on the template substitutions plus the CI workflow shape. Once M0.2 lands, CI itself will gate future PRs.
Risk
Blast radius: single repo. No services run yet; merging this affects only the contents of this repo's main branch.
What could break:
A template placeholder I missed renders as {{...}} in the README. Reviewer should grep {{ in the diff.
CI workflow references actions/secrets that aren't configured yet (REGISTRY_USER, ORCA_STAGE_TOKEN, etc.) — expected; the image job is gated on push to main so it only fires post-merge, and those secrets will be set in M0.2 before any merges to main happen.
Rollback plan: revert the PR. No infra, no state, no migrations involved.
Checklist
Docs updated (the docs ARE the change)
Audit events emitted for state changes (n/a — no state changes)
Secrets via Infisical, never in repo
Migration is forward-only + idempotent (n/a — no migration)
Tenant scoping enforced on every DB query (n/a — no DB access)
OpenAPI spec updated (n/a — no API change)
featureFlags.evaluate() used for any toggleable behavior (n/a)
CHANGELOG entry under "Unreleased" — added the skeleton; first real entry lands with M0.2.
Screenshots / recordings
n/a — no UI.
<!--
PR title MUST be a Conventional Commit, e.g.:
feat(api): add POST /v1/tenants/:id/cancel
fix(auth): reject JWT when org_id missing
Mark draft if not ready for review.
-->
## What
- Bootstraps the §1.2 scaffolding for this repo: `README.md`, `CONTRIBUTING.md`, `CODEOWNERS`, `CHANGELOG.md`, `.gitea/pull_request_template.md`, `.gitea/issue_template/{bug,feature}.md`, `LICENSE`.
- Adds the per-stack CI workflow at `.gitea/workflows/ci.yaml` plus the shared `release.yaml`.
- Drops in the hand-rolled extras called out in `templates/README.templates.md`: `commitlint.config.cjs`, `cliff.toml`, `.editorconfig`, `.gitignore`, empty `.env.example`.
- **Repo-specific:** Go CI workflow (`go fmt`, `go vet`, `golangci-lint`, `go test` with race + 70% coverage gate). Service scaffold + migrations land in M4.1.
## Why
This is the M0.1 bootstrap PR — first work item in `IMPLEMENTATION_PLAN.md`. Every repo created under the new `platform/` Gitea org needs the same §1.2 scaffolding before any feature work can land, so that CI, branch protection, commit conventions, audit/ownership, and the PR template are all enforced from the very first feature PR.
Linked milestone: **M0.1**
## How
- Templates copied verbatim from `benjamin_boenisch/templates/`, following the file-map in `templates/README.templates.md`.
- Placeholders substituted per the table in that doc: `{{REPO_NAME}}`, `{{ONE_LINE_DESCRIPTION}}`, `{{PORT}}`, `{{slug}}`, `{{x.y}}`, plane, license token, status.
- CI workflow chosen per repo stack:
- `tenant-registry` → `ci-go.yaml`
- `portal`, `design-tokens` → `ci-typescript.yaml`
- `orca-platform` → minimal `ci.yaml` that runs `orca validate` only (no app code yet, so `lint/test/build` jobs would be no-ops)
- `docs`, `seed-data` → `ci-typescript.yaml` skeleton (commitlint + gitleaks + trivy now; lint/test/build will light up when real package code lands)
- Branch protection still needs to be configured in Gitea UI (or via API) — that's tracked under M0.2 and is intentionally out of scope here so this PR can land first to give M0.2 something to protect.
- `LICENSE` is the canonical MIT for portal/docs/orca/seed-data, Apache-2.0 for the library-shaped repos (`tenant-registry` as a Go service consumed by other planes, `design-tokens` as a shared package).
## Test plan
- [ ] Unit tests added/updated
- [ ] Integration tests added/updated (real DB via testcontainers)
- [ ] Playwright e2e added/updated (only if user-facing flow changed)
- [ ] Manual smoke on stage after deploy
- [ ] Regression test added (only if this PR fixes a bug — must fail before the fix)
n/a — this PR adds no executable code. Verification is reviewer-eye on the template substitutions plus the CI workflow shape. Once M0.2 lands, CI itself will gate future PRs.
## Risk
**Blast radius:** single repo. No services run yet; merging this affects only the contents of this repo's `main` branch.
**What could break:**
- A template placeholder I missed renders as `{{...}}` in the README. Reviewer should grep `{{` in the diff.
- CI workflow references actions/secrets that aren't configured yet (`REGISTRY_USER`, `ORCA_STAGE_TOKEN`, etc.) — expected; the `image` job is gated on `push` to main so it only fires post-merge, and those secrets will be set in M0.2 before any merges to main happen.
**Rollback plan:** revert the PR. No infra, no state, no migrations involved.
## Checklist
- [x] Docs updated (the docs ARE the change)
- [ ] Audit events emitted for state changes (n/a — no state changes)
- [x] Secrets via Infisical, never in repo
- [ ] Migration is forward-only + idempotent (n/a — no migration)
- [ ] Tenant scoping enforced on every DB query (n/a — no DB access)
- [ ] OpenAPI spec updated (n/a — no API change)
- [ ] `featureFlags.evaluate()` used for any toggleable behavior (n/a)
- [x] CHANGELOG entry under "Unreleased" — added the skeleton; first real entry lands with M0.2.
## Screenshots / recordings
n/a — no UI.
---
<!--
Reviewer reminder: in this order — risk → tests → security → correctness → style.
Squash-merge after approval. PR title becomes the commit message.
-->
Replaces the OSS license (MIT or Apache-2.0) with a strict proprietary
notice naming Sharang Parnerkar and Benjamin Boenisch as the sole
copyright holders. No third party gets a license to use, copy, modify,
or distribute the contents of this repo without prior written permission
from both founders.
Refs: M0.1
sharang
merged commit db14bfac9f into main2026-05-18 19:15:34 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
Bootstraps the §1.2 scaffolding for this repo:
README.md,CONTRIBUTING.md,CODEOWNERS,CHANGELOG.md,.gitea/pull_request_template.md,.gitea/issue_template/{bug,feature}.md,LICENSE.Adds the per-stack CI workflow at
.gitea/workflows/ci.yamlplus the sharedrelease.yaml.Drops in the hand-rolled extras called out in
templates/README.templates.md:commitlint.config.cjs,cliff.toml,.editorconfig,.gitignore, empty.env.example.Repo-specific: Go CI workflow (
go fmt,go vet,golangci-lint,go testwith race + 70% coverage gate). Service scaffold + migrations land in M4.1.Why
This is the M0.1 bootstrap PR — first work item in
IMPLEMENTATION_PLAN.md. Every repo created under the newplatform/Gitea org needs the same §1.2 scaffolding before any feature work can land, so that CI, branch protection, commit conventions, audit/ownership, and the PR template are all enforced from the very first feature PR.Linked milestone: M0.1
How
benjamin_boenisch/templates/, following the file-map intemplates/README.templates.md.{{REPO_NAME}},{{ONE_LINE_DESCRIPTION}},{{PORT}},{{slug}},{{x.y}}, plane, license token, status.tenant-registry→ci-go.yamlportal,design-tokens→ci-typescript.yamlorca-platform→ minimalci.yamlthat runsorca validateonly (no app code yet, solint/test/buildjobs would be no-ops)docs,seed-data→ci-typescript.yamlskeleton (commitlint + gitleaks + trivy now; lint/test/build will light up when real package code lands)LICENSEis the canonical MIT for portal/docs/orca/seed-data, Apache-2.0 for the library-shaped repos (tenant-registryas a Go service consumed by other planes,design-tokensas a shared package).Test plan
n/a — this PR adds no executable code. Verification is reviewer-eye on the template substitutions plus the CI workflow shape. Once M0.2 lands, CI itself will gate future PRs.
Risk
Blast radius: single repo. No services run yet; merging this affects only the contents of this repo's
mainbranch.What could break:
{{...}}in the README. Reviewer should grep{{in the diff.REGISTRY_USER,ORCA_STAGE_TOKEN, etc.) — expected; theimagejob is gated onpushto main so it only fires post-merge, and those secrets will be set in M0.2 before any merges to main happen.Rollback plan: revert the PR. No infra, no state, no migrations involved.
Checklist
featureFlags.evaluate()used for any toggleable behavior (n/a)Screenshots / recordings
n/a — no UI.