Storage Benchmark Kit
SBK exposes one shared body of repository knowledge to coding agents while allowing tool-specific configuration to remain thin. Human contributors can use the same documents; no engineering rule should exist only inside one vendor’s agent configuration.
| File | Role |
|---|---|
AGENTS.md |
Authoritative repository rules, constraints, gotchas, and definition of done |
INSTRUCTIONS.md |
Compact compatibility entry point that links to AGENTS.md |
README.md |
Product, build, and run overview |
docs/ARCHITECTURE.md |
Source-linked module and code-flow model |
docs/REPOSITORY_MAP.md |
Ownership and file navigation |
docs/AGENT_RECIPES.md |
Deterministic procedures for common changes |
docs/DRIVER_SPECIFICATION.md |
Formal design template for driver work |
An agent should read only the relevant deeper guides after the universal entry point, but it must read the complete instructions it selects.
The executable skills under .devin/skills/ use the portable SKILL.md format.
Agents that do not load Devin configuration automatically may still read and
follow these files directly:
| Skill | Use |
|---|---|
| SBK benchmark runner | Select a driver and run reproducible single-load-generator benchmarks with SBK or SBK-YAL |
| SBK distributed benchmark runner | Run standalone SBM aggregation or multi-host SBK-GEM/SBK-GEM-YAL benchmarks |
Each skill keeps detailed operational knowledge and sanitized examples in its
references/ directory. The selection rule is important: connecting one SBK
process to a remote storage service is still a single-load-generator benchmark;
SBK-GEM is for distributing load generation across hosts.
The universal AGENTS.md keeps the project usable across tools. Thin adapters
exist only where a tool benefits from its own discovery format:
| Tool | Repository entry point |
|---|---|
OpenAI Codex and other AGENTS.md readers |
Root AGENTS.md |
| Windsurf / Cascade | Root AGENTS.md, which its rule engine discovers directly |
| Cursor | .cursor/rules/sbk.mdc; .cursorrules remains a legacy pointer |
| Devin | Root AGENTS.md plus task skills under .devin/skills/ |
| Aider | .aider.conf.yml loads AGENTS.md as read-only context |
| Other agents | Start with INSTRUCTIONS.md, then read AGENTS.md |
These files should:
AGENTS.md rather than copying all rules.Availability of a tool-specific file does not mean that every installation or
version automatically loads it. If automatic discovery is uncertain, include
AGENTS.md explicitly in the agent’s context.
AGENTS.md and inspect repository status.REPOSITORY_MAP.md.AGENT_RECIPES.md procedure when one matches.DRIVER_SPECIFICATION.md before coding.| Task | Read after AGENTS.md |
|---|---|
| Driver fix | Driver README, source, DRIVER_GUIDE.md, recipe 2 |
| New driver | DRIVER_SPECIFICATION.md, DRIVER_GUIDE.md, recipe 1, similar driver |
| Harness CLI | ARCHITECTURE.md, SbkParameters, recipe 4 |
| Measurement change | sbk-internals.md, PerL tests, architecture invariants |
| Logger | RWLogger, existing implementation, recipe 3 |
| Distributed aggregation | Architecture distributed flow, SBM README and source |
| Remote orchestration | SBK-GEM README, GEM source, failure-domain section |
| Run SBK or SBK-YAL benchmark | sbk-benchmark-runner skill and selected driver README |
| Run SBM, SBK-GEM, or SBK-GEM-YAL | sbk-distributed-benchmark-runner skill, SBM/GEM README |
| Documentation | DOCUMENTATION_GUIDE.md, recipe 6 |
Documentation can describe commands that publish or alter remote state, but an agent must not infer permission to execute them. In particular, a normal implementation request does not authorize pushing, tagging, publishing, changing versions/licenses, re-enabling restricted drivers, destructive cleanup, or rewriting history.
Agents should prefer read-only discovery, scoped edits, Gradle wrapper commands, and explicit reporting. Secrets and private endpoints must not enter source, examples, logs, patches, or tool output.
./gradlew :<affected-module>:check # source changes
./gradlew check # cross-module source/build changes
./gradlew installDist # runtime packaging/discovery changes
git diff --check
Choose commands according to the affected surface; placeholders are not
literal commands. Driver work adds installed-distribution discovery and a
real-backend smoke test. Dependency changes add a clean pathing-JAR rebuild.
Documentation-only changes require link/reference review, Mermaid validation
for changed diagrams where available, and git diff --check.
AGENTS.md.INSTRUCTIONS.md compact.AGENT_RECIPES.md rather than a platform-specific prompt.