papilot
AGENTS.md320 starsChanged yesterdayMITView on GitHub
Repository guidelines for coding agents working in Papilot. See CONTRIBUTING for setup and pull request basics. Check package.json scripts and .github/workflows/ci.yml for the current executable checks.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,439 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
18 rules. About 0 are common, 13 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 7
Read the issue, PR discussion, screenshots, logs and relevant code before asking questions.
- Distinctive: line 14
Check the current branch and diff, and keep commits focused on the intended change.
- Distinctive: line 15
Use a separate branch or worktree for independent changes or PRs, based on the target remote branch rather than assuming local main is …
- Distinctive: line 16
When splitting investigation, implementation and review across agents, assign clear scope, acceptance criteria and file/worktree ownership …
- Distinctive: line 23
Add or update regression checks wired into the test suite and CI for behavior changes rather than standalone one-off scripts.
- Distinctive: line 24
Keep automated tests deterministic and free of live model calls, using disposable fixtures and isolated app data.
- Distinctive: line 25
Run targeted checks while iterating, then the full checks for the changed scope.
- Very specific: line 32
Check package.json scripts and .github/workflows/ci.yml for the current executable checks.
- Very specific: line 45
Use a separate PAPILOT_DATA directory and PAPILOT_PORT when running alongside another instance.
- Distinctive: line 62
Keep the interface simple, responsive and consistent with existing controls.
- Distinctive: line 64
Use concise, concrete English for default product copy, commit messages and public PRs.
- Distinctive: line 65
Write short imperative commit subjects that describe the change.
- Very specific: line 66
Keep source UI strings in English with t(...) / tn(...).
- Very specific: line 67
Update user docs and changelog entries for user-visible changes.
- Distinctive: line 71
Keep each PR to one coherent change following the PR template (problem, resulting behavior, linked issue, validation, limitations and UI …
- Distinctive: line 72
Check related issues/PRs and existing review comments.
- Very specific: line 76
Keep package.json, package-lock.json, CHANGELOG.md (with compare links) and docs/releases/VERSION/release-notes.md consistent.
- Distinctive: line 78
Verify tests, native platform results, translations, docs and visual assets.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Papilot development guide
Repository guidelines for coding agents working in Papilot. See CONTRIBUTING for setup and pull request basics.
Workflow
- Read the issue, PR discussion, screenshots, logs and relevant code before asking questions; ask only for missing details that change the diagnosis or decision.
- State the observable problem and expected behavior. Reproduce bugs along the reported path before patching when possible, and note what could or could not be reproduced.
- Carry tasks through implementation, verification, review and the requested delivery steps. If blocked, finish independent work first and report the specific blocker.
- Report the actual state clearly (investigating, proposed fix, verified locally, CI passed, merged, or released) along with what changed, what was tested, relevant links and any remaining limitations.
Git and parallel work
- Check the current branch and diff, and keep commits focused on the intended change.
- Use a separate branch or worktree for independent changes or PRs, based on the target remote branch rather than assuming local
mainis current. - When splitting investigation, implementation and review across agents, assign clear scope, acceptance criteria and file/worktree ownership under a single integrator.
- Have an independent reviewer check substantial behavior changes against the actual diff and acceptance criteria, then re-verify after resolving findings.
- Clean up temporary worktrees, branches, servers and files created for the task when finished.
Implementation and verification
- Fix root causes simply and generally, following surrounding code conventions without fixture-specific special cases, redundant fallback layers, duplicated state or speculative abstractions.
- Add or update regression checks wired into the test suite and CI for behavior changes rather than standalone one-off scripts.
- Keep automated tests deterministic and free of live model calls, using disposable fixtures and isolated app data. When live-agent verification is needed, run it separately on disposable examples and report mock and live results separately.
- Run targeted checks while iterating, then the full checks for the changed scope. Diagnose failures and inspect artifacts rather than rerunning blindly or weakening assertions.
- For UI changes, exercise the built interface and inspect screenshots across affected desktop/mobile sizes, themes, interactions and states (loading, empty, error, recovery).
- For platform-specific bugs, verify on the reported platform or native CI covering the failure path, and state if only another OS or simulation was tested.
- For PDF/LaTeX changes, verify the generated document and the end-to-end review/compile path, not only source-level assertions.
Repository map and checks
Check package.json scripts and .github/workflows/ci.yml for the current executable checks.
| Area | Location |
| Server, agent adapters, tasks, Git and compilation | src/server/ |
| React workspace and shared types | src/web/, src/shared.ts |
| PDF comparison and review service/viewer | engine/ (own npm package, lockfile and tests) |
| Electron runtime, updates and packaging | desktop/, scripts/desktop*.mjs |
| CLI, root tests and browser checks | bin/, tests/, scripts/check-*.mjs |
| Website, translations and user documentation | site/, i18n/, docs/ |
- Requires Node.js 22.22+, npm, Git and a full TeX distribution when exercising compilation. In a fresh checkout, run
npm ci,npm run setup:reviewandnpm run build(see docs/nix.md for Nix). npm run devwatches the backend. Runnpm run buildand reload after frontend changes; rebuildengine/when its viewer changes.- Use a separate
PAPILOT_DATAdirectory andPAPILOT_PORTwhen running alongside another instance. - Access the review engine through its public HTTP interface rather than writing its SQLite database directly.
| Changed scope | Verification |
| Application code | npm run typecheck, npm test, npm run build |
| Workspace UI | Also npm run test:ui, with inspected screenshots |
| Review engine | Also npm --prefix engine run check; relevant npm --prefix engine run test:browser checks for viewer behavior |
| UI text/translations | npm run i18n -- check, npm run i18n:check-app; relevant locale/layout checks |
| Website | npm run test:site |
| Desktop/runtime/installers | Build and smoke checks from desktop/README.md, plus affected native CI jobs |
| Documentation only | Check accuracy, links and formatting |
Root tests use Node's test runner (node --import tsx --test tests/NAME.test.ts); engine tests use Vitest. Browser checks use Playwright from engine/ (PAPILOT_BROWSER_CHANNEL=chromium in CI).
Product, documentation and language
- Keep the interface simple, responsive and consistent with existing controls. Expose implementation detail only when it helps the user make a decision.
- Tie any length, annotation or turn limits to real resource or correctness constraints, using batching or graceful degradation rather than arbitrary caps.
- Use concise, concrete English for default product copy, commit messages and public PRs.
- Write short imperative commit subjects that describe the change.
- Keep source UI strings in English with
t(...)/tn(...). Update affected locales and translation state together per i18n/README.md, preserving curated translations and overrides. - Update user docs and changelog entries for user-visible changes. When UI shown on the homepage changes, update
site/index.html, regenerate README visuals withnpm run readme:showcase, and keep translated READMEs andsite/aligned.
Issues, PRs and releases
- Keep each PR to one coherent change following the PR template (problem, resulting behavior, linked issue, validation, limitations and UI evidence).
- Check related issues/PRs and existing review comments. Address substantive review findings and verify CI on the latest commit.
- In issue follow-ups, distinguish fixes on
mainfrom fixes available in a published release. - For releases, follow .github/workflows/release.yml and desktop/README.md:
- Review commits, merged PRs and linked issues since the previous release so notes cover the full delivered scope and built artifacts expose the expected features.
- Keep
package.json,package-lock.json,CHANGELOG.md(with compare links) anddocs/releases/VERSION/release-notes.mdconsistent. - Credit external contributors and issue reporters with verified GitHub handles and contribution links, keeping repository notes and the GitHub release body in sync.
- Verify tests, native platform results, translations, docs and visual assets; document user-visible changes, installation/update steps and known limitations.
- Push a
vVERSIONtag to start the release workflow. The GitHub release title isPapilot VERSION, and its body uses curated versioned notes when available, otherwise the changelog. Verify the workflow, native installers, npm package and update assets through completion, with the update manifest uploaded last.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

