@runchr/gstack-antigravity 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @runchr/gstack-antigravity might be problematic. Click here for more details.
- package/.agents/rules/ETHOS.md +129 -0
- package/.agents/rules/global-gstack.md +117 -0
- package/.agents/rules/persona-gstack-autoplan.md +14 -0
- package/.agents/rules/persona-gstack-benchmark.md +14 -0
- package/.agents/rules/persona-gstack-browse.md +14 -0
- package/.agents/rules/persona-gstack-canary.md +14 -0
- package/.agents/rules/persona-gstack-careful.md +14 -0
- package/.agents/rules/persona-gstack-codex.md +14 -0
- package/.agents/rules/persona-gstack-cso.md +14 -0
- package/.agents/rules/persona-gstack-design-consultation.md +14 -0
- package/.agents/rules/persona-gstack-design-review.md +14 -0
- package/.agents/rules/persona-gstack-document-release.md +14 -0
- package/.agents/rules/persona-gstack-freeze.md +14 -0
- package/.agents/rules/persona-gstack-gstack-upgrade.md +14 -0
- package/.agents/rules/persona-gstack-guard.md +14 -0
- package/.agents/rules/persona-gstack-investigate.md +14 -0
- package/.agents/rules/persona-gstack-land-and-deploy.md +14 -0
- package/.agents/rules/persona-gstack-office-hours.md +14 -0
- package/.agents/rules/persona-gstack-plan-ceo-review.md +14 -0
- package/.agents/rules/persona-gstack-plan-design-review.md +14 -0
- package/.agents/rules/persona-gstack-plan-eng-review.md +14 -0
- package/.agents/rules/persona-gstack-qa-only.md +14 -0
- package/.agents/rules/persona-gstack-qa.md +14 -0
- package/.agents/rules/persona-gstack-retro.md +14 -0
- package/.agents/rules/persona-gstack-review.md +14 -0
- package/.agents/rules/persona-gstack-setup-browser-cookies.md +14 -0
- package/.agents/rules/persona-gstack-setup-deploy.md +14 -0
- package/.agents/rules/persona-gstack-ship.md +14 -0
- package/.agents/rules/persona-gstack-unfreeze.md +14 -0
- package/.agents/rules/persona-gstack.md +40 -0
- package/.agents/rules/recursive-identities.md +22 -0
- package/.agents/workflows/autoplan.md +30 -0
- package/.agents/workflows/benchmark.md +31 -0
- package/.agents/workflows/browse.md +26 -0
- package/.agents/workflows/canary.md +33 -0
- package/.agents/workflows/careful.md +22 -0
- package/.agents/workflows/codex.md +36 -0
- package/.agents/workflows/cso.md +29 -0
- package/.agents/workflows/design-consultation.md +28 -0
- package/.agents/workflows/design-review.md +28 -0
- package/.agents/workflows/document-release.md +32 -0
- package/.agents/workflows/freeze.md +17 -0
- package/.agents/workflows/gstack-upgrade.md +54 -0
- package/.agents/workflows/gstack.md +56 -0
- package/.agents/workflows/guard.md +18 -0
- package/.agents/workflows/investigate.md +37 -0
- package/.agents/workflows/land-and-deploy.md +35 -0
- package/.agents/workflows/office-hours.md +27 -0
- package/.agents/workflows/plan-ceo-review.md +34 -0
- package/.agents/workflows/plan-design-review.md +31 -0
- package/.agents/workflows/plan-eng-review.md +28 -0
- package/.agents/workflows/qa-only.md +28 -0
- package/.agents/workflows/qa.md +73 -0
- package/.agents/workflows/retro.md +34 -0
- package/.agents/workflows/review.md +30 -0
- package/.agents/workflows/setup-browser-cookies.md +15 -0
- package/.agents/workflows/setup-cookies.md +8 -0
- package/.agents/workflows/setup-deploy.md +21 -0
- package/.agents/workflows/ship.md +93 -0
- package/.agents/workflows/unfreeze.md +12 -0
- package/LICENSE +22 -0
- package/README.md +189 -0
- package/README_KO.md +191 -0
- package/bin/install.js +105 -0
- package/gstack-origin/.agents/skills/gstack/SKILL.md +651 -0
- package/gstack-origin/.agents/skills/gstack-autoplan/SKILL.md +678 -0
- package/gstack-origin/.agents/skills/gstack-benchmark/SKILL.md +482 -0
- package/gstack-origin/.agents/skills/gstack-browse/SKILL.md +511 -0
- package/gstack-origin/.agents/skills/gstack-canary/SKILL.md +486 -0
- package/gstack-origin/.agents/skills/gstack-careful/SKILL.md +50 -0
- package/gstack-origin/.agents/skills/gstack-cso/SKILL.md +607 -0
- package/gstack-origin/.agents/skills/gstack-design-consultation/SKILL.md +615 -0
- package/gstack-origin/.agents/skills/gstack-design-review/SKILL.md +988 -0
- package/gstack-origin/.agents/skills/gstack-document-release/SKILL.md +604 -0
- package/gstack-origin/.agents/skills/gstack-freeze/SKILL.md +67 -0
- package/gstack-origin/.agents/skills/gstack-guard/SKILL.md +62 -0
- package/gstack-origin/.agents/skills/gstack-investigate/SKILL.md +415 -0
- package/gstack-origin/.agents/skills/gstack-land-and-deploy/SKILL.md +873 -0
- package/gstack-origin/.agents/skills/gstack-office-hours/SKILL.md +986 -0
- package/gstack-origin/.agents/skills/gstack-plan-ceo-review/SKILL.md +1268 -0
- package/gstack-origin/.agents/skills/gstack-plan-design-review/SKILL.md +668 -0
- package/gstack-origin/.agents/skills/gstack-plan-eng-review/SKILL.md +826 -0
- package/gstack-origin/.agents/skills/gstack-qa/SKILL.md +1006 -0
- package/gstack-origin/.agents/skills/gstack-qa-only/SKILL.md +626 -0
- package/gstack-origin/.agents/skills/gstack-retro/SKILL.md +1065 -0
- package/gstack-origin/.agents/skills/gstack-review/SKILL.md +704 -0
- package/gstack-origin/.agents/skills/gstack-setup-browser-cookies/SKILL.md +325 -0
- package/gstack-origin/.agents/skills/gstack-setup-deploy/SKILL.md +450 -0
- package/gstack-origin/.agents/skills/gstack-ship/SKILL.md +1312 -0
- package/gstack-origin/.agents/skills/gstack-unfreeze/SKILL.md +36 -0
- package/gstack-origin/.agents/skills/gstack-upgrade/SKILL.md +220 -0
- package/gstack-origin/.env.example +5 -0
- package/gstack-origin/.github/workflows/skill-docs.yml +17 -0
- package/gstack-origin/AGENTS.md +49 -0
- package/gstack-origin/ARCHITECTURE.md +359 -0
- package/gstack-origin/BROWSER.md +271 -0
- package/gstack-origin/CHANGELOG.md +800 -0
- package/gstack-origin/CLAUDE.md +284 -0
- package/gstack-origin/CONTRIBUTING.md +370 -0
- package/gstack-origin/ETHOS.md +129 -0
- package/gstack-origin/LICENSE +21 -0
- package/gstack-origin/README.md +228 -0
- package/gstack-origin/SKILL.md +657 -0
- package/gstack-origin/SKILL.md.tmpl +281 -0
- package/gstack-origin/TODOS.md +564 -0
- package/gstack-origin/VERSION +1 -0
- package/gstack-origin/autoplan/SKILL.md +689 -0
- package/gstack-origin/autoplan/SKILL.md.tmpl +416 -0
- package/gstack-origin/benchmark/SKILL.md +489 -0
- package/gstack-origin/benchmark/SKILL.md.tmpl +233 -0
- package/gstack-origin/bin/dev-setup +68 -0
- package/gstack-origin/bin/dev-teardown +56 -0
- package/gstack-origin/bin/gstack-analytics +191 -0
- package/gstack-origin/bin/gstack-community-dashboard +113 -0
- package/gstack-origin/bin/gstack-config +38 -0
- package/gstack-origin/bin/gstack-diff-scope +71 -0
- package/gstack-origin/bin/gstack-global-discover.ts +591 -0
- package/gstack-origin/bin/gstack-repo-mode +93 -0
- package/gstack-origin/bin/gstack-review-log +9 -0
- package/gstack-origin/bin/gstack-review-read +12 -0
- package/gstack-origin/bin/gstack-slug +15 -0
- package/gstack-origin/bin/gstack-telemetry-log +158 -0
- package/gstack-origin/bin/gstack-telemetry-sync +127 -0
- package/gstack-origin/bin/gstack-update-check +196 -0
- package/gstack-origin/browse/SKILL.md +517 -0
- package/gstack-origin/browse/SKILL.md.tmpl +141 -0
- package/gstack-origin/browse/bin/find-browse +21 -0
- package/gstack-origin/browse/bin/remote-slug +14 -0
- package/gstack-origin/browse/scripts/build-node-server.sh +48 -0
- package/gstack-origin/browse/src/browser-manager.ts +634 -0
- package/gstack-origin/browse/src/buffers.ts +137 -0
- package/gstack-origin/browse/src/bun-polyfill.cjs +109 -0
- package/gstack-origin/browse/src/cli.ts +420 -0
- package/gstack-origin/browse/src/commands.ts +111 -0
- package/gstack-origin/browse/src/config.ts +150 -0
- package/gstack-origin/browse/src/cookie-import-browser.ts +417 -0
- package/gstack-origin/browse/src/cookie-picker-routes.ts +207 -0
- package/gstack-origin/browse/src/cookie-picker-ui.ts +541 -0
- package/gstack-origin/browse/src/find-browse.ts +61 -0
- package/gstack-origin/browse/src/meta-commands.ts +269 -0
- package/gstack-origin/browse/src/platform.ts +17 -0
- package/gstack-origin/browse/src/read-commands.ts +335 -0
- package/gstack-origin/browse/src/server.ts +369 -0
- package/gstack-origin/browse/src/snapshot.ts +398 -0
- package/gstack-origin/browse/src/url-validation.ts +91 -0
- package/gstack-origin/browse/src/write-commands.ts +352 -0
- package/gstack-origin/browse/test/bun-polyfill.test.ts +72 -0
- package/gstack-origin/browse/test/commands.test.ts +1836 -0
- package/gstack-origin/browse/test/config.test.ts +250 -0
- package/gstack-origin/browse/test/cookie-import-browser.test.ts +397 -0
- package/gstack-origin/browse/test/cookie-picker-routes.test.ts +205 -0
- package/gstack-origin/browse/test/find-browse.test.ts +50 -0
- package/gstack-origin/browse/test/fixtures/basic.html +33 -0
- package/gstack-origin/browse/test/fixtures/cursor-interactive.html +22 -0
- package/gstack-origin/browse/test/fixtures/dialog.html +15 -0
- package/gstack-origin/browse/test/fixtures/empty.html +2 -0
- package/gstack-origin/browse/test/fixtures/forms.html +55 -0
- package/gstack-origin/browse/test/fixtures/qa-eval-checkout.html +108 -0
- package/gstack-origin/browse/test/fixtures/qa-eval-spa.html +98 -0
- package/gstack-origin/browse/test/fixtures/qa-eval.html +51 -0
- package/gstack-origin/browse/test/fixtures/responsive.html +49 -0
- package/gstack-origin/browse/test/fixtures/snapshot.html +55 -0
- package/gstack-origin/browse/test/fixtures/spa.html +24 -0
- package/gstack-origin/browse/test/fixtures/states.html +17 -0
- package/gstack-origin/browse/test/fixtures/upload.html +25 -0
- package/gstack-origin/browse/test/gstack-config.test.ts +125 -0
- package/gstack-origin/browse/test/gstack-update-check.test.ts +467 -0
- package/gstack-origin/browse/test/handoff.test.ts +235 -0
- package/gstack-origin/browse/test/path-validation.test.ts +63 -0
- package/gstack-origin/browse/test/platform.test.ts +37 -0
- package/gstack-origin/browse/test/snapshot.test.ts +467 -0
- package/gstack-origin/browse/test/test-server.ts +57 -0
- package/gstack-origin/browse/test/url-validation.test.ts +72 -0
- package/gstack-origin/canary/SKILL.md +493 -0
- package/gstack-origin/canary/SKILL.md.tmpl +220 -0
- package/gstack-origin/careful/SKILL.md +59 -0
- package/gstack-origin/careful/SKILL.md.tmpl +57 -0
- package/gstack-origin/careful/bin/check-careful.sh +112 -0
- package/gstack-origin/codex/SKILL.md +677 -0
- package/gstack-origin/codex/SKILL.md.tmpl +356 -0
- package/gstack-origin/conductor.json +6 -0
- package/gstack-origin/cso/SKILL.md +615 -0
- package/gstack-origin/cso/SKILL.md.tmpl +376 -0
- package/gstack-origin/design-consultation/SKILL.md +625 -0
- package/gstack-origin/design-consultation/SKILL.md.tmpl +369 -0
- package/gstack-origin/design-review/SKILL.md +998 -0
- package/gstack-origin/design-review/SKILL.md.tmpl +262 -0
- package/gstack-origin/docs/images/github-2013.png +0 -0
- package/gstack-origin/docs/images/github-2026.png +0 -0
- package/gstack-origin/docs/skills.md +877 -0
- package/gstack-origin/document-release/SKILL.md +613 -0
- package/gstack-origin/document-release/SKILL.md.tmpl +357 -0
- package/gstack-origin/freeze/SKILL.md +82 -0
- package/gstack-origin/freeze/SKILL.md.tmpl +80 -0
- package/gstack-origin/freeze/bin/check-freeze.sh +68 -0
- package/gstack-origin/gstack-upgrade/SKILL.md +226 -0
- package/gstack-origin/gstack-upgrade/SKILL.md.tmpl +224 -0
- package/gstack-origin/guard/SKILL.md +82 -0
- package/gstack-origin/guard/SKILL.md.tmpl +80 -0
- package/gstack-origin/investigate/SKILL.md +435 -0
- package/gstack-origin/investigate/SKILL.md.tmpl +196 -0
- package/gstack-origin/land-and-deploy/SKILL.md +880 -0
- package/gstack-origin/land-and-deploy/SKILL.md.tmpl +575 -0
- package/gstack-origin/office-hours/SKILL.md +996 -0
- package/gstack-origin/office-hours/SKILL.md.tmpl +624 -0
- package/gstack-origin/package.json +55 -0
- package/gstack-origin/plan-ceo-review/SKILL.md +1277 -0
- package/gstack-origin/plan-ceo-review/SKILL.md.tmpl +838 -0
- package/gstack-origin/plan-design-review/SKILL.md +676 -0
- package/gstack-origin/plan-design-review/SKILL.md.tmpl +314 -0
- package/gstack-origin/plan-eng-review/SKILL.md +836 -0
- package/gstack-origin/plan-eng-review/SKILL.md.tmpl +279 -0
- package/gstack-origin/qa/SKILL.md +1016 -0
- package/gstack-origin/qa/SKILL.md.tmpl +316 -0
- package/gstack-origin/qa/references/issue-taxonomy.md +85 -0
- package/gstack-origin/qa/templates/qa-report-template.md +126 -0
- package/gstack-origin/qa-only/SKILL.md +633 -0
- package/gstack-origin/qa-only/SKILL.md.tmpl +101 -0
- package/gstack-origin/retro/SKILL.md +1072 -0
- package/gstack-origin/retro/SKILL.md.tmpl +833 -0
- package/gstack-origin/review/SKILL.md +849 -0
- package/gstack-origin/review/SKILL.md.tmpl +259 -0
- package/gstack-origin/review/TODOS-format.md +62 -0
- package/gstack-origin/review/checklist.md +190 -0
- package/gstack-origin/review/design-checklist.md +132 -0
- package/gstack-origin/review/greptile-triage.md +220 -0
- package/gstack-origin/scripts/analytics.ts +190 -0
- package/gstack-origin/scripts/dev-skill.ts +82 -0
- package/gstack-origin/scripts/eval-compare.ts +96 -0
- package/gstack-origin/scripts/eval-list.ts +116 -0
- package/gstack-origin/scripts/eval-select.ts +86 -0
- package/gstack-origin/scripts/eval-summary.ts +187 -0
- package/gstack-origin/scripts/eval-watch.ts +172 -0
- package/gstack-origin/scripts/gen-skill-docs.ts +2414 -0
- package/gstack-origin/scripts/skill-check.ts +167 -0
- package/gstack-origin/setup +269 -0
- package/gstack-origin/setup-browser-cookies/SKILL.md +330 -0
- package/gstack-origin/setup-browser-cookies/SKILL.md.tmpl +74 -0
- package/gstack-origin/setup-deploy/SKILL.md +459 -0
- package/gstack-origin/setup-deploy/SKILL.md.tmpl +220 -0
- package/gstack-origin/ship/SKILL.md +1457 -0
- package/gstack-origin/ship/SKILL.md.tmpl +528 -0
- package/gstack-origin/supabase/config.sh +10 -0
- package/gstack-origin/supabase/functions/community-pulse/index.ts +59 -0
- package/gstack-origin/supabase/functions/telemetry-ingest/index.ts +135 -0
- package/gstack-origin/supabase/functions/update-check/index.ts +37 -0
- package/gstack-origin/supabase/migrations/001_telemetry.sql +89 -0
- package/gstack-origin/test/analytics.test.ts +277 -0
- package/gstack-origin/test/codex-e2e.test.ts +197 -0
- package/gstack-origin/test/fixtures/coverage-audit-fixture.ts +76 -0
- package/gstack-origin/test/fixtures/eval-baselines.json +7 -0
- package/gstack-origin/test/fixtures/qa-eval-checkout-ground-truth.json +43 -0
- package/gstack-origin/test/fixtures/qa-eval-ground-truth.json +43 -0
- package/gstack-origin/test/fixtures/qa-eval-spa-ground-truth.json +43 -0
- package/gstack-origin/test/fixtures/review-eval-design-slop.css +86 -0
- package/gstack-origin/test/fixtures/review-eval-design-slop.html +41 -0
- package/gstack-origin/test/fixtures/review-eval-enum-diff.rb +30 -0
- package/gstack-origin/test/fixtures/review-eval-enum.rb +27 -0
- package/gstack-origin/test/fixtures/review-eval-vuln.rb +14 -0
- package/gstack-origin/test/gemini-e2e.test.ts +173 -0
- package/gstack-origin/test/gen-skill-docs.test.ts +1049 -0
- package/gstack-origin/test/global-discover.test.ts +187 -0
- package/gstack-origin/test/helpers/codex-session-runner.ts +282 -0
- package/gstack-origin/test/helpers/e2e-helpers.ts +239 -0
- package/gstack-origin/test/helpers/eval-store.test.ts +548 -0
- package/gstack-origin/test/helpers/eval-store.ts +689 -0
- package/gstack-origin/test/helpers/gemini-session-runner.test.ts +104 -0
- package/gstack-origin/test/helpers/gemini-session-runner.ts +201 -0
- package/gstack-origin/test/helpers/llm-judge.ts +130 -0
- package/gstack-origin/test/helpers/observability.test.ts +283 -0
- package/gstack-origin/test/helpers/session-runner.test.ts +96 -0
- package/gstack-origin/test/helpers/session-runner.ts +357 -0
- package/gstack-origin/test/helpers/skill-parser.ts +206 -0
- package/gstack-origin/test/helpers/touchfiles.ts +260 -0
- package/gstack-origin/test/hook-scripts.test.ts +373 -0
- package/gstack-origin/test/skill-e2e-browse.test.ts +293 -0
- package/gstack-origin/test/skill-e2e-deploy.test.ts +279 -0
- package/gstack-origin/test/skill-e2e-design.test.ts +614 -0
- package/gstack-origin/test/skill-e2e-plan.test.ts +538 -0
- package/gstack-origin/test/skill-e2e-qa-bugs.test.ts +194 -0
- package/gstack-origin/test/skill-e2e-qa-workflow.test.ts +412 -0
- package/gstack-origin/test/skill-e2e-review.test.ts +535 -0
- package/gstack-origin/test/skill-e2e-workflow.test.ts +586 -0
- package/gstack-origin/test/skill-e2e.test.ts +3325 -0
- package/gstack-origin/test/skill-llm-eval.test.ts +787 -0
- package/gstack-origin/test/skill-parser.test.ts +179 -0
- package/gstack-origin/test/skill-routing-e2e.test.ts +605 -0
- package/gstack-origin/test/skill-validation.test.ts +1520 -0
- package/gstack-origin/test/telemetry.test.ts +278 -0
- package/gstack-origin/test/touchfiles.test.ts +262 -0
- package/gstack-origin/unfreeze/SKILL.md +40 -0
- package/gstack-origin/unfreeze/SKILL.md.tmpl +38 -0
- package/package.json +38 -0
- package/scripts/install-antigravity-skill.ps1 +33 -0
- package/scripts/install-antigravity-skill.sh +41 -0
- package/scripts/sync-gstack-origin.ps1 +37 -0
- package/scripts/sync-gstack-origin.sh +35 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gstack
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
description: |
|
|
5
|
+
Fast headless browser for QA testing and site dogfooding. Navigate any URL, interact with
|
|
6
|
+
elements, verify page state, diff before/after actions, take annotated screenshots, check
|
|
7
|
+
responsive layouts, test forms and uploads, handle dialogs, and assert element states.
|
|
8
|
+
~100ms per command. Use when you need to test a feature, verify a deployment, dogfood a
|
|
9
|
+
user flow, or file a bug with evidence.
|
|
10
|
+
|
|
11
|
+
gstack also includes development workflow skills. When you notice the user is at
|
|
12
|
+
these stages, suggest the appropriate skill:
|
|
13
|
+
- Brainstorming a new idea → suggest /office-hours
|
|
14
|
+
- Reviewing a plan (strategy) → suggest /plan-ceo-review
|
|
15
|
+
- Reviewing a plan (architecture) → suggest /plan-eng-review
|
|
16
|
+
- Reviewing a plan (design) → suggest /plan-design-review
|
|
17
|
+
- Auto-reviewing a plan (all reviews at once) → suggest /autoplan
|
|
18
|
+
- Creating a design system → suggest /design-consultation
|
|
19
|
+
- Debugging errors → suggest /investigate
|
|
20
|
+
- Testing the app → suggest /qa
|
|
21
|
+
- Code review before merge → suggest /review
|
|
22
|
+
- Visual design audit → suggest /design-review
|
|
23
|
+
- Ready to deploy / create PR → suggest /ship
|
|
24
|
+
- Post-ship doc updates → suggest /document-release
|
|
25
|
+
- Weekly retrospective → suggest /retro
|
|
26
|
+
- Wanting a second opinion or adversarial code review → suggest /codex
|
|
27
|
+
- Working with production or live systems → suggest /careful
|
|
28
|
+
- Want to scope edits to one module/directory → suggest /freeze
|
|
29
|
+
- Maximum safety mode (destructive warnings + edit restrictions) → suggest /guard
|
|
30
|
+
- Removing edit restrictions → suggest /unfreeze
|
|
31
|
+
- Upgrading gstack to latest version → suggest /gstack-upgrade
|
|
32
|
+
|
|
33
|
+
If the user pushes back on skill suggestions ("stop suggesting things",
|
|
34
|
+
"I don't need suggestions", "too aggressive"):
|
|
35
|
+
1. Stop suggesting for the rest of this session
|
|
36
|
+
2. Run: gstack-config set proactive false
|
|
37
|
+
3. Say: "Got it — I'll stop suggesting skills. Just tell me to be proactive
|
|
38
|
+
again if you change your mind."
|
|
39
|
+
|
|
40
|
+
If the user says "be proactive again" or "turn on suggestions":
|
|
41
|
+
1. Run: gstack-config set proactive true
|
|
42
|
+
2. Say: "Proactive suggestions are back on."
|
|
43
|
+
allowed-tools:
|
|
44
|
+
- Bash
|
|
45
|
+
- Read
|
|
46
|
+
- AskUserQuestion
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
{{PREAMBLE}}
|
|
51
|
+
|
|
52
|
+
If `PROACTIVE` is `false`: do NOT proactively suggest other gstack skills during this session.
|
|
53
|
+
Only run skills the user explicitly invokes. This preference persists across sessions via
|
|
54
|
+
`gstack-config`.
|
|
55
|
+
|
|
56
|
+
# gstack browse: QA Testing & Dogfooding
|
|
57
|
+
|
|
58
|
+
Persistent headless Chromium. First call auto-starts (~3s), then ~100-200ms per command.
|
|
59
|
+
Auto-shuts down after 30 min idle. State persists between calls (cookies, tabs, sessions).
|
|
60
|
+
|
|
61
|
+
{{BROWSE_SETUP}}
|
|
62
|
+
|
|
63
|
+
## IMPORTANT
|
|
64
|
+
|
|
65
|
+
- Use the compiled binary via Bash: `$B <command>`
|
|
66
|
+
- NEVER use `mcp__claude-in-chrome__*` tools. They are slow and unreliable.
|
|
67
|
+
- Browser persists between calls — cookies, login sessions, and tabs carry over.
|
|
68
|
+
- Dialogs (alert/confirm/prompt) are auto-accepted by default — no browser lockup.
|
|
69
|
+
- **Show screenshots:** After `$B screenshot`, `$B snapshot -a -o`, or `$B responsive`, always use the Read tool on the output PNG(s) so the user can see them. Without this, screenshots are invisible.
|
|
70
|
+
|
|
71
|
+
## QA Workflows
|
|
72
|
+
|
|
73
|
+
### Test a user flow (login, signup, checkout, etc.)
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# 1. Go to the page
|
|
77
|
+
$B goto https://app.example.com/login
|
|
78
|
+
|
|
79
|
+
# 2. See what's interactive
|
|
80
|
+
$B snapshot -i
|
|
81
|
+
|
|
82
|
+
# 3. Fill the form using refs
|
|
83
|
+
$B fill @e3 "test@example.com"
|
|
84
|
+
$B fill @e4 "password123"
|
|
85
|
+
$B click @e5
|
|
86
|
+
|
|
87
|
+
# 4. Verify it worked
|
|
88
|
+
$B snapshot -D # diff shows what changed after clicking
|
|
89
|
+
$B is visible ".dashboard" # assert the dashboard appeared
|
|
90
|
+
$B screenshot /tmp/after-login.png
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Verify a deployment / check prod
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
$B goto https://yourapp.com
|
|
97
|
+
$B text # read the page — does it load?
|
|
98
|
+
$B console # any JS errors?
|
|
99
|
+
$B network # any failed requests?
|
|
100
|
+
$B js "document.title" # correct title?
|
|
101
|
+
$B is visible ".hero-section" # key elements present?
|
|
102
|
+
$B screenshot /tmp/prod-check.png
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Dogfood a feature end-to-end
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Navigate to the feature
|
|
109
|
+
$B goto https://app.example.com/new-feature
|
|
110
|
+
|
|
111
|
+
# Take annotated screenshot — shows every interactive element with labels
|
|
112
|
+
$B snapshot -i -a -o /tmp/feature-annotated.png
|
|
113
|
+
|
|
114
|
+
# Find ALL clickable things (including divs with cursor:pointer)
|
|
115
|
+
$B snapshot -C
|
|
116
|
+
|
|
117
|
+
# Walk through the flow
|
|
118
|
+
$B snapshot -i # baseline
|
|
119
|
+
$B click @e3 # interact
|
|
120
|
+
$B snapshot -D # what changed? (unified diff)
|
|
121
|
+
|
|
122
|
+
# Check element states
|
|
123
|
+
$B is visible ".success-toast"
|
|
124
|
+
$B is enabled "#next-step-btn"
|
|
125
|
+
$B is checked "#agree-checkbox"
|
|
126
|
+
|
|
127
|
+
# Check console for errors after interactions
|
|
128
|
+
$B console
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Test responsive layouts
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Quick: 3 screenshots at mobile/tablet/desktop
|
|
135
|
+
$B goto https://yourapp.com
|
|
136
|
+
$B responsive /tmp/layout
|
|
137
|
+
|
|
138
|
+
# Manual: specific viewport
|
|
139
|
+
$B viewport 375x812 # iPhone
|
|
140
|
+
$B screenshot /tmp/mobile.png
|
|
141
|
+
$B viewport 1440x900 # Desktop
|
|
142
|
+
$B screenshot /tmp/desktop.png
|
|
143
|
+
|
|
144
|
+
# Element screenshot (crop to specific element)
|
|
145
|
+
$B screenshot "#hero-banner" /tmp/hero.png
|
|
146
|
+
$B snapshot -i
|
|
147
|
+
$B screenshot @e3 /tmp/button.png
|
|
148
|
+
|
|
149
|
+
# Region crop
|
|
150
|
+
$B screenshot --clip 0,0,800,600 /tmp/above-fold.png
|
|
151
|
+
|
|
152
|
+
# Viewport only (no scroll)
|
|
153
|
+
$B screenshot --viewport /tmp/viewport.png
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Test file upload
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
$B goto https://app.example.com/upload
|
|
160
|
+
$B snapshot -i
|
|
161
|
+
$B upload @e3 /path/to/test-file.pdf
|
|
162
|
+
$B is visible ".upload-success"
|
|
163
|
+
$B screenshot /tmp/upload-result.png
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Test forms with validation
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
$B goto https://app.example.com/form
|
|
170
|
+
$B snapshot -i
|
|
171
|
+
|
|
172
|
+
# Submit empty — check validation errors appear
|
|
173
|
+
$B click @e10 # submit button
|
|
174
|
+
$B snapshot -D # diff shows error messages appeared
|
|
175
|
+
$B is visible ".error-message"
|
|
176
|
+
|
|
177
|
+
# Fill and resubmit
|
|
178
|
+
$B fill @e3 "valid input"
|
|
179
|
+
$B click @e10
|
|
180
|
+
$B snapshot -D # diff shows errors gone, success state
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Test dialogs (delete confirmations, prompts)
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
# Set up dialog handling BEFORE triggering
|
|
187
|
+
$B dialog-accept # will auto-accept next alert/confirm
|
|
188
|
+
$B click "#delete-button" # triggers confirmation dialog
|
|
189
|
+
$B dialog # see what dialog appeared
|
|
190
|
+
$B snapshot -D # verify the item was deleted
|
|
191
|
+
|
|
192
|
+
# For prompts that need input
|
|
193
|
+
$B dialog-accept "my answer" # accept with text
|
|
194
|
+
$B click "#rename-button" # triggers prompt
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Test authenticated pages (import real browser cookies)
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Import cookies from your real browser (opens interactive picker)
|
|
201
|
+
$B cookie-import-browser
|
|
202
|
+
|
|
203
|
+
# Or import a specific domain directly
|
|
204
|
+
$B cookie-import-browser comet --domain .github.com
|
|
205
|
+
|
|
206
|
+
# Now test authenticated pages
|
|
207
|
+
$B goto https://github.com/settings/profile
|
|
208
|
+
$B snapshot -i
|
|
209
|
+
$B screenshot /tmp/github-profile.png
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Compare two pages / environments
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
$B diff https://staging.app.com https://prod.app.com
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Multi-step chain (efficient for long flows)
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
echo '[
|
|
222
|
+
["goto","https://app.example.com"],
|
|
223
|
+
["snapshot","-i"],
|
|
224
|
+
["fill","@e3","test@test.com"],
|
|
225
|
+
["fill","@e4","password"],
|
|
226
|
+
["click","@e5"],
|
|
227
|
+
["snapshot","-D"],
|
|
228
|
+
["screenshot","/tmp/result.png"]
|
|
229
|
+
]' | $B chain
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Quick Assertion Patterns
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Element exists and is visible
|
|
236
|
+
$B is visible ".modal"
|
|
237
|
+
|
|
238
|
+
# Button is enabled/disabled
|
|
239
|
+
$B is enabled "#submit-btn"
|
|
240
|
+
$B is disabled "#submit-btn"
|
|
241
|
+
|
|
242
|
+
# Checkbox state
|
|
243
|
+
$B is checked "#agree"
|
|
244
|
+
|
|
245
|
+
# Input is editable
|
|
246
|
+
$B is editable "#name-field"
|
|
247
|
+
|
|
248
|
+
# Element has focus
|
|
249
|
+
$B is focused "#search-input"
|
|
250
|
+
|
|
251
|
+
# Page contains text
|
|
252
|
+
$B js "document.body.textContent.includes('Success')"
|
|
253
|
+
|
|
254
|
+
# Element count
|
|
255
|
+
$B js "document.querySelectorAll('.list-item').length"
|
|
256
|
+
|
|
257
|
+
# Specific attribute value
|
|
258
|
+
$B attrs "#logo" # returns all attributes as JSON
|
|
259
|
+
|
|
260
|
+
# CSS property
|
|
261
|
+
$B css ".button" "background-color"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Snapshot System
|
|
265
|
+
|
|
266
|
+
{{SNAPSHOT_FLAGS}}
|
|
267
|
+
|
|
268
|
+
## Command Reference
|
|
269
|
+
|
|
270
|
+
{{COMMAND_REFERENCE}}
|
|
271
|
+
|
|
272
|
+
## Tips
|
|
273
|
+
|
|
274
|
+
1. **Navigate once, query many times.** `goto` loads the page; then `text`, `js`, `screenshot` all hit the loaded page instantly.
|
|
275
|
+
2. **Use `snapshot -i` first.** See all interactive elements, then click/fill by ref. No CSS selector guessing.
|
|
276
|
+
3. **Use `snapshot -D` to verify.** Baseline → action → diff. See exactly what changed.
|
|
277
|
+
4. **Use `is` for assertions.** `is visible .modal` is faster and more reliable than parsing page text.
|
|
278
|
+
5. **Use `snapshot -a` for evidence.** Annotated screenshots are great for bug reports.
|
|
279
|
+
6. **Use `snapshot -C` for tricky UIs.** Finds clickable divs that the accessibility tree misses.
|
|
280
|
+
7. **Check `console` after actions.** Catch JS errors that don't surface visually.
|
|
281
|
+
8. **Use `chain` for long flows.** Single command, no per-step CLI overhead.
|