Files
PaperClipAI/rules
DottaandPaperclip 13e5128164 docs: preserve runtime and verification lessons (#16379)
## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work.
> - Its control plane shares execution capacity across requests and
agent orchestration.
> - A dependency can return a small value while doing slow or repeated
work underneath.
> - Tests can check that value while mocks hide the behavior that
affects other work.
> - A later passing retry can also leave an earlier material failure
unexplained.
> - This pull request records general rules for dependency work,
verification, and acceptance.
> - The benefit is a durable review habit that applies beyond the runner
incident.

## Linked Issues or Issue Description

Refs #15683. Refs #16335.

The staging runner incident exposed a gap in how we establish the
operational cost of a dependency call. The original platform check read
a small field from a process report. The call could block shared
execution, and value-focused mocks did not exercise that behavior. The
fix replaced that probe with bounded asynchronous work. This proposal
addresses the reasoning and evidence gap, without assigning blame or
prescribing one API or timeout for future work.

The acceptance guidance also preserves material failures after a retry
passes. It does not assert that every earlier test failure had the same
cause as this incident.

Related proposal checked: #14275 covers release sign-off templates. This
PR covers implementation assumptions and verification evidence.

## What Changed

- Add a scoped rule for dependency work in server, adapter, and runner
execution paths. Cover blocking, repetition, cost growth, cancellation,
and the effect on unrelated work.
- Require evidence that can disprove the consequential assumption
introduced by a change. Identify behavior removed by mocks and exercise
the relevant boundary.
- Register the rule in the Greptile manifest with matching path scope.
Existing `AGENTS.md` instructions route coding agents to matching rules.
- Add failure preservation to the verification skill. Link it from the
repository-wide PR review rule. Keep recovery and resolution distinct.
- Include examples and exceptions so cosmetic edits and ordinary pure
transformations do not acquire unnecessary test requirements.

## Verification

- Passed `git diff --check` and the repository PR template and
duplicate-search validators.
- Passed a local Python structural check: manifest JSON parses; rule
globs and Greptile scopes match; seven representative runtime paths
match; five unrelated paths do not; the evidence link and heading
resolve; existing agent and reviewer loading instructions are present.
- Manually applied the rule to a network-filesystem configuration
getter, a repeated remote permission check, and an already-loaded map
lookup. The first two need evidence about their new dependency risk. The
last does not require fault testing by default.
- Attempted `pnpm -r typecheck`, `pnpm test:run`, and `pnpm build`. The
installed pnpm launcher could not fetch registry data to verify the
requested pnpm version. Using the cached project version reached
typecheck, which failed because workspace dependencies are absent
(`@types/node` missing). Tests and build remain unverified locally.
- Greptile reviewed commit `e56d1ec70f3ebffe697b35cc637975b8d8198681` at
5/5 with no unresolved review threads. CI is still running. These
structural checks establish instruction wiring, not future compliance by
an agent or reviewer.

## Risks

- The main risk is adding ceremony to low-risk edits. The rule limits
requests to concrete risks introduced by changed behavior and explicitly
exempts unrelated work.
- Instructions depend on contributors and reviewers reading and applying
them. This change adds no automated runtime regression gate.
- No application behavior, schema, dependency, lockfile, or workflow
changes.

## Model Used

OpenAI Codex, GPT-6 family. The exact serving model ID, context window,
and configured reasoning effort are not exposed in this session. Used
reasoning, repository inspection, shell tools, and patch editing.

## 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 available in this session)
- [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 (guidance-only
change; structural validation described above)
- [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
- [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-10-15 06:21:39 -05: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.