AGENTS.md
+39 −100
https://raw.githubusercontent.com/callstackincubator/agent-device/HEAD/AGENTS.md
− `agent-device` is a CLI and daemon for automating Apple, Android, HarmonyOS, Vega, Linux, and web− targets. A long-lived daemon owns sessions; registry-derived commands route to platform runtimes.− Load only the procedures relevant to the task:− | Tests or gate selection | `docs/agents/testing.md` |− | Writing, auditing, or sweeping tests; dispatching test-audit subagents | `docs/agents/test-audit.md` |− | Selector capture, polling, or interaction fast paths | `docs/agents/selector-capture.md` |− | Opening or reviewing a PR | `docs/agents/pull-requests.md` |− | Apple runner changes or manual device verification | `docs/agents/device-verification.md` |− Versioned CLI help owns command semantics. Read the relevant topic when behavior is unclear;− normal app-driving startup follows the skill's routing card.− ## Incident-derived principles− - Classify interaction dispatch paths in `packages/contracts/src/interaction-guarantees.ts` and− verify each claim against the native implementation.− - Delegation on error proves no success-path parity. A fast path may succeed on a candidate the− shared rules would refuse.− - Prove both paths are reachable before measuring a fast path against its baseline.− - Repair recurring failures at the owning type, registry, or construction path; do not add guards− that reconstruct another source of truth.− - Keep control-flow narration and review history out of implementation comments. Encode invariants− in names, types, boundaries, and tests; reserve comments for public API docs, tool directives,− and non-obvious constraints that cannot be encoded.− - Key behavior on typed reasons and details, never error text; do not copy existing message sniffs.− - Keep metadata at response level when it applies to the whole snapshot. Append warnings through− the shared response builder; never replace prior warnings.− - Before preserving a compatibility shape, run `git tag --contains <commit>`. Unreleased API has no− external compatibility obligation.− ## Declaration sites and enforcement− Read the declaration rather than maintaining a prose copy:− - commands and their surface, runtime-use, batch, and timeout traits:− `packages/command-registry/src/registry.ts`− - daemon route ownership and request-policy traits: `src/daemon/daemon-command-registry.ts`− - interaction paths and guarantees: `packages/contracts/src/interaction-guarantees.ts`− - canonical command names: `packages/command-registry/src/catalog.ts`− - device runtime-use declarations and fact admission:− `packages/command-registry/src/registry.ts`, `src/daemon/runtime-admission.ts`, and− `src/platform-runtime-gateway.ts`− - common command input fields, and which surface may write an input key (model, operator, retired):− `src/commands/common-input-fields.ts` and `src/commands/input-audience.ts`− Shared selector parsing and matching belongs in `@agent-device/selectors`; daemon-side request− cancellation and progress in `@agent-device/host-kit/request`, and the caller's per-call abort guard+ `agent-device` is a CLI and daemon for automating devices and web targets.+ The daemon owns sessions. Registry declarations route commands to platform runtimes.+ Read only the row for your current task. Follow further links only when they apply.+ | Source changes, package boundaries, routing, diagnostics | `docs/agents/code-ownership.md` |+ | Running checks or diagnosing a failed gate | `docs/agents/testing.md` |+ | Writing or changing tests | `docs/agents/test-authoring.md` |+ | Auditing or deleting tests | `docs/agents/test-audit.md` |+ | Mutation experiments or base comparisons | `docs/agents/test-experiments.md` |+ | Changing gate selection, fuzzing, or mutation harnesses | `docs/agents/gates.md` |+ | Selector capture, polling, interaction fast paths, replay | `docs/agents/selector-capture.md` |+ | Opening or updating a PR | `docs/agents/pull-requests.md` |+ | Reviewing a change | `docs/agents/review.md` |+ | Device-facing changes or manual device verification | `docs/agents/device-verification.md` |+ Device-facing changes affect live device behavior: dispatch, capture, interaction, app lifecycle, or native execution.+ A daemon edit that changes none of these needs no device run.+ Versioned CLI help owns command semantics. For app-driving startup, use the skill's routing card.+ ## Working rules+ - Keep edits within the requested command family or module group. Inspect other platforms only when the task requires it.+ - Fix recurring failures at the owning type, registry, or construction path. Do not reconstruct another owner's state.+ - Use typed reasons and details for behavior. Never match error text.+ - Add compatibility or fallback behavior only when explicitly requested or approved. Remove superseded paths during migrations.+ - Encode invariants in names, types, and boundaries. Comments explain public APIs, tool directives, or constraints code cannot express.+ - Resolve gate failures at the reported invariant. Do not suppress them or add an allowlist to get a pass.+ - Use `@agent-device/selectors` for selector parsing and matching. See `docs/agents/code-ownership.md` for other shared owners.+ - Keep skills as routing cards. Keep `CONTEXT.md` glossary-only. Update owning help and user docs when behavior changes.+ ## Worktree setup+ - Use `pnpm`. Use OXC for lint and format. Run `pnpm format` repository-wide.+ - In a fresh worktree, run `pnpm install --frozen-lockfile && pnpm build` before testing.+ - Preserve other worktrees, devices, sessions, dirty files, and experiments.+ - Never copy `.env` into a worktree. For host credentials, source the main checkout's file by absolute path.+ - Give parallel workers disjoint files and distinct devices. `pnpm check:affected --run` and `pnpm check` serialize automatically.+ - The layering scan reads tracked files. Stage new modules before trusting its result.+ - Move a path's Fallow baseline entry when renaming its file. Do not regenerate unrelated baselines.+ The validation lock reclaims provably dead owners automatically. Unknown owners remain blocking.+ If waiting times out, report the printed owner and lock state; do not remove it by hand.+ ## Agent docs+ Write short instructions with one action per sentence. Put the condition before its action.+ Use the same term for the same concept. Keep commands and domain terms exact.+ Route specialized rules to their task document. Delete duplicate or enforced rules before adding reminders.
Showing the first 40 of each.