Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 3 additions & 10 deletions .devcontainer/workshop/app-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 </dev/null >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 <URL>`, and also give them that link. Keep port 3000
Expand Down
14 changes: 7 additions & 7 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading