Skip to content

Agent guide ​

This page is the starting point for LLM agents working on Saluki, and for the humans directing them. It covers our policy on agent use, then points to the guidance for each part of the development process. Read it before starting any work, then read the linked pages relevant to your task.

Policy ​

Use of LLMs while working on Saluki is absolutely fine. This covers all aspects of working on the project: feature development, testing, debugging, and so on.

However, we don't allow fully autonomous or unsupervised development by agents. In practice:

  • a human operator using LLMs as part of their workflow is OK
  • setting up agents to run autonomously is NOT OK
  • a human operator reviews every contribution before submission

These rules have a single goal: keep human operators part of the development process, so that we maintain the quality of the software and don't lose understanding of what we're building.

Guiding principles ​

  • Top priorities are correctness, then performance, in that order.
  • Code should be maintainable and human-readable.
  • Documentation is crucial.
  • Development is a conversation, not a monologue. Communicate early and often, from ideation to execution, so that you and the human operator stay aligned on the current task: debugging an issue, adding a feature, or refactoring code.

Documentation lives under docs/ ​

All documentation lives under docs/, and all development guidance lives under docs/development/. When you update documentation or propose a new page or section, it MUST go there. Don't add READMEs or other Markdown files next to code, and don't add guidance to the entrypoint files listed below. See Where documentation lives for the details.

Entrypoints ​

Some files must stay where tooling expects to find them. They point into docs/ instead of holding guidance:

FileRead byContents
AGENTS.mdAgents that follow the AGENTS.md conventionPointer to this page
.claude/CLAUDE.mdClaude CodeImports this page
.agents/skills/*/SKILL.md, symlinked from .claude/skillsAgent skill discoveryProcedures; reference material lives in docs/development/
codereview_guideline.md filesThe /dd-review workflowSelf-contained review prompts; see Code review
test/antithesis/AGENTS.mdAgents working in test/antithesis/Antithesis workflow notes

Project map ​

  • bin/agent-data-plane: the primary artifact of this project, a binary that runs alongside the Datadog Agent
  • bin/correctness: tools for correctness and integration tests
  • lib/: production frameworks and common code supporting agent-data-plane
  • lib/datadog-agent/: core Agent configuration and IPC protocols
    • lib/datadog-agent/runtime: the shared runtime for processes that act as a remote agent for the Datadog Agent, such as agent-data-plane: registration, configuration streaming, the workload provider, the status, flare, and telemetry services, the control plane workers, and the RemoteAgent startup facade
  • docs/: all documentation, published as the project's docs site
  • test/: integration, correctness, benchmark, and Antithesis test cases

Checking your work ​

The Makefile is authoritative for build commands. These checks get progressively deeper: use level 1 while editing Rust code, and work through the later levels when you think you're done.

  1. cargo check --workspace && cargo check --workspace --tests. At first this may be narrowed to the --bin or --lib you're working on, but run it on the whole workspace before moving on. Run the relevant tests with cargo nextest run, and always run make fmt when you're done editing.
  2. make check-all for lints, including Vale on documentation.
  3. make test-all for all unit tests.

Use the /panoramic skill for correctness and integration testing.

Topics ​

TopicRead when
Style guideWriting any code or documentation
ConventionsMaking design choices; covers project-specific design rules and taste
Common languageInterpreting requirement levels such as MUST and SHOULD
ContributingWriting commits, opening pull requests, adding release notes, and addressing review feedback
Code reviewReviewing a change, or checking your own before opening a pull request
TestingChoosing which kind of test to write, and running test suites
Testing patternsWriting unit tests or property tests
Configuration systemWorking on configuration, the schema overlay, or the configuration inventory
PlansPlanning work that spans several pull requests

For Antithesis work, read test/antithesis/AGENTS.md.

Skills ​

Skills under .agents/skills/ hold step-by-step procedures. Where a skill needs reference material, it links to a page in this guide.

SkillPurposeReference
binary-size-analysisFind what contributes to the size of the agent-data-plane binary
config-schema-updateUpdate the vendored Datadog configuration schemaConfiguration system
config-systemWork on the configuration systemConfiguration system
create-release-noteWrite a release note fragmentRelease notes
external-pr-ci-triggerRun CI for an external contributor's pull request (maintainers only)
panoramicRun correctness and integration tests and read their resultsTesting

Plans ​

Write plans for work that spans several pull requests in docs/development/plans/, one file per effort. Plans aren't published to the docs site and aren't linted. Keep a plan current as work lands, move anything of lasting value into the relevant page of this guide, and delete the plan in the final pull request of the effort.