# Nitro Sound Workflows

> 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.

- Skill: `hyochan/nitro-sound-workflows` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add hyochan/nitro-sound-workflows`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hyochan/nitro-sound-workflows/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: hyochan (https://skillmd.com/u/hyochan)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hyochan/nitro-sound-workflows

---


# 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`.

