Offer an example project when the user has nothing to deploy - #11
Open
jeroenrinzema wants to merge 1 commit into
Open
jeroenrinzema wants to merge 1 commit into
jeroenrinzema wants to merge 1 commit into
Conversation
Every path through deploy.md assumed a codebase existed, so a user evaluating BrainPod fell off at Step 2 with nothing to read. Step 0 offers one of BrainPod's own demos — brainpodnl/whiteboard or brainpodnl/astroid — behind a deliberately narrow trigger: no project named by the user and no source in the working directory. Both repos carry an AGENTS.md stating the deploy shape, so the clone stands in for Step 2 and every other step runs unchanged. Closes #4
jeroenrinzema
force-pushed
the
worktree/github-issue-4-fix-049b2e
branch
from
August 11, 2026 15:22
0a81d2a to
8a5e66d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #4.
deploy.mdgets a Step 0 that offers one of BrainPod's own demos when the user has nothing in hand. The four open questions in the issue, settled:Where the example comes from — brainpodnl/whiteboard and brainpodnl/astroid, both public and MIT-licensed, both written for exactly this ("Deploy it yourself" in each README pastes a prompt that invokes this skill). No application code is committed here; the agent clones, so the example stays matched to whatever the repos ship. This also drops the generate-an-app option — a generated app has no
AGENTS.md, and that file is what makes the rest of Step 0 short.What the example should be — not a static page. Both deploy the same shape: a Next.js service on
PORTwith aRoute, plus a managed Postgres and Valkey. That is the shape a user's own app will have, and it avoids the port-80 Caddy trap being the first thing a first-timer meets.How the user gets asked — the trigger requires both that the user named no project and that the working directory holds no source. Anything project-shaped is theirs, and the instruction is to ask, never to clone over it. The consequence is spelled out because it is worse than "recoverable politely":
/v1/pods/{pod}is GET-only insrc/openapi.json— there is no pod delete anywhere in the API, so a pod created on a wrong guess outlives the session and nothing the agent can run takes it back.How this composes with #12 — this branch is rebased onto the mandatory browser preflight. Step 0 runs first because choosing and cloning the example is what makes the project/display name derivable. Immediately afterward the agent returns to
SKILL.md, records browser preference and browser control, asks calibration with the real project name, and clears the console and identity gates before Step 1. No login, pod creation, deployment mutation, or image build can bypass #12's checkpoints.Where it goes — extended
deploy.mdrather than adding a reference. This is a branch off its front end, and every step from 1 onward is the same path; a separate file would have duplicated pod creation, the draft/diff discipline, and the deploy-and-verify steps. Nothing moved up intoSKILL.mdeither — having nothing to deploy is specific to this workflow, not shared with operate or debug.Budget
deploy.mdgoes 317 → 351 lines, and it was already the standing exception. What the 34 lines buy:AGENTS.mdin place of Step 2 (7) — both repos state the port, readiness path, resource graph, trial-sized instances, and how each database's connection details reach the App. This prevents re-deriving those facts or overwriting their existingDockerfileand.dockerignore.Routing stayed at two places: the one
SKILL.mdentry fordeploy.mdwas extended in place, and the reference's frontmatterdescriptionpicked up one clause — no new bullet, no new file, no extra prominence.Verification
maincontaining fix: enforce browser deployment gates #12; the PR remains one commit and mergeable.src/openapi.jsonin brainpodnl/cli lists/v1/pods/{pod}asgetonly.resources/{kind}/{namespace}/{name}is the only path withdelete.Dockerfile+.dockerignoreat the root,USER 1000,PORTdefaulting to 3000, andAGENTS.mdpresent.git diff --checkpasses; all three plugin manifests parse and match.describeprovides.Manifests bump
1.17.1→1.18.0in lockstep — new capability, non-breaking.metadata.required_accessis unchanged. Step 0 is agit cloneof a public repo, which is notgh, and the result is source the agent then reads under the existingCODEBASE.