codex-flows/.codex/skills/jojo-development-flow/SKILL.md

112 lines
3.2 KiB
Markdown
Raw Normal View History

2026-05-12 21:50:51 +00:00
---
name: jojo-development-flow
description: Use when working in this repository on development flow, remotes, jojo.build operations, Codeberg mirroring, branch tracking, commit signing, jojo Actions, npm trusted publishing, release validation, or publishing @peezy.tech/codex-flows.
---
# Jojo Development Flow
## Overview
Use `jojo.build` as the canonical development home for `peezy-tech/codex-flows`. Codeberg is a push mirror. GitHub is only for npm trusted publishing.
## Current Structure
- Canonical repo: `https://jojo.build/peezy-tech/codex-flows`
- Git remote `origin`: `git@jojo.build:peezy-tech/codex-flows.git`
- Git remote `codeberg`: `git@codeberg.org:peezy-tech/codex-flows.git`
- Git remote `github`: `https://github.com/peezy-tech/codex-flows.git`
- `main` tracks `origin/main`.
- `jojo.build` push-mirrors `main` to Codeberg.
- GitHub is pushed manually only when npm trusted publishing needs the release workflow.
## Accounts And Access
- Human/admin account: `peezy`
- Host development worker account: `matamune`
- Organization: `peezy-tech`
- Both users are in the `peezy-tech` Owners team.
- `matamune` is active but is not a site admin.
- `peezy` is the site admin account and has 2FA enabled.
## Core Rules
- Push normal development to `origin`.
- Do not treat Codeberg as canonical; use it only as a mirror and recovery remote.
- Do not treat GitHub as a development remote.
- Push to GitHub only when the release workflow must publish to npm.
- Do not add npm tokens to the repo or GitHub secrets. GitHub publishes through trusted publishing.
- Use package name `@peezy.tech/codex-flows`, not `@peezy-tech/codex-flows`.
- Before release work, verify `origin/main` and `codeberg/main` are aligned.
- Keep commits signed when possible, but signed commits are not currently required by branch protection.
## Setup Checks
When asked to set up or verify the repo, check:
```bash
git remote -v
git status --short --branch
ssh -T git@jojo.build
git ls-remote origin refs/heads/main
git ls-remote codeberg refs/heads/main
gpg --list-secret-keys --keyid-format=long
```
Expected local key files:
```text
~/.ssh/id_ed25519_codeberg.pub
~/.config/forgejo-keys/matamune-jojo-build-ssh.pub
~/.config/forgejo-keys/matamune-jojo-build-gpg.asc
```
## Jojo CI
`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`.
- The runner is `jojo-build-runner-01`.
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
```
## Release Workflow
Normal development:
```bash
git pull
git push
```
Before release, run:
```bash
bun run --filter @peezy.tech/codex-flows release:check
bun run check:types
bun run test
git diff --check
```
Then:
1. Bump `packages/codex-client/package.json`.
2. Commit.
3. Push to jojo: `git push`.
4. Confirm Codeberg mirror has received the commit.
5. Push to GitHub: `git push github main`.
6. Run GitHub workflow `.github/workflows/publish-codex-flows.yml` with `confirm_package=@peezy.tech/codex-flows`.
7. Verify `npm dist-tag ls @peezy.tech/codex-flows`.
## References
- Read `references/development-flow.md` for exact setup and command details.