# Teaching project context

This folder contains prepared source examples for a slide tutorial. It is not an installed React Native app. `SaveAction.example.tsx` depends on illustrative project components and requires adaptation in a real host project.

Use the selected files explicitly as context. To teach automatic instruction discovery later, verify the selected assistant's current AGENTS.md or CLAUDE.md behavior and create a separate, minimal tool-specific example.

- Logic language: TypeScript. The isolated gate test uses Node's built-in test runner and type stripping.
- Existing UI contract: AppButton accepts title, loading, disabled, onPress and accessibilityState. AppText renders text and accepts accessibilityRole. Their implementation is intentionally outside this sample.
- Labels are passed in from the host's localization system. No new translation library is required.
- The gate must be retained per mounted owner. A new gate per tap does not protect concurrent calls; one module-global gate blocks unrelated owners.
- Proposed command, from `tutorial-series/sample/`: `node --experimental-strip-types --test save-gate.test.mjs`.
- This command checks the pure gate logic. It does not typecheck the TSX file, mount React Native, or test touch handling or accessibility.
- If needed context is missing, identify it. Do not invent the host app's components, scripts or package versions.
