From 88c1500fac9807b315db33ce9eac723b00ea2eb6 Mon Sep 17 00:00:00 2001 From: Dotta <34892728+cryppadotta@users.noreply.github.com> Date: Tue, 10 Nov 2026 11:19:18 -0600 Subject: [PATCH] docs(agents): add a core rule that points to the module-boundaries rule (#20598) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Thinking Path > - Paperclip is the open source app people use to manage AI agents for work > - `AGENTS.md` section 5 holds the core engineering rules that apply to every change > - The section had no rule about which module owns a behavior > - The repository already has a repository-wide rule for this, `rules/module-boundaries.mdc` > - Agents see that rule only as one line in the list of rule headers > - This pull request adds a core rule that states the principle and links to that rule > - The benefit is that module ownership has the same weight as the other core rules ## Linked Issues or Issue Description Refs #20585 **Issue type** Missing contributor documentation. **Where is the issue?** `AGENTS.md` section 5. **What's wrong?** - The core engineering rules did not say that provider-specific behavior stays with the module that owns it. - The core engineering rules did not point to `rules/module-boundaries.mdc`. **Suggested fix** Add a core rule that states the principle and links to the existing rule. ## What Changed - Added rule 4 to `AGENTS.md` section 5, "Keep behavior with its owning module". The rule links to `rules/module-boundaries.mdc`. - An earlier commit on this branch added a copy of the pstack `principle-boundary-discipline` skill. A later commit removed it. The net change is `AGENTS.md` only. ## Verification - Open `AGENTS.md` section 5 and follow the link in rule 4. - Run `git diff origin/master --stat`. Only `AGENTS.md` changes. - No source code changed. No test suite ran locally. ## Risks - Low risk. The change is documentation only. ## Model Used - Claude (Anthropic), in Claude Code with tool use. - `claude-fable-5-2`. ## 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 --- AGENTS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 63da122e9ce..55ae64c7d00 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -96,6 +96,9 @@ preflight", "Start Dev", "Quick Health Checks", and "Database in Dev" in - Budget hard-stop auto-pause behavior - Activity logging for mutating actions +4. **Keep behavior with its owning module.** + Provider protocols, payload parsing, and feature-specific sequencing belong to the module that owns them. Shared code uses narrow, normalized contracts. Explain any substantive change outside the owning module. See [`rules/module-boundaries.mdc`](rules/module-boundaries.mdc). + ## 6. Database Changes Follow "Schema change workflow" in `doc/DATABASE.md`: edit the schema, run