一键导入
create-runtime-setting
Create a new RuntimeSetting that can be changed at runtime via `agent config set/get` and the config API
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create a new RuntimeSetting that can be changed at runtime via `agent config set/get` and the config API
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Generate the Agent Supply Chain newsletter by researching team activity on GitHub and Confluence, then creating a Confluence draft and Gmail draft
Give your AI agents something more useful than a prompt. Velocity through clarity.
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.
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.
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.
Autonomously work on Jira backlog tickets, creating PRs and shepherding them to merge
| name | create-runtime-setting |
| description | Create a new RuntimeSetting that can be changed at runtime via `agent config set/get` and the config API |
| allowed-tools | Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion |
| argument-hint | [setting-name] |
| model | sonnet |
Create a new RuntimeSetting implementation for the Datadog Agent. RuntimeSettings are settings that can be read and changed at runtime via:
agent config get <setting>, agent config set <setting> <value>, agent config list-runtimeGET /config/{setting}, POST /config/{setting}Use AskUserQuestion to collect the following. If $ARGUMENTS provides the setting name, skip that question.
Setting name (the config key, e.g. log_payloads, dogstatsd_stats): the name used to register and access the setting via the API.
Value type: What type of value does this setting hold?
Description: A human-readable description of what this setting controls (shown in /config/list-runtime).
Hidden: Should this setting be hidden from the public runtime settings list? (default: false)
Scope: Where should this setting live?
pkg/config/settings/) — Used by multiple agent services (agent, trace-agent, process-agent, etc.)cmd/agent/subcommands/run/internal/settings/) — Only used by the core agentConfig key: The datadog.yaml config key this setting maps to (e.g. log_payloads, internal_profiling.enabled). Often the same as the setting name, but can differ.
Which services should register it: Ask which services should have this setting registered:
cmd/agent/subcommands/run/command.go)cmd/cluster-agent/subcommands/start/command.go)cmd/trace-agent/subcommands/run/command.go)cmd/process-agent/subcommands/run/command.go)cmd/security-agent/subcommands/runtime/command.go)cmd/system-probe/subcommands/run/command.go)cmd/dogstatsd/subcommands/start/command.go)Before writing any code, read the appropriate reference files to follow existing patterns exactly.
Read the interface defined in comp/core/settings/component.go to understand the RuntimeSetting methods.
Read an existing implementation matching the chosen value type. Use Glob with pattern pkg/config/settings/runtime_setting_*.go to list available examples, then read one that matches the desired type (boolean, integer, string, etc.).
Read the test file alongside the chosen reference to see the test pattern.
Read a registration site: Look at one of the command.go files listed in Step 1.7 to see how settings are added to the Settings map.
File naming convention: runtime_setting_<feature_name>.go
File location:
pkg/config/settings/runtime_setting_<feature>.gocmd/agent/subcommands/run/internal/settings/runtime_setting_<feature>.goCreate the implementation following the patterns from the reference file read in Step 2. Every RuntimeSetting needs:
ConfigKey string fieldNew<Name>RuntimeSetting() that sets the config keyDescription() — returns the human-readable descriptionHidden() — returns whether hidden from list-runtimeName() — returns the config keyGet(config) — reads the current value using the appropriate typed getterSet(config, v, source) — validates/converts the input value, then calls config.Set()Type conversion in Set(): for Boolean and Integer types, use the GetBool(v) / GetInt(v) helper functions from pkg/config/settings — these handle string-to-type conversion. For agent-specific settings, import the helpers via settings "github.com/DataDog/datadog-agent/pkg/config/settings".
Create a test file alongside the implementation: runtime_setting_<feature>_test.go
Follow the test patterns from the reference test file read in Step 2. The test should verify:
Name(), Description(), Hidden() return expected valuesGet returns the correct value from configSet with a valid value updates the configSet with a string representation works (e.g. "true"/"false" for bools)Set with an invalid value returns an errorFind the settings.Params provider in the appropriate command.go file(s) for each selected service (from Step 1.7). Add the new setting to the Settings map following the existing pattern in that file. The import alias convention and registration format are visible in the existing entries.
Run the new test:
dda inv test --targets=<package_path>
Run the linter on changed files:
dda inv linter.go
Report the results to the user. If tests or linting fail, fix the issues.
RuntimeSetting interface is defined in comp/core/settings/component.goGetBool and GetInt are in pkg/config/settings/runtime_setting.goSet methods receive a model.Source parameter for config source tracking — always pass it through to config.Set()/config/{setting_name} (GET to read, POST to write) and via the CLI: agent config get <setting>, agent config set <setting> <value>, agent config list-runtime/create-runtime-setting — Interactive: prompts for all details/create-runtime-setting my_new_setting — Pre-fills the setting name, prompts for the rest