Contracts

doctor-skills-json.md

Contract: spec-kitty doctor skills --json (additive change)

Every existing field keeps its name, type and meaning (C-006).

pack_skills[] entries

kind gains the value "missing". Shape is unchanged: kind, skill name, agent, path, message.

New top-level finding list

tool_folders: array; contains {"kind": "no_tool_folder", "configured_agents": [...], "message": "..."} when no configured agent folder exists, else empty. Top-level configured_agents lists skill-capable agents only, while tool_folders[].configured_agents lists every configured agent.

ok / exit code

ok is false (exit 1) when pack_skills or tool_folders is non-empty, in addition to existing conditions.

--fix

Missing pack skills are projected; projected paths appear in the additive repaired_paths list (repaired_agents keeps agent keys only); failures in repair_errors; findings are recomputed after repair. drift entries are never repaired.