orbiads-reporting — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited orbiads-reporting (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- ⚠️ GENERATED ARTIFACT — generation source lives in the private OrbiAds monorepo. Do not hand-edit; open an issue or PR against documentation/examples instead. -->
_Run delivery and inventory reports, check prospective or standalone availability forecasts, and execute PQL queries._
Mode: mixed (read + write) · Tools included: 4 · Total actions: 39 · CLI coverage: partial (35/39 actions)
Parent MCP tools: mcm, pql, preview, reporting.
OrbiAds exposes the same backend through two surfaces; MCP is the default. A subset of actions also has a CLI command (cli_coverage: partial — 35/39 actions here). Per-action availability (MCP command vs orbiads <command> vs MCP-only) is listed in references/actions.md.
Rule: if an action is marked MCP-only in that table, fall back to the MCP surface (or the web app) for it — never improvise a raw REST call or shell around the CLI.
pip install orbiads-cli
orbiads auth status --json # verify you are authenticated first
orbiads network info --json # confirm the active tenant / network--json so the agent parses structured output, never scraped text.dry_run=true (or no confirmation_token) to return a preview + token + cost, then again with the same payload + confirmation_token. Get explicit user consent between the two calls.IDEMPOTENCY_KEY_MISMATCH; refresh the preview.tenantId / networkCode / advertiser / order id — resolve them from the session or a read first.error object instead.orbiads ... create/deploy) needs the same preview + explicit user confirmation as an MCP write.dateRangeType (aliases accepted: date_range_type, dateRange, date_range) with one of: LAST_MONTH (default), LAST_WEEK, LAST_7_DAYS, LAST_30_DAYS, YESTERDAY, TODAY, CURRENT_MONTH, CURRENT_QUARTER, LAST_3_MONTHS, LAST_YEAR.dateRangeType: "FIXED" + startDate + endDate (YYYY-MM-DD).fetch_inventory_report has no relative-range param — pass startDate/endDate only (omit both for LAST_MONTH).get_report_date_ranges, get_report_dimensions, get_report_metrics are free (0 credit) — call them for the exact catalogue before composing a report.GAM rejects some dimension/metric combinations at submission with REPORT_ERROR_CONSTRAINTS_INCOMPATIBILITY ("The report is invalid as specified and needs to be modified") without naming the offending pair. Live-observed examples: VIDEO_AD_BREAK_TYPE_NAME combined with OPERATING_SYSTEM_CATEGORY_NAME or DEVICE_CATEGORY_NAME; INVENTORY_FORMAT_NAME with fill-rate metrics.
When a report is rejected:
expandedCompatibility: true to relax GAM's field-pairing checks.Full action catalogue (costs, write flags, confirmation tokens, CLI equivalents): read references/actions.md.
This sub-skill is user-invocable: false. The orbiads orchestrator (../orbiads/SKILL.md) routes intents — and the MCP-vs-CLI surface choice — to these tools based on its routing table. If you load this file directly, you bypass the orchestrator's context intake — re-route through the orchestrator unless you already know exactly which action to call.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.