Official agent skill

Create Component

by DataDog in DataDog/datadog-agent

Create a new Fx component using the modern def/fx/impl pattern (NOT legacy)

OfficialApache-2.0Auto-check: notes

Install Create Component

skills CLI
$ npx skills add DataDog/datadog-agent --skill create-component -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install DataDog/datadog-agent create-component --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/DataDog/datadog-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/create-component .claude/skills/create-component && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
create-component
GitHub stars
3.8k
Token cost
~1.1k tokens
SKILL.md length
439 words
Files
1
Skills in repo
35
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create a new Fx component using the modern def/fx/impl pattern (NOT legacy)

  • Works in 9 steps: Parse $ARGUMENTS to determine → Ask the user (if not provided via… → Read reference examples before writing… → …
  • SKILL.md covers Instructions, Critical Rules (New-Style vs… and Usage
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Create Component is an agent skill from DataDog/datadog-agent, published by the product's own GitHub organization. Create a new Fx component using the modern def/fx/impl pattern (NOT legacy)

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Main repository for Datadog Agent. The licence is Apache-2.0.

Example prompts

  • “/create-component”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Write, Edit, Glob, Grep

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Parse $ARGUMENTS to determine
  2. Ask the user (if not provided via arguments)
  3. Read reference examples before writing any code. Find a recent component under comp/ using the def/fx/impl pattern (e.g…
  4. Create the directory structure under comp///
  5. Create each file following the patterns from the reference. Key rules
  6. Choose module boundaries only when external consumers need them. Components can use the repository's existing modules. For external…
  7. If new modules are needed, follow the create-go-module skill for each selected path. Register only those modules in modules.yml, use the…
  8. Wire into a bundle if appropriate — add the component's Module() to the relevant comp//bundle.go.
  9. Validate

What it can do on your machine

Read from SKILL.md and the folder at commit 20eff25. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Write
    • Edit
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Create Component loads about 1.1k tokens when it runs. Until then it costs about 23 tokens; SKILL.md has 439 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~23
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Write, Edit, Glob, Grep

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from DataDog/datadog-agent at commit 20eff25, republished under its Apache-2.0 licence (© DataDog). 439 words, ~1,099 tokens.

Download SKILL.mdSave it as .claude/skills/create-component/SKILL.md (or your agent's skills folder).
name
create-component
description
Create a new Fx component using the modern def/fx/impl pattern (NOT legacy)
allowed-tools
Bash, Read, Write, Edit, Glob, Grep
argument-hint
<bundle>/<component-name> [--team team-name] [--with-params] [--with-lifecycle] [--with-mock]
model
sonnet

Create a new Fx component following the modern (new-style) pattern with separate def/, fx/, and impl/ sub-packages.

IMPORTANT: NEVER use the legacy pattern (single-directory with fx.Provide directly). Always use the new-style pattern described below.

Instructions

  1. Parse $ARGUMENTS to determine:

    • <bundle>/<component-name>: e.g., core/remoteflags means bundle=core, component=remoteflags
    • --team <team-name>: optional team ownership tag (default: ask the user)
    • --with-params: include a Params struct in the def package
    • --with-lifecycle: include compdef.Lifecycle in the Requires struct
    • --with-mock: also generate a mock/ sub-package
  2. Ask the user (if not provided via arguments):

    • What is the component's interface? (what methods should it expose?)
    • Which team owns it? (for the // team: comment)
    • Does it need lifecycle hooks (start/stop)?
    • Does it need a Params struct?
    • What are its dependencies (other components it requires)?
  3. Read reference examples before writing any code. Find a recent component under comp/ using the def/fx/impl pattern (e.g. comp/core/remoteagentregistry/). Read:

    • def/component.go — interface definition with // team: comment
    • fx/fx.go — Module() with fxutil.ProvideComponentConstructor
    • impl/<name>.go — Requires/Provides structs, NewComponent constructor
  4. Create the directory structure under comp/<bundle>/<component>/:

    comp/<bundle>/<component>/
    ├── def/
    │   ├── component.go     # Interface definition + team tag
    │   └── params.go        # (optional) Params struct
    ├── fx/
    │   └── fx.go            # Module() function
    └── impl/
        └── <component>.go   # Requires, Provides, NewComponent()
  5. Create each file following the patterns from the reference. Key rules:

    • def/component.go: Use the component name as the package name, include the // team: comment, and define the interface and its public types here.
    • fx/fx.go: Use fxutil.ProvideComponentConstructor (NEVER raw fx.Provide), returns fxutil.Module
    • impl/<component>.go: Use a plain Go constructor returning Provides or (Provides, error) and an unexported implementation type. Prefer plain exported Requires and Provides structs for new constructors. The constructor's outer dependency and result structs do not need compdef.In or compdef.Out. A nested struct needs the corresponding marker when its fields should be resolved as individual dependencies or exposed as individual results. Do not embed fx.In or fx.Out in the structs passed to the adapter.
  6. Choose module boundaries only when external consumers need them. Components can use the repository's existing modules. For external consumers, create separate modules for the required def and implementation packages. Follow the component module guidelines for new components: do not create a module at the component root or in an Fx wrapper package. Existing components may have different module layouts.

  7. If new modules are needed, follow the create-go-module skill for each selected path. Register only those modules in modules.yml, use the repository's Go version, and run dda inv tidy through that workflow.

  8. Wire into a bundle if appropriate — add the component's Module() to the relevant comp/<bundle>/bundle.go.

  9. Validate:

    bash
    dda inv lint-components lint-fxutil-oneshot-test github.lint-codeowner

    Fix any errors and re-run until clean.

Show full SKILL.md (39 more words)Show less

Critical Rules (New-Style vs Legacy)

DO: def/fx/impl sub-packages, fxutil.ProvideComponentConstructor, plain Go constructor, plain Requires/Provides structs, thin def package.

DON'T: Single directory, fx.Provide(newComponent), fx.In/fx.Out embedding, implementation in def package.

Usage

  • /create-component core/myfeature --team agent-runtimes --with-lifecycle
  • /create-component metadata/hostinfo --team agent-metrics --with-params

© DataDog, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/create-component of DataDog/datadog-agent.

Open the folder on GitHubat commit 20eff25

Compare with similar skills

Create Component next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Create Component compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Create Component this skillDataDog/datadog-agent3.8k—~1.1kAutomated safety check: NotesApache-2.0
Modern JavaScript Patternswshobson/agents40k12 repos~548Automated safety check: PassMIT
Golang Patternsaffaan-m/ECC275k—~1.1kAutomated safety check: PassMIT
Kotlin Exposed Patternsaffaan-m/ECC275k4 repos~5.5kAutomated safety check: PassMIT
Dotnet Patternsaffaan-m/ECC275k1 repos~2.3kAutomated safety check: PassMIT
Fastapi Patternsaffaan-m/ECC275k—~2.3kAutomated safety check: PassMIT

Similar skills

  • Covers ES6+ syntax and functional patterns for refactoring older JavaScript: async/await, destructuring, spread, modules, generators and data pipelines.

    40k GitHub starsUsed in 12 repos~548 tokens
    DevelopmentAuto-check passed
  • Golang Patterns

    affaan-m/ECC

    Go-specific design patterns and best practices including functional options, small interfaces, dependency injection, concurrency patterns, error handling, and package organization.

    275k GitHub stars~1.1k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • JetBrains Exposed ORM patterns including DSL queries, DAO pattern, transactions, HikariCP connection pooling, Flyway migrations, and repository pattern.

    275k GitHub starsUsed in 4 repos~5.5k tokens
    DatabasesAuto-check passed
  • Dotnet Patterns

    affaan-m/ECC

    Idiomatic C and .NET patterns, conventions, dependency injection, async/await, and best practices for building robust, maintainable .NET applications.

    275k GitHub starsUsed in 1 repo~2.3k tokens
    DevelopmentAuto-check passed
  • Fastapi Patterns

    affaan-m/ECC

    FastAPI patterns for async APIs, dependency injection, Pydantic request and response models, OpenAPI docs, tests, security, and production readiness.

    275k GitHub stars~2.3k tokensUpdated 3 days ago
    Backend & APIsAuto-check passed
  • Python Patterns

    affaan-m/ECC

    Python-specific design patterns and best practices including protocols, dataclasses, context managers, decorators, async/await, type hints, and package organization.

    275k GitHub stars~2.3k tokensUpdated 3 days ago
    DevelopmentAuto-check passed

More from DataDog/datadog-agent

All 35 skills in this repo
  • Triage CI Failure

    DataDog/datadog-agent

    Official

    Classify a failed CI as either caused by an active incident, flakiness, or a true code regression.

    3.8k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Elicit

    DataDog/datadog-agent

    Official

    Run a structured discovery session to build an Allium specification through conversation.

    3.8k GitHub starsUsed in 1 repo~3.7k tokens
    Auto-check passed
  • Follow PR

    DataDog/datadog-agent

    Official

    Monitor the current PR's GitLab pipeline to completion, then report success, auto-fix, or investigate a failure.

    3.8k GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • Create Epic Recap

    DataDog/datadog-agent

    Official

    A skill your agent uses when an engineer or manager asks to recap, summarize, or post an update on a Jira Epic — a progress update for an in-progress Epic (how far along it is, what's shipped so…

    3.8k GitHub stars~5k tokensUpdated today
    Auto-check: notes
  • Explain Lading Config

    DataDog/datadog-agent

    Official

    Explains a lading.yaml config file from the regression test suite, using the lading Rust source as ground truth for field meanings and defaults.

    3.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Distill

    DataDog/datadog-agent

    Official

    Extract an Allium specification from an existing codebase. An agent skill from DataDog/datadog-agent.

    3.8k GitHub starsUsed in 1 repo~7k tokens
    Auto-check passed

Questions about Create Component

What does Create Component do?

Create a new Fx component using the modern def/fx/impl pattern (NOT legacy). Create Component is an agent skill from DataDog/datadog-agent, published by the product's own GitHub organization.

How do I install Create Component in Claude Code?

Run `npx skills add DataDog/datadog-agent --skill create-component -a claude-code`. Or copy the skill folder (.agents/skills/create-component in DataDog/datadog-agent) into .claude/skills/create-component in your project. Claude Code loads it when a task matches its description.

How do I install Create Component in Codex?

Run `npx skills add DataDog/datadog-agent --skill create-component -a codex`. Or copy the skill folder (.agents/skills/create-component in DataDog/datadog-agent) into .agents/skills/create-component in your project. Codex loads it when a task matches its description.

Can I use Create Component in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add DataDog/datadog-agent --skill create-component -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-component, .gemini/skills/create-component, .github/skills/create-component and .opencode/skills/create-component in your project.

What does Create Component need to run?

SKILL.md names no scripts, command-line tools or credentials: Create Component is instructions for the agent only. Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Glob, Grep.

Does Create Component access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Create Component safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Create Component use?

Create Component is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Create Component use?

About 1.1k tokens (SKILL.md is roughly 4.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Create Component?

Skills that share tags, products or a category with Create Component: Modern JavaScript Patterns (wshobson/agents, 40k stars), Golang Patterns (affaan-m/ECC, 275k stars), Kotlin Exposed Patterns (affaan-m/ECC, 275k stars) and Dotnet Patterns (affaan-m/ECC, 275k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Create Component?

DataDog (a GitHub organization, an official publisher) maintains it in DataDog/datadog-agent, which has 3,757 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 8, 2026.

Source: DataDog/datadog-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.