Feynman is a research-first CLI built on Pi and alphaXiv. This guide is for humans and agents contributing code, prompts, skills, docs, installers, or workflow behavior to the repository.
- GitHub: https://github.com/getcompanion-ai/feynman
- Docs: https://feynman.is/docs
- Repo agent contract: AGENTS.md
- Issues: https://github.com/getcompanion-ai/feynman/issues
- CLI/runtime code:
src/ - Bundled prompt templates:
prompts/ - Bundled Pi skills:
skills/ - Bundled Pi subagent prompts:
.feynman/agents/ - Docs site:
website/ - Build/release scripts:
scripts/ - Generated research artifacts:
outputs/,papers/,notes/
If you need to change how bundled subagents behave, edit .feynman/agents/*.md. Do not duplicate that behavior in AGENTS.md.
- Start from the latest
main. - Use Node.js
20.19.0or newer. The repo expects.nvmrc,package.jsonengines,website/package.jsonengines, and the runtime version guard to stay aligned. - Install dependencies from the repo root:
nvm use || nvm install
npm install- Run the required checks before asking for review:
npm test
npm run typecheck
npm run build- If you changed the docs site, also validate the website:
cd website
npm install
npm run build- Keep the PR focused. Do not mix unrelated cleanup with the real change.
- Add or update tests when behavior changes.
- Update docs, prompts, or skills when the user-facing workflow changes.
- Bugs, docs fixes, installer fixes, and focused workflow improvements are good PRs.
- Large feature changes should start with an issue or a concrete implementation discussion before code lands.
- Avoid refactor-only PRs unless they are necessary to unblock a real fix or requested by a maintainer.
- Do not silently change release behavior, installer behavior, or runtime defaults without documenting the reason in the PR.
- Use American English in docs, comments, prompts, UI copy, and examples.
- Do not add bundled prompts, skills, or docs whose primary purpose is to market, endorse, or funnel users toward a third-party product or service. Product integrations must be justified by user-facing utility and written in neutral language.
- New workflows usually live in
prompts/*.md. - New reusable capabilities usually live in
skills/<name>/SKILL.md. - Keep skill files concise. Put detailed operational rules in the prompt or in focused reference files only when needed.
- If a new workflow should be invokable from the CLI, make sure its prompt frontmatter includes the correct metadata and that the command works through the normal prompt discovery path.
AGENTS.mdis the repo-level contract for workspace conventions, handoffs, provenance, and output naming.- Long-running research flows should write plan artifacts to
outputs/.plans/and useCHANGELOG.mdas a lab notebook when the work is substantial. - Do not update
CHANGELOG.mdfor trivial one-shot changes.
- The curl installer and release docs point users at tagged releases, not arbitrary commits on
main. - If you ship user-visible fixes after a tag, do not leave the repo in a state where
mainand the latest release advertise the same version string while containing different behavior. - When changing release-sensitive behavior, check the version story across:
.nvmrcpackage.jsonwebsite/package.jsonscripts/check-node-version.mjs- install docs in
README.mdandwebsite/src/content/docs/getting-started/installation.md
AI-assisted PRs are fine. The contributor is still responsible for the diff.
- Understand the code you are submitting.
- Run the local checks yourself instead of assuming generated code is correct.
- Include enough context in the PR description for a reviewer to understand the change quickly.
- If an agent updated prompts or skills, verify the instructions match the actual repo behavior.
- Explain what changed and why.
- Call out tradeoffs, follow-up work, and anything intentionally not handled.
- Include screenshots for UI changes.
- Resolve review comments you addressed before requesting review again.
Useful contributions usually land in one of these areas:
- installation and upgrade reliability
- research workflow quality
- model/provider setup ergonomics
- docs clarity
- preview and export stability
- packaging and release hygiene