What happens
mureo_state_report_set's report parameter is constrained to ["daily", "weekly", "goal"], but seven shipped skills instruct writing other kinds: fatigue (ad-fatigue-check), audience (audience-review), pacing (budget-pacing), experiment, monthly (monthly-report), tracking (tracking-health), plus goal-review's goal.
If the enum is enforced at the dispatch layer (it is — _validate_tool_input runs JSON-Schema before the handler, per #660's verified ordering), a skill following its own instructions gets its report refused by schema validation, with the generic jsonschema message. The skill tells the agent to do something the tool refuses — the same "two answers to one question" drift this cycle has fixed repeatedly (#631, #647, #659).
Noticed during #662's implementation (PR #669) as a pre-existing mismatch; filed rather than left in a PR comment.
Suggested fix
Decide which side is right and align the other:
- If those report kinds are legitimate (the skills suggest they are — they exist and are shipped), extend the enum, the
reports section docs, and whatever reads report kinds (reports.daily etc. in summaries/UI) accordingly.
- If only three kinds are meant to exist, fix the seven skills to file under them, and say where the others' content goes.
Either way, add the missing pin: a test that every mureo_state_report_set invocation instructed by a shipped SKILL.md uses a kind the schema accepts — so a new skill cannot reintroduce the drift.
Acceptance
- Every report kind a shipped skill instructs is accepted by the tool, or no shipped skill instructs a refused kind.
- A regression test ties the two sides together.
What happens
mureo_state_report_set'sreportparameter is constrained to["daily", "weekly", "goal"], but seven shipped skills instruct writing other kinds:fatigue(ad-fatigue-check),audience(audience-review),pacing(budget-pacing),experiment,monthly(monthly-report),tracking(tracking-health), plus goal-review'sgoal.If the enum is enforced at the dispatch layer (it is —
_validate_tool_inputruns JSON-Schema before the handler, per #660's verified ordering), a skill following its own instructions gets its report refused by schema validation, with the generic jsonschema message. The skill tells the agent to do something the tool refuses — the same "two answers to one question" drift this cycle has fixed repeatedly (#631, #647, #659).Noticed during #662's implementation (PR #669) as a pre-existing mismatch; filed rather than left in a PR comment.
Suggested fix
Decide which side is right and align the other:
reportssection docs, and whatever reads report kinds (reports.dailyetc. in summaries/UI) accordingly.Either way, add the missing pin: a test that every
mureo_state_report_setinvocation instructed by a shipped SKILL.md uses a kind the schema accepts — so a new skill cannot reintroduce the drift.Acceptance