Automated summary
This skill provides commands to run Firebase functions, a web app, and Storybook locally, along with troubleshooting tips for the emulator.
Strengths
- Step-by-step instructions for local development
- Detailed troubleshooting for emulator issues
- Covers multiple tools (Firebase, NX, Storybook)
- Clear handling of environment variables
Limitations
- Assumes a specific project structure (NX, Firebase)
- Does not cover production deployment
- May require manual cleanup if stale processes interfere
Use this skill when you need to run or debug the web app and functions locally, including setting up the emulator or running Storybook.
Do not use this skill for production deployment or for projects not using NX and Firebase.
Security analysis
SafeThe skill provides instructions for local development commands (nx, firebase, storybook) that the user runs manually; no destructive or exfiltrating operations are included, and the agent is explicitly not executing them.
No concerns found
How this analysis is madeExamples
How do I run the Firebase functions locally for testing?The Firebase emulator is not loading my .env file. How can I fix it?I want to view the Storybook for my components. What command should I run?name: local-development description: Running functions and web app locally, troubleshooting emulator issues, Storybook. Use when running or debugging locally.
Local Development
When to Use
Use this skill when running the web app or functions locally, troubleshooting emulator issues, or running Storybook.
Important
The user runs functions and web app locally for testing. Claude writes code and creates PRs -- Claude does NOT deploy or run dev servers.
Running Functions Locally (user runs this)
npx nx run functions:serve
This command:
- Builds the functions
- Copies
.env.devtodist/apps/functions/.env - Starts watch mode for rebuilds (background)
- Runs
firebase serve --only functions --project=devon port 5001
Running Web App Locally (user runs this)
npx nx run maple-spruce:serve
Runs on http://localhost:3000
Running Storybook
npx nx run maple-spruce:storybook
# Opens http://localhost:6006
Building Storybook:
npx nx run maple-spruce:build-storybook
# Output: dist/storybook/maple-spruce
Running Tests
npm test
Deployment
User decides when to deploy to dev. Production deploys automatically via CI/CD on merge to main.
Troubleshooting Local Functions
Emulator prompts for environment variables
The Firebase emulator is not finding the .env file. This happens when:
- The build clears
dist/apps/functions/before the.envis copied - A stale watch process is interfering
Fix:
# Kill any stale processes
pkill -f "firebase serve"
pkill -f "nx run functions"
# Clean and restart
rm -rf dist/apps/functions
npx nx run functions:serve
Why this happens:
- Firebase reads
.envfromdist/apps/functions/ - The
nx run functions:buildclears this directory - The serve command copies
.env.devafter build, before starting the emulator - If ordering is wrong or stale processes exist, the emulator starts without the
.env
Key indicator it's working:
i functions: Loaded environment variables from .env.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/local-development-mm5t8aav/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/local-development-mm5t8aav' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/local-development-mm5t8aav/download' --output '.skill-downloads/local-development-mm5t8aav/SKILL.md.part' && mv '.skill-downloads/local-development-mm5t8aav/SKILL.md.part' '.skill-downloads/local-development-mm5t8aav/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/local-development-mm5t8aav/SKILL.md' && test -s '.skill-downloads/local-development-mm5t8aav/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/local-development' && cp -R '.skill-downloads/local-development-mm5t8aav' '.claude/skills/local-development'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/local-development-mm5t8aav'openskills read 'local-development-mm5t8aav'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/local-development-mm5t8aav/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.