feat: add trogonstack-datadog plugin - #15

Merged
yordis merged 1 commit into
mainfrom
datadog-plugin
Mar 2, 2026
Merged

feat: add trogonstack-datadog plugin#15
yordis merged 1 commit into
mainfrom
datadog-plugin

Conversation

@yordis

@yordisyordis commented Mar 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds trogonstack-datadog plugin with two skills for Datadog dashboard observability
  • datadog-design-dashboard: lean how-to skill (145 lines) with domain discovery phase, interview, and workflow directives pointing to 4 reference docs
  • datadog-review-dashboard: audits existing dashboards against operational readiness principles
  • Registers the plugin in marketplace.json and release-please config

Key features

  • Domain discovery phase: AI asks about the product/business and offers to read codebases before designing
  • Customer-Facing section: 5-8 metrics at the top for instant outage identification
  • Alert threshold markers: red lines on timeseries, thresholds close to normal traffic
  • Y-axis configuration: explicit yaxis.max instead of auto-scaling
  • Widget title prefix system: I0-N: (infrastructure), P0-N: (platform), D0-N: (domain) for layer and priority at a glance
  • Zero-knowledge readability: anyone can spot problems via red indicators without service knowledge
  • Dashboard strategy guidance: per-service vs consolidated vs hybrid trade-offs

File structure

plugins/trogonstack-datadog/
├── .claude-plugin/plugin.json
├── CHANGELOG.md
└── skills/
├── datadog-design-dashboard/
│ ├── SKILL.md (145 lines, lean how-to)
│ └── references/
│ ├── frameworks.md (RED, USE, Golden Signals, SLI/SLO)
│ ├── layouts.md (template vars, group patterns, grid, anti-patterns)
│ ├── widgets.md (widget types, sizing, prefix system, naming)
│ └── thresholds.md (alert markers, proximity guide, Y-axis config)
└── datadog-review-dashboard/
└── SKILL.md (audit skill)

Test plan

  • Verify plugins/trogonstack-datadog/.claude-plugin/plugin.json is valid
  • Verify both SKILL.md files have correct frontmatter (name, description, allowed-tools)
  • Verify all Datadog query examples use valid syntax (separate percentile aggregators, template variable filters)
  • Verify reference files are consistent with SKILL.md guidance
  • Verify release-please config and manifest include the new plugin
  • Fix invalid percentile query syntax (p50/p90/p99: → separate queries)
  • Add missing template variable filters to Golden Signals queries
  • Add fence language tags to all code blocks (MD040)
  • Add URL/service-name resolution to review skill workflow

@cursor

cursorBot commented Mar 1, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Low risk: this PR only adds a new plugin’s markdown/JSON skill content and wires it into marketplace and release automation, without changing runtime code paths.

Overview
Adds a new trogonstack-datadog plugin (v0.0.1) with two new skills: datadog-design-dashboard (dashboard design workflow plus reference docs for frameworks/layouts/widgets/thresholds) and datadog-review-dashboard (audit workflow for existing dashboards using pup).

Registers the plugin in .claude-plugin/marketplace.json and updates release automation (.github/release-please-config.json and .github/release-please-manifest.json) so it is versioned and released alongside existing plugins.

Written by Cursor Bugbot for commit e6c26d7. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 1, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@yordis has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 39 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 2f5a458 and e6c26d7.

📒 Files selected for processing (11)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Walkthrough

Adds a new trogonstack-datadog plugin: marketplace and release tooling entries, plugin manifest and changelog, plus comprehensive Datadog dashboard design and review skill documentation with reference guides (frameworks, layouts, widgets, thresholds).

Changes

Cohort / File(s)Summary
Marketplace & Release Config
​.claude-plugin/marketplace.json, .github/release-please-config.json, .github/release-please-manifest.json
Register new plugin trogonstack-datadog in the marketplace and add release-please package/manifest entries for versioning.
Plugin Manifest & Changelog
plugins/trogonstack-datadog/.claude-plugin/plugin.json, plugins/trogonstack-datadog/CHANGELOG.md
Add plugin metadata (name, description, version, author) and an initial changelog file.
Design Skill
plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
New Datadog dashboard design skill: discovery prompts, 5-step workflow, gating logic, output templates, and a detailed quality checklist.
Design References
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md, .../layouts.md, .../widgets.md, .../thresholds.md
Comprehensive reference material covering observability frameworks, layout/grid conventions, widget selection/naming, and threshold best practices.
Review Skill
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md
New Datadog dashboard review/audit skill: interview prompts, inventorying steps, audit checks, templated findings, and final report format.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Poem

🐰 I hopped in the code with a curious cheer,
I sketched dashboards bright and thresholds clear,
Widgets in rows, templates all neat,
Variables ready for every fleet,
Observe, revise, and celebrate with a carrot treat! 🥕📊

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat: add trogonstack-datadog plugin' directly and concisely describes the main change: adding a new plugin to the repository.
Description check✅ PassedThe description comprehensively explains the plugin's purpose, key features, file structure, and test plan, all directly related to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch datadog-plugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md`:
- Around line 13-16: The Duration row uses invalid combined percentile syntax —
replace the single "p50/p90/p99:trace.http.request.duration{$service,$env}"
usage with separate percentile-prefixed queries (use
"p50:trace.http.request.duration(...)", "p90:...", "p99:...") each including
explicit template variable filters; likewise update the Golden Signals queries
referenced around "Golden Signals" (lines ~79–80) to add explicit template
variable filters in the form {service:$service,env:$env} (or matching the
template names used elsewhere) so all Datadog queries consistently use separate
percentile aggregators and explicit {service:...,env:...} filters rather than
the broad {$service,$env} shorthand.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 11: Four code fences in the document are missing a language tag which
triggers markdownlint MD040; update each bare triple-backtick fence (the four
occurrences currently written as ```) to use an explicit language tag (e.g.,
change ``` to ```text) at the four fence locations so the fences at the current
positions are ```text ... ``` instead of ``` ... ```.
In `@plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md`:
- Around line 233-245: The fenced code block in SKILL.md that begins with "✓
GOOD:" and shows the "✗ BAD:" example lacks a fence language (causing MD040);
fix by adding a language token (e.g., text) immediately after the opening ``` so
the block becomes ```text, ensuring the linter recognizes the code fence and the
existing example content remains unchanged.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: Update the "Dashboard — 'Which dashboard should I review?
Provide a dashboard ID, URL, or service name to search for.'" prompt in SKILL.md
to document how to resolve non-ID inputs into a dashboard ID: add instructions
to run "pup dashboards list" to show candidate dashboards when given a service
name (or no ID), explain extracting the dashboard ID from a provided URL path,
and instruct using the resolved ID with "pup dashboards get <dashboard-id>" and
"pup dashboards url <dashboard-id>"; apply the same guidance to the other
occurrence mentioned (lines 45-51) so consumers know to normalize
URL/service-name inputs to an ID before fetching.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3ee6830 and 964578a.

📒 Files selected for processing (10)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Comment threadplugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md Outdated

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (2)
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md (1)

30-31: ⚠️ Potential issue | 🟠 Major

Add explicit URL/service-name → dashboard ID resolution before fetch.

At Line 30 the interview accepts URL/service-name, but Lines 45-51 only document ID-based fetch commands. Add normalization steps (list candidates for service-name input, extract ID from URL path, then use resolved ID) so the workflow is executable end-to-end.

Suggested patch
 ### 1. Fetch Dashboard Definition
```bash
+# If user provides a service name (or no ID), list candidates first+pup dashboards list++# If user provides a URL, extract the dashboard ID from the URL path+# and use that ID in the commands below+
# Get the full dashboard definition
pup dashboards get <dashboard-id>
# Get the dashboard URL for reference
pup dashboards url <dashboard-id>
</details>
Also applies to: 45-51
<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md around
lines 30 - 31, The documentation accepts a dashboard URL or service name but
only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get " and "pup dashboards url
" so the workflow runs end-to-end.


</details>
</blockquote></details>
<details>
<summary>plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)</summary><blockquote>
`65-113`: _⚠️ Potential issue_ | _🟡 Minor_
**Add fence languages for diagram blocks to satisfy markdownlint MD040.**
The fenced blocks starting at Line 65, Line 127, Line 185, and Line 241 should use an explicit language (for example, `text`) to avoid MD040 warnings.
<details>
<summary>Minimal lint-fix diff</summary>
```diff
-```
+```text
...

- +text
...


-```
+```text
...

- +text
...

Also applies to: 127-171, 185-227, 241-292

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 65 - 113, The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 65-113: The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: The documentation accepts a dashboard URL or service name
but only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get <dashboard-id>" and "pup dashboards url
<dashboard-id>" so the workflow runs end-to-end.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 964578a and 2171052.

📒 Files selected for processing (5)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)

13-20: Align standard template variables with examples.

team is used in the Executive template (Line 187) but not listed in the standard variables table, which can cause ambiguity for implementers.

Suggested edit
 | `host` | `host` | Host-level investigation |
+| `team` | `team` | Team-level scoping for cross-service/executive dashboards |

Also applies to: 187-187

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 13 - 20, The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 44: The sentence fragment "Should be the first group." in the
"Customer-Facing — 5-8 metrics..." line should be rewritten as a full sentence
for clarity; replace that fragment with a complete sentence such as "It should
be the first group." or merge it into the previous sentence (e.g.,
"Customer-Facing — 5-8 metrics that answer 'are customers affected?' within 5
seconds, and it should be the first group.") so the guidance reads as a single,
grammatically complete instruction.
---
Nitpick comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 13-20: The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8a07bff and 2f5a458.

📒 Files selected for processing (3)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md

@yordis
yordisforce-pushed the datadog-plugin branch 2 times, most recently from 3cdc328 to e07b8aaCompareMarch 2, 2026 04:13

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Sign up for freeto 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.

1 participant

@yordis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat: add trogonstack-datadog plugin - #15

Merged
yordis merged 1 commit into
mainfrom
datadog-plugin
Mar 2, 2026
Merged

feat: add trogonstack-datadog plugin#15
yordis merged 1 commit into
mainfrom
datadog-plugin

Conversation

@yordis

@yordisyordis commented Mar 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds trogonstack-datadog plugin with two skills for Datadog dashboard observability
  • datadog-design-dashboard: lean how-to skill (145 lines) with domain discovery phase, interview, and workflow directives pointing to 4 reference docs
  • datadog-review-dashboard: audits existing dashboards against operational readiness principles
  • Registers the plugin in marketplace.json and release-please config

Key features

  • Domain discovery phase: AI asks about the product/business and offers to read codebases before designing
  • Customer-Facing section: 5-8 metrics at the top for instant outage identification
  • Alert threshold markers: red lines on timeseries, thresholds close to normal traffic
  • Y-axis configuration: explicit yaxis.max instead of auto-scaling
  • Widget title prefix system: I0-N: (infrastructure), P0-N: (platform), D0-N: (domain) for layer and priority at a glance
  • Zero-knowledge readability: anyone can spot problems via red indicators without service knowledge
  • Dashboard strategy guidance: per-service vs consolidated vs hybrid trade-offs

File structure

plugins/trogonstack-datadog/
├── .claude-plugin/plugin.json
├── CHANGELOG.md
└── skills/
├── datadog-design-dashboard/
│ ├── SKILL.md (145 lines, lean how-to)
│ └── references/
│ ├── frameworks.md (RED, USE, Golden Signals, SLI/SLO)
│ ├── layouts.md (template vars, group patterns, grid, anti-patterns)
│ ├── widgets.md (widget types, sizing, prefix system, naming)
│ └── thresholds.md (alert markers, proximity guide, Y-axis config)
└── datadog-review-dashboard/
└── SKILL.md (audit skill)

Test plan

  • Verify plugins/trogonstack-datadog/.claude-plugin/plugin.json is valid
  • Verify both SKILL.md files have correct frontmatter (name, description, allowed-tools)
  • Verify all Datadog query examples use valid syntax (separate percentile aggregators, template variable filters)
  • Verify reference files are consistent with SKILL.md guidance
  • Verify release-please config and manifest include the new plugin
  • Fix invalid percentile query syntax (p50/p90/p99: → separate queries)
  • Add missing template variable filters to Golden Signals queries
  • Add fence language tags to all code blocks (MD040)
  • Add URL/service-name resolution to review skill workflow

@cursor

cursorBot commented Mar 1, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Low risk: this PR only adds a new plugin’s markdown/JSON skill content and wires it into marketplace and release automation, without changing runtime code paths.

Overview
Adds a new trogonstack-datadog plugin (v0.0.1) with two new skills: datadog-design-dashboard (dashboard design workflow plus reference docs for frameworks/layouts/widgets/thresholds) and datadog-review-dashboard (audit workflow for existing dashboards using pup).

Registers the plugin in .claude-plugin/marketplace.json and updates release automation (.github/release-please-config.json and .github/release-please-manifest.json) so it is versioned and released alongside existing plugins.

Written by Cursor Bugbot for commit e6c26d7. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 1, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@yordis has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 39 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 2f5a458 and e6c26d7.

📒 Files selected for processing (11)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Walkthrough

Adds a new trogonstack-datadog plugin: marketplace and release tooling entries, plugin manifest and changelog, plus comprehensive Datadog dashboard design and review skill documentation with reference guides (frameworks, layouts, widgets, thresholds).

Changes

Cohort / File(s)Summary
Marketplace & Release Config
​.claude-plugin/marketplace.json, .github/release-please-config.json, .github/release-please-manifest.json
Register new plugin trogonstack-datadog in the marketplace and add release-please package/manifest entries for versioning.
Plugin Manifest & Changelog
plugins/trogonstack-datadog/.claude-plugin/plugin.json, plugins/trogonstack-datadog/CHANGELOG.md
Add plugin metadata (name, description, version, author) and an initial changelog file.
Design Skill
plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
New Datadog dashboard design skill: discovery prompts, 5-step workflow, gating logic, output templates, and a detailed quality checklist.
Design References
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md, .../layouts.md, .../widgets.md, .../thresholds.md
Comprehensive reference material covering observability frameworks, layout/grid conventions, widget selection/naming, and threshold best practices.
Review Skill
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md
New Datadog dashboard review/audit skill: interview prompts, inventorying steps, audit checks, templated findings, and final report format.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Poem

🐰 I hopped in the code with a curious cheer,
I sketched dashboards bright and thresholds clear,
Widgets in rows, templates all neat,
Variables ready for every fleet,
Observe, revise, and celebrate with a carrot treat! 🥕📊

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat: add trogonstack-datadog plugin' directly and concisely describes the main change: adding a new plugin to the repository.
Description check✅ PassedThe description comprehensively explains the plugin's purpose, key features, file structure, and test plan, all directly related to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch datadog-plugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md`:
- Around line 13-16: The Duration row uses invalid combined percentile syntax —
replace the single "p50/p90/p99:trace.http.request.duration{$service,$env}"
usage with separate percentile-prefixed queries (use
"p50:trace.http.request.duration(...)", "p90:...", "p99:...") each including
explicit template variable filters; likewise update the Golden Signals queries
referenced around "Golden Signals" (lines ~79–80) to add explicit template
variable filters in the form {service:$service,env:$env} (or matching the
template names used elsewhere) so all Datadog queries consistently use separate
percentile aggregators and explicit {service:...,env:...} filters rather than
the broad {$service,$env} shorthand.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 11: Four code fences in the document are missing a language tag which
triggers markdownlint MD040; update each bare triple-backtick fence (the four
occurrences currently written as ```) to use an explicit language tag (e.g.,
change ``` to ```text) at the four fence locations so the fences at the current
positions are ```text ... ``` instead of ``` ... ```.
In `@plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md`:
- Around line 233-245: The fenced code block in SKILL.md that begins with "✓
GOOD:" and shows the "✗ BAD:" example lacks a fence language (causing MD040);
fix by adding a language token (e.g., text) immediately after the opening ``` so
the block becomes ```text, ensuring the linter recognizes the code fence and the
existing example content remains unchanged.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: Update the "Dashboard — 'Which dashboard should I review?
Provide a dashboard ID, URL, or service name to search for.'" prompt in SKILL.md
to document how to resolve non-ID inputs into a dashboard ID: add instructions
to run "pup dashboards list" to show candidate dashboards when given a service
name (or no ID), explain extracting the dashboard ID from a provided URL path,
and instruct using the resolved ID with "pup dashboards get <dashboard-id>" and
"pup dashboards url <dashboard-id>"; apply the same guidance to the other
occurrence mentioned (lines 45-51) so consumers know to normalize
URL/service-name inputs to an ID before fetching.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3ee6830 and 964578a.

📒 Files selected for processing (10)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Comment threadplugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md Outdated

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (2)
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md (1)

30-31: ⚠️ Potential issue | 🟠 Major

Add explicit URL/service-name → dashboard ID resolution before fetch.

At Line 30 the interview accepts URL/service-name, but Lines 45-51 only document ID-based fetch commands. Add normalization steps (list candidates for service-name input, extract ID from URL path, then use resolved ID) so the workflow is executable end-to-end.

Suggested patch
 ### 1. Fetch Dashboard Definition
```bash
+# If user provides a service name (or no ID), list candidates first+pup dashboards list++# If user provides a URL, extract the dashboard ID from the URL path+# and use that ID in the commands below+
# Get the full dashboard definition
pup dashboards get <dashboard-id>
# Get the dashboard URL for reference
pup dashboards url <dashboard-id>
</details>
Also applies to: 45-51
<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md around
lines 30 - 31, The documentation accepts a dashboard URL or service name but
only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get " and "pup dashboards url
" so the workflow runs end-to-end.


</details>
</blockquote></details>
<details>
<summary>plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)</summary><blockquote>
`65-113`: _⚠️ Potential issue_ | _🟡 Minor_
**Add fence languages for diagram blocks to satisfy markdownlint MD040.**
The fenced blocks starting at Line 65, Line 127, Line 185, and Line 241 should use an explicit language (for example, `text`) to avoid MD040 warnings.
<details>
<summary>Minimal lint-fix diff</summary>
```diff
-```
+```text
...

- +text
...


-```
+```text
...

- +text
...

Also applies to: 127-171, 185-227, 241-292

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 65 - 113, The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 65-113: The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: The documentation accepts a dashboard URL or service name
but only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get <dashboard-id>" and "pup dashboards url
<dashboard-id>" so the workflow runs end-to-end.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 964578a and 2171052.

📒 Files selected for processing (5)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)

13-20: Align standard template variables with examples.

team is used in the Executive template (Line 187) but not listed in the standard variables table, which can cause ambiguity for implementers.

Suggested edit
 | `host` | `host` | Host-level investigation |
+| `team` | `team` | Team-level scoping for cross-service/executive dashboards |

Also applies to: 187-187

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 13 - 20, The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 44: The sentence fragment "Should be the first group." in the
"Customer-Facing — 5-8 metrics..." line should be rewritten as a full sentence
for clarity; replace that fragment with a complete sentence such as "It should
be the first group." or merge it into the previous sentence (e.g.,
"Customer-Facing — 5-8 metrics that answer 'are customers affected?' within 5
seconds, and it should be the first group.") so the guidance reads as a single,
grammatically complete instruction.
---
Nitpick comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 13-20: The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8a07bff and 2f5a458.

📒 Files selected for processing (3)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md

@yordis
yordisforce-pushed the datadog-plugin branch 2 times, most recently from 3cdc328 to e07b8aaCompareMarch 2, 2026 04:13

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Sign up for freeto 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.

1 participant

@yordis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add trogonstack-datadog plugin - #15

Merged
yordis merged 1 commit into
mainfrom
datadog-plugin
Mar 2, 2026
Merged

feat: add trogonstack-datadog plugin#15
yordis merged 1 commit into
mainfrom
datadog-plugin

Conversation

@yordis

@yordisyordis commented Mar 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds trogonstack-datadog plugin with two skills for Datadog dashboard observability
  • datadog-design-dashboard: lean how-to skill (145 lines) with domain discovery phase, interview, and workflow directives pointing to 4 reference docs
  • datadog-review-dashboard: audits existing dashboards against operational readiness principles
  • Registers the plugin in marketplace.json and release-please config

Key features

  • Domain discovery phase: AI asks about the product/business and offers to read codebases before designing
  • Customer-Facing section: 5-8 metrics at the top for instant outage identification
  • Alert threshold markers: red lines on timeseries, thresholds close to normal traffic
  • Y-axis configuration: explicit yaxis.max instead of auto-scaling
  • Widget title prefix system: I0-N: (infrastructure), P0-N: (platform), D0-N: (domain) for layer and priority at a glance
  • Zero-knowledge readability: anyone can spot problems via red indicators without service knowledge
  • Dashboard strategy guidance: per-service vs consolidated vs hybrid trade-offs

File structure

plugins/trogonstack-datadog/
├── .claude-plugin/plugin.json
├── CHANGELOG.md
└── skills/
├── datadog-design-dashboard/
│ ├── SKILL.md (145 lines, lean how-to)
│ └── references/
│ ├── frameworks.md (RED, USE, Golden Signals, SLI/SLO)
│ ├── layouts.md (template vars, group patterns, grid, anti-patterns)
│ ├── widgets.md (widget types, sizing, prefix system, naming)
│ └── thresholds.md (alert markers, proximity guide, Y-axis config)
└── datadog-review-dashboard/
└── SKILL.md (audit skill)

Test plan

  • Verify plugins/trogonstack-datadog/.claude-plugin/plugin.json is valid
  • Verify both SKILL.md files have correct frontmatter (name, description, allowed-tools)
  • Verify all Datadog query examples use valid syntax (separate percentile aggregators, template variable filters)
  • Verify reference files are consistent with SKILL.md guidance
  • Verify release-please config and manifest include the new plugin
  • Fix invalid percentile query syntax (p50/p90/p99: → separate queries)
  • Add missing template variable filters to Golden Signals queries
  • Add fence language tags to all code blocks (MD040)
  • Add URL/service-name resolution to review skill workflow

@cursor

cursorBot commented Mar 1, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Low risk: this PR only adds a new plugin’s markdown/JSON skill content and wires it into marketplace and release automation, without changing runtime code paths.

Overview
Adds a new trogonstack-datadog plugin (v0.0.1) with two new skills: datadog-design-dashboard (dashboard design workflow plus reference docs for frameworks/layouts/widgets/thresholds) and datadog-review-dashboard (audit workflow for existing dashboards using pup).

Registers the plugin in .claude-plugin/marketplace.json and updates release automation (.github/release-please-config.json and .github/release-please-manifest.json) so it is versioned and released alongside existing plugins.

Written by Cursor Bugbot for commit e6c26d7. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 1, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@yordis has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 39 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 2f5a458 and e6c26d7.

📒 Files selected for processing (11)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Walkthrough

Adds a new trogonstack-datadog plugin: marketplace and release tooling entries, plugin manifest and changelog, plus comprehensive Datadog dashboard design and review skill documentation with reference guides (frameworks, layouts, widgets, thresholds).

Changes

Cohort / File(s)Summary
Marketplace & Release Config
​.claude-plugin/marketplace.json, .github/release-please-config.json, .github/release-please-manifest.json
Register new plugin trogonstack-datadog in the marketplace and add release-please package/manifest entries for versioning.
Plugin Manifest & Changelog
plugins/trogonstack-datadog/.claude-plugin/plugin.json, plugins/trogonstack-datadog/CHANGELOG.md
Add plugin metadata (name, description, version, author) and an initial changelog file.
Design Skill
plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
New Datadog dashboard design skill: discovery prompts, 5-step workflow, gating logic, output templates, and a detailed quality checklist.
Design References
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md, .../layouts.md, .../widgets.md, .../thresholds.md
Comprehensive reference material covering observability frameworks, layout/grid conventions, widget selection/naming, and threshold best practices.
Review Skill
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md
New Datadog dashboard review/audit skill: interview prompts, inventorying steps, audit checks, templated findings, and final report format.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Poem

🐰 I hopped in the code with a curious cheer,
I sketched dashboards bright and thresholds clear,
Widgets in rows, templates all neat,
Variables ready for every fleet,
Observe, revise, and celebrate with a carrot treat! 🥕📊

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat: add trogonstack-datadog plugin' directly and concisely describes the main change: adding a new plugin to the repository.
Description check✅ PassedThe description comprehensively explains the plugin's purpose, key features, file structure, and test plan, all directly related to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch datadog-plugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md`:
- Around line 13-16: The Duration row uses invalid combined percentile syntax —
replace the single "p50/p90/p99:trace.http.request.duration{$service,$env}"
usage with separate percentile-prefixed queries (use
"p50:trace.http.request.duration(...)", "p90:...", "p99:...") each including
explicit template variable filters; likewise update the Golden Signals queries
referenced around "Golden Signals" (lines ~79–80) to add explicit template
variable filters in the form {service:$service,env:$env} (or matching the
template names used elsewhere) so all Datadog queries consistently use separate
percentile aggregators and explicit {service:...,env:...} filters rather than
the broad {$service,$env} shorthand.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 11: Four code fences in the document are missing a language tag which
triggers markdownlint MD040; update each bare triple-backtick fence (the four
occurrences currently written as ```) to use an explicit language tag (e.g.,
change ``` to ```text) at the four fence locations so the fences at the current
positions are ```text ... ``` instead of ``` ... ```.
In `@plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md`:
- Around line 233-245: The fenced code block in SKILL.md that begins with "✓
GOOD:" and shows the "✗ BAD:" example lacks a fence language (causing MD040);
fix by adding a language token (e.g., text) immediately after the opening ``` so
the block becomes ```text, ensuring the linter recognizes the code fence and the
existing example content remains unchanged.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: Update the "Dashboard — 'Which dashboard should I review?
Provide a dashboard ID, URL, or service name to search for.'" prompt in SKILL.md
to document how to resolve non-ID inputs into a dashboard ID: add instructions
to run "pup dashboards list" to show candidate dashboards when given a service
name (or no ID), explain extracting the dashboard ID from a provided URL path,
and instruct using the resolved ID with "pup dashboards get <dashboard-id>" and
"pup dashboards url <dashboard-id>"; apply the same guidance to the other
occurrence mentioned (lines 45-51) so consumers know to normalize
URL/service-name inputs to an ID before fetching.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3ee6830 and 964578a.

📒 Files selected for processing (10)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Comment threadplugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md Outdated

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (2)
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md (1)

30-31: ⚠️ Potential issue | 🟠 Major

Add explicit URL/service-name → dashboard ID resolution before fetch.

At Line 30 the interview accepts URL/service-name, but Lines 45-51 only document ID-based fetch commands. Add normalization steps (list candidates for service-name input, extract ID from URL path, then use resolved ID) so the workflow is executable end-to-end.

Suggested patch
 ### 1. Fetch Dashboard Definition
```bash
+# If user provides a service name (or no ID), list candidates first+pup dashboards list++# If user provides a URL, extract the dashboard ID from the URL path+# and use that ID in the commands below+
# Get the full dashboard definition
pup dashboards get <dashboard-id>
# Get the dashboard URL for reference
pup dashboards url <dashboard-id>
</details>
Also applies to: 45-51
<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md around
lines 30 - 31, The documentation accepts a dashboard URL or service name but
only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get " and "pup dashboards url
" so the workflow runs end-to-end.


</details>
</blockquote></details>
<details>
<summary>plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)</summary><blockquote>
`65-113`: _⚠️ Potential issue_ | _🟡 Minor_
**Add fence languages for diagram blocks to satisfy markdownlint MD040.**
The fenced blocks starting at Line 65, Line 127, Line 185, and Line 241 should use an explicit language (for example, `text`) to avoid MD040 warnings.
<details>
<summary>Minimal lint-fix diff</summary>
```diff
-```
+```text
...

- +text
...


-```
+```text
...

- +text
...

Also applies to: 127-171, 185-227, 241-292

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 65 - 113, The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 65-113: The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: The documentation accepts a dashboard URL or service name
but only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get <dashboard-id>" and "pup dashboards url
<dashboard-id>" so the workflow runs end-to-end.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 964578a and 2171052.

📒 Files selected for processing (5)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)

13-20: Align standard template variables with examples.

team is used in the Executive template (Line 187) but not listed in the standard variables table, which can cause ambiguity for implementers.

Suggested edit
 | `host` | `host` | Host-level investigation |
+| `team` | `team` | Team-level scoping for cross-service/executive dashboards |

Also applies to: 187-187

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 13 - 20, The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 44: The sentence fragment "Should be the first group." in the
"Customer-Facing — 5-8 metrics..." line should be rewritten as a full sentence
for clarity; replace that fragment with a complete sentence such as "It should
be the first group." or merge it into the previous sentence (e.g.,
"Customer-Facing — 5-8 metrics that answer 'are customers affected?' within 5
seconds, and it should be the first group.") so the guidance reads as a single,
grammatically complete instruction.
---
Nitpick comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 13-20: The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8a07bff and 2f5a458.

📒 Files selected for processing (3)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md

@yordis
yordisforce-pushed the datadog-plugin branch 2 times, most recently from 3cdc328 to e07b8aaCompareMarch 2, 2026 04:13

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Sign up for freeto 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.

1 participant

@yordis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add trogonstack-datadog plugin - #15

Merged
yordis merged 1 commit into
mainfrom
datadog-plugin
Mar 2, 2026
Merged

feat: add trogonstack-datadog plugin#15
yordis merged 1 commit into
mainfrom
datadog-plugin

Conversation

@yordis

@yordisyordis commented Mar 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds trogonstack-datadog plugin with two skills for Datadog dashboard observability
  • datadog-design-dashboard: lean how-to skill (145 lines) with domain discovery phase, interview, and workflow directives pointing to 4 reference docs
  • datadog-review-dashboard: audits existing dashboards against operational readiness principles
  • Registers the plugin in marketplace.json and release-please config

Key features

  • Domain discovery phase: AI asks about the product/business and offers to read codebases before designing
  • Customer-Facing section: 5-8 metrics at the top for instant outage identification
  • Alert threshold markers: red lines on timeseries, thresholds close to normal traffic
  • Y-axis configuration: explicit yaxis.max instead of auto-scaling
  • Widget title prefix system: I0-N: (infrastructure), P0-N: (platform), D0-N: (domain) for layer and priority at a glance
  • Zero-knowledge readability: anyone can spot problems via red indicators without service knowledge
  • Dashboard strategy guidance: per-service vs consolidated vs hybrid trade-offs

File structure

plugins/trogonstack-datadog/
├── .claude-plugin/plugin.json
├── CHANGELOG.md
└── skills/
├── datadog-design-dashboard/
│ ├── SKILL.md (145 lines, lean how-to)
│ └── references/
│ ├── frameworks.md (RED, USE, Golden Signals, SLI/SLO)
│ ├── layouts.md (template vars, group patterns, grid, anti-patterns)
│ ├── widgets.md (widget types, sizing, prefix system, naming)
│ └── thresholds.md (alert markers, proximity guide, Y-axis config)
└── datadog-review-dashboard/
└── SKILL.md (audit skill)

Test plan

  • Verify plugins/trogonstack-datadog/.claude-plugin/plugin.json is valid
  • Verify both SKILL.md files have correct frontmatter (name, description, allowed-tools)
  • Verify all Datadog query examples use valid syntax (separate percentile aggregators, template variable filters)
  • Verify reference files are consistent with SKILL.md guidance
  • Verify release-please config and manifest include the new plugin
  • Fix invalid percentile query syntax (p50/p90/p99: → separate queries)
  • Add missing template variable filters to Golden Signals queries
  • Add fence language tags to all code blocks (MD040)
  • Add URL/service-name resolution to review skill workflow

@cursor

cursorBot commented Mar 1, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Low risk: this PR only adds a new plugin’s markdown/JSON skill content and wires it into marketplace and release automation, without changing runtime code paths.

Overview
Adds a new trogonstack-datadog plugin (v0.0.1) with two new skills: datadog-design-dashboard (dashboard design workflow plus reference docs for frameworks/layouts/widgets/thresholds) and datadog-review-dashboard (audit workflow for existing dashboards using pup).

Registers the plugin in .claude-plugin/marketplace.json and updates release automation (.github/release-please-config.json and .github/release-please-manifest.json) so it is versioned and released alongside existing plugins.

Written by Cursor Bugbot for commit e6c26d7. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 1, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@yordis has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 39 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 2f5a458 and e6c26d7.

📒 Files selected for processing (11)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Walkthrough

Adds a new trogonstack-datadog plugin: marketplace and release tooling entries, plugin manifest and changelog, plus comprehensive Datadog dashboard design and review skill documentation with reference guides (frameworks, layouts, widgets, thresholds).

Changes

Cohort / File(s)Summary
Marketplace & Release Config
​.claude-plugin/marketplace.json, .github/release-please-config.json, .github/release-please-manifest.json
Register new plugin trogonstack-datadog in the marketplace and add release-please package/manifest entries for versioning.
Plugin Manifest & Changelog
plugins/trogonstack-datadog/.claude-plugin/plugin.json, plugins/trogonstack-datadog/CHANGELOG.md
Add plugin metadata (name, description, version, author) and an initial changelog file.
Design Skill
plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
New Datadog dashboard design skill: discovery prompts, 5-step workflow, gating logic, output templates, and a detailed quality checklist.
Design References
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md, .../layouts.md, .../widgets.md, .../thresholds.md
Comprehensive reference material covering observability frameworks, layout/grid conventions, widget selection/naming, and threshold best practices.
Review Skill
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md
New Datadog dashboard review/audit skill: interview prompts, inventorying steps, audit checks, templated findings, and final report format.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Poem

🐰 I hopped in the code with a curious cheer,
I sketched dashboards bright and thresholds clear,
Widgets in rows, templates all neat,
Variables ready for every fleet,
Observe, revise, and celebrate with a carrot treat! 🥕📊

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat: add trogonstack-datadog plugin' directly and concisely describes the main change: adding a new plugin to the repository.
Description check✅ PassedThe description comprehensively explains the plugin's purpose, key features, file structure, and test plan, all directly related to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch datadog-plugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md`:
- Around line 13-16: The Duration row uses invalid combined percentile syntax —
replace the single "p50/p90/p99:trace.http.request.duration{$service,$env}"
usage with separate percentile-prefixed queries (use
"p50:trace.http.request.duration(...)", "p90:...", "p99:...") each including
explicit template variable filters; likewise update the Golden Signals queries
referenced around "Golden Signals" (lines ~79–80) to add explicit template
variable filters in the form {service:$service,env:$env} (or matching the
template names used elsewhere) so all Datadog queries consistently use separate
percentile aggregators and explicit {service:...,env:...} filters rather than
the broad {$service,$env} shorthand.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 11: Four code fences in the document are missing a language tag which
triggers markdownlint MD040; update each bare triple-backtick fence (the four
occurrences currently written as ```) to use an explicit language tag (e.g.,
change ``` to ```text) at the four fence locations so the fences at the current
positions are ```text ... ``` instead of ``` ... ```.
In `@plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md`:
- Around line 233-245: The fenced code block in SKILL.md that begins with "✓
GOOD:" and shows the "✗ BAD:" example lacks a fence language (causing MD040);
fix by adding a language token (e.g., text) immediately after the opening ``` so
the block becomes ```text, ensuring the linter recognizes the code fence and the
existing example content remains unchanged.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: Update the "Dashboard — 'Which dashboard should I review?
Provide a dashboard ID, URL, or service name to search for.'" prompt in SKILL.md
to document how to resolve non-ID inputs into a dashboard ID: add instructions
to run "pup dashboards list" to show candidate dashboards when given a service
name (or no ID), explain extracting the dashboard ID from a provided URL path,
and instruct using the resolved ID with "pup dashboards get <dashboard-id>" and
"pup dashboards url <dashboard-id>"; apply the same guidance to the other
occurrence mentioned (lines 45-51) so consumers know to normalize
URL/service-name inputs to an ID before fetching.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3ee6830 and 964578a.

📒 Files selected for processing (10)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Comment threadplugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md Outdated

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (2)
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md (1)

30-31: ⚠️ Potential issue | 🟠 Major

Add explicit URL/service-name → dashboard ID resolution before fetch.

At Line 30 the interview accepts URL/service-name, but Lines 45-51 only document ID-based fetch commands. Add normalization steps (list candidates for service-name input, extract ID from URL path, then use resolved ID) so the workflow is executable end-to-end.

Suggested patch
 ### 1. Fetch Dashboard Definition
```bash
+# If user provides a service name (or no ID), list candidates first+pup dashboards list++# If user provides a URL, extract the dashboard ID from the URL path+# and use that ID in the commands below+
# Get the full dashboard definition
pup dashboards get <dashboard-id>
# Get the dashboard URL for reference
pup dashboards url <dashboard-id>
</details>
Also applies to: 45-51
<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md around
lines 30 - 31, The documentation accepts a dashboard URL or service name but
only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get " and "pup dashboards url
" so the workflow runs end-to-end.


</details>
</blockquote></details>
<details>
<summary>plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)</summary><blockquote>
`65-113`: _⚠️ Potential issue_ | _🟡 Minor_
**Add fence languages for diagram blocks to satisfy markdownlint MD040.**
The fenced blocks starting at Line 65, Line 127, Line 185, and Line 241 should use an explicit language (for example, `text`) to avoid MD040 warnings.
<details>
<summary>Minimal lint-fix diff</summary>
```diff
-```
+```text
...

- +text
...


-```
+```text
...

- +text
...

Also applies to: 127-171, 185-227, 241-292

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 65 - 113, The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 65-113: The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: The documentation accepts a dashboard URL or service name
but only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get <dashboard-id>" and "pup dashboards url
<dashboard-id>" so the workflow runs end-to-end.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 964578a and 2171052.

📒 Files selected for processing (5)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)

13-20: Align standard template variables with examples.

team is used in the Executive template (Line 187) but not listed in the standard variables table, which can cause ambiguity for implementers.

Suggested edit
 | `host` | `host` | Host-level investigation |
+| `team` | `team` | Team-level scoping for cross-service/executive dashboards |

Also applies to: 187-187

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 13 - 20, The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 44: The sentence fragment "Should be the first group." in the
"Customer-Facing — 5-8 metrics..." line should be rewritten as a full sentence
for clarity; replace that fragment with a complete sentence such as "It should
be the first group." or merge it into the previous sentence (e.g.,
"Customer-Facing — 5-8 metrics that answer 'are customers affected?' within 5
seconds, and it should be the first group.") so the guidance reads as a single,
grammatically complete instruction.
---
Nitpick comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 13-20: The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8a07bff and 2f5a458.

📒 Files selected for processing (3)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md

@yordis
yordisforce-pushed the datadog-plugin branch 2 times, most recently from 3cdc328 to e07b8aaCompareMarch 2, 2026 04:13

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Sign up for freeto 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.

1 participant

@yordis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat: add trogonstack-datadog plugin - #15

Merged
yordis merged 1 commit into
mainfrom
datadog-plugin
Mar 2, 2026
Merged

feat: add trogonstack-datadog plugin#15
yordis merged 1 commit into
mainfrom
datadog-plugin

Conversation

@yordis

@yordisyordis commented Mar 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds trogonstack-datadog plugin with two skills for Datadog dashboard observability
  • datadog-design-dashboard: lean how-to skill (145 lines) with domain discovery phase, interview, and workflow directives pointing to 4 reference docs
  • datadog-review-dashboard: audits existing dashboards against operational readiness principles
  • Registers the plugin in marketplace.json and release-please config

Key features

  • Domain discovery phase: AI asks about the product/business and offers to read codebases before designing
  • Customer-Facing section: 5-8 metrics at the top for instant outage identification
  • Alert threshold markers: red lines on timeseries, thresholds close to normal traffic
  • Y-axis configuration: explicit yaxis.max instead of auto-scaling
  • Widget title prefix system: I0-N: (infrastructure), P0-N: (platform), D0-N: (domain) for layer and priority at a glance
  • Zero-knowledge readability: anyone can spot problems via red indicators without service knowledge
  • Dashboard strategy guidance: per-service vs consolidated vs hybrid trade-offs

File structure

plugins/trogonstack-datadog/
├── .claude-plugin/plugin.json
├── CHANGELOG.md
└── skills/
├── datadog-design-dashboard/
│ ├── SKILL.md (145 lines, lean how-to)
│ └── references/
│ ├── frameworks.md (RED, USE, Golden Signals, SLI/SLO)
│ ├── layouts.md (template vars, group patterns, grid, anti-patterns)
│ ├── widgets.md (widget types, sizing, prefix system, naming)
│ └── thresholds.md (alert markers, proximity guide, Y-axis config)
└── datadog-review-dashboard/
└── SKILL.md (audit skill)

Test plan

  • Verify plugins/trogonstack-datadog/.claude-plugin/plugin.json is valid
  • Verify both SKILL.md files have correct frontmatter (name, description, allowed-tools)
  • Verify all Datadog query examples use valid syntax (separate percentile aggregators, template variable filters)
  • Verify reference files are consistent with SKILL.md guidance
  • Verify release-please config and manifest include the new plugin
  • Fix invalid percentile query syntax (p50/p90/p99: → separate queries)
  • Add missing template variable filters to Golden Signals queries
  • Add fence language tags to all code blocks (MD040)
  • Add URL/service-name resolution to review skill workflow

@cursor

cursorBot commented Mar 1, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Low risk: this PR only adds a new plugin’s markdown/JSON skill content and wires it into marketplace and release automation, without changing runtime code paths.

Overview
Adds a new trogonstack-datadog plugin (v0.0.1) with two new skills: datadog-design-dashboard (dashboard design workflow plus reference docs for frameworks/layouts/widgets/thresholds) and datadog-review-dashboard (audit workflow for existing dashboards using pup).

Registers the plugin in .claude-plugin/marketplace.json and updates release automation (.github/release-please-config.json and .github/release-please-manifest.json) so it is versioned and released alongside existing plugins.

Written by Cursor Bugbot for commit e6c26d7. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 1, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@yordis has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 39 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 2f5a458 and e6c26d7.

📒 Files selected for processing (11)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Walkthrough

Adds a new trogonstack-datadog plugin: marketplace and release tooling entries, plugin manifest and changelog, plus comprehensive Datadog dashboard design and review skill documentation with reference guides (frameworks, layouts, widgets, thresholds).

Changes

Cohort / File(s)Summary
Marketplace & Release Config
​.claude-plugin/marketplace.json, .github/release-please-config.json, .github/release-please-manifest.json
Register new plugin trogonstack-datadog in the marketplace and add release-please package/manifest entries for versioning.
Plugin Manifest & Changelog
plugins/trogonstack-datadog/.claude-plugin/plugin.json, plugins/trogonstack-datadog/CHANGELOG.md
Add plugin metadata (name, description, version, author) and an initial changelog file.
Design Skill
plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
New Datadog dashboard design skill: discovery prompts, 5-step workflow, gating logic, output templates, and a detailed quality checklist.
Design References
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md, .../layouts.md, .../widgets.md, .../thresholds.md
Comprehensive reference material covering observability frameworks, layout/grid conventions, widget selection/naming, and threshold best practices.
Review Skill
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md
New Datadog dashboard review/audit skill: interview prompts, inventorying steps, audit checks, templated findings, and final report format.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Poem

🐰 I hopped in the code with a curious cheer,
I sketched dashboards bright and thresholds clear,
Widgets in rows, templates all neat,
Variables ready for every fleet,
Observe, revise, and celebrate with a carrot treat! 🥕📊

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat: add trogonstack-datadog plugin' directly and concisely describes the main change: adding a new plugin to the repository.
Description check✅ PassedThe description comprehensively explains the plugin's purpose, key features, file structure, and test plan, all directly related to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch datadog-plugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md`:
- Around line 13-16: The Duration row uses invalid combined percentile syntax —
replace the single "p50/p90/p99:trace.http.request.duration{$service,$env}"
usage with separate percentile-prefixed queries (use
"p50:trace.http.request.duration(...)", "p90:...", "p99:...") each including
explicit template variable filters; likewise update the Golden Signals queries
referenced around "Golden Signals" (lines ~79–80) to add explicit template
variable filters in the form {service:$service,env:$env} (or matching the
template names used elsewhere) so all Datadog queries consistently use separate
percentile aggregators and explicit {service:...,env:...} filters rather than
the broad {$service,$env} shorthand.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 11: Four code fences in the document are missing a language tag which
triggers markdownlint MD040; update each bare triple-backtick fence (the four
occurrences currently written as ```) to use an explicit language tag (e.g.,
change ``` to ```text) at the four fence locations so the fences at the current
positions are ```text ... ``` instead of ``` ... ```.
In `@plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md`:
- Around line 233-245: The fenced code block in SKILL.md that begins with "✓
GOOD:" and shows the "✗ BAD:" example lacks a fence language (causing MD040);
fix by adding a language token (e.g., text) immediately after the opening ``` so
the block becomes ```text, ensuring the linter recognizes the code fence and the
existing example content remains unchanged.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: Update the "Dashboard — 'Which dashboard should I review?
Provide a dashboard ID, URL, or service name to search for.'" prompt in SKILL.md
to document how to resolve non-ID inputs into a dashboard ID: add instructions
to run "pup dashboards list" to show candidate dashboards when given a service
name (or no ID), explain extracting the dashboard ID from a provided URL path,
and instruct using the resolved ID with "pup dashboards get <dashboard-id>" and
"pup dashboards url <dashboard-id>"; apply the same guidance to the other
occurrence mentioned (lines 45-51) so consumers know to normalize
URL/service-name inputs to an ID before fetching.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3ee6830 and 964578a.

📒 Files selected for processing (10)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Comment threadplugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md Outdated

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (2)
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md (1)

30-31: ⚠️ Potential issue | 🟠 Major

Add explicit URL/service-name → dashboard ID resolution before fetch.

At Line 30 the interview accepts URL/service-name, but Lines 45-51 only document ID-based fetch commands. Add normalization steps (list candidates for service-name input, extract ID from URL path, then use resolved ID) so the workflow is executable end-to-end.

Suggested patch
 ### 1. Fetch Dashboard Definition
```bash
+# If user provides a service name (or no ID), list candidates first+pup dashboards list++# If user provides a URL, extract the dashboard ID from the URL path+# and use that ID in the commands below+
# Get the full dashboard definition
pup dashboards get <dashboard-id>
# Get the dashboard URL for reference
pup dashboards url <dashboard-id>
</details>
Also applies to: 45-51
<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md around
lines 30 - 31, The documentation accepts a dashboard URL or service name but
only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get " and "pup dashboards url
" so the workflow runs end-to-end.


</details>
</blockquote></details>
<details>
<summary>plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)</summary><blockquote>
`65-113`: _⚠️ Potential issue_ | _🟡 Minor_
**Add fence languages for diagram blocks to satisfy markdownlint MD040.**
The fenced blocks starting at Line 65, Line 127, Line 185, and Line 241 should use an explicit language (for example, `text`) to avoid MD040 warnings.
<details>
<summary>Minimal lint-fix diff</summary>
```diff
-```
+```text
...

- +text
...


-```
+```text
...

- +text
...

Also applies to: 127-171, 185-227, 241-292

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 65 - 113, The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 65-113: The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: The documentation accepts a dashboard URL or service name
but only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get <dashboard-id>" and "pup dashboards url
<dashboard-id>" so the workflow runs end-to-end.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 964578a and 2171052.

📒 Files selected for processing (5)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)

13-20: Align standard template variables with examples.

team is used in the Executive template (Line 187) but not listed in the standard variables table, which can cause ambiguity for implementers.

Suggested edit
 | `host` | `host` | Host-level investigation |
+| `team` | `team` | Team-level scoping for cross-service/executive dashboards |

Also applies to: 187-187

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 13 - 20, The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 44: The sentence fragment "Should be the first group." in the
"Customer-Facing — 5-8 metrics..." line should be rewritten as a full sentence
for clarity; replace that fragment with a complete sentence such as "It should
be the first group." or merge it into the previous sentence (e.g.,
"Customer-Facing — 5-8 metrics that answer 'are customers affected?' within 5
seconds, and it should be the first group.") so the guidance reads as a single,
grammatically complete instruction.
---
Nitpick comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 13-20: The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8a07bff and 2f5a458.

📒 Files selected for processing (3)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md

@yordis
yordisforce-pushed the datadog-plugin branch 2 times, most recently from 3cdc328 to e07b8aaCompareMarch 2, 2026 04:13

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Sign up for freeto 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.

1 participant

@yordis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add trogonstack-datadog plugin - #15

Merged
yordis merged 1 commit into
mainfrom
datadog-plugin
Mar 2, 2026
Merged

feat: add trogonstack-datadog plugin#15
yordis merged 1 commit into
mainfrom
datadog-plugin

Conversation

@yordis

@yordisyordis commented Mar 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds trogonstack-datadog plugin with two skills for Datadog dashboard observability
  • datadog-design-dashboard: lean how-to skill (145 lines) with domain discovery phase, interview, and workflow directives pointing to 4 reference docs
  • datadog-review-dashboard: audits existing dashboards against operational readiness principles
  • Registers the plugin in marketplace.json and release-please config

Key features

  • Domain discovery phase: AI asks about the product/business and offers to read codebases before designing
  • Customer-Facing section: 5-8 metrics at the top for instant outage identification
  • Alert threshold markers: red lines on timeseries, thresholds close to normal traffic
  • Y-axis configuration: explicit yaxis.max instead of auto-scaling
  • Widget title prefix system: I0-N: (infrastructure), P0-N: (platform), D0-N: (domain) for layer and priority at a glance
  • Zero-knowledge readability: anyone can spot problems via red indicators without service knowledge
  • Dashboard strategy guidance: per-service vs consolidated vs hybrid trade-offs

File structure

plugins/trogonstack-datadog/
├── .claude-plugin/plugin.json
├── CHANGELOG.md
└── skills/
├── datadog-design-dashboard/
│ ├── SKILL.md (145 lines, lean how-to)
│ └── references/
│ ├── frameworks.md (RED, USE, Golden Signals, SLI/SLO)
│ ├── layouts.md (template vars, group patterns, grid, anti-patterns)
│ ├── widgets.md (widget types, sizing, prefix system, naming)
│ └── thresholds.md (alert markers, proximity guide, Y-axis config)
└── datadog-review-dashboard/
└── SKILL.md (audit skill)

Test plan

  • Verify plugins/trogonstack-datadog/.claude-plugin/plugin.json is valid
  • Verify both SKILL.md files have correct frontmatter (name, description, allowed-tools)
  • Verify all Datadog query examples use valid syntax (separate percentile aggregators, template variable filters)
  • Verify reference files are consistent with SKILL.md guidance
  • Verify release-please config and manifest include the new plugin
  • Fix invalid percentile query syntax (p50/p90/p99: → separate queries)
  • Add missing template variable filters to Golden Signals queries
  • Add fence language tags to all code blocks (MD040)
  • Add URL/service-name resolution to review skill workflow

@cursor

cursorBot commented Mar 1, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Low risk: this PR only adds a new plugin’s markdown/JSON skill content and wires it into marketplace and release automation, without changing runtime code paths.

Overview
Adds a new trogonstack-datadog plugin (v0.0.1) with two new skills: datadog-design-dashboard (dashboard design workflow plus reference docs for frameworks/layouts/widgets/thresholds) and datadog-review-dashboard (audit workflow for existing dashboards using pup).

Registers the plugin in .claude-plugin/marketplace.json and updates release automation (.github/release-please-config.json and .github/release-please-manifest.json) so it is versioned and released alongside existing plugins.

Written by Cursor Bugbot for commit e6c26d7. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 1, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@yordis has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 39 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 2f5a458 and e6c26d7.

📒 Files selected for processing (11)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Walkthrough

Adds a new trogonstack-datadog plugin: marketplace and release tooling entries, plugin manifest and changelog, plus comprehensive Datadog dashboard design and review skill documentation with reference guides (frameworks, layouts, widgets, thresholds).

Changes

Cohort / File(s)Summary
Marketplace & Release Config
​.claude-plugin/marketplace.json, .github/release-please-config.json, .github/release-please-manifest.json
Register new plugin trogonstack-datadog in the marketplace and add release-please package/manifest entries for versioning.
Plugin Manifest & Changelog
plugins/trogonstack-datadog/.claude-plugin/plugin.json, plugins/trogonstack-datadog/CHANGELOG.md
Add plugin metadata (name, description, version, author) and an initial changelog file.
Design Skill
plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
New Datadog dashboard design skill: discovery prompts, 5-step workflow, gating logic, output templates, and a detailed quality checklist.
Design References
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md, .../layouts.md, .../widgets.md, .../thresholds.md
Comprehensive reference material covering observability frameworks, layout/grid conventions, widget selection/naming, and threshold best practices.
Review Skill
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md
New Datadog dashboard review/audit skill: interview prompts, inventorying steps, audit checks, templated findings, and final report format.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Poem

🐰 I hopped in the code with a curious cheer,
I sketched dashboards bright and thresholds clear,
Widgets in rows, templates all neat,
Variables ready for every fleet,
Observe, revise, and celebrate with a carrot treat! 🥕📊

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat: add trogonstack-datadog plugin' directly and concisely describes the main change: adding a new plugin to the repository.
Description check✅ PassedThe description comprehensively explains the plugin's purpose, key features, file structure, and test plan, all directly related to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch datadog-plugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md`:
- Around line 13-16: The Duration row uses invalid combined percentile syntax —
replace the single "p50/p90/p99:trace.http.request.duration{$service,$env}"
usage with separate percentile-prefixed queries (use
"p50:trace.http.request.duration(...)", "p90:...", "p99:...") each including
explicit template variable filters; likewise update the Golden Signals queries
referenced around "Golden Signals" (lines ~79–80) to add explicit template
variable filters in the form {service:$service,env:$env} (or matching the
template names used elsewhere) so all Datadog queries consistently use separate
percentile aggregators and explicit {service:...,env:...} filters rather than
the broad {$service,$env} shorthand.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 11: Four code fences in the document are missing a language tag which
triggers markdownlint MD040; update each bare triple-backtick fence (the four
occurrences currently written as ```) to use an explicit language tag (e.g.,
change ``` to ```text) at the four fence locations so the fences at the current
positions are ```text ... ``` instead of ``` ... ```.
In `@plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md`:
- Around line 233-245: The fenced code block in SKILL.md that begins with "✓
GOOD:" and shows the "✗ BAD:" example lacks a fence language (causing MD040);
fix by adding a language token (e.g., text) immediately after the opening ``` so
the block becomes ```text, ensuring the linter recognizes the code fence and the
existing example content remains unchanged.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: Update the "Dashboard — 'Which dashboard should I review?
Provide a dashboard ID, URL, or service name to search for.'" prompt in SKILL.md
to document how to resolve non-ID inputs into a dashboard ID: add instructions
to run "pup dashboards list" to show candidate dashboards when given a service
name (or no ID), explain extracting the dashboard ID from a provided URL path,
and instruct using the resolved ID with "pup dashboards get <dashboard-id>" and
"pup dashboards url <dashboard-id>"; apply the same guidance to the other
occurrence mentioned (lines 45-51) so consumers know to normalize
URL/service-name inputs to an ID before fetching.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3ee6830 and 964578a.

📒 Files selected for processing (10)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Comment threadplugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md Outdated

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (2)
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md (1)

30-31: ⚠️ Potential issue | 🟠 Major

Add explicit URL/service-name → dashboard ID resolution before fetch.

At Line 30 the interview accepts URL/service-name, but Lines 45-51 only document ID-based fetch commands. Add normalization steps (list candidates for service-name input, extract ID from URL path, then use resolved ID) so the workflow is executable end-to-end.

Suggested patch
 ### 1. Fetch Dashboard Definition
```bash
+# If user provides a service name (or no ID), list candidates first+pup dashboards list++# If user provides a URL, extract the dashboard ID from the URL path+# and use that ID in the commands below+
# Get the full dashboard definition
pup dashboards get <dashboard-id>
# Get the dashboard URL for reference
pup dashboards url <dashboard-id>
</details>
Also applies to: 45-51
<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md around
lines 30 - 31, The documentation accepts a dashboard URL or service name but
only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get " and "pup dashboards url
" so the workflow runs end-to-end.


</details>
</blockquote></details>
<details>
<summary>plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)</summary><blockquote>
`65-113`: _⚠️ Potential issue_ | _🟡 Minor_
**Add fence languages for diagram blocks to satisfy markdownlint MD040.**
The fenced blocks starting at Line 65, Line 127, Line 185, and Line 241 should use an explicit language (for example, `text`) to avoid MD040 warnings.
<details>
<summary>Minimal lint-fix diff</summary>
```diff
-```
+```text
...

- +text
...


-```
+```text
...

- +text
...

Also applies to: 127-171, 185-227, 241-292

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 65 - 113, The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 65-113: The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: The documentation accepts a dashboard URL or service name
but only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get <dashboard-id>" and "pup dashboards url
<dashboard-id>" so the workflow runs end-to-end.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 964578a and 2171052.

📒 Files selected for processing (5)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)

13-20: Align standard template variables with examples.

team is used in the Executive template (Line 187) but not listed in the standard variables table, which can cause ambiguity for implementers.

Suggested edit
 | `host` | `host` | Host-level investigation |
+| `team` | `team` | Team-level scoping for cross-service/executive dashboards |

Also applies to: 187-187

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 13 - 20, The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 44: The sentence fragment "Should be the first group." in the
"Customer-Facing — 5-8 metrics..." line should be rewritten as a full sentence
for clarity; replace that fragment with a complete sentence such as "It should
be the first group." or merge it into the previous sentence (e.g.,
"Customer-Facing — 5-8 metrics that answer 'are customers affected?' within 5
seconds, and it should be the first group.") so the guidance reads as a single,
grammatically complete instruction.
---
Nitpick comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 13-20: The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8a07bff and 2f5a458.

📒 Files selected for processing (3)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md

@yordis
yordisforce-pushed the datadog-plugin branch 2 times, most recently from 3cdc328 to e07b8aaCompareMarch 2, 2026 04:13

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Sign up for freeto 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.

1 participant

@yordis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add trogonstack-datadog plugin - #15

Merged
yordis merged 1 commit into
mainfrom
datadog-plugin
Mar 2, 2026
Merged

feat: add trogonstack-datadog plugin#15
yordis merged 1 commit into
mainfrom
datadog-plugin

Conversation

@yordis

@yordisyordis commented Mar 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds trogonstack-datadog plugin with two skills for Datadog dashboard observability
  • datadog-design-dashboard: lean how-to skill (145 lines) with domain discovery phase, interview, and workflow directives pointing to 4 reference docs
  • datadog-review-dashboard: audits existing dashboards against operational readiness principles
  • Registers the plugin in marketplace.json and release-please config

Key features

  • Domain discovery phase: AI asks about the product/business and offers to read codebases before designing
  • Customer-Facing section: 5-8 metrics at the top for instant outage identification
  • Alert threshold markers: red lines on timeseries, thresholds close to normal traffic
  • Y-axis configuration: explicit yaxis.max instead of auto-scaling
  • Widget title prefix system: I0-N: (infrastructure), P0-N: (platform), D0-N: (domain) for layer and priority at a glance
  • Zero-knowledge readability: anyone can spot problems via red indicators without service knowledge
  • Dashboard strategy guidance: per-service vs consolidated vs hybrid trade-offs

File structure

plugins/trogonstack-datadog/
├── .claude-plugin/plugin.json
├── CHANGELOG.md
└── skills/
├── datadog-design-dashboard/
│ ├── SKILL.md (145 lines, lean how-to)
│ └── references/
│ ├── frameworks.md (RED, USE, Golden Signals, SLI/SLO)
│ ├── layouts.md (template vars, group patterns, grid, anti-patterns)
│ ├── widgets.md (widget types, sizing, prefix system, naming)
│ └── thresholds.md (alert markers, proximity guide, Y-axis config)
└── datadog-review-dashboard/
└── SKILL.md (audit skill)

Test plan

  • Verify plugins/trogonstack-datadog/.claude-plugin/plugin.json is valid
  • Verify both SKILL.md files have correct frontmatter (name, description, allowed-tools)
  • Verify all Datadog query examples use valid syntax (separate percentile aggregators, template variable filters)
  • Verify reference files are consistent with SKILL.md guidance
  • Verify release-please config and manifest include the new plugin
  • Fix invalid percentile query syntax (p50/p90/p99: → separate queries)
  • Add missing template variable filters to Golden Signals queries
  • Add fence language tags to all code blocks (MD040)
  • Add URL/service-name resolution to review skill workflow

@cursor

cursorBot commented Mar 1, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Low risk: this PR only adds a new plugin’s markdown/JSON skill content and wires it into marketplace and release automation, without changing runtime code paths.

Overview
Adds a new trogonstack-datadog plugin (v0.0.1) with two new skills: datadog-design-dashboard (dashboard design workflow plus reference docs for frameworks/layouts/widgets/thresholds) and datadog-review-dashboard (audit workflow for existing dashboards using pup).

Registers the plugin in .claude-plugin/marketplace.json and updates release automation (.github/release-please-config.json and .github/release-please-manifest.json) so it is versioned and released alongside existing plugins.

Written by Cursor Bugbot for commit e6c26d7. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 1, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@yordis has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 39 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 2f5a458 and e6c26d7.

📒 Files selected for processing (11)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Walkthrough

Adds a new trogonstack-datadog plugin: marketplace and release tooling entries, plugin manifest and changelog, plus comprehensive Datadog dashboard design and review skill documentation with reference guides (frameworks, layouts, widgets, thresholds).

Changes

Cohort / File(s)Summary
Marketplace & Release Config
​.claude-plugin/marketplace.json, .github/release-please-config.json, .github/release-please-manifest.json
Register new plugin trogonstack-datadog in the marketplace and add release-please package/manifest entries for versioning.
Plugin Manifest & Changelog
plugins/trogonstack-datadog/.claude-plugin/plugin.json, plugins/trogonstack-datadog/CHANGELOG.md
Add plugin metadata (name, description, version, author) and an initial changelog file.
Design Skill
plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
New Datadog dashboard design skill: discovery prompts, 5-step workflow, gating logic, output templates, and a detailed quality checklist.
Design References
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md, .../layouts.md, .../widgets.md, .../thresholds.md
Comprehensive reference material covering observability frameworks, layout/grid conventions, widget selection/naming, and threshold best practices.
Review Skill
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md
New Datadog dashboard review/audit skill: interview prompts, inventorying steps, audit checks, templated findings, and final report format.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Poem

🐰 I hopped in the code with a curious cheer,
I sketched dashboards bright and thresholds clear,
Widgets in rows, templates all neat,
Variables ready for every fleet,
Observe, revise, and celebrate with a carrot treat! 🥕📊

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat: add trogonstack-datadog plugin' directly and concisely describes the main change: adding a new plugin to the repository.
Description check✅ PassedThe description comprehensively explains the plugin's purpose, key features, file structure, and test plan, all directly related to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch datadog-plugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md`:
- Around line 13-16: The Duration row uses invalid combined percentile syntax —
replace the single "p50/p90/p99:trace.http.request.duration{$service,$env}"
usage with separate percentile-prefixed queries (use
"p50:trace.http.request.duration(...)", "p90:...", "p99:...") each including
explicit template variable filters; likewise update the Golden Signals queries
referenced around "Golden Signals" (lines ~79–80) to add explicit template
variable filters in the form {service:$service,env:$env} (or matching the
template names used elsewhere) so all Datadog queries consistently use separate
percentile aggregators and explicit {service:...,env:...} filters rather than
the broad {$service,$env} shorthand.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 11: Four code fences in the document are missing a language tag which
triggers markdownlint MD040; update each bare triple-backtick fence (the four
occurrences currently written as ```) to use an explicit language tag (e.g.,
change ``` to ```text) at the four fence locations so the fences at the current
positions are ```text ... ``` instead of ``` ... ```.
In `@plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md`:
- Around line 233-245: The fenced code block in SKILL.md that begins with "✓
GOOD:" and shows the "✗ BAD:" example lacks a fence language (causing MD040);
fix by adding a language token (e.g., text) immediately after the opening ``` so
the block becomes ```text, ensuring the linter recognizes the code fence and the
existing example content remains unchanged.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: Update the "Dashboard — 'Which dashboard should I review?
Provide a dashboard ID, URL, or service name to search for.'" prompt in SKILL.md
to document how to resolve non-ID inputs into a dashboard ID: add instructions
to run "pup dashboards list" to show candidate dashboards when given a service
name (or no ID), explain extracting the dashboard ID from a provided URL path,
and instruct using the resolved ID with "pup dashboards get <dashboard-id>" and
"pup dashboards url <dashboard-id>"; apply the same guidance to the other
occurrence mentioned (lines 45-51) so consumers know to normalize
URL/service-name inputs to an ID before fetching.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3ee6830 and 964578a.

📒 Files selected for processing (10)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Comment threadplugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md Outdated

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (2)
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md (1)

30-31: ⚠️ Potential issue | 🟠 Major

Add explicit URL/service-name → dashboard ID resolution before fetch.

At Line 30 the interview accepts URL/service-name, but Lines 45-51 only document ID-based fetch commands. Add normalization steps (list candidates for service-name input, extract ID from URL path, then use resolved ID) so the workflow is executable end-to-end.

Suggested patch
 ### 1. Fetch Dashboard Definition
```bash
+# If user provides a service name (or no ID), list candidates first+pup dashboards list++# If user provides a URL, extract the dashboard ID from the URL path+# and use that ID in the commands below+
# Get the full dashboard definition
pup dashboards get <dashboard-id>
# Get the dashboard URL for reference
pup dashboards url <dashboard-id>
</details>
Also applies to: 45-51
<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md around
lines 30 - 31, The documentation accepts a dashboard URL or service name but
only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get " and "pup dashboards url
" so the workflow runs end-to-end.


</details>
</blockquote></details>
<details>
<summary>plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)</summary><blockquote>
`65-113`: _⚠️ Potential issue_ | _🟡 Minor_
**Add fence languages for diagram blocks to satisfy markdownlint MD040.**
The fenced blocks starting at Line 65, Line 127, Line 185, and Line 241 should use an explicit language (for example, `text`) to avoid MD040 warnings.
<details>
<summary>Minimal lint-fix diff</summary>
```diff
-```
+```text
...

- +text
...


-```
+```text
...

- +text
...

Also applies to: 127-171, 185-227, 241-292

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 65 - 113, The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 65-113: The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: The documentation accepts a dashboard URL or service name
but only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get <dashboard-id>" and "pup dashboards url
<dashboard-id>" so the workflow runs end-to-end.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 964578a and 2171052.

📒 Files selected for processing (5)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)

13-20: Align standard template variables with examples.

team is used in the Executive template (Line 187) but not listed in the standard variables table, which can cause ambiguity for implementers.

Suggested edit
 | `host` | `host` | Host-level investigation |
+| `team` | `team` | Team-level scoping for cross-service/executive dashboards |

Also applies to: 187-187

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 13 - 20, The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 44: The sentence fragment "Should be the first group." in the
"Customer-Facing — 5-8 metrics..." line should be rewritten as a full sentence
for clarity; replace that fragment with a complete sentence such as "It should
be the first group." or merge it into the previous sentence (e.g.,
"Customer-Facing — 5-8 metrics that answer 'are customers affected?' within 5
seconds, and it should be the first group.") so the guidance reads as a single,
grammatically complete instruction.
---
Nitpick comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 13-20: The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8a07bff and 2f5a458.

📒 Files selected for processing (3)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md

@yordis
yordisforce-pushed the datadog-plugin branch 2 times, most recently from 3cdc328 to e07b8aaCompareMarch 2, 2026 04:13

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Sign up for freeto 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.

1 participant

@yordis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat: add trogonstack-datadog plugin - #15

Merged
yordis merged 1 commit into
mainfrom
datadog-plugin
Mar 2, 2026
Merged

feat: add trogonstack-datadog plugin#15
yordis merged 1 commit into
mainfrom
datadog-plugin

Conversation

@yordis

@yordisyordis commented Mar 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds trogonstack-datadog plugin with two skills for Datadog dashboard observability
  • datadog-design-dashboard: lean how-to skill (145 lines) with domain discovery phase, interview, and workflow directives pointing to 4 reference docs
  • datadog-review-dashboard: audits existing dashboards against operational readiness principles
  • Registers the plugin in marketplace.json and release-please config

Key features

  • Domain discovery phase: AI asks about the product/business and offers to read codebases before designing
  • Customer-Facing section: 5-8 metrics at the top for instant outage identification
  • Alert threshold markers: red lines on timeseries, thresholds close to normal traffic
  • Y-axis configuration: explicit yaxis.max instead of auto-scaling
  • Widget title prefix system: I0-N: (infrastructure), P0-N: (platform), D0-N: (domain) for layer and priority at a glance
  • Zero-knowledge readability: anyone can spot problems via red indicators without service knowledge
  • Dashboard strategy guidance: per-service vs consolidated vs hybrid trade-offs

File structure

plugins/trogonstack-datadog/
├── .claude-plugin/plugin.json
├── CHANGELOG.md
└── skills/
├── datadog-design-dashboard/
│ ├── SKILL.md (145 lines, lean how-to)
│ └── references/
│ ├── frameworks.md (RED, USE, Golden Signals, SLI/SLO)
│ ├── layouts.md (template vars, group patterns, grid, anti-patterns)
│ ├── widgets.md (widget types, sizing, prefix system, naming)
│ └── thresholds.md (alert markers, proximity guide, Y-axis config)
└── datadog-review-dashboard/
└── SKILL.md (audit skill)

Test plan

  • Verify plugins/trogonstack-datadog/.claude-plugin/plugin.json is valid
  • Verify both SKILL.md files have correct frontmatter (name, description, allowed-tools)
  • Verify all Datadog query examples use valid syntax (separate percentile aggregators, template variable filters)
  • Verify reference files are consistent with SKILL.md guidance
  • Verify release-please config and manifest include the new plugin
  • Fix invalid percentile query syntax (p50/p90/p99: → separate queries)
  • Add missing template variable filters to Golden Signals queries
  • Add fence language tags to all code blocks (MD040)
  • Add URL/service-name resolution to review skill workflow

@cursor

cursorBot commented Mar 1, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Low risk: this PR only adds a new plugin’s markdown/JSON skill content and wires it into marketplace and release automation, without changing runtime code paths.

Overview
Adds a new trogonstack-datadog plugin (v0.0.1) with two new skills: datadog-design-dashboard (dashboard design workflow plus reference docs for frameworks/layouts/widgets/thresholds) and datadog-review-dashboard (audit workflow for existing dashboards using pup).

Registers the plugin in .claude-plugin/marketplace.json and updates release automation (.github/release-please-config.json and .github/release-please-manifest.json) so it is versioned and released alongside existing plugins.

Written by Cursor Bugbot for commit e6c26d7. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 1, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@yordis has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 39 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 2f5a458 and e6c26d7.

📒 Files selected for processing (11)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Walkthrough

Adds a new trogonstack-datadog plugin: marketplace and release tooling entries, plugin manifest and changelog, plus comprehensive Datadog dashboard design and review skill documentation with reference guides (frameworks, layouts, widgets, thresholds).

Changes

Cohort / File(s)Summary
Marketplace & Release Config
​.claude-plugin/marketplace.json, .github/release-please-config.json, .github/release-please-manifest.json
Register new plugin trogonstack-datadog in the marketplace and add release-please package/manifest entries for versioning.
Plugin Manifest & Changelog
plugins/trogonstack-datadog/.claude-plugin/plugin.json, plugins/trogonstack-datadog/CHANGELOG.md
Add plugin metadata (name, description, version, author) and an initial changelog file.
Design Skill
plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
New Datadog dashboard design skill: discovery prompts, 5-step workflow, gating logic, output templates, and a detailed quality checklist.
Design References
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md, .../layouts.md, .../widgets.md, .../thresholds.md
Comprehensive reference material covering observability frameworks, layout/grid conventions, widget selection/naming, and threshold best practices.
Review Skill
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md
New Datadog dashboard review/audit skill: interview prompts, inventorying steps, audit checks, templated findings, and final report format.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Poem

🐰 I hopped in the code with a curious cheer,
I sketched dashboards bright and thresholds clear,
Widgets in rows, templates all neat,
Variables ready for every fleet,
Observe, revise, and celebrate with a carrot treat! 🥕📊

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat: add trogonstack-datadog plugin' directly and concisely describes the main change: adding a new plugin to the repository.
Description check✅ PassedThe description comprehensively explains the plugin's purpose, key features, file structure, and test plan, all directly related to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch datadog-plugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md`:
- Around line 13-16: The Duration row uses invalid combined percentile syntax —
replace the single "p50/p90/p99:trace.http.request.duration{$service,$env}"
usage with separate percentile-prefixed queries (use
"p50:trace.http.request.duration(...)", "p90:...", "p99:...") each including
explicit template variable filters; likewise update the Golden Signals queries
referenced around "Golden Signals" (lines ~79–80) to add explicit template
variable filters in the form {service:$service,env:$env} (or matching the
template names used elsewhere) so all Datadog queries consistently use separate
percentile aggregators and explicit {service:...,env:...} filters rather than
the broad {$service,$env} shorthand.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 11: Four code fences in the document are missing a language tag which
triggers markdownlint MD040; update each bare triple-backtick fence (the four
occurrences currently written as ```) to use an explicit language tag (e.g.,
change ``` to ```text) at the four fence locations so the fences at the current
positions are ```text ... ``` instead of ``` ... ```.
In `@plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md`:
- Around line 233-245: The fenced code block in SKILL.md that begins with "✓
GOOD:" and shows the "✗ BAD:" example lacks a fence language (causing MD040);
fix by adding a language token (e.g., text) immediately after the opening ``` so
the block becomes ```text, ensuring the linter recognizes the code fence and the
existing example content remains unchanged.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: Update the "Dashboard — 'Which dashboard should I review?
Provide a dashboard ID, URL, or service name to search for.'" prompt in SKILL.md
to document how to resolve non-ID inputs into a dashboard ID: add instructions
to run "pup dashboards list" to show candidate dashboards when given a service
name (or no ID), explain extracting the dashboard ID from a provided URL path,
and instruct using the resolved ID with "pup dashboards get <dashboard-id>" and
"pup dashboards url <dashboard-id>"; apply the same guidance to the other
occurrence mentioned (lines 45-51) so consumers know to normalize
URL/service-name inputs to an ID before fetching.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3ee6830 and 964578a.

📒 Files selected for processing (10)
  • .claude-plugin/marketplace.json
  • .github/release-please-config.json
  • .github/release-please-manifest.json
  • plugins/trogonstack-datadog/.claude-plugin/plugin.json
  • plugins/trogonstack-datadog/CHANGELOG.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

Comment threadplugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md Outdated

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (2)
plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md (1)

30-31: ⚠️ Potential issue | 🟠 Major

Add explicit URL/service-name → dashboard ID resolution before fetch.

At Line 30 the interview accepts URL/service-name, but Lines 45-51 only document ID-based fetch commands. Add normalization steps (list candidates for service-name input, extract ID from URL path, then use resolved ID) so the workflow is executable end-to-end.

Suggested patch
 ### 1. Fetch Dashboard Definition
```bash
+# If user provides a service name (or no ID), list candidates first+pup dashboards list++# If user provides a URL, extract the dashboard ID from the URL path+# and use that ID in the commands below+
# Get the full dashboard definition
pup dashboards get <dashboard-id>
# Get the dashboard URL for reference
pup dashboards url <dashboard-id>
</details>
Also applies to: 45-51
<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md around
lines 30 - 31, The documentation accepts a dashboard URL or service name but
only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get " and "pup dashboards url
" so the workflow runs end-to-end.


</details>
</blockquote></details>
<details>
<summary>plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)</summary><blockquote>
`65-113`: _⚠️ Potential issue_ | _🟡 Minor_
**Add fence languages for diagram blocks to satisfy markdownlint MD040.**
The fenced blocks starting at Line 65, Line 127, Line 185, and Line 241 should use an explicit language (for example, `text`) to avoid MD040 warnings.
<details>
<summary>Minimal lint-fix diff</summary>
```diff
-```
+```text
...

- +text
...


-```
+```text
...

- +text
...

Also applies to: 127-171, 185-227, 241-292

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 65 - 113, The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 65-113: The markdown contains multiple fenced diagram blocks
without a language tag (the ASCII dashboard diagrams) which triggers
markdownlint MD040; update each triple-backtick fence for those diagram blocks
(the large ASCII diagrams starting near the Template Variables / Group sections)
to include an explicit language identifier such as text (change ``` to ```text)
for all four diagram blocks so MD040 warnings are resolved.
In `@plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md`:
- Around line 30-31: The documentation accepts a dashboard URL or service name
but only shows ID-based commands; add an explicit normalization step before the
fetch flow: if input looks like a service name or no ID, call the candidate
listing command (refer to the example utility "pup dashboards list") to resolve
possible dashboards; if input is a URL, parse/extract the dashboard ID from the
URL path and set it as the resolved ID; then use the resolved ID for the
existing commands "pup dashboards get <dashboard-id>" and "pup dashboards url
<dashboard-id>" so the workflow runs end-to-end.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 964578a and 2171052.

📒 Files selected for processing (5)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/SKILL.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/thresholds.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md
  • plugins/trogonstack-datadog/skills/datadog-review-dashboard/SKILL.md

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md (1)

13-20: Align standard template variables with examples.

team is used in the Executive template (Line 187) but not listed in the standard variables table, which can cause ambiguity for implementers.

Suggested edit
 | `host` | `host` | Host-level investigation |
+| `team` | `team` | Team-level scoping for cross-service/executive dashboards |

Also applies to: 187-187

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`
around lines 13 - 20, The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Line 44: The sentence fragment "Should be the first group." in the
"Customer-Facing — 5-8 metrics..." line should be rewritten as a full sentence
for clarity; replace that fragment with a complete sentence such as "It should
be the first group." or merge it into the previous sentence (e.g.,
"Customer-Facing — 5-8 metrics that answer 'are customers affected?' within 5
seconds, and it should be the first group.") so the guidance reads as a single,
grammatically complete instruction.
---
Nitpick comments:
In
`@plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md`:
- Around line 13-20: The standard variables table in layouts.md is missing the
`team` entry used by the Executive template, causing inconsistency; add a new
row to the variables table listing `team` as the Variable, `team` as the Tag,
and a concise Use Case like "Team scoping / organizational filtering" so the
Executive template's `team` tag matches the documented standard and implementers
have an unambiguous reference.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8a07bff and 2f5a458.

📒 Files selected for processing (3)
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/frameworks.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/layouts.md
  • plugins/trogonstack-datadog/skills/datadog-design-dashboard/references/widgets.md

@yordis
yordisforce-pushed the datadog-plugin branch 2 times, most recently from 3cdc328 to e07b8aaCompareMarch 2, 2026 04:13

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Sign up for freeto 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.

1 participant

@yordis