Skip to content

feat(skills): add catalog and session commands backed by Datadog API#614

Closed
rachelyangdog wants to merge 8 commits into
DataDog:mainfrom
rachelyangdog:rachel.yang/skills-catalog-session-commands
Closed

feat(skills): add catalog and session commands backed by Datadog API#614
rachelyangdog wants to merge 8 commits into
DataDog:mainfrom
rachelyangdog:rachel.yang/skills-catalog-session-commands

Conversation

@rachelyangdog

Copy link
Copy Markdown
Contributor

Adds three new subcommands under pup skills that talk to the agentic-onboarding-api:

  • pup skills catalog list [--tags <tag>...] — lists skills from the remote registry (GET /api/v2/skills), optionally filtered by tag (e.g. --tags apm)
  • pup skills catalog get <name> — fetches a single skill's full content by name (GET /api/v2/skills/)
  • pup skills session — records an onboarding session checkpoint or terminal event (POST /api/v2/onboarding/sessions) using the JSON:API envelope the service expects

These complement the existing local skills list/install/path commands (which manage bundled skill files on disk) by giving Claude and other agents a way to discover domain skills from the registry and record session telemetry.

What does this PR do?

Motivation

Additional Notes

Checklist

  • The code change follows the project conventions (see CONTRIBUTING.md)
  • Tests have been added/updated (if applicable)
  • Documentation has been updated (if applicable)
  • All CI checks pass
  • Code coverage is maintained or improved

Related Issues

Adds three new subcommands under `pup skills` that talk to the agentic-onboarding-api:

- `pup skills catalog list [--tags <tag>...]` — lists skills from the remote
  registry (GET /api/v2/skills), optionally filtered by tag (e.g. --tags apm)
- `pup skills catalog get <name>` — fetches a single skill's full content by
  name (GET /api/v2/skills/<name>)
- `pup skills session` — records an onboarding session checkpoint or terminal
  event (POST /api/v2/onboarding/sessions) using the JSON:API envelope the
  service expects

These complement the existing local `skills list/install/path` commands (which
manage bundled skill files on disk) by giving Claude and other agents a way to
discover domain skills from the registry and record session telemetry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@rachelyangdog
rachelyangdog requested a review from a team as a code owner June 23, 2026 13:58
@rachelyangdog
rachelyangdog marked this pull request as draft June 23, 2026 13:58
rachelyangdog and others added 2 commits June 23, 2026 11:18
Adds two more subcommands under `pup skills catalog`:

- `publish <file> --name <name> [--description <desc>] [--tags <tag>...]`
  Creates a new skill in the remote catalog via POST /api/v2/skills
- `update <file> --name <name> [--description <desc>] [--tags <tag>...]`
  Updates an existing skill via PUT /api/v2/skills/{name}

Both read the skill markdown from a local file and upload it as the
skill content. This makes it easy to publish multi-file skill trees
like dd-apm to the registry with a simple shell loop.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Thin skill that tells Claude to fetch the orchestrator from the
agentic-onboarding-api before any Datadog setup or install task.
Closes the delivery gap: customers running `pup skills install` now
get the entry point for the live skill chain in dd-source.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@datadog-datadog-prod-us1

This comment has been minimized.

…rride

- Fail hard if orchestrator fetch returns an error or empty — do not
  fall back to training data
- Add DD_ONBOARDING_API_URL override so local/staging API can be
  targeted without changing DD_SITE

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@rachelyangdog
rachelyangdog marked this pull request as ready for review July 20, 2026 18:31
rachelyangdog and others added 3 commits July 20, 2026 15:13
Mirrors the query params added in DataDog#640's onboarding
skills_get, so `pup skills catalog get` can scope a fetch to an
onboarding session/org and record fetch intent.

- src/commands/skills.rs: catalog_get takes optional intent (validated
  against explore/install/reference), session_id, org_id and forwards
  them as query params.
- src/main.rs: SkillsCatalogActions::Get gains --intent, --session-id,
  --org-id flags.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
main moved raw_get/raw_post/raw_put from client.rs into a new
raw_client module (DataDog#658). Update the catalog and session
commands to call through raw_client so the branch builds against
current main.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Comment thread src/commands/skills.rs Outdated
query.push(("intent", intent.as_str()));
}
if let Some(session_id) = &session_id {
query.push(("session_id", session_id.as_str()));

@tedkahwaji tedkahwaji Jul 20, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we switch to using onboarding_run_id; which the query param the api supports

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in commit 92fd9a9

The agentic-onboarding-api only supports onboarding_run_id as the
query param name (per ddoghq/dd-source service.go), not session_id.
Rename the flag and forwarded query param to match.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@rachelyangdog

Copy link
Copy Markdown
Contributor Author

closing in favor of #640

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants