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

3.2 KiB

name description
jojo-development-flow 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:

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:

~/.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:

bun install --frozen-lockfile
bun run check:types
bun run test
bun run --filter @peezy.tech/codex-flows release:check

Release Workflow

Normal development:

git pull
git push

Before release, run:

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.