e2e-runs
Skill36 starsChanged 8 months agoMITView on GitHub
How to set up, start, compare and harvest end-to-end orchestration runs, and how to run the web dashboard's Playwright suite. Use when starting or supervising an E2E run, when reading a run log for framework bugs, when comparing two runs, or when the dashboard UI changed and its Playwright tests need running.
- Sends data out
In this repository18 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- agent-commSkill
- cross-project-channelSkill
- evidence-disciplineSkill
- openspec-apply-changeSkill
- openspec-archive-changeSkill
- openspec-bulk-archive-changeSkill
- openspec-continue-changeSkill
- openspec-exploreSkill
- openspec-ff-changeSkill
- openspec-new-changeSkill
- openspec-onboardSkill
- openspec-proposeSkill
- openspec-sync-specsSkill
- openspec-update-changeSkill
- openspec-verify-changeSkill
- regression-baselineSkill
- setSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 2 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 17
After every E2E run, use set-harvest to scan consumer projects for framework-relevant fixes:
- Very specific: line 59
If you MUST init manually, always include --project-type web --template nextjs:
- Distinctive: line 67
After the runner script finishes, start the sentinel via the manager API (not CLI):
- Very specific: line 77
NEVER: use nohup set-sentinel from CLI — that only starts the orchestrator without the sentinel poll loop.
- Distinctive: line 81
After two runs of the same spec, compare their structural similarity:
- Very specific: line 118
Always run the E2E suite to verify nothing broke.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
E2E runs, run diagnostics, and the dashboard's Playwright suite
Moved out of
CLAUDE.mdon 2026-08-22 so it loads when it is needed rather than in every session. Nothing was cut — the text below is those three sections verbatim.
Consumer Project Diagnostics
set-core is developed and battle-tested through consumer projects. Before fixing bugs or adding features, always consult the primary consumer for real-world diagnostics.
Harvest (primary tool)
After every E2E run, use set-harvest to scan consumer projects for framework-relevant fixes:
set-harvest # scan all registered consumer projects
set-harvest --project craftbrew-run-20260320-1445 # scan single project
set-harvest --dry-run # preview without updating stateThe harvest tool scans ISS fix commits, classifies them (framework-relevant vs project-specific), and presents them for interactive adoption into planning rules, templates, or core code.
Manual workflow
- Read the latest orchestration run log — each log has a "set-core Bugs to Report" section and "Conclusions for set-core Development" with prioritized issues, root cause analysis, and design decisions.
- Diff .claude/ for upstream changes — during orchestration, the sentinel or user may improve commands, skills, or configs in the consumer's
.claude/. Diff against set-core source to find changes to adopt. - Check orchestration.yaml — the consumer's config reflects production usage. Understand what directives are actually used before changing defaults.
- Use run comparison data — run logs contain quantitative comparisons (wasted iterations, token efficiency, intervention count). Use these to validate whether a fix actually improved things.
Bidirectional flow
set-core (source) consumer project
│ │
├── set-project init ──────────────────►│ deploy .claude/ files
│ │
│◄── run logs (bugs, design) ──────────┤ diagnostics after each run
│◄── .claude/ diffs ──────────────────┤ sentinel/user improvements
│◄── orchestration.yaml ──────────────┤ config evolution
│ │
├── fix bugs, add features │
├── set-project init ──────────────────►│ redeployE2E Run Setup
Read tests/e2e/README.md first — it documents scaffolds, fallback logic, and runner internals.
NEVER initialize E2E runs manually. Always use tests/e2e/runners/:
./tests/e2e/runners/run-micro-web.sh # scaffold + init + register
./tests/e2e/runners/run-minishop.sh # scaffold + init + register
./tests/e2e/runners/run-craftbrew.sh # scaffold + init + registerIf you MUST init manually, always include --project-type web --template nextjs:
set-project init --name minishop-run-YYYYMMDD-HHMM --project-type web --template nextjsWithout --project-type web, no project-type.yaml is created → NullProfile loads → integration gates silently skip (no build/test/e2e detection).
Starting the sentinel
After the runner script finishes, start the sentinel via the manager API (not CLI):
# Restart set-web first if the project was just registered (picks up new projects)
systemctl --user restart set-web && sleep 5
# Start sentinel via API
curl -X POST http://localhost:7400/api/<project>/sentinel/start \
-H 'Content-Type: application/json' -d '{"spec":"docs/spec.md"}'NEVER use nohup set-sentinel from CLI — that only starts the orchestrator without the sentinel poll loop.
Comparing runs for divergence
After two runs of the same spec, compare their structural similarity:
./bin/set-compare minishop-run-20260315-0930 minishop-run-20260318-1415 # markdown report
./bin/set-compare micro-web-run-20260322-1100 micro-web-run-20260325-0845 --json # JSON output
./bin/set-compare run-a run-b --output docs/comparison.md # save to fileMetrics: route coverage, schema equivalence, dependencies, functional categories, template compliance, convention compliance, E2E test results. Score 0-100 with verdict.
Web Dashboard E2E Tests
The web dashboard (web/) has Playwright E2E tests that verify the UI renders API data correctly. Tests run against a live server with a real project — no mocks.
Running
cd web/
# Prerequisites: set-orch-core running, project with completed orchestration
E2E_PROJECT=minishop-run-20260315-0930 pnpm test:e2e
# View HTML report (screenshots on failure, step-by-step trace)
pnpm test:e2e:report
# Single test file
E2E_PROJECT=minishop-run-20260315-0930 npx playwright test changes-data
# Debug with visible browser
E2E_PROJECT=minishop-run-20260315-0930 npx playwright test --headedWhat they test
Gate icons, token values, status colors, session counts, duration calculation, phase grouping, chart rendering, log display, tab navigation, action buttons — every tab of the dashboard. Tests fetch API data first, then assert the UI matches. See web/tests/e2e/README.md for details.
After refactoring the web UI
Always run the E2E suite to verify nothing broke. The HTML report (pnpm test:e2e:report) shows exactly which assertions failed with screenshots.
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.

