Skip to content

feat: Improve Glama score metadata and badge - #9

Merged
Pantani merged 2 commits into
mainfrom
Pantani/cx/atualizar-score-e-badge-glama
Jun 11, 2026
Merged

Pantani merged 2 commits into
mainfrom
Pantani/cx/atualizar-score-e-badge-glama

Conversation

@Pantani

@Pantani Pantani commented Jun 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Add the Glama score badge to the README.
  • Expand all runtime MCP tool descriptions with clearer usage, side effects, idempotency, and return semantics for Glama TDQS evaluation.
  • Sync DXT tool metadata with the runtime registry and add distribution regressions for the Glama badge and description quality.

Why

Glama currently cannot score server coherence or tool definition quality until the server is released/inspected there, and the previous short descriptions risked lower TDQS once inspection runs. This makes the repo-side metadata ready for the next Glama sync/release pass.

Validation

  • npm ci
  • npm run build
  • npm run typecheck
  • npm run lint
  • npm test
  • npm run build:dxt:check

Follow-up outside this PR

After merge, sync the Glama listing and create a Glama release from the Glama Dockerfile admin page so their hosted scoring can inspect tools, coherence, and usage.

Summary by CodeRabbit

Release Notes

  • Documentation

    • Enhanced tool descriptions across the MCP server with clearer behavioral guidance, including idempotency details, verification expectations, and parameter constraints.
    • Added Glama score badge to README.
  • Tests

    • Introduced "Glama listing quality" validation suite to enforce documentation consistency and distribution metadata standards.

@coderabbitai

coderabbitai Bot commented Jun 11, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@Pantani, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 48 minutes and 32 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, 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 include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 92e2f8be-84e8-4693-b414-870cfc09c852

📥 Commits

Reviewing files that changed from the base of the PR and between 8bae3dd and 4a8a31b.

📒 Files selected for processing (7)
  • _workspace/contracts/phase0-methods.md
  • dxt/manifest.json
  • live/AbletonMind/handlers/browser.py
  • live/AbletonMind/schemas.py
  • live/AbletonMind/tests/test_cycle5_6.py
  • src/tools/browser.ts
  • tests/tools-device-browser-load.test.ts
📝 Walkthrough

Walkthrough

Updated 30+ tool descriptions across the codebase to clarify idempotency, verification semantics, and usage guidance. Added Glama distribution badge to README. Ensured dxt/manifest.json descriptions sync with runtime registry definitions. Added test suite validating badge presence, description quality, and manifest consistency.

Changes

Tool Description Clarifications & Distribution Quality

Layer / File(s) Summary
Glama Distribution Badge
README.md
Added Glama score badge near the top of README to display the server's public listing score.
Transport & Core Playback Tool Descriptions
src/tools/transport.ts
Updated play, stop, and set_tempo descriptions to document idempotency semantics, async transport state verification behavior, and constraints (20–999 BPM range, from_beginning flag).
Track Management Tool Descriptions
src/tools/track.ts
Updated track_list, track_create, track_upsert, track_set_name, track_set_volume, and track_get_info descriptions to clarify when to use each tool, idempotency behavior including changed=false cases, and expected verification diffs/returned fields.
Clip Manipulation Tool Descriptions
src/tools/clip.ts
Updated create_midi_clip, clip_add_notes, clip_fire, clip_stop, clip_set_name, clip_set_envelope, and clip_set_loop descriptions to document append vs. replace semantics, non-idempotent behavior in occupied slots, async playback verification, and field-level verification expectations.
Session, Device, & Preview Tool Descriptions
src/tools/session.ts, src/tools/session-link.ts, src/tools/scene.ts, src/tools/device.ts, src/tools/preview.ts
Updated read-only session snapshots, link status, device inspection (patcher/plugin), and preview/diff tools to clarify scope, unavailability scenarios (available=false with reason), expected return fields, and verification behavior for mutations.
Browser & Push Controller Tool Descriptions
src/tools/browser.ts, src/tools/push.ts
Updated browser discovery (browser_get_categories, browser_load_item) and Push controller (push_set_pad_color, push_set_mode, push_set_button_led) descriptions to clarify discovery workflows, target track selection, non-idempotency for item load, and controller-specific return semantics (sent=true).
Utility & Recipe Tool Descriptions
src/tools/arrangement.ts, src/tools/recipe.ts, src/tools/prompts.ts, src/tools/resources.ts
Updated arrangement automation, recipe application/listing, bundled prompts, and resource discovery descriptions to clarify read-only vs. mutating intent, incremental/append behavior, embedded metadata returns, non-full-transactionality in Phase 5, and failure reporting.
Manifest Synchronization & Distribution Quality Tests
dxt/manifest.json, tests/distribution-validation.test.ts
Synchronized manifest.json tool descriptions with runtime registry across all 30+ tools. Added "Glama listing quality" test suite: validates Glama badge in README, enforces tool description specificity via regex heuristics for behavior/outcome terminology and minimum length, and verifies byte-for-byte consistency between manifest and runtime tool descriptions.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 Descriptions refined with clarity true,
Idempotency and verification too,
Glama badge shines, tests ensure the way,
Tool semantics documented, hooray hooray!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main changes: adding a Glama badge to the README and improving tool description metadata for Glama quality evaluation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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


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.

@Pantani Pantani changed the title [codex] Improve Glama score metadata and badge feat: Improve Glama score metadata and badge Jun 11, 2026
@Pantani
Pantani marked this pull request as ready for review June 11, 2026 02:19

@coderabbitai coderabbitai Bot 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

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/tools/browser.ts`:
- Line 79: The docstring admits the tool is not idempotent; fix by implementing
a read-before-write check in the tool handler that currently calls
browser.load_item: before invoking browser.load_item, use the discovery helpers
(browser_get_categories and browser_get_path as appropriate) and inspect the
target track's device chain and clip/sample list to determine if the exact item
(by name/path) is already present; if present, return the existing item info
without calling browser.load_item, otherwise call browser.load_item and return
the loaded item name/path. Ensure this logic lives alongside the existing load
call so repeated invocations become no-ops when the item is already loaded.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 6bd24905-942c-48a3-8142-8ed130883e10

📥 Commits

Reviewing files that changed from the base of the PR and between edf7fc2 and 8bae3dd.

📒 Files selected for processing (17)
  • README.md
  • dxt/manifest.json
  • src/tools/arrangement.ts
  • src/tools/browser.ts
  • src/tools/clip.ts
  • src/tools/device.ts
  • src/tools/preview.ts
  • src/tools/prompts.ts
  • src/tools/push.ts
  • src/tools/recipe.ts
  • src/tools/resources.ts
  • src/tools/scene.ts
  • src/tools/session-link.ts
  • src/tools/session.ts
  • src/tools/track.ts
  • src/tools/transport.ts
  • tests/distribution-validation.test.ts
📜 Review details
🧰 Additional context used
📓 Path-based instructions (3)
src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

MCP server code must be written in TypeScript with Node 20+, using @modelcontextprotocol/sdk and Zod validation

src/**/*.{ts,tsx}: In TypeScript/Node MCP server code, use @modelcontextprotocol/sdk for implementing MCP protocol, Node 20+, and Zod for validation
TypeScript code must pass npm run typecheck, npm run lint, and npm test

Files:

  • src/tools/resources.ts
  • src/tools/scene.ts
  • src/tools/prompts.ts
  • src/tools/arrangement.ts
  • src/tools/session.ts
  • src/tools/track.ts
  • src/tools/browser.ts
  • src/tools/session-link.ts
  • src/tools/recipe.ts
  • src/tools/preview.ts
  • src/tools/transport.ts
  • src/tools/device.ts
  • src/tools/push.ts
  • src/tools/clip.ts
src/tools/**/*.ts

📄 CodeRabbit inference engine (CLAUDE.md)

src/tools/**/*.ts: Device parameters must be addressed by name via the knowledge base, not by raw index
Every tool implementation must be idempotent: calling twice with the same args produces one effect, with state checked before mutation
Composite tool operations must wrap in Song.begin_undo_step() / end_undo_step() to make undo unitary (transactional requirement)
Destructive tools must snapshot state before acting (reversible requirement)
Never assume Track N exists or is the right type — verify state first before mutating (read-before-write requirement)
Tools must return { ok, verified, diff }, not just ok
One tool file per LOM domain in src/tools/ (transport, track, clip, scene, device, rack, automation, modulation, browser, arrangement, recording, mixer, view, session, groove, midi, push, introspection)

Files:

  • src/tools/resources.ts
  • src/tools/scene.ts
  • src/tools/prompts.ts
  • src/tools/arrangement.ts
  • src/tools/session.ts
  • src/tools/track.ts
  • src/tools/browser.ts
  • src/tools/session-link.ts
  • src/tools/recipe.ts
  • src/tools/preview.ts
  • src/tools/transport.ts
  • src/tools/device.ts
  • src/tools/push.ts
  • src/tools/clip.ts
src/tools/**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

src/tools/**/*.{ts,tsx}: All tools must be idempotent — calling twice with the same args produces one effect; check state before mutating
Destructive tools must snapshot state before acting to remain reversible
Never assume Track N exists or is the right type — verify state first with read-before-write pattern
Device parameters must be addressed by name via the knowledge base, not by raw index; use schema-aware parameter access
Tools must return { ok, verified, diff } structure, not just ok, to enable create → verify → preview loop

Files:

  • src/tools/resources.ts
  • src/tools/scene.ts
  • src/tools/prompts.ts
  • src/tools/arrangement.ts
  • src/tools/session.ts
  • src/tools/track.ts
  • src/tools/browser.ts
  • src/tools/session-link.ts
  • src/tools/recipe.ts
  • src/tools/preview.ts
  • src/tools/transport.ts
  • src/tools/device.ts
  • src/tools/push.ts
  • src/tools/clip.ts
🔇 Additional comments (27)
README.md (1)

3-4: LGTM!

src/tools/preview.ts (3)

72-72: LGTM!


112-112: LGTM!


146-146: LGTM!

src/tools/device.ts (4)

130-130: LGTM!


205-205: LGTM!


276-276: LGTM!


312-312: LGTM!

src/tools/browser.ts (1)

41-41: LGTM!

src/tools/push.ts (3)

50-50: LGTM!


96-96: LGTM!


109-109: LGTM!

src/tools/transport.ts (3)

48-48: LGTM!


93-94: LGTM!


141-142: LGTM!

src/tools/track.ts (1)

70-70: LGTM!

Also applies to: 116-116, 174-174, 220-221, 268-268, 313-313

src/tools/clip.ts (1)

49-49: LGTM!

Also applies to: 115-115, 163-164, 182-183, 229-230, 329-329, 354-355

src/tools/session.ts (1)

37-38: LGTM!

src/tools/session-link.ts (1)

32-33: LGTM!

src/tools/scene.ts (1)

41-42: LGTM!

src/tools/arrangement.ts (1)

46-46: LGTM!

src/tools/recipe.ts (2)

41-41: LGTM!


87-87: LGTM!

src/tools/prompts.ts (1)

35-35: LGTM!

src/tools/resources.ts (1)

30-30: LGTM!

dxt/manifest.json (1)

76-217: LGTM!

tests/distribution-validation.test.ts (1)

195-233: LGTM!

Comment thread src/tools/browser.ts Outdated
@Pantani
Pantani merged commit cc1ad8b into main Jun 11, 2026
9 checks passed
@Pantani
Pantani deleted the Pantani/cx/atualizar-score-e-badge-glama branch June 11, 2026 02:32
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