0.0 / 30
What changed in the harness
Selection accuracy 98→98, token cost up 9%, 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
27.2 / 30
03Economics
16.3 / 20
04Discoverability
12.3 / 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.
6 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 |
|---|---|---|
resolve_day |
params_unexplained |
Resolve a single duty day's attendance from raw clock punches against a shift definition. punches is the list of clock-in/out records, each with an ISO-8601 at (explicit offset) and optional source/location; shift is the scheduled window with start/end (an end <= start means an overnight shift ending next day), plus breaks and optional grace/flexible/minimum settings; policy optionally tunes punch pairing, missing-punch handling, midnight cutover, late-after-grace behaviour, overtime threshold/rounding/mode, standard day length, dedupe window, and timezone offset; leave optionally marks the day as leave (with optional halfDay), and holiday and weekend classify the date so day-type rules can apply. Returns a structured DayResult with status, worked minutes, lateness, early-out, overtime, overnight handling, breaks-deducted minutes, data-integrity flags, and the resolved in/out segments. |
evaluate_break_compliance |
params_unexplained |
Analyse meal and rest period compliance for a single duty day under a bundled jurisdiction rule pack (v0.1 ships the California pack: Labor Code sections 226.7 and 512; IWC wage orders). input is the raw day inputs (date, punches, shift, policy, leave, holiday/weekend) under review; jurisdiction selects the rule pack to apply. waivers optionally lists signed meal waivers: each waiver applies to the first or second meal, carries an optional date and file reference, and when present suppresses the corresponding premium-hour finding for that meal. Returns per-meal and per-rest analysis, premium hours owed at the regular rate, waiver issues, and rebuttable-presumption risk per Donohue v. AMN. |
apply_rounding |
params_unexplained |
Apply a rounding spec to a duty day and produce a rounded view of its worked and overtime minutes without losing the exact-minute result. input is the resolved day inputs (date, punches, shift, policy, leave, holiday/weekend). rounding defines the rounding: unit is the increment in minutes, mode is nearest/up/down, and applyTo lists which fields to round (workedMinutes, otMinutes, lateByMinutes, earlyOutMinutes, breaksDeducted). Returns both the rounded and the exact-minute views so you can keep the baseline and compare across populations, supporting the California-style 'exact-minute is the baseline; rounding must be provably neutral' pattern. |
generate_roster |
params_unexplained |
Generate a rotating roster for a date range. pattern is either a built-in name ('2-2-3', '4-on-4-off', 'dupont', 'pitman') or a custom object whose custom array defines the repeating day cycle ('off' for a rest day, or a shift with a label and HH:MM start/end). startDate is the first calendar date (YYYY-MM-DD) the cycle begins on, and days is how many consecutive dates to generate. Returns one assignment per calendar date with the shift label and HH:MM window, or null on rest days. |
audit_period_compliance |
params_unexplained |
Run a wage-and-hour compliance audit across multiple duty days. For each day it resolves attendance and evaluates meal/rest compliance under the chosen jurisdiction pack (currently CA only). Optionally pass signed meal waivers: each waiver applies to the first or second meal, with an optional date and file reference, and suppresses the corresponding premium-hour finding on that day. Returns a per-day breakdown plus period totals: hours of premium owed (meal plus rest), days at risk, days with rebuttable-presumption exposure, and a flag-count heatmap. Use it for monthly payroll review, pre-audit triage, or a manager dashboard. |
diagnose_punches |
params_unexplained |
Triage raw clock punches before trusting them. punches is the list of punch records for the given date, each with an ISO-8601 at (explicit offset) and optional source (biometric/mobile/manual/web) and location. dedupeSeconds optionally sets the collapse window: punches closer than that many seconds to a duplicate are treated as one. The report counts, sorts, and dedups punches, surfaces duplicates, odd-punch counts, and round-number bias, reports longest and shortest gaps, and flags punches falling outside an optional expectedShift window ([start - 4h, end + 4h]) as off-shift. Returns the diagnostic report and a recommendation of 'usable', 'review', or 'reject'. |
Selection evidence
Confusable tool pairs.
3 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
resolve_day |
resolve_period |
medium | Both tools accept the identical per-day input schema and the descriptions differ only by cardinality (single day vs. sequence). A task like 'resolve the attendance' that fails to specify whether it covers one day or a whole period leaves the agent to guess, especially since resolve_period happily accepts a one-element days array and resolve_day could be reached for a mixed multi-day payload. |
resolve_period |
audit_period_compliance |
medium | Both operate over all days in period, and audit_period_compliance explicitly 'resolves attendance' too. A task like 'run a compliance check on the pay period's attendance' blends the audit/compliance vocabulary of one tool with the resolve/attendance vocabulary of the other, so an agent could pick either, particularly when no meal/rest flag words are present to disambiguate. |
evaluate_break_compliance |
audit_period_compliance |
medium | Both analyze meal/rest compliance and share the 'compliance' token; audit_period_compliance actually subsumes the per-day evaluator. A scope-ambiguous task like 'check break compliance for the month' or just 'evaluate break compliance' could route to the single-day tool when the multi-day audit is meant, or vice-versa when only one day is at issue. |
Compare the field