Skip to content
Botpenny

An Astrohacker Project

Run your business with a team of bots.

I'm Botpenny. I'm exploring how a coordinated team of AI agents can run business workflows, with defined roles, human approvals and spending limits. Today I'm the working loop my own agents use to build me: they claim issues, write code, review each other's work and ask a person when they need one.

This page is generated from my repository, so it shows what exists now, not a roadmap.

botpenny · a9475aa

Agent skills5

  • skillbp
  • skillbp-code
  • skillbp-review
  • skillbp-deploy
  • skillbp-review-react-router

bp commands29

  • 9issue
  • 2worktree
  • 4pr
  • 4review
  • 7deploy
  • 3tool

Workflow6 stages · 4 human checkpoints

Counted from the repository when this site was built.

Repository map

What I'm made of today

Built from 8 tracked files at revision a9475aa. Select a part to see what it does and where work goes next.

Agent skill · bp-code

Coding agent

Run a Botpenny coding shift, claim and implement GitHub issues, ask for missing decisions, and follow each PR through review and merge.

Hands off to

Opens a PR for independent review: bp pr open → bp review next

What it does

  1. Run bp issue next. A coding shift continues until the human stops it. On idle, wait about a minute before polling again. Back off on network or rate-limit errors.
  2. For claimed or resumed, read bp issue show N, including comments. Start or resume the issue’s dedicated worktree with bp worktree start N PATH or the desktop-managed worktree procedure. Inspect the code, tests and any existing branch there. Respond on the issue with your plan or blocker using your agent identity. Identify the requested behavior and how to verify it. For each affected path, read the applicable AGENTS.md instructions from the repository root down to its directory. Follow the review skills they reference when the changed behavior triggers them. Combine the applicable skills across components. While working, check the issue thread at progress checkpoints and answer new questions with bp issue comment. Use the issue template as a guide; existing free-form issues can be equally actionable.
  3. If you cannot implement the issue (including missing requirements, unavailable access, or a decision only Ryan can make), run bp issue block N "What I tried, what prevents progress, and what I need from Ryan". This posts your explanation and applies needs-human. Leave the issue and any PR open, keep the claim, and take other work. If the block command fails partway, retry it with the same explanation before leaving the issue. Only Ryan clears the hold or closes the issue. Replies alone do not unblock it. For existing needs-info issues returned as clarification, assess the reply. If it resolves the question, clear the clarification label with gh issue edit N --remove-label needs-info and resume implementation. Otherwise escalate with bp issue block.
  4. Plan checkpoints around verifiable steps toward the issue’s acceptance criteria. For example, a website issue might first produce a buildable app, then a tested data loader, then a page that displays its output. For every step, inspect the diff, run the checks appropriate to that step, make a Git commit describing what it accomplishes, and push it to origin/codex/issue-N before moving on. On restart, inspect the worktree and branch history and continue from the latest checkpoint.
  5. Before submission, inspect the full diff against the PR base, including both paths of renames and paths removed. Recheck skill selection as the scope changes. Resolve review findings and run all applicable checks on the final commit. A failing check keeps the PR unopened until fixed and rerun. Once the issue’s acceptance criteria and checks pass, run bp pr open N "Title" "Changes and verification" from the issue worktree. Submit one PR for the series. In the PR body, name the skills applied, give the tested commit SHA, and record the commands or interactions exercised and their observed results. If no component skill applies, briefly explain why.
  6. For review or a newly opened PR, poll bp pr status P and bp issue show N about once a minute. Read and respond to actionable issue comments. If human_hold is true, leave the task for Ryan and return to the queue. For each change request, address the findings in checkpoint commits, push the revision, reassess affected paths, and repeat the affected skill checks on the final revision. Reply on the PR with your identity, final head SHA, skills used, what you exercised and the new results. A round is a change request and the coder’s response; several commits can comprise one response. Keep polling after each push. After the third response, the reviewer either passes that head or halts the PR for Ryan. The reviewer merges immediately after recording its pass. If you observe the PR still open with the current review holder’s pass on the current head, run bp pr merge P as fallback. If the reviewer already merged, proceed to confirming GitHub closed the issue. Then, from the primary checkout rather than the issue worktree, run bp pr retire P to retire the worktree and the local and origin issue branches. If the result is not complete, resolve each skipped reason and rerun it. If it asks you to archive a desktop-managed worktree, archive it from the chat that owns it before rerunning. The merge itself never needs repeating. On human closure, read the issue for direction. On halt, leave the remaining problem for Ryan and return to the queue.

Commands it runs

Connected skills

Workflow

How a piece of work moves

From issue to merge, two different agents do the work and the review, and deterministic claims keep them from colliding. A person can step in at the marked points.

Diagram · the designed path, not live activity

  1. 01

    Issue

    human

    Someone files a work request: what happens today, what should happen, and how to check it.

    • bp issue create
  2. 02

    Claim

    coding agent

    A coding agent takes the next issue. The claim is exclusive, so only one agent works on it.

    Human · Needs a decisionIf an agent cannot proceed, it explains why and applies needs-human. Both queues pause until Ryan clears the hold or closes the issue. bp issue block
    • bp issue next
    • bp issue take
  3. 03

    Worktree

    coding agent

    It posts a plan, then builds and tests on the issue branch in a dedicated worktree.

    Human · ClarificationA question on the issue waits for an answer before implementation continues. bp issue ask
    • bp worktree start
    • bp issue comment
  4. 04

    Pull request

    coding agent

    It pushes and opens a pull request that records the changes and how they were verified.

    • bp pr open
  5. 05

    Independent review

    review agent

    A different agent claims the PR, checks one exact commit in its own worktree, and records pass or changes.

    ↺ On changes: back to Worktree. The coder revises, pushes and replies with the new commit.

    Human · HaltAfter three answered change requests, a further change request halts the PR and leaves it for Ryan. bp review submit
    • bp review next
    • bp review take
    • bp review submit
  6. 06

    Merge

    review agent

    The reviewer merges after passing the current commit. The coder can finish if the PR is still open.

    Human · Close or redirectRyan can close an issue or hand an abandoned claim to another agent at any stage.
    • bp pr merge
    • bp pr status
  • Human
  • Coding agent
  • Review agent
  • Commands are real bp.nu commands, checked at build time.

Build snapshot

Recent merged work

Recorded when this site was built. It is a fixed record of the repository at one revision, not a live feed. Rebuilding the site refreshes it.

  1. #81Let the reviewer merge a passing PR, with coder fallback
  2. #78Load Botpenny’s Umami tracker once across site navigation
  3. #76Shorten both logo eyes from the bottom
  4. #74Give Botpenny matching long eyes and remove its mouth
  5. #72Recognize routine provider defaults during ECS image replacement
  6. #70Route independent PR reviews by harness and machine

Later

Not here yet

botpenny.com will become the place to sign up, connect your bots, see insights and download the macOS app. None of that exists yet. This first version shows the work that does.

Visit Astrohacker