Skip to content

claude-ops: sweep unit, bake the doctor and skill-doctor integrations into the three audit skills #4050

Description

@kyle-sexton

Parent

Refs #4047. Unit 3 of 9 (sweep unit for the claude-ops plugin, plan Phase 5). Predecessor: #4049 (policy unit), which writes the integration values this unit bakes. Start only after #4049 has merged green.

Agent Brief

Type: Task

Summary: apply the store's integration verdicts for the claude-ops rows to the three audit skills through the audit-native-overlap apply step, per the grammars the policy unit added to the native-references convention. On today's evidence this is a suggest unit, because doctor is registered model-disabled and cannot be composed; if the verdict pass in #4049 chose otherwise for any row, follow the store, not this brief.

Current behavior: audit-install-state carries a route phrase and a Boundary section for doctor; audit-skill-visibility carries a route phrase naming /skill-doctor and /doctor; audit-performance carries nothing for doctor; none of the three declares an unattended argument or records a suggestion under it.

Desired behavior:

  • audit-install-state: the description phrase stays; the Boundary section's routing paragraph becomes the suggest sentence for /doctor at the end of the run (coverage is partial: doctor fixes, this skill inventories), its basis pointing at the section's existing verification record; the skill declares unattended in its argument-hint and body and records the suggestion under it instead of asking.
  • audit-skill-visibility: a suggest sentence for /skill-doctor at the start of the run (its coverage of "unused versus cost" is the whole ask when the user wants only that list) and one for /doctor at the end, both with bases pointing at the skill's existing verification record; unattended declared.
  • audit-performance: no description change and no trim. A suggest sentence for /doctor at the end of the run that opens with a same-plugin pointer to audit-install-state's section for the shared surface facts; unattended declared.
  • morning-brief is untouched (its row is defer).
  • The four store rows take baked.suggest_sentence: true (or native_step where the store says wrap), the view is regenerated, and every touched skill passes the skill-quality check and stays under the 1,536-character per-entry cap. Version: next minor of claude-ops at PR time, CHANGELOG entry stating the rules.

Key interfaces:

  • The three skill bodies and their frontmatter argument-hint (the unattended argument).
  • The store rows for doctor (three) and skill-doctor (one) and the generated view.

Acceptance criteria:

  • bash plugins/skill-quality/scripts/check-skill.sh <skill> passes for audit-install-state, audit-skill-visibility, and audit-performance.
  • python3 plugins/claude-ops/skills/audit-native-overlap/scripts/overlap.py self-check --upstream-sha ed404106fcd80ba98ecb7c851e531dcb626d13b7 exits 0; grep -c "If /doctor is available in your session (" plugins/claude-ops/skills/audit-install-state/SKILL.md prints 1; grep -c "unattended" plugins/claude-ops/skills/audit-install-state/SKILL.md prints at least 2.
  • In a cloud session, invoking /claude-ops:audit-install-state unattended yields a report whose final section records the /doctor suggestion without asking; the transcript excerpt is quoted in the PR body.
  • The PR is a draft, quotes the four store rows, and flips to ready when green; the unit closes only when the PR merges green.

Out of scope:

Blocked by

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions