agentleFS
aviateskaviatesk/JET.jl/AGENTS.md

JET.jl

AGENTS.md884 starsChanged 4 months agoMITView on GitHub

- For Julia code, default to 4-space indentation and a soft line-length target of 92 characters. These defaults are secondary to the surrounding style. - Prioritize consistency with the surrounding code's style and line wrapping. Do not introduce unnecessary line breaks solely to meet a line-length target. - AI agents must not run automated formatters unless explicitly requested by a human in the current conversation. This includes file-wide or project-wide formatting commands and editor-integrated formatting tools. When editing code, preserve…

  • 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,542 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.

  • In this repository4 other files it gives its agents.

The file

We split this AGENTS.md into the rules it gives an agent

11 rules. About 0 are common, 10 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈10

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Do not introduce unnecessary line breaks solely to meet a line-length target.

    line 8
  2. Distinctive:

    When editing code, preserve the surrounding formatting and make only minimal local edits.

    line 13
  3. Distinctive:

    When writing Markdown text, use _2 whitespaces_ for indentation and try to keep the maximum line length under _80 characters_.

    line 18
  4. Distinctive:

    When writing functions, use the most restrictive signature type practical so JET can catch unintended errors in itself.

    line 39
  5. Very specific:

    Don't clutter JET's output with excessive information.

    line 60
  6. Distinctive:

    Default to no comments. Add comments only when they explain non-obvious behavior, constraints, invariants, rationale, or genuine hacks.

    line 71
  7. Distinctive:

    Run the most specific relevant test when practical.

    line 85
  8. Distinctive:

    If test failures look environment-related, first ensure the test ran from the root directory of this project.

    line 95
  9. Distinctive:

    If the user manually changes work you previously produced, respect those changes.

    line 102
  10. Distinctive:

    Read-only Git operations (e.g.

    line 109
  11. Distinctive:

    After completing the requested state-changing Git task, report the result and wait for explicit follow-up instructions before doing more.

    line 119

≈ “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.

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

Formatting

Code formatting

  • For Julia code, default to 4-space indentation and a soft line-length target of 92 characters. These defaults are secondary to the surrounding style.
  • Prioritize consistency with the surrounding code's style and line wrapping. Do not introduce unnecessary line breaks solely to meet a line-length target.
  • AI agents must not run automated formatters unless explicitly requested by a human in the current conversation. This includes file-wide or project-wide formatting commands and editor-integrated formatting tools. When editing code, preserve the surrounding formatting and make only minimal local edits. If formatting seems necessary, ask before applying it.

Markdown formatting

When writing Markdown text, use 2 whitespaces for indentation and try to keep the maximum line length under 80 characters.

  • Additionally, prioritize simple text style and limit unnecessary decorations (e.g. **) to only truly necessary locations. This is a style that should generally be aimed for, but pay particular attention when writing Markdown.
  • Headers should use sentence case (only the first word capitalized), not title case. For example:
    • Good: ## Conclusion and alternative approaches
    • Bad: ## Conclusion And Alternative Approaches

File names

For file names, use - (hyphen) as the word separator by default. However, if the file name corresponds directly to Julia code (e.g., a module name), use _ (underscore) instead, since Julia identifiers cannot contain hyphens (unless we use var"..."). For example, test files like test_virtualprocess.jl define a module module test_virtualprocess, so they use underscores.

Coding rules

  • When writing functions, use the most restrictive signature type practical so JET can catch unintended errors in itself. Loose signatures are fine while prototyping, but committed code should specify expected argument types unless generic behavior is intentional. When unsure, prefer the more restrictive signature.
  • For function calls with keyword arguments, use an explicit ; for clarity. For example, code like this:
    ...
    Position(; line=i-1, character=m.match.offset-1)
    ...
    is preferred over:
    ...
    Position(line=i-1, character=m.match.offset-1)
    ...
  • Avoid unnecessary logs: Don't clutter JET's output with excessive information. If you must use print debugging, generally use @info/@warn behind the JET_DEV_MODE flag, like this:
    if JET_DEV_MODE
        @info ...
    end

Comments guideline

Default to no comments. Add comments only when they explain non-obvious behavior, constraints, invariants, rationale, or genuine hacks. Do not restate implementation flow.

Docstrings are fine for general utilities when they clarify behavior.

The same applies to tests: concise @testset descriptions and behavior-level comments are fine when they clarify what is being tested. Explain test setup only when it encodes a non-obvious constraint or hack.

Running tests

Please make sure to test new code when you write it.

Run the most specific relevant test when practical. Prefer a named test file or component-specific test over the full suite. Avoid Pkg.test() unless changes affect multiple components, the user explicitly requests the full suite, or no narrower validation is appropriate.

Environment-related issues

For AI agents: never modify Project.toml or test/Project.toml by yourself.

If test failures look environment-related, first ensure the test ran from the root directory of this project. Never attempt dependency or project-file fixes yourself. If the problem remains, inform the human engineer and ask for instructions.

About modifications to code you've written

If the user manually changes work you previously produced, respect those changes. Do not reintroduce deleted code or revert user edits without explicit permission. If you think a user edit is problematic, explain your concern and ask for clarification.

Git operations

Read-only Git operations (e.g. git status, git diff, and git log) may be used as needed without an explicit user request or a pause after each command.

Git operations that change repository state require an explicit user request. You may perform the sequence of operations needed to complete that request without pausing after each command (e.g. staging and committing the relevant changes when asked to commit). Keep the sequence within the requested scope; a request to commit does not authorize pushing. Before creating any commit, use the commit skill.

After completing the requested state-changing Git task, report the result and wait for explicit follow-up instructions before doing more. If the user provides feedback on a commit, do not automatically make further changes, amend it, or create a fixup commit. Explain what could change and wait for explicit instruction.

Download now (ZIP)

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.