Add jojo development flow skill
This commit is contained in:
commit
9540ca92f5
6 changed files with 318 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
.DS_Store
|
||||
*.tmp
|
||||
36
README.md
Normal file
36
README.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# peezy-tech skills
|
||||
|
||||
Shared Codex skills for peezy-tech development workflows.
|
||||
|
||||
This repo is intentionally small: one catalog, one folder per skill, and enough
|
||||
metadata for Codex to load each skill without extra setup.
|
||||
|
||||
## Available Skills
|
||||
|
||||
| Skill | Use When |
|
||||
| --- | --- |
|
||||
| [`jojo-development-flow`](./skills/jojo-development-flow/SKILL.md) | Working on `peezy-tech/codex-flows` remotes, jojo.build operations, Codeberg mirroring, jojo Actions, branch tracking, release validation, or npm trusted publishing. |
|
||||
|
||||
## Layout
|
||||
|
||||
```text
|
||||
skills/
|
||||
<skill-name>/
|
||||
SKILL.md
|
||||
agents/
|
||||
references/
|
||||
scripts/
|
||||
assets/
|
||||
```
|
||||
|
||||
Only `SKILL.md` is required. The optional directories are used when a skill
|
||||
needs agent metadata, supporting reference material, executable helpers, or
|
||||
assets.
|
||||
|
||||
## Checks
|
||||
|
||||
List the available skills:
|
||||
|
||||
```bash
|
||||
./scripts/list-skills.sh
|
||||
```
|
||||
7
scripts/list-skills.sh
Executable file
7
scripts/list-skills.sh
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
cd "$repo"
|
||||
find skills -name SKILL.md -not -path '*/node_modules/*' | sort
|
||||
111
skills/jojo-development-flow/SKILL.md
Normal file
111
skills/jojo-development-flow/SKILL.md
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
---
|
||||
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.
|
||||
4
skills/jojo-development-flow/agents/openai.yaml
Normal file
4
skills/jojo-development-flow/agents/openai.yaml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
interface:
|
||||
display_name: "Jojo Development Flow"
|
||||
short_description: "jojo.build development, Codeberg mirroring, and GitHub publishing flow."
|
||||
default_prompt: "Use the jojo-first development flow for remotes, branch tracking, jojo.build operations, signed commits, Codeberg mirroring, GitHub publishing, and npm trusted publishing."
|
||||
158
skills/jojo-development-flow/references/development-flow.md
Normal file
158
skills/jojo-development-flow/references/development-flow.md
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
# Jojo Development Flow Reference
|
||||
|
||||
## Remotes
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
`main` should track jojo:
|
||||
|
||||
```bash
|
||||
git branch --set-upstream-to=origin/main main
|
||||
git status --short --branch
|
||||
# ## main...origin/main
|
||||
```
|
||||
|
||||
Use jojo for day-to-day work:
|
||||
|
||||
```bash
|
||||
git pull
|
||||
git push
|
||||
```
|
||||
|
||||
Confirm Codeberg mirror state:
|
||||
|
||||
```bash
|
||||
git ls-remote origin refs/heads/main
|
||||
git ls-remote codeberg refs/heads/main
|
||||
```
|
||||
|
||||
Use GitHub only to run npm trusted publishing:
|
||||
|
||||
```bash
|
||||
git push github main
|
||||
gh workflow run publish-codex-flows.yml --repo peezy-tech/codex-flows --ref main -f confirm_package='@peezy.tech/codex-flows'
|
||||
```
|
||||
|
||||
## Accounts
|
||||
|
||||
- `peezy`: human site admin, 2FA enabled.
|
||||
- `matamune`: active development worker account for this host, not a site admin.
|
||||
- `peezy-tech`: organization containing `codex-flows`.
|
||||
- `load-game`: organization containing both `peezy` and `matamune`.
|
||||
|
||||
## Keys
|
||||
|
||||
Host SSH public key:
|
||||
|
||||
```text
|
||||
~/.config/forgejo-keys/matamune-jojo-build-ssh.pub
|
||||
```
|
||||
|
||||
Host GPG public key:
|
||||
|
||||
```text
|
||||
~/.config/forgejo-keys/matamune-jojo-build-gpg.asc
|
||||
```
|
||||
|
||||
Codeberg SSH key still exists for direct mirror diagnostics:
|
||||
|
||||
```text
|
||||
~/.ssh/id_ed25519_codeberg.pub
|
||||
```
|
||||
|
||||
Git signing is expected:
|
||||
|
||||
```bash
|
||||
git config --global commit.gpgsign true
|
||||
git config --global user.signingkey E3B0D5FB2E5CF11FAFB2EA113BB8E7D3B968A324
|
||||
```
|
||||
|
||||
## Jojo CLI And API Checks
|
||||
|
||||
`fj` can talk to `jojo.build` when authenticated:
|
||||
|
||||
```bash
|
||||
fj --host jojo.build auth list
|
||||
fj --host jojo.build repo view peezy-tech/codex-flows
|
||||
```
|
||||
|
||||
For admin automation, prefer a scoped `peezy` token. The old bootstrap `matamune` setup token should not be treated as the long-term admin credential.
|
||||
|
||||
## Branch Protection
|
||||
|
||||
`main` is protected:
|
||||
|
||||
- Owners can push and merge.
|
||||
- Required status context: `ci / check (push)`.
|
||||
- Protection applies to admins.
|
||||
- Signed commits are not required yet.
|
||||
|
||||
## Jojo Actions
|
||||
|
||||
Workflow file:
|
||||
|
||||
```text
|
||||
.forgejo/workflows/ci.yml
|
||||
```
|
||||
|
||||
The runner label used by CI is `ubuntu-latest`, backed by `node:22-bookworm`. The workflow installs Bun before running checks because the release dry-run needs `npm`.
|
||||
|
||||
Current CI gate:
|
||||
|
||||
```bash
|
||||
bun install --frozen-lockfile
|
||||
bun run check:types
|
||||
bun run test
|
||||
bun run --filter @peezy.tech/codex-flows release:check
|
||||
```
|
||||
|
||||
## Jojo CLI
|
||||
|
||||
```bash
|
||||
fj --host jojo.build auth add-key matamune <token>
|
||||
fj --host jojo.build auth use-ssh true
|
||||
```
|
||||
|
||||
Create the organization repo when missing:
|
||||
|
||||
```bash
|
||||
fj --host jojo.build org repo create peezy-tech codex-flows \
|
||||
-d "Public monorepo for @peezy.tech/codex-flows" \
|
||||
-S true
|
||||
```
|
||||
|
||||
Verify the repository:
|
||||
|
||||
```bash
|
||||
fj --host jojo.build repo view peezy-tech/codex-flows
|
||||
git ls-remote origin HEAD refs/heads/main
|
||||
```
|
||||
|
||||
## Package Release Gate
|
||||
|
||||
```bash
|
||||
bun run --filter @peezy.tech/codex-flows release:check
|
||||
bun run check:types
|
||||
bun run test
|
||||
git diff --check
|
||||
```
|
||||
|
||||
Verify npm after GitHub Actions publishing:
|
||||
|
||||
```bash
|
||||
npm dist-tag ls @peezy.tech/codex-flows
|
||||
npm view @peezy.tech/codex-flows version repository --json
|
||||
```
|
||||
|
||||
## Current State
|
||||
|
||||
- Canonical repo: `https://jojo.build/peezy-tech/codex-flows`
|
||||
- Codeberg mirror: `https://codeberg.org/peezy-tech/codex-flows`
|
||||
- GitHub publishing repo: `https://github.com/peezy-tech/codex-flows`
|
||||
- `origin/main` and `codeberg/main` should stay aligned automatically through the jojo push mirror.
|
||||
- `github/main` may lag until a release needs npm trusted publishing.
|
||||
Loading…
Add table
Add a link
Reference in a new issue