Steps 2 and 4 carried copy-paste from another project (lib/hub_web/router.ex, alias Hub.Accounts, /users/log-in with user[email]). A stale path there sends the agent to a router that does not exist, and a guessed module alias fails at run time. Both are now generic instructions to read the project: - route map: locate the router by searching for `use Phoenix.Router`, then read its scopes, pipelines and live_sessions to see what is public and what needs a session - authentication: only when the route actually needs it; take credentials from documented demo accounts or the project's seeds, create a demo user through the project's own path (seeds, registration route, or the accounts function found by grep - never a guessed alias), and read the login route and form selectors off the router and rendered form The port example keeps its concrete app/endpoint pair, now labelled as an example with the grep that finds the right names, plus a note to use the project's toolchain/build wrapper instead of bare `mix`. make check green.
Demo Skill
Generate living demo documents proving features work, with showboat for Markdown assembly and rodney for browser screenshots.
Prerequisites
Requires two Go CLI tools:
go install github.com/simonw/showboat@latest
go install github.com/simonw/rodney@latest
Verify installation:
showboat --help
rodney --help
Rodney Chrome data directory
Rodney needs write access to the Chrome data directory at ~/.rodney. If you get Permission denied errors when running rodney start, fix it:
mkdir -p ~/.rodney && chmod 755 ~/.rodney
Usage
In pi, invoke via:
/skill:demo <feature-name> [--scenario <description>] [--plan <path>]
Or ask naturally:
- "demo this"
- "show me it works"
- "create a demo"
- "create a demo of the authentication flow"
How It Works
- Checks that showboat and rodney are installed
- Gathers feature context from plan files, recent commits, or your description
- Verifies the dev server is running
- Handles authentication (creates a demo user if needed)
- Captures backend evidence (tests, compilation, database state)
- Takes browser screenshots of UI pages
- Maps evidence to acceptance criteria
- Produces a standalone Markdown demo document in
demos/
Demo Document Structure
- Feature Overview — narrative description
- Test Suite — relevant test output
- Compilation Check —
mix compile --warnings-as-errors - Database State — if relevant
- UI Screenshots — static pages and interactive flows
- Acceptance Criteria Verification — checklist with evidence references