mcpbeat Sign in

Dd SDK Ios:update Feature Docs Agent Skill

Use when public API changes have been made to review and update all *_FEATURE.md documentation files, or to audit whether they are still accurate.

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
286
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/DataDog/dd-sdk-ios --skill dd-sdk-ios:update-feature-docs

The instruction itself

5 sections, as written by the author

update-feature-docs

Review and update the feature documentation files to match the current public API.

When to use

  • After adding or modifying a public API (configuration options, new types, new methods)
  • Before opening a release PR, to make sure docs are in sync
  • Any time you want to audit whether feature docs are still accurate

What this skill covers

All *_FEATURE.md files in the repo. Each doc's frontmatter is the source of truth:

  • verified_against_commit — the commit the doc was last verified against
  • tracked_files — the public API source files whose changes should trigger a doc update

To add a new feature doc to the system, create a *_FEATURE.md file following the spec in docs/LLM_FEATURE_DOCS_GUIDELINES.md and modeling it on existing docs (e.g. DatadogRUM/RUM_FEATURE.md, DatadogSessionReplay/SESSION_REPLAY_FEATURE.md). Then run this skill — it will discover the new doc, audit tracked_files coverage, and register it in the required places. No script changes needed.

Steps

  • Discover feature docs — find all *_FEATURE.md files in the repo (excluding build/ and artifacts/).
  • For each doc, read its frontmatter — extract verified_against_commit and tracked_files.
  • If tracked_files is missing, derive the list from public API and configuration source files in the doc's "Key Files" section. Internal implementation files in "Key Files" are navigation references, not frontmatter drift triggers. Treat the doc as fully out of date and proceed to step 4 — the diff in step 3 cannot be computed.
  • If verified_against_commit is missing, treat the doc as fully out of date and proceed to step 4 — the diff in step 3 cannot be computed.
  • Audit tracked_files coverage against the doc's "Key Files" section. Every public API or configuration source file path referenced in "Key Files" must also appear in tracked_files. Cross-feature APIs belong to the feature doc that owns them. Do not add internal implementation files solely because they are listed as navigation references. This audit must happen *here*, before step 3 — otherwise drift in untracked public files is silently ignored. If any public API or configuration files are missing, add them to tracked_files and treat the doc as fully out of date so the newly-tracked files are inspected in step 4.
  • Get the diff since that commit — first ensure the tracked source files have no uncommitted changes:
   git diff HEAD -- <tracked_files>

If this returns anything, abort and tell the engineer:

> "Tracked source files have uncommitted changes. Please commit your API changes first, then re-run the skill — otherwise the diff in step 3 won't see them and I'd report the doc as up to date even though CI would fail later."

Then run the actual drift check:

   git diff <verified_against_commit>..HEAD -- <tracked_files>

If there is no diff for a doc, its own tracked source files are unchanged — skip steps 4–6 for that doc (no content updates needed). Do not skip step 5b: cross-feature drift (e.g. a RUM API change affecting Session Replay's Quick Start) won't show up in this doc's tracked_files diff. Do not skip step 7: even with no content changes, every skill invocation is a fresh verification — the frontmatter should be bumped so verified_against_commit points at a recently-pushed SHA rather than an older one that may not be reachable on a fresh clone. Do not skip step 8 either — registry coverage must be checked even when every doc is fresh.

  • Read the current source files in full — read each tracked source file to understand the current public API surface.
  • Compare against the feature doc — identify every discrepancy:
  • Configuration options — new options missing from the doc, removed or renamed options still mentioned, changed defaults.
  • Public methods and properties — for each public method/property on the tracked types (e.g. RUMMonitor.shared(), startView(), stopView()), confirm it appears in the doc or is intentionally excluded. Flag new public methods missing from the doc.
  • Types, enums, and feature flags — confirm every public enum case (including FeatureFlag cases), nested type, and protocol is documented.
  • Deprecated public surface — walk every case marked @available(*, deprecated, message:). Deprecated cases stay on the public API and must appear in the doc with a clear deprecation note, otherwise customers reading the doc won't know they exist or that they're being phased out.
  • Platform support — verify the doc's stated platform availability matches the source. Check #if os(...) directives and @available(...) annotations on tracked types; if these have changed, update the doc's Overview section.
  • Feature interactions — verify the "Feature Interactions" section still holds. Look for new cross-feature dependencies (e.g. a new RUM-context read in Logs source) or removed ones.
  • Description accuracy — for each documented option/method, compare the snippet's inline comment against the source's doc-comment. If the source description has been updated, update the doc to match.
  • Outdated code examples — anything in the snippets that no longer reflects the API.

5b. Audit every code snippet for compile-readiness — runs for every doc on every skill invocation, even if step 3's diff was empty. This is the only check that catches cross-feature drift (e.g. a RUM predicate change breaking Session Replay's Quick Start). For every constructor call, method call, and type reference in every code snippet (Quick Start and any inline examples):

  • Locate the corresponding init / func / struct / class / enum declaration anywhere in the SDK source, not just this doc's tracked_files. Snippets often reference types from other features (e.g. Session Replay's Quick Start uses RUM.Configuration and DefaultSwiftUIRUMViewsPredicate from DatadogRUM). Use the "Feature Interactions" section of each doc as a hint for which other modules may be relevant, but resolve symbols against the actual source regardless.
  • Confirm every parameter without a default value (= ...) is supplied in the snippet, with the correct label.
  • Confirm parameter labels and argument ordering match the source.
  • Watch especially for newly-required parameters added to existing initializers. A required parameter added to an existing init is the highest-risk drift — the constructor still looks "the same" at a glance, and the source diff is a one-line addition that is easy to skim past. Example regression: DefaultSwiftUIRUMActionsPredicate(isLegacyDetectionEnabled:) gained the required isLegacyDetectionEnabled argument and the snippet was not updated, causing a compile failure customers hit.
  • Placeholder identifiers (e.g. <client_token>, MyCustomViewsPredicate, myView) and user-defined helpers (e.g. scrubURL) are illustrative and need not resolve — only SDK API calls must be valid.
  • If you find any mismatch, fix the snippet (this counts as a content update — proceed to step 6).
  • Update the feature doc — apply all necessary changes:
  • Update the Quick Start example to reflect the current API
  • Update the Configuration Categories section
  • Update Troubleshooting if relevant
  • Fix any stale descriptions or defaults
  • Update the frontmatter — runs on every skill invocation, even when steps 4–6 were skipped. A skill run is itself a verification event; bumping the frontmatter records that and keeps verified_against_commit pointing at a recently-pushed SHA (older SHAs may be unreachable on a fresh clone in CI). Set:
  • tracked_files → if it was missing or out of date, write the list derived in step 2
  • verified_against_commit → current HEAD commit hash (use git rev-parse --short=9 HEAD)
  • sdk_version → current version from DatadogCore.podspec
  • last_updated → today's date (YYYY-MM-DD)
  • Update the registries — when adding, renaming, or removing a *_FEATURE.md file, also update every place that hand-lists feature docs. tools/feature-docs-verify.sh enforces these and will fail CI otherwise:
  • .github/workflows/changelog-to-confluence.yaml — both the paths: filter and the cp block. Use the relative path without a leading slash (DatadogRUM/RUM_FEATURE.md, not /DatadogRUM/RUM_FEATURE.md) — leading slashes silently never match in GitHub Actions paths: filters. The publish filename is kebab-case derived from the module + doc (DatadogRUM/RUM_FEATURE.mddd-sdk-ios-rum-feature.md).
  • AGENTS.md — add the doc to the file tree under "Feature-specific docs" and to the routing table ("Where to Look First").
  • docs/LLM_FEATURE_DOCS_GUIDELINES.md — add the doc to the file inventory list.
  • Surface a reminder to the engineer — at the end of your run, print this single-line note so it's visible right when the engineer is using the skill:

> "Note: verified_against_commit was set to <short SHA>. If you rebase, amend, or squash commits afterward, re-run the skill before pushing so the SHA stays reachable in the final history (otherwise CI verify will fail on a fresh clone)."

Notes

  • Only update docs for features whose tracked source files actually changed.
  • Do not rewrite sections that are still accurate — only fix what is wrong or missing.
  • The Quick Start example should always compile against the current API.

Other skills for the same job

different authors, same section of the catalogue
MCP Builder
by anthropics
vendor ×13

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

30k tokens scripts
Changelog Generator
by frostant
×9

Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.

774 tokens
Finishing A Development Branch
by ZhanlinCui
×7

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup

1k tokens
MCP Builder
by JayZeeDesign
×7

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

37k tokens scripts
Vercel React Native Skills
by vercel-labs
vendor ×6

React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.

39k tokens
Vercel React Best Practices
by ratacat
×5

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

34k tokens
Next Best Practices
by vercel-labs
vendor ×4

Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling

20k tokens
Using Git Worktrees
by ZhanlinCui
×4

Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification

1k tokens

How to use it

Copy the folder

Take datadog/dd-sdk-ios:update-feature-docs from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.