mirror of
https://github.com/Piebald-AI/claude-code-system-prompts.git
synced 2026-05-30 05:35:24 +08:00
77 lines
3.7 KiB
Markdown
77 lines
3.7 KiB
Markdown
<!--
|
|
name: 'Skill: Run app'
|
|
description: Skill for launching and driving the current project's app through its real runtime surface using project-specific run skills or fallback patterns
|
|
ccVersion: 2.1.145
|
|
-->
|
|
---
|
|
name: run
|
|
description: Launch and drive this project's app to see a change working. Use when asked to run, start, or screenshot the app, or to confirm a change works in the real app (not just tests). First looks for a project skill that already covers launching the app; otherwise falls back to built-in patterns per project type (CLI, server, TUI, Electron, browser-driven, library).
|
|
---
|
|
|
|
**Running means launching the actual app and interacting with it** —
|
|
not the test suite, not an `import` of an internal function and a
|
|
`console.log`. The app as a user (human or programmatic) would meet
|
|
it: the CLI at its command, the server at its socket, the GUI at its
|
|
window.
|
|
|
|
## First: does a project skill already cover this?
|
|
|
|
A project skill that launches this app is the repo's verified path —
|
|
its author already cold-started from a Linux container and committed
|
|
what worked: the exact `apt-get` line, the env vars, the patches, the
|
|
driver. Use it instead of rediscovering.
|
|
|
|
```bash
|
|
d=$PWD; while :; do
|
|
grep -Hm1 '^description:' "$d"/.claude/skills/*/SKILL.md 2>/dev/null
|
|
[ -e "$d/.git" ] || [ "$d" = / ] && break
|
|
d=$(dirname "$d")
|
|
done
|
|
```
|
|
|
|
- **One describes launching/driving this app** → read that SKILL.md
|
|
and follow it verbatim. Don't paraphrase; don't skip the patches.
|
|
- **Mega-repo, several plausible, no clear match** → ask the user
|
|
which unit to run.
|
|
- **Stale** (fails on mechanics unrelated to your task) → tell the
|
|
user; offer to refresh it via `/run-skill-generator`.
|
|
- **Nothing about running** → fall back to the patterns below.
|
|
|
|
## Otherwise: match the shape, use the pattern
|
|
|
|
Pick the row closest to your project. Each example walks through
|
|
launch + first interaction; ignore any trailing "write the skill"
|
|
section — you're using the recipe, not authoring one.
|
|
|
|
| Project type | Handle | Example |
|
|
|---|---|---|
|
|
| CLI tool | direct invocation, exit code, stdin/stdout | [examples/cli.md](examples/cli.md) |
|
|
| Web server / API | background launch + `curl` smoke | [examples/server.md](examples/server.md) |
|
|
| TUI / interactive terminal | tmux `send-keys` / `capture-pane` | [examples/tui.md](examples/tui.md) |
|
|
| Electron / desktop GUI | Playwright `_electron` REPL under xvfb | [examples/electron.md](examples/electron.md) |
|
|
| Browser-driven | dev server + `chromium-cli` script | [examples/playwright.md](examples/playwright.md) |
|
|
| Library / SDK | import-and-call smoke script at the package boundary | [examples/library.md](examples/library.md) |
|
|
|
|
If nothing fits, start from the closest match and adapt. For a web
|
|
app, [examples/playwright.md](examples/playwright.md) — drive it with
|
|
`chromium-cli`, no custom driver needed. For a desktop app,
|
|
[examples/electron.md](examples/electron.md) — it has the `_electron`
|
|
REPL driver skeleton and the tmux wrapping.
|
|
|
|
## Drive it, don't just launch it
|
|
|
|
Launching with no interaction proves the entrypoint resolves. That's
|
|
not running the app — it's typechecking with extra steps. Drive it to
|
|
a point where a user would see something:
|
|
|
|
- CLI → type a representative command, check the exit code and output.
|
|
- Server → hit the route the diff touches with `curl`, read the body.
|
|
- TUI → `send-keys` a navigation, `capture-pane` the result.
|
|
- GUI → click the button, screenshot the window. **Look at the
|
|
screenshot.** A blank frame is a failure to launch.
|
|
|
|
If the fallback pattern didn't work out of the box — you had to
|
|
install packages, set env vars, patch config, or write a driver —
|
|
recommend `/run-skill-generator` in your report so that work gets
|
|
captured as a project skill. If it just worked, don't.
|