firebase-tools-pr-review
Installation
SKILL.md
1. Quick Author & Reviewer Checklist
Before submitting or approving any PR on firebase/firebase-tools, verify:
- TypeScript Precision: No
anyoras any. Use generic parameters (client.request<T>()), explicit interfaces, orreadonly string[]for unmutated inputs. - No
null: Useundefinedor optional type annotations (string | undefined) instead ofnull. Drop redundant= undefinedinitializers. - CLI UX & Options Objects: Functions accept options objects rather than long positional argument lists. Command interfaces favor explicit flags over interactive pickers (CI safety).
- Clean CLI Initialization: No expensive background commands (e.g.
npx, sub-process execution) are triggered during CLI startup. - Error Remediation &
FirebaseError: Errors throwFirebaseErrorwith clear explanations and explicit remediation instructions (telling the user/agent what flag or tool to run). - Pristine
stdout(jqSafety): When--jsonis set, all logs, warnings, and spinners output tostderrsostdoutremains valid, parseable JSON. - Downgrade & Backward Safety: Disk state, emulator schemas, and CLI configs are backward-compatible to ensure developers can safely downgrade CLI versions.
- Testing Discipline: Unit tests exercise public APIs (
experiments.setEnabled) rather than stubbing private helpers. Mocks are cleaned up inafterEach(sinon.restore(),nock.cleanAll()). -
CHANGELOG.mdRules: User-facing bug fixes and new features include a changelog entry starting with a past-tense verb, with no[]annotations, and ending with(#<issue_number>)if applicable. Omit changelogs for unreleased flags or internal refactors. - No AI/Agent Junk: Unused comment blocks, residual issue numbers, or boilerplate generated by AI agents are stripped out.