You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -191,10 +191,12 @@ Command-only flags (like `find --first`) that don't flow to the platform layer o
191
191
## Testing Matrix
192
192
- Docs/skills only: no tests required unless a more specific rule below applies.
193
193
- CLI help/guidance changes in `src/utils/command-schema.ts`: run `pnpm exec vitest run src/utils/__tests__/args.test.ts`.
194
-
- SkillGym prompt/assertion changes: run the touched `--case` checks. For broad validation, use `pnpm test:skillgym`; use`--tag fixture-smoke` or `--tag skill-guidance` when validating one suite group.
194
+
- SkillGym prompt/assertion changes: run `pnpm test:skillgym:case <case-id>`; the script builds local CLI help first. For broad validation, use `pnpm test:skillgym`; append`-- --tag fixture-smoke` or `-- --tag skill-guidance` when validating one suite group.
195
195
- Non-TS, no behavior impact: no tests unless requested.
196
196
- Keep tests behavioral; do not assert shapes or cases TypeScript already proves.
197
197
- Any TS change: `pnpm typecheck` or `pnpm check:quick`.
198
+
- Fallow CI failures: reproduce with `pnpm check:fallow --base origin/main` instead of manually estimating complexity/dead-code impact.
199
+
- Test-only DI seam CI failures: the workflow enforces this; do not add optional `typeof` DI params in production code.
@@ -226,8 +228,8 @@ Command-only flags (like `find --first`) that don't flow to the platform layer o
226
228
- For behavior/CLI surface changes and command-planning guidance changes, write or update a SkillGym case in `test/skillgym/suites/agent-device-smoke-suite.ts` that captures the expected agent command plan.
227
229
- Do not update `skills/**/SKILL.md` for command behavior or workflow guidance unless the user explicitly asks; skills must route to versioned CLI help instead of carrying behavior details.
228
230
- Keep SkillGym cases behavioral and command-planning oriented. Prefer prompts that assert the user-visible contract and expected command family over brittle exact output, but forbid known bad patterns.
229
-
-Build before SkillGym when local CLI help is needed: `pnpm build`, then `pnpm exec skillgym run ... --case <id>`.
230
-
- Run SkillGym broad validation with `pnpm test:skillgym`; use v0.8 `--tag` filters for focused suite groups.
231
+
-Use `pnpm test:skillgym:case <case-id>` for focused SkillGym validation; it runs the environment guard and builds local CLI help before `skillgym run`.
232
+
- Run SkillGym broad validation with `pnpm test:skillgym`; append v0.8 filters such as `-- --tag fixture-smoke` for focused suite groups.
231
233
- Preserve current high-value workflow guidance:
232
234
- iOS Expo Go dogfood: prefer `agent-device open "Expo Go" <url> --platform ios` when the shell is known, then `snapshot -i` to confirm the project UI rather than the runner splash.
233
235
-`keyboard dismiss` is the preferred iOS keyboard-dismissal path before manually pressing visible keyboard controls such as `Done`; it remains best-effort and can report unsupported layouts explicitly.
'Anti-pattern: snapshot -i followed by snapshot -i | grep ...; prior refs stay valid until app state changes, and --force-full is the explicit full re-read.',
170
170
'Truncated text/input preview: expand first with snapshot -s @e12, not get text.',
171
171
'React Native apps: read help react-native for Metro, DevTools routing, and RN-specific blockers; use react-native dismiss-overlay for LogBox/RedBox overlays.',
172
-
'Android RN/Expo Metro: adb reverse tcp:<port> tcp:<port> is harmless and helps the device reach any local Metro port.',
172
+
'Android RN/Expo Metro: direct Android localhost URL opens with a port auto-configure host reachability.',
173
173
'Expo Go/dev clients: use the provided URL when given; on iOS prefer open "Expo Go" <url>; Android URL opens infer the foreground package for logs/perf when possible.',
174
174
'Install flows: install/install-from-source first, then open the installed id with --relaunch.',
175
175
'Text: fill \'id="field-email"\' "qa@example.com" replaces; type appends after press.',
@@ -351,7 +351,7 @@ React Native dev loop:
351
351
agent-device find "Home"
352
352
Do not use agent-device reload. Use open --relaunch for native startup reset.
353
353
React Native apps: use help react-native for Metro/Fast Refresh, DevTools routing, and RN-specific blockers; use react-native dismiss-overlay for LogBox/RedBox overlays.
354
-
Android RN/Expo Metro: run adb reverse tcp:<port> tcp:<port> before opening the appor URL; it is harmless even if already configured.
354
+
Android RN/Expo Metro: direct Android URL opens to localhost/127.0.0.1/[::1] with a port auto-configure host reachability. Manual adb reverse tcp:<port> tcp:<port> is only needed for app/package launches or unsupported flows where the app cannot reach local Metro.
355
355
Expo Go is a host shell. Use a provided project URL instead of inventing a bundle id; if no URL is provided but a target/app name is provided, open that target and do not inspect project files to find one. On iOS, prefer host + URL when the host shell is known because direct URL open can report success while leaving the runner/shell focused; verify with snapshot -i after opening:
356
356
agent-device open "Expo Go" exp://127.0.0.1:8081 --platform ios
357
357
agent-device snapshot -i --platform ios
@@ -512,7 +512,7 @@ React Native dev loop:
512
512
agent-device metro reload
513
513
agent-device find "Home"
514
514
Do not use agent-device reload. Use open --relaunch for native startup reset.
515
-
Android RN/Expo Metro: run adb reverse tcp:<port> tcp:<port> before opening the app or URL; it is harmless even if already configured.
515
+
Android RN/Expo Metro: direct Android localhost URL opens with a port auto-configure host reachability. For app/package launches, use help react-native if the app cannot reach local Metro.
516
516
Expo Go/dev clients are host shells. Use provided project URLs, verify with snapshot -i after opening, and ask instead of inventing app ids or URLs. Help workflow owns the full Expo URL command shapes.
517
517
518
518
Overlays and busy RN UIs:
@@ -621,7 +621,7 @@ Coverage:
621
621
Navigation, forms, empty/error/loading states, offline or retry behavior, permissions, settings, accessibility labels, orientation/keyboard, and obvious performance stalls.
622
622
React Native warning/error overlays can be real findings or test blockers. Capture them, use react-native dismiss-overlay if unrelated, re-snapshot, and report them.
623
623
Expo Go/dev-client shells: use the provided exp:// or dev-client URL and record whether the shell, project load, or app UI is being tested. On iOS dogfood, prefer agent-device open "Expo Go" <url> when Expo Go is the known shell, then snapshot -i to confirm the project UI rather than the runner splash.
624
-
Android RN/Expo Metro: run adb reverse tcp:<port> tcp:<port> before opening the app or URL; it is harmless even if already configured.
624
+
Android RN/Expo Metro: direct Android localhost URL opens with a port auto-configure host reachability.
0 commit comments