diff --git a/.agents/shared-module-guardrails.md b/.agents/shared-module-guardrails.md new file mode 100644 index 00000000000..35aba7049ac --- /dev/null +++ b/.agents/shared-module-guardrails.md @@ -0,0 +1,21 @@ +# Shared module guardrails + +These rules apply in directories whose `AGENTS.md` links here. + +- Leave these modules untouched by default. Implement product features in their own modules using existing + contracts. Do not implement product specific feature into shared modules. +- Change a shared module only for a concrete goal in that module. Language Platform @DataDog/apm-lang-platform-java should lead such work. + Outside that team, keep changes tactical and specific to this module. Put them in a separate PR from broader + product work. +- Before editing, tell the user the goal for the module and why an exception is needed. If that rationale is + unclear, leave the module untouched. Warn that Language Platform @DataDog/apm-lang-platform-java review is needed. +- Under `# Motivation` in the PR, add `## Shared module change` apart from any product motivation. Explain + the goal for this module, why the work belongs here, affected consumers, and compatibility risks. When + prompted by product work, explain why product code and existing contracts cannot meet the need. +- Check [CODEOWNERS](../.github/CODEOWNERS) for the current area owner. Put this GitHub alert at the very start + of the PR description, before `# What Does This Do`: + + ```markdown + > [!IMPORTANT] + > Language Platform review is needed for this shared module change. Please involve @DataDog/apm-lang-platform-java. + ``` diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 09e44b790e1..78a1fc07cfc 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -19,6 +19,7 @@ # Shared communication /communication/*.* @DataDog/apm-java +/communication/*.md @DataDog/apm-lang-platform-java /communication/src/*/*/datadog/communication/*.* @DataDog/apm-java /communication/src/*/*/datadog/communication/ddagent/ @DataDog/apm-java /communication/src/*/*/datadog/communication/http/ @DataDog/apm-java @@ -29,6 +30,7 @@ /communication/src/test/resources/ @DataDog/apm-java # Shared utility modules +/utils/*.md @DataDog/apm-lang-platform-java /utils/filesystem-utils/ @DataDog/apm-java /utils/logging-utils/ @DataDog/apm-java /utils/queue-utils/ @DataDog/apm-java @@ -47,6 +49,7 @@ /dd-java-agent/load-generator/ @DataDog/apm-java # Core tracing API +/dd-trace-api/*.md @DataDog/apm-lang-platform-java /dd-trace-api/src/*/*/datadog/trace/api/*.* @DataDog/apm-java /dd-trace-api/**/config/CwsConfig* @DataDog/apm-java /dd-trace-api/**/config/GeneralConfig* @DataDog/apm-java @@ -58,6 +61,7 @@ /dd-trace-api/src/*/*/datadog/trace/payloadtags/ @DataDog/apm-java # Core tracer +/dd-trace-core/*.md @DataDog/apm-lang-platform-java /dd-trace-core/src/test @DataDog/apm-java /dd-trace-core/src/*/*/datadog/context/*.* @DataDog/apm-java /dd-trace-core/src/*/*/datadog/trace/api/naming/ @DataDog/apm-java @@ -80,6 +84,7 @@ /dd-trace-core/src/traceAgentTest/ @DataDog/apm-java # Core internal API +/internal-api/*.md @DataDog/apm-lang-platform-java /internal-api/internal-api-9/ @DataDog/apm-java /internal-api/src/test @DataDog/apm-java /internal-api/src/*/*/datadog/trace/advice/ @DataDog/apm-java diff --git a/communication/AGENTS.md b/communication/AGENTS.md new file mode 100644 index 00000000000..1e3ffc7cecc --- /dev/null +++ b/communication/AGENTS.md @@ -0,0 +1,5 @@ +# communication + +Module described in [ARCHITECTURE.md](../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../.agents/shared-module-guardrails.md). diff --git a/communication/CLAUDE.md b/communication/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/communication/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/components/AGENTS.md b/components/AGENTS.md new file mode 100644 index 00000000000..c0fae2fc8dc --- /dev/null +++ b/components/AGENTS.md @@ -0,0 +1,5 @@ +# components + +Module described in [ARCHITECTURE.md](../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../.agents/shared-module-guardrails.md). diff --git a/components/CLAUDE.md b/components/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/components/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/dd-java-agent/agent-bootstrap/AGENTS.md b/dd-java-agent/agent-bootstrap/AGENTS.md new file mode 100644 index 00000000000..90e1148e1e4 --- /dev/null +++ b/dd-java-agent/agent-bootstrap/AGENTS.md @@ -0,0 +1,5 @@ +# agent-bootstrap + +Module described in [ARCHITECTURE.md](../../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../../.agents/shared-module-guardrails.md). diff --git a/dd-java-agent/agent-bootstrap/CLAUDE.md b/dd-java-agent/agent-bootstrap/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/dd-java-agent/agent-bootstrap/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/dd-java-agent/agent-installer/AGENTS.md b/dd-java-agent/agent-installer/AGENTS.md new file mode 100644 index 00000000000..2ad4d9e1980 --- /dev/null +++ b/dd-java-agent/agent-installer/AGENTS.md @@ -0,0 +1,5 @@ +# agent-installer + +Module described in [ARCHITECTURE.md](../../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../../.agents/shared-module-guardrails.md). diff --git a/dd-java-agent/agent-installer/CLAUDE.md b/dd-java-agent/agent-installer/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/dd-java-agent/agent-installer/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/dd-java-agent/agent-tooling/AGENTS.md b/dd-java-agent/agent-tooling/AGENTS.md new file mode 100644 index 00000000000..70915012126 --- /dev/null +++ b/dd-java-agent/agent-tooling/AGENTS.md @@ -0,0 +1,5 @@ +# agent-tooling + +Module described in [ARCHITECTURE.md](../../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../../.agents/shared-module-guardrails.md). diff --git a/dd-java-agent/agent-tooling/CLAUDE.md b/dd-java-agent/agent-tooling/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/dd-java-agent/agent-tooling/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/dd-java-agent/src/AGENTS.md b/dd-java-agent/src/AGENTS.md new file mode 100644 index 00000000000..6ad3352a0f2 --- /dev/null +++ b/dd-java-agent/src/AGENTS.md @@ -0,0 +1,12 @@ +# dd-java-agent/src + +Module described in [ARCHITECTURE.md](../../ARCHITECTURE.md). + +> [!NOTE] +> `dd-java-agent` both assembles the agent jar and owns startup code under `src`. +> This layout does not follow Idiomatic Gradle's separation of code modules and aggregation projects: +> startup code lives in the parent project rather than in a dedicated subproject. +> These instructions therefore live under `src` to cover startup code and its tests without applying +> the same guardrails to every product and instrumentation subproject. + +Read and follow the [shared module guardrails](../../.agents/shared-module-guardrails.md). diff --git a/dd-java-agent/src/CLAUDE.md b/dd-java-agent/src/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/dd-java-agent/src/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/dd-trace-api/AGENTS.md b/dd-trace-api/AGENTS.md new file mode 100644 index 00000000000..a2874c71be3 --- /dev/null +++ b/dd-trace-api/AGENTS.md @@ -0,0 +1,5 @@ +# dd-trace-api + +Module described in [ARCHITECTURE.md](../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../.agents/shared-module-guardrails.md). diff --git a/dd-trace-api/CLAUDE.md b/dd-trace-api/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/dd-trace-api/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/dd-trace-core/AGENTS.md b/dd-trace-core/AGENTS.md new file mode 100644 index 00000000000..b89d9e78ffc --- /dev/null +++ b/dd-trace-core/AGENTS.md @@ -0,0 +1,5 @@ +# dd-trace-core + +Module described in [ARCHITECTURE.md](../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../.agents/shared-module-guardrails.md). diff --git a/dd-trace-core/CLAUDE.md b/dd-trace-core/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/dd-trace-core/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/internal-api/AGENTS.md b/internal-api/AGENTS.md new file mode 100644 index 00000000000..fd5541a184b --- /dev/null +++ b/internal-api/AGENTS.md @@ -0,0 +1,5 @@ +# internal-api + +Module described in [ARCHITECTURE.md](../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../.agents/shared-module-guardrails.md). diff --git a/internal-api/CLAUDE.md b/internal-api/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/internal-api/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/remote-config/AGENTS.md b/remote-config/AGENTS.md new file mode 100644 index 00000000000..ffcb2a3349a --- /dev/null +++ b/remote-config/AGENTS.md @@ -0,0 +1,5 @@ +# remote-config + +Module described in [ARCHITECTURE.md](../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../.agents/shared-module-guardrails.md). diff --git a/remote-config/CLAUDE.md b/remote-config/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/remote-config/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/telemetry/AGENTS.md b/telemetry/AGENTS.md new file mode 100644 index 00000000000..f193ea1ac3c --- /dev/null +++ b/telemetry/AGENTS.md @@ -0,0 +1,5 @@ +# telemetry + +Module described in [ARCHITECTURE.md](../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../.agents/shared-module-guardrails.md). diff --git a/telemetry/CLAUDE.md b/telemetry/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/telemetry/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/utils/AGENTS.md b/utils/AGENTS.md new file mode 100644 index 00000000000..24490a1a1af --- /dev/null +++ b/utils/AGENTS.md @@ -0,0 +1,5 @@ +# utils + +Module described in [ARCHITECTURE.md](../ARCHITECTURE.md). + +Read and follow the [shared module guardrails](../.agents/shared-module-guardrails.md). diff --git a/utils/CLAUDE.md b/utils/CLAUDE.md new file mode 100644 index 00000000000..43c994c2d36 --- /dev/null +++ b/utils/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md