Install
$ agentstack add skill-taosdata-agent-skills-idmp-panel ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
panel
Read [../idmp-shared/SKILL.md](../idmp-shared/SKILL.md) first.
Before any write: Follow the [🛑 Destructive op confirmation protocol](../idmp-shared/SKILL.md#-destructive-op-confirmation-mandatory). Read-only commands stay read-only here, but delete / write / patch flows still require the shared yes-gate.
Recommended shortcuts
| Shortcut | Purpose | |----------|---------| | +list | List panels under one element. | | +search | Search panels globally. | | +templates | List panel templates available to one element. |
Recommended references
- [
panel read flows](references/panel-read-flows.md) - [
../idmp-workflow-panel-build/SKILL.md](../idmp-workflow-panel-build/SKILL.md)
Missing context to resolve first
| Context | Why it must be resolved before create or verify | | --- | --- | | Owner element | You need the final elementId for list, get, naming, create, and every verification call. | | Candidate panel name | panel.panels.new-name requires both elementId and a proposed name. | | Verification mode | Decide whether this panel should generate SQL at all, and whether you need plain query and sqls checks or advanced-query verification. | | Dashboard placement target | Decide whether the panel remains standalone or must be inserted into a dashboard before the workflow counts as complete. | | Refresh owner | Decide whether refresh belongs on the panel shell or the dashboard shell so refreshInterval lands in the right params block. |
Constrained live behaviors
- Prefer
POST /api/v1/ai/panels/createfor natural-language panel requests, then persist the returned draft throughpanel.panels.create. Use the structured panel DTO workflow only as fallback when the draft is unsuitable or persistence fails. panel.panels.new-namerequires a candidatename; do not call it with only the owner scope.- Text and manual panels can legitimately return
generated SQL is empty, soqueryis inapplicable for those panel types. panel verify createvalidates only the time-range payload withfromandto; use plain--data, not--params, and do not sendelementId.panel.panels.queryandpanel.panels.createuse the panel DTO shape.panel.panels.sqlsuses the same DTO together with owner--params.panel verify create-postis only for advanced-query payloads. Keepuuid,advancedQueryType,querySqls, and the advanced query fields inside that single DTO.- If a child-scope no-code DTO collapses to self scope on reread or returns empty-body
400, capture the working SQL and switch to the advanced fallback instead of treating the first attempt as a total panel failure. - If the backend returns HTTP 400 with an empty body on panel query, verify, or create, assume a DTO-shape mismatch first and recheck the typed schema output before retrying.
refreshIntervalbelongs inparamson the object that owns refresh behavior, not in an arbitrary top-level field.- Creating a panel does not place it into a dashboard automatically; a separate dashboard update is still required.
Evidence of completion
- A panel create is only complete when
panel panels getrereads the persisted object with the intended owner, name, and params. - A query-backed panel is only complete when the same DTO succeeds through
panel.panels.queryorpanel.panels.sqls. - An advanced fallback is only complete when reread shows
enableAdvanced=trueand the advanced DTO still validates. For child-scope workflows, this advanced fallback still counts as first-attempt success when the no-code payload collapsed but the verified SQL stayed correct. - Dashboard placement is separate proof; do not treat a panel create as dashboard membership.
Product behavior to preserve
- Read
listfirst, thenget, before changing a panel. - For natural-language creation asks, prefer the AI draft endpoint first and keep structured DTO creation as the fallback.
- Use
new-namewith a candidatenamebefore creating a panel. - Run
queryandsqlsonly for panels that should generate SQL, and useverifyonly for the single advanced-query DTO rather than the full panel DTO. - When
advancedQueriesis present, keepcheckedboolean anddimensionsas an array of strings. refreshIntervalbelongs inparamson the object that owns refresh behavior, not in an arbitrary top-level field.- Creating a panel does not place it into a dashboard automatically.
Key commands
idmp-cli schema panel.panels.list
idmp-cli panel panels list --params '{"elementId":123}'
idmp-cli schema panel.panels.get
idmp-cli panel panels get --params '{"elementId":123,"panelId":456}'
idmp-cli schema panel.verify.create
idmp-cli panel verify create --ack-risk --data '{"from":"now-12h","to":"now"}'
idmp-cli schema panel.verify.create-post
idmp-cli panel panels new-name --params '{"elementId":123,"name":"demo-panel"}'
idmp-cli panel panels create --dry-run --ack-risk --params '{"elementId":123}' --data '{...}'
# In the current generated schema, `panel.panels.query` is readonly and `--ack-risk` is optional,
# but `panel.panels.sqls`, `panel.verify.create`, and `panel.verify.create-post` are still generated
# as write-risk commands and must keep `--ack-risk`.
idmp-cli panel panels query --ack-risk --params '{"elementId":123}' --data '{...}'
idmp-cli panel panels sqls --ack-risk --params '{"elementId":123}' --data '{...}'
idmp-cli panel verify create-post --ack-risk --params '{"elementId":123}' --data '{...}'
idmp-cli panel panel-templates list --params '{"elementId":123}'
Exception and failure handling
- If a panel is created successfully but no dashboard is updated, the panel remains standalone by design.
- If
refreshIntervalis set outsideparams, treat the payload as incomplete and fix it before retrying. - If a text or manual panel returns empty SQL, skip
queryand treat SQL-based validation as inapplicable for that panel type. - If
panel verify createfails, send only the time-range payload withfromandto; it is not the advanced-query validator. - If
panel verify create-postfails with missinguuidoradvancedQueryType, you passed a plain panel DTO instead of an advanced-query DTO. - If panel query, verify, or create returns HTTP 400 with an empty body, compare the typed
schemaoutput against your payload before changing the SQL itself. - If child-scope no-code rereads collapse to self scope but
panel.panels.sqlsalready proved the intended grouped SQL, persist the advanced fallback instead of restarting from an unrelated self-scope DTO. - If the panel was copied from a template, create a new panel instead of assuming the copied identifier is updatable.
- If a time range returns empty data, adjust the query window before changing metrics or dimensions.
Validation scenarios
- Read the panel list with
idmp-cli schema panel.panels.listandidmp-cli panel panels list --params '{"elementId":123}'. - Reserve a create-safe name with
idmp-cli panel panels new-name --params '{"elementId":123,"name":"demo-panel"}'. - Preview panel creation with
idmp-cli panel panels create --dry-run --ack-risk --params '{"elementId":123}' --data '{...}'. - Run SQL-based checks only when the panel should generate SQL: use
idmp-cli panel panels query --ack-risk --params '{"elementId":123}' --data '{...}'andidmp-cli panel panels sqls --ack-risk --params '{"elementId":123}' --data '{...}'for query-backed panels, useidmp-cli panel verify create --ack-risk --data '{"from":"now-12h","to":"now"}'only for time-range validation, and useidmp-cli panel verify create-post --ack-risk --params '{"elementId":123}' --data '{...}'only for advanced-query DTOs that include fields such asuuidandadvancedQueryType. If the child-scope no-code branch collapses, switch to the advanced fallback and keep that as the success path. - Confirm template reuse or separate dashboard work with
idmp-cli panel panel-templates list --params '{"elementId":123}'andidmp-cli dashboard dashboards get --params '{"elementId":123,"dashboardId":789}'.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: taosdata
- Source: taosdata/agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.