Files
PaperClipAI/rules
DottaandClaude b004519fde docs(agents): shorten AGENTS.md and move data-path detail to a scoped rule (#20557)
## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work
> - `AGENTS.md` is the instruction file that each human and AI
contributor reads before a change
> - The file had 311 lines, and most of the text applied to only a few
areas of the repository
> - The file told each contributor to read five documents before every
change and to treat `doc/SPEC-implementation.md` as the build contract
> - The file listed 4 of the 12 rules in `rules/`, so the list was
already out of date
> - This pull request states contributor ownership, makes the code and
tests the source of truth, and moves path-specific detail into a scoped
rule
> - The benefit is a shorter file that agents load on every session,
with detail that loads only for the files it applies to

## Linked Issues or Issue Description

**Issue type**

Outdated or unclear contributor documentation.

**Where is the issue?**

`AGENTS.md` at the repository root.

**What's wrong?**

- The file told contributors to read five documents in order before each
change.
- The file made `doc/SPEC-implementation.md` the build contract and part
of the definition of done. The maintainer considers that document
outdated.
- The file kept a manual list of scoped rules. The list named 4 of the
12 rules.
- Rule 7 (the three data paths) used about 40 lines. The rule applies
only to telemetry, observability, and run-log files.
- The agent preflight instruction was in the verification section, not
in the setup section.
- The design system section had no number and came after the definition
of done.

**Suggested fix**

Keep in `AGENTS.md` only the text that applies to every change. Move
path-specific text to `rules/` and point to `doc/` for detail.

## What Changed

- Added an ownership statement at the top of `AGENTS.md`.
- Section 1 now says that the code and tests are the source of truth.
The spec documents are background.
- Removed the spec from the definition of done and from rule 4.
- Section 2 is now a table that maps a type of change to the document to
read.
- Removed the manual rule list. The instruction to read each matching
rule in `rules/*.mdc` stays.
- Moved agent preflight to section 4. The database reset step now says
that it deletes local data.
- Rule 7 is now a short summary. The full text is in the new
`rules/data-paths.mdc`.
- Added `rules/data-paths.mdc` to `.greptile/files.json` with the same
scope as the rule globs.
- `CONTRIBUTING.md` now links to the new rule.
- Section 7 is now the default command and six labelled rules. Maps and
Storybook are one subsection.
- The design system text is now a subsection of section 9.
- Section numbers did not change, because code comments cite `AGENTS.md
§5.7` and `§6`.

## Verification

- Open `AGENTS.md` and confirm that each link and each path resolves. A
local script checked this.
- Compare `rules/data-paths.mdc` with the old rule 7 text. The
definitions and review levels are the same.
- Confirm that `.greptile/files.json` is valid JSON and that the new
scope matches the rule globs.
- No source code changed. No test suite ran locally.

## Risks

- Contributors no longer treat the spec as a requirement. A change can
now differ from the spec without an update to the spec.
- An agent that does not read scoped rules gets only the summary of the
three data paths. The summary keeps the review level for each path.
- Two Storybook instructions now live only in `maps/README.md` and
`maps/storybook-map/README.md`.

## Model Used

- Claude (Anthropic), in Claude Code with tool use.
- `claude-opus-5-5` added the ownership line and did the first review.
- `claude-fable-5-2` wrote the restructure and this pull request.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [ ] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [ ] All Paperclip CI gates are green
- [ ] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-10 09:19:10 -06:00
..

Repository rules

Keep architectural guidance in focused .mdc files here. Each file is Markdown with YAML frontmatter containing a description and an alwaysApply boolean. For scoped rules, set alwaysApply: false and provide comma-separated, repository-relative globs. For repository-wide rules, set alwaysApply: true and omit globs. Use ** for all descendants of a directory. Include sibling entry points explicitly when needed.

Root AGENTS.md tells coding agents to read matching rules before editing or reviewing code. This directory is a repository convention: Cursor does not automatically load it as .cursor/rules/, and the .mdc extension alone does not make a tool apply a rule.

Greptile reads matching rule files through .greptile/files.json and receives loading instructions from .greptile/rules.md. The rule body remains here as the single source of truth. Repository configuration takes effect when the files are available on the reviewed branch; local files alone are not visible to the hosted reviewer.

When adding or changing a rule:

  1. State the scope, required behavior, examples, exceptions, and review criteria.
  2. Add its path to .greptile/files.json. Copy its globs into that entry's scope array, one pattern per element. For alwaysApply: true, omit scope.
  3. Keep the rule's frontmatter and the Greptile scope synchronized. Verify that the scope covers representative files and excludes unrelated directories.
  4. Keep detailed policy in the rule file instead of copying it into tool settings.

Product behavior is covered by product-harness-responsibility.mdc: routine work belongs to the harness, and user-facing detail must support an outcome or a real decision. This applies to orchestration as well as UI.

See the Greptile file-reference documentation for the manifest format.

Background execution is covered by sleep-aware-background-work.mdc: new or expanded work must become quiet, use events and real scheduler deadlines, and preserve recovery across transactions, drain, and restart. This rule covers server/src/index.ts and the worker/producer paths in its scope. It does not require unrelated legacy polling to be migrated in the same PR.