atlasclaw-providers
AGENTS.md17 starsChanged 6 months agoApache-2.0View on GitHub
This repository owns concrete integrations. If a document or implementation depends on a target system's auth model, fields, workflow semantics, webhook payloads, or provider-specific UI text, it belongs here rather than in atlasclaw core. This repository is organized into a few top-level modules: Most provider work happens under a provider package with a layout similar to: Directory responsibilities: Core/runtime contracts, loading behavior, and provider-agnostic rules stay in atlasclaw. Concrete provider behavior and examples stay here. Imports: - Prefer from __future__…
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,843 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 repository22 other files it gives its agents.
- azure-cost-managementSkill
- azure-policySkill
- azure-securitySkill
- brainstormSkill
- create-providerSkill
- create-atlasclaw-skillSkill
- docxSkill
- find-skillsSkill
- google-cloud-waf-securitySkill
- humanizerSkill
- information-security-manager-iso27001Skill
- pdfSkill
- pptxSkill
- prometheus-analysisSkill
- prometheusSkill
- self-improvingSkill
- senior-secopsSkill
- skill-vetterSkill
- summarizeSkill
- textSkill
- word-docxSkill
- xlsxSkill
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
44 rules. About 0 are common, 31 are distinctive, and 13 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈31
Distinctive · estimate
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 48
Prefer wide lines suitable for large screens.
- Distinctive: line 49
Do not split simple logic into many tiny methods unless reuse justifies it
- Distinctive: line 50
Avoid breaking short code across many lines
- Distinctive: line 51
Keep validation pragmatic: validate external input, persistence integrity, and core trading invariants, but do not add layers of redundant …
- Very specific: line 56
Prefer from __future__ import annotations in new or heavily edited modules when it improves type annotations
- Very specific: line 59
Prefer absolute imports for AtlasClaw core packages, but keep same-directory helper imports such as from _common import ...
- Distinctive: line 62
Keep or add a UTF-8 encoding header when the file already uses it or the file contains non-ASCII content that warrants being explicit
- Distinctive: line 65
Use double quotes for strings unless single quotes avoid escaping
- Distinctive: line 68
Use type hints on public functions and non-trivial helpers
- Very specific: line 69
Prefer consistency with the surrounding file for Optional[T] versus T | None.
- Very specific: line 70
Use dataclasses for data containers: @dataclass
- Very specific: line 71
Prefer enums for string constants: class EventType(str, Enum)
- Very specific: line 80
Use specific exception types, not bare except:
- Very specific: line 83
Use asyncio.Event for cancellation signals
- Distinctive: line 88
Use Google-style or reStructuredText format
- Distinctive: line 91
Use async for AtlasClaw runtime entrypoints and other integration points that are already async
- Very specific: line 93
Use asyncio.Event for coordination when cancellation or cross-task signaling is needed
- Distinctive: line 98
Every public class must have a class-level docstring explaining its responsibility
- Distinctive: line 99
Every public method or function must have a docstring describing:
- Distinctive: line 104
Add short comments for non-obvious business rules, edge cases, and tricky logic
- Distinctive: line 105
Do not add trivial comments that merely restate the code
- Distinctive: line 106
Prefer self-explanatory naming first.
- Distinctive: line 110
Before changing an existing field, including its format, storage style, or calculation logic, you must:
- Distinctive: line 114
check formulas or strategy logic that depend on that format
- Very specific: line 123
Use documentation and memory files to capture background context and align execution constraints.
- Very specific: line 124
All documentation and memory files must use Markdown and live under .agentdocs/ and its subdirectories.
- Very specific: line 126
Use .agentdocs/index.md as the index document to record each document's primary content, when it should be read, and any global key …
- Distinctive: line 138
If multiple interpretations exist, present them - don't pick silently.
- Distinctive: line 139
If a simpler approach exists, say so.
- Distinctive: line 140
If something is unclear, stop.
- Distinctive: line 146
No features beyond what was asked.
- Distinctive: line 147
No abstractions for single-use code.
- Distinctive: line 149
No error handling for impossible scenarios.
- Distinctive: line 150
If you write 200 lines and it could be 50, rewrite it.
- Distinctive: line 151
Do not add redundant null checks unless there is a real logic path that needs them.
- Distinctive: line 153
Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
- Distinctive: line 159
When editing existing code:
- Distinctive: line 160
Don't "improve" adjacent code, comments, or formatting.
- Distinctive: line 161
Don't refactor things that aren't broken.
- Distinctive: line 163
If you notice unrelated dead code, mention it - don't delete it.
- Distinctive: line 165
When your changes create orphans:
- Very specific: line 166
Remove imports/variables/functions that YOUR changes made unused.
- Distinctive: line 167
Don't remove pre-existing dead code unless asked.
- Very specific: line 190
Use Conventional Commits: feat, fix, docs, refactor, test, chore.
≈ “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.
Files
AGENTS.md - AtlasClaw Providers Guidelines
Repository Overview
This repository owns concrete integrations. If a document or implementation
depends on a target system's auth model, fields, workflow semantics, webhook
payloads, or provider-specific UI text, it belongs here rather than in
atlasclaw core.
This repository is organized into a few top-level modules:
providers/: concrete provider packages such asSmartCMP-Providerandjiraskills/: shared reusable skills, templates, and helper tooling that are not tied to a single providerdocs/: repository-level architecture notes, design plans, and supporting assets.agentdocs/: optional AI-only working notes and memory files used during execution
Most provider work happens under a provider package with a layout similar to:
providers/<provider-name>/
|-- PROVIDER.md
|-- README.md
|-- skills/
| `-- <skill-name>/
| |-- SKILL.md
| |-- scripts/
| |-- references/
| `-- test/ # optional, skill-scoped tests
|-- docs/ # optional, provider-specific plans or design notes
`-- test/ # optional, provider-level testsDirectory responsibilities:
PROVIDER.md: provider contract, configuration shape, and authentication modelREADME.md: human-readable provider overviewskills/<skill-name>/SKILL.md: skill metadata, usage guidance, and tool entrypointsskills/<skill-name>/scripts/: executable integration logic and helpersskills/<skill-name>/references/: API mappings, workflows, and examples kept close to the skilldocs/andtest/: provider-specific design notes and verification coverage
Core/runtime contracts, loading behavior, and provider-agnostic rules stay in
atlasclaw. Concrete provider behavior and examples stay here.
Code Style Guidelines
- Comments must be in English
- Prefer wide lines suitable for large screens; avoid over-wrapping
- Do not split simple logic into many tiny methods unless reuse justifies it
- Avoid breaking short code across many lines
- Keep validation pragmatic: validate external input, persistence integrity, and core trading invariants, but do not add layers of redundant defensive checks that do not improve correctness
Python
Imports:
- Prefer
from __future__ import annotationsin new or heavily edited modules when it improves type annotations - Standard library imports first, third-party second, local third
- Group imports with a blank line between groups
- Prefer absolute imports for AtlasClaw core packages, but keep same-directory helper imports such as
from _common import ...when that matches the existing provider script layout
Formatting:
- Keep or add a UTF-8 encoding header when the file already uses it or the file contains non-ASCII content that warrants being explicit
- 4 spaces for indentation
- Line length: ~100 characters (be reasonable)
- Use double quotes for strings unless single quotes avoid escaping
Types:
- Use type hints on public functions and non-trivial helpers
- Prefer consistency with the surrounding file for
Optional[T]versusT | None; do not churn existing code only to change annotation style - Use dataclasses for data containers:
@dataclass - Prefer enums for string constants:
class EventType(str, Enum)
Naming Conventions:
snake_casefor functions, variables, modulesPascalCasefor classes, exceptionsSCREAMING_SNAKE_CASEfor constants- Private methods/attributes prefixed with
_
Error Handling:
- Use specific exception types, not bare
except: - Include error context in exception messages
- Return result objects for expected failures:
SendResult(success=False, error="timeout") - Use
asyncio.Eventfor cancellation signals
Documentation:
- Docstrings use triple quotes on separate lines
- Include docstrings for all public classes and methods
- Use Google-style or reStructuredText format
Async Patterns:
- Use async for AtlasClaw runtime entrypoints and other integration points that are already async
- Standalone helper scripts may stay synchronous when the surrounding implementation and dependencies are synchronous
- Use
asyncio.Eventfor coordination when cancellation or cross-task signaling is needed - Properly await coroutines in tests with
@pytest.mark.asyncio
Code Documentation Rules
- Every public class must have a class-level docstring explaining its responsibility
- Every public method or function must have a docstring describing:
- purpose
- parameters
- return value
- possible exceptions or error cases
- Add short comments for non-obvious business rules, edge cases, and tricky logic
- Do not add trivial comments that merely restate the code
- Prefer self-explanatory naming first; comments are for intent, constraints, and reasoning
Analyze Field Impact Before Changing Existing Fields
Before changing an existing field, including its format, storage style, or calculation logic, you must:
- analyze all call sites, including
getXxx()andsetXxx()references - confirm the stored data format contract
- check formulas or strategy logic that depend on that format
- explain the impact to the user before deciding the final change
Architecture Rule
Extract truly reusable common logic to the right shared place. Do not create local one-off abstractions that make the code harder to follow.
Documentation and Memory
Use documentation and memory files to capture background context and align execution constraints.
All documentation and memory files must use Markdown and live under .agentdocs/ and its subdirectories.
These files are for AI agents only and should not contain human-facing explanations.
Use .agentdocs/index.md as the index document to record each document's primary content, when it should be read, and any global key memories.
Coding and Design Principles
Tradeoff: These guidelines bias toward caution over speed. For trivial tasks, use judgment.
1. Think Before Coding
Don't assume. Don't hide confusion. Surface tradeoffs.
Before implementing:
- State your assumptions explicitly. If uncertain, ask.
- If multiple interpretations exist, present them - don't pick silently.
- If a simpler approach exists, say so. Push back when warranted.
- If something is unclear, stop. Name what's confusing. Ask.
2. Simplicity First
Minimum code that solves the problem. Nothing speculative.
- No features beyond what was asked.
- No abstractions for single-use code.
- No "flexibility" or "configurability" that wasn't requested.
- No error handling for impossible scenarios.
- If you write 200 lines and it could be 50, rewrite it.
- Do not add redundant null checks unless there is a real logic path that needs them.
Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
3. Surgical Changes
Touch only what you must. Clean up only your own mess.
When editing existing code:
- Don't "improve" adjacent code, comments, or formatting.
- Don't refactor things that aren't broken.
- Match existing style, even if you'd do it differently.
- If you notice unrelated dead code, mention it - don't delete it.
When your changes create orphans:
- Remove imports/variables/functions that YOUR changes made unused.
- Don't remove pre-existing dead code unless asked.
The test: Every changed line should trace directly to the user's request.
4. Goal-Driven Execution
Define success criteria. Loop until verified.
Transform tasks into verifiable goals:
- "Add validation" -> "Write tests for invalid inputs, then make them pass"
- "Fix the bug" -> "Write a test that reproduces it, then make it pass"
- "Refactor X" -> "Ensure tests pass before and after"
For multi-step tasks, state a brief plan:
1. [Step] -> verify: [check]
2. [Step] -> verify: [check]
3. [Step] -> verify: [check]Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.
Commit Messages
Use Conventional Commits: feat, fix, docs, refactor, test, chore.
Format:
<type>(<scope>): <summary>Example:docs(config): align webhook env var examples
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
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.

