codex-flows/docs/development-flow.md
matamune 1fb9aa5ed9
All checks were successful
ci / check (push) Successful in 26s
Rename development flow skill for jojo
2026-05-12 21:50:51 +00:00

104 lines
2.4 KiB
Markdown

# Development Flow
This monorepo is developed on jojo at `jojo.build`. Codeberg is a push mirror, and GitHub is used only when npm trusted publishing needs its workflow.
## Remotes
Use jojo as the normal development remote:
```bash
git remote -v
# origin git@jojo.build:peezy-tech/codex-flows.git
# codeberg git@codeberg.org:peezy-tech/codex-flows.git
# github https://github.com/peezy-tech/codex-flows.git
```
Push ordinary development to jojo:
```bash
git push origin main
```
`jojo.build` push-mirrors `main` to Codeberg. The local `codeberg` remote is kept for diagnostics and manual recovery.
Push to GitHub only when a release needs the trusted publishing workflow:
```bash
git push github main
```
## Accounts
- `peezy` is the human site admin account and has 2FA enabled.
- `matamune` is an active development worker account for this host and is not a site admin.
- Both accounts are Owners in `peezy-tech`.
## Machine Keys
This host uses a dedicated jojo SSH key and GPG key:
```text
~/.config/forgejo-keys/matamune-jojo-build-ssh.pub
~/.config/forgejo-keys/matamune-jojo-build-gpg.asc
```
The Codeberg key remains available for mirror diagnostics:
```text
~/.ssh/id_ed25519_codeberg.pub
```
## Jojo CLI
`fj` can talk to `jojo.build` after creating an application token:
```bash
fj --host jojo.build auth add-key <username> <token>
fj --host jojo.build auth use-ssh true
fj --host jojo.build auth list
```
## CI And Branch Protection
`main` is protected on `jojo.build`.
- Owners can push and merge.
- Required status context: `ci / check (push)`.
- The workflow lives at `.forgejo/workflows/ci.yml`.
- Protection applies to admins.
- Signed commits are not required yet.
The CI workflow runs:
```bash
bun install --frozen-lockfile
bun run check:types
bun run test
bun run --filter @peezy.tech/codex-flows release:check
```
## Releases
Release package: `@peezy.tech/codex-flows`
Before publishing:
```bash
bun run --filter @peezy.tech/codex-flows release:check
bun run check:types
bun run test
git diff --check
```
To publish through GitHub trusted publishing:
1. Bump `packages/codex-client/package.json`.
2. Commit and push to jojo.
3. Confirm the Codeberg mirror has received the commit.
4. Push the same commit to GitHub.
5. Run `.github/workflows/publish-codex-flows.yml` on GitHub with confirmation input `@peezy.tech/codex-flows`.
6. Verify npm:
```bash
npm dist-tag ls @peezy.tech/codex-flows
```