Skip to content

Commit be589a5

Browse files
authored
Merge branch 'main' into paul/spec-yaml-gpu
2 parents b0afb26 + 388b40f commit be589a5

6,641 files changed

Lines changed: 493847 additions & 162921 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.adms/bazel/adms.mirror.cfg

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ allow depot-read-api-bzl.us1.ddbuild.io
99
allow depot-read-api-cli.us1.ddbuild.io
1010
allow depot-read-api-generic.us1.ddbuild.io
1111
allow depot-read-api-go.us1.ddbuild.io
12+
# Preferred first in GOPROXY (see .adms/go/gitlab.yaml); allow it here so Bazel's
13+
# downloader doesn't block it.
14+
allow depot-read-api-go.rapid-dependency-management-depot.all-clusters.local-dc.fabric.dog
1215
allow depot-read-api-java.us1.ddbuild.io
1316
allow depot-read-api-python.us1.ddbuild.io
1417
allow mass-read.us1.ddbuild.io
@@ -74,6 +77,7 @@ rewrite (github.com)/(.*) depot-read-api-bzl.us1.ddbuild.io/$1/$2
7477
rewrite (raw.githubusercontent.com)/(.*) depot-read-api-bzl.us1.ddbuild.io/$1/$2
7578
rewrite (cdn.jsdelivr.net)/(.*) depot-read-api-bzl.us1.ddbuild.io/$1/$2
7679
rewrite (dl.google.com)/(.*) depot-read-api-bzl.us1.ddbuild.io/$1/$2
80+
rewrite (agent-int-packages.datadoghq.com)/(.*) depot-read-api-bzl.us1.ddbuild.io/$1/$2
7781

7882
# Taken from https://blog.aspect.build/configuring-bazels-downloader
7983
# > For some reason the bazel team decided that mirror.bazel.build should be the source of truth for these 3 files, let

.adms/go/gitlab.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# DO NOT EDIT
22

33
variables:
4-
GOPROXY: "https://depot-read-api-go.us1.ddbuild.io/magicmirror/magicmirror/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/testing/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/magicmirror/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/testing/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/magicmirror/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/testing/@current/"
4+
GOPROXY: "https://depot-read-api-go.rapid-dependency-management-depot.all-clusters.local-dc.fabric.dog:8443/magicmirror/magicmirror/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/magicmirror/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/testing/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/magicmirror/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/testing/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/magicmirror/@current/|https://depot-read-api-go.us1.ddbuild.io/magicmirror/testing/@current/|direct"
55
GONOSUMDB: "github.com/DataDog,go.ddbuild.io"
66
GOPRIVATE: ""

.agents/README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# AI agent assets
2+
3+
This `/.agents/` directory stores configuration and other assets that are meant to be shared amongst all agent harnesses like Claude, Codex, Pi, etc.
4+
5+
## Skills
6+
7+
Agent skills are stored in the `skills/` subdirectory. Claude does not [yet](https://github.com/anthropics/claude-code/issues/6235) support this [convention](https://agentskills.io/client-implementation/adding-skills-support#where-to-scan), so we symlink `/.claude/skills/` to that directory.
8+
9+
## MCP config
10+
11+
The MCP servers are declared in `/agents.toml`, and will be moved to this directory when our tooling supports it.
12+
13+
### Synchronizing
14+
15+
Config is written into each tool's own config file by [dotagents](https://github.com/getsentry/dotagents), run through [mise](https://mise.en.dev). After changing a declaration, run:
16+
17+
```
18+
mise run dotagents install # or `mise run dotagents sync` to reconcile/repair offline
19+
```
20+
21+
dotagents writes to every tool listed in the `agents` key of `agents.toml`, repairing the servers it declares while preserving undeclared servers and unrelated content in each file.
22+
23+
### Maintained by hand
24+
25+
- **Zed** (`/.zed/settings.json`) - not yet a dotagents target.
26+
- **`dd-slack`** - Slack has no dynamic client registration, so each client needs its own pre-registered Slack app bound to a fixed redirect URI. We configure this for Claude and Cursor because that's all Slack publishes at the time of writing. Registering our own Slack app with dynamic client registration will likely be required for broader support.
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
name: agent-supply-chain-newsletter
3+
description: Generate the Agent Supply Chain newsletter by researching team activity on GitHub and Confluence, then creating a Confluence draft and Gmail draft
4+
argument-hint: "<period e.g. 'February-March 2026'>"
5+
model: sonnet
6+
---
7+
8+
Generate the Agent Supply Chain newsletter for the period **$ARGUMENTS** by researching what team members accomplished on GitHub and Confluence, then producing both a Confluence blog post draft and a Gmail draft.
9+
10+
## Step 1: Gather team members
11+
12+
Fetch the current list of agent-supply-chain team members from GitHub:
13+
14+
```bash
15+
gh api orgs/DataDog/teams/agent-supply-chain/members --paginate --jq '.[].login'
16+
```
17+
18+
Ask the user if any members should be excluded (e.g. people who moved teams).
19+
20+
## Step 2: Read past newsletters for format reference
21+
22+
1. Search for the latest blog posts in the ASC1 Confluence space:
23+
- `mcp__claude_ai_Atlassian__searchConfluenceUsingCql` with `cql`: `type = "blogpost" AND space = "ASC1" ORDER BY created DESC` (limit 3)
24+
2. Read the most recent newsletter with `mcp__claude_ai_Atlassian__getConfluencePage` (contentFormat: `markdown`, contentType: `blog`) to match its structure and tone.
25+
26+
The newsletter format is:
27+
- **Header**: greeting, team links (ASC1, ABLD, BARX, ADX spaces), OKR link, support channel link
28+
- **"What's new?"** section organized by sub-team (Agent Developer Experience, Agent Build, Agent Delivery)
29+
- Each item has: a short title, **quantified impact** (time saved, percentage improvement, count), and **links to PRs or docs**
30+
- **"Did you know?"** section with one fun/useful tip
31+
- **Footer**: link to all newsletters, support channel reminder
32+
33+
## Step 3: Research GitHub activity
34+
35+
For each team member, launch background agents (use `run_in_background: true`) to search merged PRs during the period. Split into batches of ~8 members per agent to parallelize.
36+
37+
Each agent should run, for every user:
38+
39+
```bash
40+
# PRs in datadog-agent
41+
gh pr list --repo DataDog/datadog-agent --author USERNAME --state merged --search "merged:START_DATE..END_DATE" --limit 50 --json title,url,mergedAt,labels
42+
43+
# PRs across the DataDog org (catches buildimages, k8s-ops, integrations-core, etc.)
44+
gh search prs --author USERNAME --owner DataDog --merged --limit 20 --json repository,title,url -- "merged:START_DATE..END_DATE"
45+
```
46+
47+
Each agent should return a summary per user, grouped thematically (build improvements, CI/CD, new features, bug fixes, etc.). Skip trivial PRs (version bumps, dependency updates). Focus on items that **impact teams outside Agent Supply Chain**.
48+
49+
## Step 4: Research Confluence activity
50+
51+
Launch a background agent to search for relevant documentation created during the period:
52+
53+
```
54+
mcp__claude_ai_Atlassian__searchConfluenceUsingCql
55+
```
56+
57+
With CQL queries:
58+
- `space = "ASC1" AND lastModified >= "START_DATE" AND lastModified <= "END_DATE" ORDER BY lastModified DESC` (limit 25)
59+
- `space = "ADX" AND lastModified >= "START_DATE" AND lastModified <= "END_DATE" ORDER BY lastModified DESC` (limit 25)
60+
61+
Identify RFCs, design docs, operational reports, and guides that are newsletter-worthy.
62+
63+
## Step 5: Synthesize and write the newsletter
64+
65+
Apply the newsletter guide's filter: **"Is this information impacting a team outside of the Agent Supply Chain group?"** Only include items where the answer is yes.
66+
67+
For each item:
68+
- Provide a **quantifiable improvement** (time saved, percentage change, cost reduction) when available
69+
- Link to the relevant **PR, Confluence page, or documentation**
70+
- Keep descriptions concise (2-4 sentences max per item)
71+
72+
Group items under:
73+
1. **Agent Developer Experience** (CI speed, developer tools, workflows, open source)
74+
2. **Agent Build** (Bazel migration, build system, platform support)
75+
3. **Agent Delivery** (releases, deployments, registries, security)
76+
77+
End with a **"Did you know?"** section highlighting one interesting tool, feature, or tip.
78+
79+
## Step 6: Create outputs
80+
81+
### 6a. Confluence blog post draft
82+
83+
Use `mcp__claude_ai_Atlassian__createConfluencePage` with:
84+
- `cloudId`: `datadoghq.atlassian.net`
85+
- `spaceId`: `4662624793` (ASC1 space)
86+
- `title`: `<Period> - Agent Supply Chain Monthly Update`
87+
- `contentType`: `blog`
88+
- `status`: `draft`
89+
- `contentFormat`: `markdown`
90+
91+
### 6b. Gmail draft
92+
93+
Use `mcp__claude_ai_Gmail__gmail_create_draft` with:
94+
- `to`: `agent-community@datadoghq.com`
95+
- `subject`: `<Period> - Agent Supply Chain Monthly Update`
96+
- `contentType`: `text/html`
97+
- Rich HTML body matching the Confluence content
98+
99+
## Step 7: Present results
100+
101+
Return to the user:
102+
1. Links to both the Confluence draft and Gmail draft
103+
2. A bullet-point summary of the sections covered
104+
3. Remind them to:
105+
- Review both outputs for accuracy
106+
- Send the Gmail to themselves first to verify formatting
107+
- Schedule the final send between **2-4pm CET**, not on a Friday
108+
- Ask for review in `#agent-devx-private` / from Damien Desmarets before publishing

.agents/skills/allium/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ version: 3
55
auto_trigger:
66
- file_patterns: ["**/*.allium"]
77
- keywords: ["allium", "allium spec", "allium specification", ".allium file"]
8+
model: sonnet
89
---
910

1011
# Allium

.agents/skills/allium/skills/distill/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
name: distill
33
description: "Extract an Allium specification from an existing codebase. Use when the user has existing code and wants to distil behaviour into a spec, reverse engineer a specification from implementation, generate a spec from code, turn implementation into a behavioural specification, or document what a codebase does in Allium terms."
4+
model: sonnet
45
---
56

67
# Distillation guide

.agents/skills/allium/skills/elicit/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
name: elicit
33
description: "Run a structured discovery session to build an Allium specification through conversation. Use when the user wants to create a new spec from scratch, elicit or gather requirements, capture domain behaviour, specify a feature or system, define what a system should do, or is describing functionality and needs help shaping it into a specification."
4+
model: sonnet
45
---
56

67
# Elicitation

.agents/skills/allium/skills/propagate/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
name: propagate
33
description: "Generate tests from Allium specifications. Use when the user wants to propagate tests, generate test files from a spec, write tests for a specification, create property-based tests, produce state machine tests, check test coverage against spec obligations, or understand what tests a specification requires."
4+
model: sonnet
45
---
56

67
# Propagation
File renamed without changes.

0 commit comments

Comments
 (0)