---
name: contributing
description: Contribute changes to the upstream Feynman repository. Use when the task is to add features, fix bugs, update prompts or skills, change install or release behavior, improve docs, or prepare a focused PR against the Feynman project itself.
---

# Contributing to Upstream Feynman

> **Scope note.** This skill applies only when you are actively working inside a clone of the upstream Feynman repository (https://feynman.is). If you are using these skills in another runtime (Claude Code, OpenCode, your own research workspace), skip this skill — the contributing targets below don't exist here.

Read `CONTRIBUTING.md` and `AGENTS.md` at the Feynman repo root before making changes. Those two files are the source of truth; this skill is the short index.

## When this applies

- CLI or runtime changes in `src/`
- prompt changes in `prompts/`
- bundled skill changes in `skills/`
- subagent behavior changes in `.feynman/agents/`
- install, packaging, or release changes in `scripts/`, `README.md`, or website docs

## Minimum local checks before claiming a change is done

```bash
npm test
npm run typecheck
npm run build
```

If the docs site changed, also validate `website/`.

## Release-sensitive changes

When changing release-sensitive behavior, verify that these stay aligned:

- `.nvmrc`
- package `engines`
- runtime guards (version checks in CLI entry points)
- install docs (`README.md`, install script)

Changes that touch any of these should go in one atomic PR with a CHANGELOG entry.

## PR discipline

- One topic per PR. Don't bundle a prompt fix with a runtime refactor.
- Tests for any new public behavior.
- Update `prompts/` and the corresponding `skills/<name>/SKILL.md` together — a prompt change without a skill pointer update leaves callers out of sync.
