plugins/pm-engineering/skills/developer-onboarding-doc/SKILL.md
Write a developer onboarding document for a service, codebase, or team. Use when asked to write a developer guide, service README, onboarding doc for a new engineer, codebase orientation, or getting-started guide for a technical team. Produces a structured doc covering service overview, architecture, local setup, key patterns, testing, deployment, and who to ask for what.
npx skillsauth add mohitagw15856/pm-claude-skills developer-onboarding-docInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Produce a complete developer onboarding document for a service or team — covering everything a new engineer needs to be productive within their first week.
A good onboarding doc is not a wiki dump. It answers the questions a new engineer actually has on day one, in the order they'll have them.
Ask for these if not already provided:
Team: [Team name] | Tech lead: [Name] Last updated: [Date] | Updated by: [Name]
If something in this doc is wrong or out of date, fix it now — it will affect every engineer who onboards after you.
[3–5 sentences. What problem does this service solve? Who calls it, and who does it call? What would break if this service went down?]
Service type: [API / Background worker / Event consumer / Data pipeline / etc.] Consumers: [List internal services or external clients that depend on this service] Dependencies: [List upstream services, databases, and third-party APIs this service calls]
Architecture diagram: [Link or embed — even a rough ASCII diagram helps]
[Caller A] ──→ [This Service] ──→ [Database]
│
└──→ [Downstream Service]
Repository: [Link]
Main branch: [main / master]
Language: [e.g. Go 1.22 / Node.js 20 / Python 3.12]
Framework: [e.g. Express / FastAPI / Gin / Rails]
[repo-root]/
├── [src/ or cmd/] # Application code
│ ├── [handlers/] # HTTP handlers / controllers
│ ├── [services/] # Business logic
│ ├── [repository/] # Database access layer
│ └── [models/] # Data models / types
├── [tests/] # Test files
├── [migrations/] # Database migrations
├── [scripts/] # Utility scripts
├── [.github/workflows/] # CI/CD pipeline definitions
└── [docs/] # Additional documentation
Where to start reading: [Point to 2–3 key files that give the best orientation — e.g. main.go, routes.js, app.py]
X-User-Id header"]Estimated setup time: [X minutes for a fresh machine]
# 1. Clone the repo
git clone [repo URL]
cd [repo-name]
# 2. Copy and configure environment variables
cp .env.example .env
# Edit .env — see "Environment Variables" section below
# 3. Start dependencies (database, cache, etc.)
[docker compose up -d / make deps / etc.]
# 4. Install dependencies
[npm install / go mod download / pip install -r requirements.txt]
# 5. Run database migrations
[migration command]
# 6. Start the service
[start command]
# 7. Verify it's working
curl http://localhost:[PORT]/health
# Expected: {"status":"ok"}
If this doesn't work: Check [Troubleshooting section below] or ask in #[channel].
| Variable | Required | Description | Example |
|---|---|---|---|
| DATABASE_URL | Yes | Connection string for the primary DB | postgres://localhost:5432/[db] |
| [VAR_2] | Yes | [Description] | [Example] |
| [VAR_3] | No | [Description — default value] | [Example] |
Secrets for local dev: [Where to get them — e.g. "Run [command] to pull from Vault" or "Ask [person] in #[channel]"]
[start command] # Start the service
[test command] # Run all tests
[lint command] # Run linter
[format command] # Format code
[migration command] # Run pending migrations
[seed command] # Seed local database
Testing philosophy: [e.g. "We test at the integration layer — unit tests for pure functions, integration tests for anything touching the DB or external services"]
# All tests
[test command]
# Unit tests only
[unit test command]
# Integration tests (requires local deps running)
[integration test command]
# A specific test file or test case
[test command with filter]
Test coverage: [X]% (minimum required to pass CI: [Y]%) Coverage report: [Where to find it]
*_test.go]tests/integration/]tests/helpers/db.go"][Branch naming convention — e.g. feature/[ticket-id]-short-description, fix/[ticket-id]-short-description]
[lint command]).env.example and documented# Create a new migration
[migration create command]
# Apply pending migrations
[migration up command]
# Roll back last migration
[migration down command]
Migration rules:
How code gets to production: [1–2 sentence summary — link to full CI/CD playbook if it exists]
main → automatic deploy to stagingDeployment docs: [Link to CI/CD playbook or pipeline docs]
Who can deploy: [Any engineer / Lead engineer / On-call engineer — specify]
Deployment channel: #[deployments channel]
Dashboard: [Datadog / Grafana / CloudWatch — link] Logs: [Log aggregation tool and link — e.g. "Logs are in Datadog under service:[name]"] Traces: [Tracing tool and link if applicable] Alerts: [Where alerts fire — e.g. PagerDuty / Slack #alerts-[service]]
Key metrics to know:
On-call schedule: [PagerDuty / Opsgenie link]
Who's on-call now: [Link to current schedule or #oncall channel]
Escalation: [On-call → [team lead] → [EM] — after [X] minutes unacknowledged]
If you get paged:
| Role | Name | Best way to reach |
|---|---|---|
| Tech lead | [Name] | Slack: @[handle] |
| On-call rotation | [Team] | PagerDuty / #on-call |
| Platform / infra | [Team] | #platform Slack channel |
| Database / DBA | [Name or team] | #database Slack channel |
| [Upstream service] owner | [Name] | Slack: @[handle] |
Where to ask questions:
#engineering#[service-name]#incidents[command].env is populated — missing values cause silent failures[log command]#[channel][version check command][clean install command][start deps command]#deploymentsdevelopment
Analyse competitor moves and translate them into strategic implications for your product roadmap. Use when a competitor announces a new feature, pricing change, partnership, or strategic shift, or when producing a periodic competitive intelligence report. Produces a categorised signal analysis with reactive-vs-proactive assessment, threat ratings, specific roadmap implications, and recommended responses with owners.
development
Build a community management playbook for a brand's social media channels. Use when asked to create guidelines for managing comments, DMs, and community interactions, define a moderation policy, or build response frameworks for social media community managers. Produces a complete playbook with response templates, escalation paths, moderation rules, and tone guidelines.
development
Activate a 4-stage coding discipline framework that forces Claude to plan before coding, isolate changes on a branch, write tests first, and self-review output twice before presenting it. Use when starting a complex coding task, when past Claude sessions produced broken first drafts, or when you want to prevent rework cycles. Produces a confirmed written plan, isolated feature branch, test-first implementation, and a double-reviewed output with a correctness and code-quality checklist.
development
Optimize an article for Answer Engine Optimization (AEO) — restructuring content so AI engines like ChatGPT, Perplexity, and Claude can extract, quote, and cite it. Rewrites headings as questions, drops 50-80 word answer capsules, audits paragraph length, and flags trust signals. Use when asked to AEO-optimize, make content AI-readable, improve AI citation chances, or adapt an article for answer engines.