Skip to content

feat(harness-ops): add the control-claude-code control skill #9592

Description

@kyle-sexton

Track B skill slice of #9507 (no poteto draft).

Problem

The owner needs evidence (screenshots, video, behavior) of the plugins, skills and mods they ship, driven in Claude Code's TUI within Anthropic's terms.

Fix

  • plugins/harness-ops/skills/control-claude-code/SKILL.md hub: Launch, Ready (a -p init event with apiKeySource: "none", plus doctor), Capture (screenshot, video, logs as stream-json), Cleanup; one line that it is meant for attended use; no account switching. config/defaults.json has pluginDir.
  • Features: mods/<surface> (band, toast, panel), skills/invoke, hooks/output, commands/slash, dialogs/permission, and desktop/mod-harness running claude plugin test <mod dir>. Input to Claude Desktop is not driven: terms; Desktop coverage runs only through the mod test harness.
  • Attended prove run against one mod, screenshots and MP4 attached to the PR. Fragment: harness-ops minor.

Done when

  • bash plugins/app-control/skills/map/scripts/check-map.sh plugins/harness-ops/skills/control-claude-code prints no findings.
  • In the attended prove run's init event apiKeySource is "none", and the evidence files exist after cleanup.

Blocked by: A1, A10, A2, A3, B-driver. Needs the owner present for the prove run.

Activity

  1. github-actions commented on Oct 24, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: scoped
    Basis: automated intake triage; the lanes App applied this class.

    Size: Large
    Complexity: Medium
    Uncertainty: Knowable
    Flags: none
    Blocked by: none

    Understood: add a control-claude-code skill to harness-ops. It covers launch, ready check, capture and cleanup, plus feature sub-skills (mods, skills, hooks, slash commands, permission dialogs, and a Desktop mod-harness). Evidence comes from an attended prove run against one mod.

    Notes:

    • The blockers (A1, A10, A2, A3, B-driver) are tracker names, not issue numbers, so I could not map them to open issues. Please list them as #numbers if they should be tracked as blockers.
    • The attended prove run needs the owner present, so it can't be checked unattended. The check-map.sh item can be.
    • The work is large and may need splitting into several changes.
    • No likely duplicates found.

    Automated triage, applied by the lanes App.

  2. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    status: needs-decisionAwaiting a human or maintainer judgment call.
    and removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Oct 24, 2026
  3. melodic-automation-lanes commented on Oct 24, 2026

    @melodic-automation-lanes
    Contributor

    Not admitted to the issue lane yet: Size large: the split into sub-issues at intake is pending (owner Q93).

  4. kyle-sexton commented on Oct 26, 2026

    @kyle-sexton
    MemberAuthor

    Released for re-triage under the owner's 2026-10-24 rule: an issue stops for a person only for an intent or vision question, a security call, a host or attended run, or spend outside prepaid credit. The hold label came off and intake triage runs again now; it re-applies a hold, with a numbered question, when one of those applies.

    To hold this issue again, add needs-human (or status: needs-decision) and say why in a comment.

  5. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed on Oct 26, 2026
  6. melodic-automation-lanes commented on Oct 26, 2026

    @melodic-automation-lanes
    Contributor

    The lanes App's pull request #10187 merged with Refs:, so this issue stays open and nothing starts the lane on it again. work-unblock removed status: ready and agent-ready, so the hourly triage sweep sends it back to intake triage, which decides what work is left and admits it again.

  7. removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 26, 2026
  8. github-actions commented on Oct 26, 2026

    @github-actions
    Contributor

    The triage sweep dispatched intake triage for this issue (attempt 1 of 2).

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

    priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Fields

    No fields configured for Feature.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions