Loading...
Loading...
Set up a new app repository for the Boring Factory end to end — create it from the app template (hachej/boring-app), set its secrets and settings, invite the expert, verify the first runs, and hand the expert their next steps. Use when the maintainer asks to create, bootstrap or set up a new app or repository for the Factory, or to connect an existing repository to it.
npx skill4agent add hachej/boring-stack boring-new-appOWNER/NAMEvmcloudflarevmFACTORY_TOKENgh auth status # signed in as the maintainer, scopes repo + workflow
gh auth setup-git # git (and npx github:…) use gh's credentials
gh api repos/hachej/boring-factory --jq .full_name # read access to the factory
gh api repos/hachej/boring-app --jq .is_template # the app template: must print true
gh api repos/hachej/boring-factory/actions/permissions/access --jq .access_level # must be "user"usergh api -X PUT repos/hachej/boring-factory/actions/permissions/access -f access_level=usergh secret set| Secret | Where it comes from |
|---|---|
| The bot's token. When the bot is the signed-in maintainer: |
| The maintainer's Cursor key (from your secret store) |
| Only the person: |
initexport FACTORY_TOKEN="$(gh auth token)"
export CURSOR_API_KEY="…" # read from your secret store, never echoednpx -y github:hachej/boring-factory init OWNER/NAME --expert EXPERT --bot BOT --title "TITLE" --runtime vm
npx -y github:hachej/boring-factory init OWNER/NAME --expert EXPERT --bot BOT --title "TITLE" --runtime vm --yesinitgh repo create --templatescripts/init-app.mjsdeploy/<runtime>/project.mdFACTORY_BOT@maindeploy/<runtime>/DEPLOY.mdinitproductionmaingh secret list --repo OWNER/NAME # the three names
gh variable list --repo OWNER/NAME # FACTORY_BOT
gh label list --repo OWNER/NAME --limit 100 | wc -l # 26 or more
gh api repos/OWNER/NAME/invitations --jq '.[].invitee.login'
gh run list --repo OWNER/NAME --limit 5cimainpathsmaincheckgh run view <id> --log-failedAccept the invitation to OWNER/NAME, then on your machine:andnpx skills add hachej/boring-stack --skill boring-pm -g, open your agent (Claude Code, Codex or Cursor) inside the clone and describe what you want.gh repo clone OWNER/NAME
context → ci → triage → checks → gates → buildboring/ciboring/proofnpx -y github:hachej/boring-factory sync OWNER/NAME --dry-run
npx -y github:hachej/boring-factory sync OWNER/NAME --yes # labels + the "Adopt the Boring Factory" pull requestfactory.ymlproject.mdsetupcheckproject.md| Symptom | Cause | Fix |
|---|---|---|
| A factory bug or a token without access | Read the exact path in the log; if the token is fine, fix it in boring-factory's main (apps call it at |
A job says it cannot use | The factory's workflows are not shared | §1, access level |
| A template bug | Fix it in hachej/boring-app, then in the app |
| An agent or chat with | Make the agent declarative, or choose |
| Triage or the claude worker never runs | | §2 |
| The expert cannot approve the contract PR | The expert is the bot's account | Use another account for the expert |
| A Cursor task fails at once | Cursor quota or GitHub integration | Enable on-demand usage; connect the repo; or label the task |
| git has no credentials | |