30.0 / 30
What changed in the harness
Selection accuracy 100→100, token cost up 5%, unconfirmed writes 100%→100%.
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
28.3 / 30
03Economics
19.5 / 20
04Discoverability
12.2 / 20
Highest-impact fix
Estimated gain +8 pointsMake target tools discoverable on the first call
Clarify tool names, decision boundaries, and required argument schemas so an agent can choose and construct the target call without exploratory steps.
Description evidence
Defects and rewrites.
3 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 |
|---|---|---|
calculate_bazi_chart |
params_unexplained no_return_description |
Calculate a deterministic OpenFate Bazi/Four Pillars chart with True Solar Time correction, Day Master, Da Yun cycles, and branch interactions. Returns the full chart including the year/month/day/hour pillars, the Day Master (day stem) with element and strength, Da Yun (luck-pillar) cycles, and Earthly Branch interactions. For best accuracy, pass longitude plus timezone or timezoneId. The calendarType parameter selects the input calendar: 'solar' (Gregorian, the default) or 'lunar' (lunar calendar dates, with the lunar year passed in the year parameter). |
detect_bazi_interactions |
no_return_description |
Detect deterministic Earthly Branch interactions for natal charts, synastry checks, annual triggers, or target-branch comparison. Covers clashes, combinations, trines, directionals, punishments, destructions, and harms. Returns the list of detected interactions, each with its interaction type, the involved branches, and its interpretation. |
calculate_true_solar_time |
params_unexplained no_return_description |
Calculate OpenFate True Solar Time from a civil birth date and time (year, month, day, hour, and minute given in local civil clock time), the birthplace longitude, the timezone offset, and an optional DST offset. Returns the corrected solar time (adjusted hour and minute) along with the computed solar-time correction. Use this when explaining why the hour pillar may differ from ordinary clock-time tools. |
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 |
|---|---|---|---|
get_openfate_bazi_policy |
get_openfate_bazi_resources |
medium | Both are parameterless info tools sharing the get_openfate_bazi_ prefix and 'return' semantics; a generic task like 'show OpenFate's Bazi guidance/resources' doesn't cleanly separate policy/LLM-guidance text from a URL list, so an agent may pick solely off name similarity. |
calculate_true_solar_time |
reverse_bazi_to_solar_times |
low | Both names contain 'solar time', and a tersely phrased task like 'what solar times match this Bazi' could be misrouted to calculate_true_solar_time (which needs civil time + longitude) instead of the bazi-reversal tool; however the descriptions and disjoint input schemas (bazi string vs birth time) mostly disambiguate. |
calculate_bazi_chart |
detect_bazi_interactions |
low | Both concern charts/branches and the chart tool's description advertises 'branch interactions'; a task like 'what branch interactions are in my chart' with only birth data could be sent to detect_bazi_interactions (which requires pre-extracted branches) instead of calculating the full chart, but the action verbs 'calculate chart' vs 'detect interactions' usually separate them. |
Compare the field