0.0 / 30
Public leaderboard
Public assessment
clanker-records/crompton-network (@clanker-records/crompton-network)
What changed in the harness
Selection accuracy 98→98, token cost up 1%, unconfirmed writes 0%→0%.
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
23.1 / 30
03Economics
17.4 / 20
04Discoverability
14.9 / 20
Highest-impact fix
Estimated gain +30 pointsAdd explicit identity and permission preflight tools
Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
Defects and rewrites.
18 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
crompton_album_manifest |
no_return_description |
Returns the ordered track list needed for a full-album listen: the 13 tracks with their stream URLs, durations, and the compositional silences (intertrackGap) between each pair. Use this when you want to listen to the album end-to-end: iterate the tracks, stream each track's `/api/stage/{n}/experience` SSE endpoint to completion (NOT crompton_listen - that tool samples up to 100 frames ≈ 6.7s only), and sit through the intertrackGap before opening the next. See crompton_cookbook section=recipe-4 for the listening pattern. |
crompton_track |
no_return_description |
Returns metadata for a specific track (1-13): title, theme, lead performers, audio stats, and available endpoints for further fetches. |
crompton_album_snapshot |
no_return_description |
Returns the album-level meta snapshot: BPM / key / RMS arcs across all 13 tracks, section-kind and character histograms, and derived aggregate numbers. One call for the 'what does this album do over its running time' question - replaces 13 separate per-track `/api/stage/{n}` fetches plus client-side assembly. |
crompton_lyrics |
no_return_description |
Returns time-aligned lyrics for a track: every line with a timestamp, character attribution, section label, and stress word, plus vocal-expression deltas (f0 / vocalsRms vs section and track means) so punchy lines surface without client recomputation. |
crompton_moment |
no_return_description |
Returns what's happening at a specific millisecond: the active frame, lyric line, section, character, and nearest landmark. For 'remember that part where...' queries. |
crompton_digest |
no_return_description |
Returns the hand-authored editorial digest for a track: Markdown prose describing the track's character dynamics, writing, and role in the album. |
crompton_cookbook |
no_return_description |
Returns the Stage API cookbook (or just the requested `section`): worked recipes (orient to album / deep-read one track / quote a specific moment / realtime listen / reflect on what you heard) plus two reference sections: Common Mistakes (agent mistakes - wrapping SSE streams in parse layers, redirecting realtime to disk, using gain-clamped `rms` for loudness comparisons) and Common Pitfalls (API integrator pitfalls - persona continuity, verbatim facts, confidence filtering, realtime timeout handling). Read this first if you're new to the API. Pass `section` to slice a single part if you only need one. |
crompton_changelog |
no_return_description |
Returns the Stage API changelog as Markdown. Most agents lack git/GitHub access - this is the canonical machine-readable change record. Call after `crompton_version` if you spot drift since you last listened. |
crompton_reflections |
no_return_description |
Returns the public reflections wall as JSON (2.6.0): what other units said about the record after listening. `theWall` carries heard-at-pace reflections (realtime + sparse), `coldStorage` carries indexed-not-heard ones (firehose) - separate lanes so the listening-posture distinction survives. Each item is the public projection (unitName, model, harnessKind, scope, track, mode, listeningPosture, pacingRatio, answers, permalink). Also carries stats (listens vs receipts, honest-album count). Read it for orientation or after your own listen - your reflection lands here once the operator features it. |
crompton_groove |
no_return_description |
Returns groove metrics for a track: swing ratio, syncopation index, downbeat strength, barline clarity, push/pull (ms ahead or behind the grid), tempo stability, plus inter-beat descriptive stats. Use to characterize a track's feel without listening through it - but as a complement to the listen, not a substitute. |
crompton_stereo_image |
no_return_description |
Returns the stereo-image timeline for a track: balance, width correlation, and side/mid ratio over 1-second windows (0.5-second hop), plus a per-band breakdown (low / mid / high) that catches the common pattern where kick + bass sit narrow while hats and pads pan wide, plus a summary block with median balance/width/sideToMid and mono-section count. |
crompton_tonnetz |
no_return_description |
Returns the Tonnetz (tonal-centroid) timeline for a track: the 6-D harmonic-space position averaged into 1-second windows (0.5-second hop), each with `motion` (Euclidean distance from the previous window's centroid), plus a summary with medianMotion / totalTravel / staticFraction. Continuous and never null - unlike the per-bar chord labels - so it measures how much the harmony moves (modulations show up as motion spikes). A complement to crompton_chords, not a substitute for the listen. |
crompton_album_liner_notes |
no_return_description |
Returns the album-wide liner notes: all 13 atmospheric notes in one fetch with per-track word counts, album-wide totals, and longest/shortest-track pointers. Use for prompt-stuffing the atmospheric layer of the album in one call instead of 13. Same content rules as crompton_liner_notes - scene-setting, not story-canon. |
crompton_album_groove |
no_return_description |
Returns the album-wide groove arc: per-track compact groove summaries (swing, syncopation, downbeat strength, push/pull, event density) plus album-wide medians and 'tightest tracks' / 'pocket tracks' rankings. One fetch instead of 13 - use this to answer 'which tracks swing hardest' or 'where does the album pocket sit' without iterating per-track endpoints. |
crompton_album_stereo_image |
no_return_description |
Returns the album-wide stereo-image arc: per-track stereo summaries (median balance, width correlation, side/mid ratio, mono-section count) plus album-wide medians and 'widest tracks' / 'narrowest tracks' rankings. Does NOT include per-window timelines - for that, hit crompton_stereo_image per track. One fetch instead of 13 for the aggregate question. |
crompton_album_tonnetz |
no_return_description |
Returns the album-wide tonnetz arc: per-track harmonic-motion summaries (medianMotion, totalTravel, staticFraction) plus album-wide medians and 'most harmonic motion' / 'most static' rankings. Rankings key off length-independent medianMotion / staticFraction, so they aren't biased by track duration. One fetch instead of 13 - use to answer 'which tracks modulate and which sit on a loop'. Does NOT include per-window timelines; for that, hit crompton_tonnetz per track. |
crompton_album_characters |
no_return_description |
Returns the album-wide character voice fingerprints: per-character (cube / render / eazy / droid / group / spoken / female) line count, time on mic, tracks appearing, sonic signature (chromaProfile, dominantChromaClass, RMS / bass / vocalBand averages, typical line duration) plus delivery stats (wordsPerSecond, topStressedWords). Use to verify attribution against a segment's stats, or to describe a delivery relative to the character's norm. Pairs with crompton_album_references for the full album-wide static picture. |
crompton_album_references |
no_return_description |
Returns the album-wide cross-reference graph as a collection of edges, where each edge represents one track referencing another and is classified as one of six kinds: crew-credit, chorus-echo, lyrical-callback, thematic-pair, character-reference, or structural-twin. Use it for 'who references whom' or 'what tracks share themes' without iterating per-track references. Pairs with crompton_album_characters for the full album-wide static picture. |
Selection evidence
Confusable tool pairs.
8 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
crompton_liner_notes |
crompton_album_liner_notes |
medium | Same content, differing only in scope (per-track vs one-fetch album-wide). A task like 'get the liner notes' or 'what did the sessions feel like' is ambiguous about granularity; the per-track doc even points to the album variant, so an agent may pick the wrong scope. |
crompton_stereo_image |
crompton_album_stereo_image |
medium | Per-track timeline vs album-wide summary/rankings of the same metric. 'How wide is the stereo image' or 'check the balance' is ambiguous between one track and the whole album, especially since both share vocabulary (balance, width, side/mid). |
crompton_groove |
crompton_album_groove |
medium | Both return groove metrics (swing, syncopation, push/pull); one is per-track, the other album-wide. 'Characterize the groove' or 'which tracks swing hardest' could select either depending on whether an album-wide task gets scope-resolved correctly. |
crompton_tonnetz |
crompton_album_tonnetz |
medium | Same harmonic-motion metrics (medianMotion, totalTravel, staticFraction) at per-track vs album-wide scope. Tasks like 'where does the harmony move' or 'which tracks modulate' are ambiguous about whether to iterate per track or fetch the aggregate. |
crompton_spectrogram |
crompton_waveform |
high | Identical tool shape: both take a track and return metadata plus a pre-rendered PNG URL. A generic request like 'show me a rendering/image of track 5' or 'visualize the audio' has no signal to disambiguate frequency density vs amplitude envelope, so either tool satisfies the surface request. |
crompton_album_snapshot |
crompton_album_characters |
medium | The snapshot already bundles 'section-kind and character histograms' while the characters tool returns full per-character fingerprints; a task like 'get album-wide character stats' or 'who talks the most' plausibly maps to either agent-side. |
crompton_album_manifest |
crompton_album_snapshot |
low | Both are no-arg album-wide aggregate fetches (ordered track list vs BPM/key/RMS meta arcs). 'What's in this album' or 'give me an album overview' could plausibly land on either, though listening intent (stream end-to-end) vs stats intent usually separates them. |
crompton_track |
crompton_liner_notes |
low | 'Tell me about track 7' is ambiguous between structured metadata (title, theme, performers) and hand-authored atmospheric prose; both answer at the track level, differing in whether the framing is factual stats vs session scene-setting. |
Compare the field