Use when changing adapters, adapter runtime resolution, vendor-specific token behavior, capability reporting, initialization/reset flows, or built-in adapter registration. Helps keep vendor logic in the right package and aligned with emulator-backed tests.
Use when working on cmd/piv or internal/cli/app, especially for commands, flags, formatting, JSON output, trace routing, config handling, or destructive-operation safety. Helps keep stdout/stderr contracts stable and preserves dry-run and confirmation behavior.
Use when adding or updating emulator-backed tests, APDU trace fixtures, fake reader contexts, or command tests that should avoid real hardware. Helps align new tests with the repository's existing emulator and trace patterns.
Use when the task involves preparing, reviewing, staging, or committing repository changes. Helps keep commits focused, avoids bundling unrelated diffs, and keeps commit messages consistent with the repository's expected style.