| name | nitro-sound-workflows |
| description | Use for react-native-nitro-sound repository work that should follow the project workflows for PR review, code audit, knowledge compilation, full verification, iOS or Android audio E2E, npm releases, issue resolution, dependency upgrades, commits, pushes, PRs, Nitro code generation, and native cross-platform checks. |
Nitro Sound Workflows
Route natural-language maintenance requests to the repository's canonical
workflow documents and enforce the shared native-module safeguards below.
Read The Source Of Truth
Before editing, read root AGENTS.md and the instructions nearest the changed
path. Use these files as primary evidence:
- Public API:
src/index.tsx, src/index.web.tsx, and src/specs/*.nitro.ts
- Native behavior:
ios/**/*.swift and android/**/*.{kt,cpp,h,hpp}
- Generated bindings:
nitrogen/generated/**
- Build and release behavior:
package.json and .github/workflows/*.yml
- User documentation:
README.md, docs/*.md, and CHANGELOG.md
- Workflow details:
.claude/commands/*.md
Do not restate a rule when one of those files already defines it precisely.
Route The Request
Read and follow the matching command file:
- PR feedback, CI findings, or review monitoring:
$review-pr; the legacy
slash-command adapter is .claude/commands/review-pr.md
- Broad code and API audit:
.claude/commands/audit-code.md
- Rebuild compact AI context:
.claude/commands/compile-knowledge.md
- Resolve a GitHub issue:
.claude/commands/resolve-issue.md
- Full repository health check:
.claude/commands/verify-all.md
- Device-backed audio regression:
.claude/commands/e2e-tests.md
- Stable or prerelease npm publication:
.claude/commands/release.md
- Dependency upgrade:
.claude/commands/upgrade-deps.md
- Commit, push, or open a PR:
.claude/commands/commit.md
Use $ios-audio-e2e or $android-audio-e2e when the request targets one
native platform. Use $simulator-audio-e2e for repeatable virtual-device audio
regression flows that must explicitly avoid physical phones. Use
$generate-doc for API, migration, FAQ, changelog, or
release documentation. Use $review-self for an independent final pass and
$rebase-main for branch synchronization.
Preserve The Nitro Contract
- Treat
src/specs/*.nitro.ts as the native contract. Update the spec first
when the exposed HybridObject surface changes.
- Never hand-edit
nitrogen/generated/**. Regenerate with yarn nitrogen or
run the complete build/codegen flow with yarn prepare, then inspect the
generated diff.
- Keep TypeScript, Web, Swift, Kotlin, and C++ behavior aligned unless the public
documentation explicitly identifies a platform limitation.
- Preserve millisecond units for record and playback event positions.
- Check listener registration, removal, promise settlement, cleanup, and
recorder/player state transitions for every behavior change.
- Verify microphone permission and audio-session/focus behavior for recording
changes. Treat background and interruption claims as device-backed claims.
- Preserve user changes. Never discard unrelated generated output, local
settings, or untracked files.
Select Verification By Path
Always run git diff --check, then select the smallest complete matrix:
- TypeScript/hooks/Web: run
yarn typecheck, yarn test, and yarn lint.
Also run yarn build:web when Web behavior changes.
- Nitro spec or generated bindings:
yarn prepare, inspect all generated
changes, then run typecheck, tests, and lint.
- Swift/iOS: run the iOS build procedure in
.github/workflows/ci-ios.yml; use
$ios-audio-e2e for runtime behavior.
- Kotlin/Android: run the Android build procedure in
.github/workflows/ci-android.yml; use $android-audio-e2e for runtime
behavior.
- Cross-platform public behavior: verify iOS, Android, and Web or explicitly
report every untested platform.
- Documentation/workflows only: validate referenced paths and commands, check
Markdown structure, and run the affected lightweight checks.
Do not claim a runtime pass from compilation alone.
Guard External Writes
Internal workflow changes under .claude/, .codex/, AGENTS.md, or
knowledge/_claude-context/ stay local unless the user explicitly requests a
commit, push, PR, or merge.
Before any GitHub write, resolve the exact repository, issue or PR number, and
current head. Keep public issue, PR, review, release, and commit prose in clear
English unless the user explicitly requests another language. Do not reply to
or resolve a review thread until the finding is fixed or disproved with current
repository evidence.
Before a release, require explicit publication authority, a clean and current
main, successful required checks, an unused version/tag, and the manual
workflow defined in .github/workflows/publish-package.yml.