From 18d79370847d5a77037cbcbf916415d324eeaee5 Mon Sep 17 00:00:00 2001 From: Raghu Betina Date: Mon, 12 Oct 2026 10:25:53 -0500 Subject: [PATCH] Point the workshop notes at the app's AGENTS.md The Setup and specs bullet copied the generated AGENTS.md's spec rule and needed a mirror change each time the Compiler added a kind of stub. On 2026-10-12 the owner made the app's AGENTS.md the one copy and changed the rule: the agent previews before every Behavior to write item is written and debugs other failures instead of reporting them. The bullet now runs setup and the specs and points to that file. The Selenium steps stay because they belong to this Codespace. The Blocked hosts rule stopped the workshop. The agent now adds the exact forwarded host to development's config.hosts, notes it under First Draft defects in the implementation notes, and continues, still without clearing config.hosts. Root Compile no longer asks for a separate approval to move the Drawing Board into .firstdraft/design/, which is the designed workshop path; the Skill's read-back decides when Compile runs. README step 7 no longer says Claude asks how involved you want to be in technical decisions, which the next Skill stops doing. The rest of the step holds before and after that release. --- .devcontainer/workshop/app-instructions.md | 13 +++---------- AGENTS.md | 14 +++++++------- README.md | 5 ++--- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/.devcontainer/workshop/app-instructions.md b/.devcontainer/workshop/app-instructions.md index 54ea378..b2a1299 100644 --- a/.devcontainer/workshop/app-instructions.md +++ b/.devcontainer/workshop/app-instructions.md @@ -10,14 +10,8 @@ Never print secrets, show a file that holds one, or ask the user to paste one in it under `.firstdraft/design/`. ## Setup and specs -- After Compile, set up the app, build its assets and run its specs as its README says, before the - first preview. In that first run, a spec that fails through behavior the README's - **Behavior to write** lists is work to do: write that behavior until its specs pass. A stubbed - scope or event raises `NotImplementedError`, a stubbed Policy rule returns `false`, and a - deletion outcome First Draft left out fails its spec with `RecordNotDestroyed`. Write every item - that section lists, including a denying rule no failing spec names. Any other failure in that - run is a First Draft defect: tell the user which spec failed and its error. Never edit or delete - a generated spec to make it pass. +- After Compile, set up the app, build its assets and run its specs as its README says. The app's + `AGENTS.md` says how to treat the results and when to start the preview. - System specs need a Selenium browser that this Codespace does not start by itself. From the app's root, start it before every spec run (all specs, one spec file, or `bin/ci`) and stop it afterward, even when specs fail. Run these lines as one command, with your spec command in place @@ -36,8 +30,7 @@ Never print secrets, show a file that holds one, or ask the user to paste one in ``` ## Web app -- Once the specs have run after Compile, start the web app in the background and keep it - running all session: +- To start the preview, run the web app in the background and keep it running all session: `bin/dev log/bin-dev.log 2>&1`. Rails already admits this Codespace's forwarded address. Open `https://$CODESPACE_NAME-3000.$GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN` for the user with `bash ~/.workshop/open.sh `, and also give them that link. Keep port 3000 diff --git a/AGENTS.md b/AGENTS.md index 4fd542a..a3ae589 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,10 +19,10 @@ notes own starting the web app, Cloudinary, Revyl previews, and the Render deplo - The planning `.firstdraft/` is ignored by Git. Review the current Plan directly; do not infer its state from a Git diff. Root adoption moves this private state into `.firstdraft/design/.firstdraft/`; the new root `.firstdraft/` contains the generated app's submitted Plan and reviewed GapSet instead. -- Run `bin/firstdraft plan compile --output .` from the physical workspace root. Obtain explicit approval of the - reviewed Plan, its gaps, and the move of this Drawing Board into `.firstdraft/design/` first; a generic Compile - request does not authorize that move. If root eligibility fails, preserve the workspace and explain the exact - refusal; do not delete files or switch modes to force it through. +- Run `bin/firstdraft plan compile --output .` from the physical workspace root once the Skill's read-back allows + Compile. Moving this Drawing Board into `.firstdraft/design/` is the designed workshop path and needs no separate + approval. If root eligibility fails, preserve the workspace and explain the exact refusal; do not delete files or + switch modes to force it through. - After root adoption, keep the existing `.git` and any remote. Inspect and commit the staged generated baseline, checking that no real credentials or private CLI state are staged. Reviewed public demo logins in the generated README, development seeds, and submitted Plan are expected; preserve them. When the user asks to save the app to @@ -40,9 +40,9 @@ notes own starting the web app, Cloudinary, Revyl previews, and the Render deplo precondition. Stop and ask the user whether to continue in the existing application, push its nested `main` to an approved remote, or preserve it under the Drawing Board's ignored, bind-mounted `tmp/` before starting a different Compile. Do not use `/tmp`, the container home, or another path that a Codespace rebuild discards. -- If a Codespaces forwarded-port URL reaches Rails' **Blocked hosts** page, preserve the exact generated revision, - report the observed response, and stop. Do not edit or clear `config.hosts`, or add host-admission environment - variables to the Drawing Board or the generated application. +- If a Codespaces forwarded-port URL reaches Rails' **Blocked hosts** page, add that exact forwarded host to + development's `config.hosts`, note it under "First Draft defects" in `.firstdraft/design/implementation-notes.md`, + and continue. Do not clear `config.hosts`. - Do not use `plan compile --github`: the workshop saves this Codespace's own repository instead. No Compile mode deploys the application. - Use `bin/firstdraft` for every First Draft command. When the installed Skill shows `firstdraft ...`, pass those diff --git a/README.md b/README.md index 327f566..261b7ff 100644 --- a/README.md +++ b/README.md @@ -115,9 +115,8 @@ Build your own idea. No idea yet? Step 6 has a family social network you can bui ```text /create-full-stack-app Help me build a social network for just my family. It should work and look like Instagram so that it's familiar. ``` -7. Claude first looks up how similar apps work, then asks a few questions, one at a time. One of them is how - involved you want to be in technical decisions. Answer in your own words, or say "you pick". At any point you can - say "make the rest of the decisions for me". +7. Claude first looks up how similar apps work, then asks a few questions, one at a time. Answer in your own words, + or say "you pick". At any point you can say "make the rest of the decisions for me". 8. A few minutes in, Claude tells you what First Draft will and won't build. If it can build only part of your idea, that's expected: continue with what it builds, or switch to the family social network from step 6. Then Claude shows you a summary of the plan. Change anything you like: it's your app. When it looks right, approve