Skip to content

Add Maestro: Costguard to Tools & Integrations#222

Open
mbanderas wants to merge 2 commits into
hashgraph-online:mainfrom
mbanderas:add-costguard
Open

Add Maestro: Costguard to Tools & Integrations#222
mbanderas wants to merge 2 commits into
hashgraph-online:mainfrom
mbanderas:add-costguard

Conversation

@mbanderas

Copy link
Copy Markdown

Plugin

Maestro: Costguard — a read-only cost auditor for Codex that flags CI/cron and cloud-spend waste via read-only provider checks, then previews and applies surgical CI workflow fixes locally (never writes to provider accounts, never pushes git).

Scanner gate

HOL Plugin Scanner runs in the plugin repo's CI and passes on master (score ≥ 80/130, no high/critical findings):

What's in this PR

  • README.md entry under Tools & Integrations (alphabetical).
  • Plugin bundle under plugins/mbanderas/costguard/ (manifest, icon, skill, README).
  • Entries in plugins.json and .agents/plugins/marketplace.json.
  • Drive-by: fixed two pre-existing alphabetical-order inversions in README.md (GrayMatter / Generative Media Skills; ScrapeGraph AI / Rust Reverse Engineering) so the alphabetical-check passes.

The repo satisfies the required files: .codex-plugin/plugin.json (+ composerIcon), SECURITY.md, LICENSE (MIT), README.md, lockfile, SHA-pinned Actions, and Dependabot.

🤖 Generated with Claude Code

Add the Costguard plugin listing (read-only CI/cron and cloud-spend cost
auditor for Codex) with its bundle under plugins/mbanderas/costguard/ and
entries in plugins.json and .agents/plugins/marketplace.json.

Also fix two pre-existing alphabetical-order inversions in README.md
(GrayMatter/Generative Media Skills; ScrapeGraph AI/Rust Reverse
Engineering) so the alphabetical-check passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces the 'Maestro: Costguard' plugin, which audits CI/cron and cloud-spend waste. The changes include adding the plugin to the marketplace, updating the README, and adding the plugin's configuration, manifest, and skill documentation. The review feedback highlights a typo in the documentation referring to 'playwright' as 'playwriter' and points out an inconsistency between the '--pr' and '--open-pr' command-line flags.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +190 to +212
`--live` **extends** the read-only posture above: it adds **browser-driven reads
over your already-logged-in session**, performed by the **playwriter** MCP server
under the agent's orchestration. This is a genuine posture change and is treated
as one — **off by default, opt-in, and consent-gated.** costguard's own tools
still never drive a browser and never see credentials: `plan_live_checks` only
emits a **read-only** snippet (navigation + reading rendered billing figures — no
clicks, typing, form submits, credential replay, cookies, localStorage,
sessionStorage, or screenshots), and `ingest_live_reading` only parses the
returned figure. The browser action is performed by playwriter, authorized by you.

**API-first / browser-fallback:** `plan_live_checks` is API-first when a provider
module exists and its API token resolves from the environment (a deterministic
env-NAME check, no network probe) — in that case prefer `audit_workspace`. Only
when there is no usable API token does it fall back to a browser playbook.

**Three consent gates (all required):** (1) the host's MCP tool-call consent;
(2) costguard's own per-run confirmation — `plan_live_checks` returns a
`consentNotice` the agent MUST surface, and emits the actionable snippet only when
called with `confirmLive:true`; (3) playwriter's own consent before it executes.

**Graceful degrade:** if playwriter is not connected, the agent cannot run the
snippet; `ingest_live_reading` returns a `kind:"diagnostic"` Finding (excluded
from cost totals) and the audit never blocks.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The term playwriter is used multiple times in this section. This appears to be a typo for playwright (the browser automation library by Microsoft and its corresponding MCP server). Please correct the spelling to ensure proper referencing of the tool.

`--live` **extends** the read-only posture above: it adds **browser-driven reads
over your already-logged-in session**, performed by the **playwright** MCP server
under the agent's orchestration. This is a genuine posture change and is treated
as one — **off by default, opt-in, and consent-gated.** costguard's own tools
still never drive a browser and never see credentials: `plan_live_checks` only
emits a **read-only** snippet (navigation + reading rendered billing figures — no
clicks, typing, form submits, credential replay, cookies, localStorage,
sessionStorage, or screenshots), and `ingest_live_reading` only parses the
returned figure. The browser action is performed by playwright, authorized by you.

**API-first / browser-fallback:** `plan_live_checks` is API-first when a provider
module exists and its API token resolves from the environment (a deterministic
env-NAME check, no network probe) — in that case prefer `audit_workspace`. Only
when there is no usable API token does it fall back to a browser playbook.

**Three consent gates (all required):** (1) the host's MCP tool-call consent;
(2) costguard's own per-run confirmation — `plan_live_checks` returns a
`consentNotice` the agent MUST surface, and emits the actionable snippet only when
called with `confirmLive:true`; (3) playwright's own consent before it executes.

**Graceful degrade:** if playwright is not connected, the agent cannot run the
snippet; `ingest_live_reading` returns a `kind:"diagnostic"` Finding (excluded
from cost totals) and the audit never blocks.

Comment on lines +87 to +89
Default is dry-run. Only deterministic ADD-rule fixers run (timeout,
concurrency, paths-ignore). Costguard never pushes; `--open-pr` is gated and
refuses without an explicit token.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

There is a discrepancy between the command listed above (--pr on line 84) and the description here which references --open-pr. Please ensure the flag name is consistent, or clarify if --open-pr is a separate, distinct flag.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant