dev-stack
Skill12 starsChanged 2 months agoApache-2.0View on GitHub
Bring up, inspect, or tear down an AccessFlow local stack — the infra-only dev loop, the zero-config demo stack, one of the three e2e stacks, or the website. Handles the port collisions, tells you the seeded credentials, and never tears down a stack you did not name. Trigger when the user says "start the app", "run it locally", "spin up the stack", "restart the backend", "boot the e2e stack", "why is 5173 taken", or "give me a working login".
4 other projects use a version of this.
Adopted by
Most recently taken up by
- dzianisv/skillstheir own version, first seen Nov 8, 2026
- LarsLrn/orcaitheir own version, first seen Nov 8, 2026
- pumpkit-io/sdlctheir own version, first seen Nov 1, 2026
- PiloTracer/pilo.ai.logicbisontheir own version, first seen Oct 11, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- dzianisv/skills★ 4same name
- LarsLrn/orcai★ 2same name
- pumpkit-io/sdlc★ 2same name
- PiloTracer/pilo.ai.logicbison★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository8 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- website/llms.txtllms.txt
- add-engineSkill
- commit-sequenceSkill
- impl-gh-issueSkill
- parallel-agentsSkill
- prep-gh-releaseSkill
- review-gh-prSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
If the user says "start the app" with no qualifier, that is dev up.
- Distinctive: line 40
Never silently kill the process holding it.
- Very specific: line 47
Frontend and website: always use preview_start with the .claude/launch.json name (frontend, website).
- Distinctive: line 91
Don't run the Playwright suite from here — that is the e2e workflow.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
dev-stack
Inputs
- target —
dev(default) |demo|e2e|e2e-setup|e2e-sso|website - action —
up(default) |status|logs|down
If the user says "start the app" with no qualifier, that is dev up. If they mention a spec or
Playwright, it is one of the e2e targets. If they want to look at the product with no setup, it
is demo.
The stacks
| Target | What runs | Ports |
dev | backend/docker-compose-dev.yml (Postgres + Redis + Mailcrab) + mvn -f backend/pom.xml spring-boot:run + the frontend launch config | API 8080 · SPA 5173 · Mailcrab UI 1080 · PG 5432 · Redis 6379 |
demo | root docker-compose.yml — the whole product, zero config | API 8080 · SPA 5173 |
e2e | e2e/docker-compose.e2e.yml, images built from the working tree, admin seeded via bootstrap | API 8080 · SPA 5173 |
e2e-setup | e2e/docker-compose.e2e.setup.yml, no admin seeded (first-run wizard) | API 8081 · SPA 5174 |
e2e-sso | e2e/docker-compose.e2e.sso.yml + a mock SimpleSAMLphp IdP | API 8082 · SPA 5175 · IdP 8085 |
website | the website launch config (python3 -m http.server, no build step) | 8090 |
Workflow
1. Preflight
docker info >/dev/null || echo "Docker is not running"
lsof -i :5173 -i :8080 -sTCP:LISTENThe 5173 collision is the single most common trap. The dev, demo and e2e targets all
bind host port 5173, and the user's own local app often already holds it. If it is taken, say so
and offer the choice — free the port, or set E2E_BASE_URL / E2E_API_BASE for the e2e targets.
Never silently kill the process holding it.
2. Bring it up
- Infra / compose:
docker compose -f <file> up -d --wait(the--waitis what makes the next step reliable). For the e2e targets prefer the packaged scripts, which already carry the right flags:cd e2e && npm run stack:up/stack:setup:up/stack:sso:up. - Frontend and website: always use
preview_startwith the.claude/launch.jsonname (frontend,website). Never runnpm run devthrough Bash — it holds the shell and the output is not surfaced. - Backend in
dev:mvn -f backend/pom.xml spring-boot:run, backgrounded. It needs env vars (DB_PASSWORD,ENCRYPTION_KEY,JWT_PRIVATE_KEY, …); the reference isdocs/09-deployment.md. If they are not set, say so rather than inventing values — or suggestdemo, which ships committed insecure keys for exactly this reason.
3. Wait and report
curl -fsS http://localhost:<api-port>/actuator/healthThen tell the user, in one block: the SPA URL, the API URL, the Mailcrab URL when it is running, and the login. For the e2e stack the seeded admin is:
e2e@accessflow.test / E2ePassword!123 (org "E2E Test Org", role ADMIN)e2e-setup seeds nothing on purpose — the wizard at /setup is the point.
4. status / logs / down
status— container health per stack plus which stack owns 5173/8080/8081/8082.logs—npm run stack:logs(ordocker compose -f <file> logs --tail=200).down—docker compose -f <file> down -v. Only the stack the user named.
Definition of done
/actuator/healthreturnsUPon the target's API port.- The SPA responds on its port (verify with
preview_start+ a read, not by asking the user). - The seeded credentials and every URL were printed.
statusshows no orphaned stack still holding a port.
Out of scope — do not do these
- Never
docker compose down -va stack the user did not name.-vdrops volumes, so it destroys their local data. - Never edit the committed demo keys in the root
docker-compose.yml. They are deliberately insecure and deliberately committed sodocker compose upworks on a fresh clone (CLAUDE.md→ Repository Layout). - Never kill a process holding a port without asking.
- Don't run the Playwright suite from here — that is the e2e workflow; this skill only gets the stack up.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

