* feat(ci): gate PR ready on clean review rounds driven from draft Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ci): robust review-round wait loop, require codex evidence for marker skip Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ci): require pre-marker codex evidence, fail open on marker fetch errors Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
3.9 KiB
Autonomous Mode (Bypass Permissions)
When running in bypass/auto permission mode, follow these instructions to work end-to-end without human intervention.
Available Tools
The Nix devShell provides these tools for documentation and testing:
mmdc(mermaid-cli): Generate diagrams from Mermaid markup. Uses Nix-provided headless Chrome via$PUPPETEER_EXECUTABLE_PATH.asciinema: Record terminal sessions as.castfiles for demo videos.playwrightCLI: Take screenshots of the running frontend.
When to Use Them
- Designing a feature: Use
mmdcto generate Mermaid diagrams (architecture, data flow, sequence diagrams) during the planning phase. Include them in the PR description. - Frontend changes: Take screenshots with the Playwright CLI after manual testing. Attach them to the PR.
- CLI / terminal changes: Record a demo with
asciinemashowing the feature in action. Attach to the PR.
Quick Reference
# Generate a diagram
echo 'graph LR; A-->B; B-->C;' | mmdc -i - -o diagram.png
# Take a screenshot of a page
playwright screenshot --browser chromium http://localhost:3000 screenshot.png
# Record a terminal demo
asciinema rec demo.cast
# ... do the demo ...
# ctrl-d to stop
Always Plan First
Even in bypass mode, enter plan mode before starting non-trivial work. Ask all important questions upfront:
- Clarify ambiguous requirements before writing code
- Identify which files, crates, and features are affected
- Read
docs/validation.mdto know what checks you'll need to run - Break large features into stages — commit each stage separately
Manual Testing
After code changes compile and type-check, verify the feature works:
- Check backend logs (
tmux capture-pane -t .1 -p -S -50) — confirm no panics or errors - Check frontend logs (
tmux capture-pane -t .2 -p -S -50) — confirm no build errors - Use Playwright MCP to test the UI flow:
- Navigate to
http://localhost:3000/user/login - Click "Log in without third-party"
- Login with
admin@windmill.dev/changeme - Navigate to the page affected by your change
- Verify the feature works as expected
- Navigate to
- Test edge cases: empty states, error states, permissions
Playwright Gotchas
- Backend takes ~60s to compile on first change; check logs for
health check completed - Frontend rebuilds in ~5s
critical_alerts404s are expected on CE builds (EE-only endpoint) — ignore them- VSCode worker 404s are dev-mode artifacts — ignore them
- The
<Toggle>component hides the checkbox (sr-only). Click the<label>wrapper, not the checkbox
End-of-Task Summary
When done, directly open or update a draft PR against main once the work and validation are complete. Do not stop at a local summary or ask a human to create the PR manually.
Then drive the PR through CI review rounds to ready, per the pr skill ("Review rounds"): run .agents/skills/pr/review-round.sh as a background task, let its completion wake you, address the findings, and repeat until every reviewer verdict is a go — then post the clean-round marker comment and gh pr ready. Do not end the session at an unreviewed draft or while a round is pending; waiting on the background waiter costs nothing.
In your final summary, provide:
- What was changed and why (files modified, approach taken)
- What checks passed (cargo check, npm run check, etc.)
- What was manually tested and the results
- Screenshots of UI changes (via
playwright screenshot) - Terminal recordings of CLI changes (via asciinema)
- Any known limitations or follow-up work needed
Attaching images to a PR
Embed screenshots, Mermaid diagrams, and asciinema frames by uploading them to the
public windmill-labs/agent-screenshots-internal repo and pasting the
raw.githubusercontent.com URL into the PR. The upload recipe lives in the pr
skill (.agents/skills/pr/SKILL.md → "Screenshots"); reuse it for any image type.