agentleFS
dotnetdotnet/orleans/.github/skills/review-code-craft/SKILL.md

review-code-craft

Skill11k starsChanged yesterdayMITView on GitHub

Code craft lens for Orleans — control flow, function shape, scope, signatures, conditions, naming, units, and compiler strictness. Use during code review, and when writing or refactoring code.

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the change top-down as a newcomer would.

    line 14
  2. Distinctive:

    Prefer refactors that remove code or branches to those that add structure.

    line 16
  3. Distinctive:

    Keep behavior identical when refactoring, verified by existing tests.

    line 17

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Code craft lens

Apply with root AGENTS.md and .editorconfig. This lens examines the code as the next engineer reads it: control flow, function shape, scope, signatures, and names. It covers changed code; unrelated refactoring stays out of scope.

Procedure

  1. Read the change top-down as a newcomer would.
  2. Flag control flow that hides cases, functions that do more than one thing, mutable state with more than one copy, and names that misdescribe.
  3. Prefer refactors that remove code or branches to those that add structure.
  4. Keep behavior identical when refactoring, verified by existing tests.
  5. Skip formatting the build already enforces.

Checklist

  • Push ifs up, fors down. Callers decide which case applies and pass helpers the whole batch; the coordinating method owns state mutation while the helpers it calls compute results without side effects (matklad).
  • Functions fit on a screen. A function reads as one unit; one beyond about 70 lines prompts a check for mixed responsibilities.
  • Smallest scope. Values are computed close to their use, so nothing can invalidate a check between the check and the use; each piece of mutable state has one owner and one copy.
  • Simple signatures. Each extra return dimension (nullability, error result, async) adds branches to every caller, so a method returns the simplest shape its contract allows (void over bool over int over int?).
  • Positive conditions. Conditions read in positive form (index < count, not !(index >= count)); compound conditions whose terms need different handling are split, and each branch is handled deliberately.
  • Explicit options. Behavior-critical choices are visible at the call site or the configuration boundary that owns them.
  • Precise names. Names are precise nouns and verbs with one meaning each; abbreviations are limited to established terms (ID, ETag, GC, RPC).
  • Units in types. Durations use TimeSpan, instants use DateTimeOffset in new APIs and the established type in existing contracts, and raw numbers carry the unit in the name (timeoutMs).
  • Grouped names. In new code, related names share a prefix so they sort together (LatencyMax, LatencyMin), unless local conventions establish another pattern.
  • Compiler strictness. Code builds cleanly under warnings-as-errors and the repository's nullable settings; each null-forgiving operator or suppression relies on an invariant that is evident nearby or stated in a comment.

Findings

Report findings ordered by severity, each with the location, the principle at stake, and a concrete fix.

Download now (ZIP)

Trending

More talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 3 mentionsMar 2026: 0 mentionsApr 2026: 7 mentionsMay 2026: 0 mentionsJun 2026: 0 mentionsJul 2026: 5 mentionsAug 2026: 0 mentionsSep 2026: 11 mentionsOct 2026: 5 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the dotnet/orleans repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about dotnet/orleans

The biggest 5 of 90 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 90

Talked about on GitHub, Stack Overflow, Hacker News and the web (90 times).

On GitHub · 50

45 more on GitHub

On Stack Overflow · 30

25 more on Stack Overflow

On the web · 1

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.