run-skill-generatorlisted
Install: claude install-skill shekohex/dotai
Your job is to produce a **skill** at `<unit>/.pi/skills/run-<unit-name>/`
that lets a future agent build, launch, and **drive** this project from
a clean machine.
The skill has two parts that live together:
```
<unit>/.pi/skills/run-<unit-name>/
SKILL.md ← agent-facing instructions — SHORT. Points at the driver.
driver.mjs ← (or driver.py, smoke.sh, … — or none: web apps use
chromium-cli off-the-shelf, and the heredoc in
SKILL.md is the script)
```
That almost always means **writing code**, not just prose. If the app
has any interactive surface (GUI, TUI, long-running server, REPL), the
future agent needs a programmatic way to poke it. A markdown file by
itself cannot click a button — but sometimes the button-clicker
already exists: for web apps it's `chromium-cli`, for servers it's
`curl`. You build (or script) that harness now, commit it alongside
the skill, and the `SKILL.md` documents how to use it.
## Definition of done
You are done when **all** of these are true:
1. **You launched the app in this container and interacted with it** —
not its test suite, the actual running app. For anything with a GUI,
that means you have a screenshot file on disk that you took.
2. **The interaction harness is committed** next to the skill. A driver
script, a REPL wrapper, a smoke test, or the `chromium-cli` heredoc
inline in `SKILL.md` — whatever you used to drive the app in step 1.
(Graduated into `scripts/`/`e2e/`?