Skip to content

feat(app-control): add /app-control:map create with config, driver CLI and safety sections #9581

Description

@kyle-sexton

Slice A2 of #9507, from poteto's draft (comment) amended to the owner's decisions.

Problem

Nothing generates a control-<app> skill. /testing:map-features writes only testing's map.

Fix

  • New plugins/app-control/skills/map/SKILL.md. A bare run proposes; it accepts create and --unattended.
  • create: discovery over every feat(app-control): discover-and-interview setup that generates and maintains a control skill #9507 Discover row, then residue questions through /planning:interview when installed (inline otherwise), generate, prove through /app-control:drive, check the evidence survived and no process is left, and state what a stand-in did that the target will not.
  • Contract sections added to plugins/app-control/reference/control-skill.md: config layering (config/defaults.json < config/local.json < env < flags, reporting each value's layer; fields: environment, timeouts, credential variable names, safety floors, pluginDir), the driver CLI written through /developer-experience:build-cli when installed (a documented script otherwise), and safety floors (recipient allowlist, one sign-in attempt per account per run with a failure stopping the run, production marked production: true and read-only by default, unattended writes off).
  • The control-skill pointer goes only to the repository's source-of-truth instruction surface; a shim's import target wins.
  • Port the 16 map-features cases and feature-map-writer-refuses-unsafe-location. Add discovery-before-questions, unlisted-recipient-stops-at-form, failed-sign-in-stops-run, unattended-safety-question-stops, prove-leaves-evidence-no-orphan, config-reports-source-layer.
  • README skills row and pstack attribution; docs/upstream/cursor-pstack.md rows; catalog and cheat-sheet rows. Fragment: app-control minor.

Done when

  • test -f plugins/app-control/skills/map/SKILL.md exits 0 and grep -E 'argument-hint:.*create.*--unattended' plugins/app-control/skills/map/SKILL.md matches.
  • /skill-quality:check map reports PASS; /evals:validate passes on the map suite.
  • Ported cases are non-inferior to map-features (run concurrently); the six new cases pass.

Blocked by: A1.

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: Medium
    Complexity: Medium
    Uncertainty: Known
    Flags: none

    Understood: add a new /app-control:map skill (bare run proposes; create and --unattended), extend the control-skill contract with config layering, driver CLI and safety floors, port the map-features eval cases, add six new cases, and update docs, catalog and fragment. The issue is blocked by A1. Related open issues: #9507 (parent), #9574-adjacent app-control items such as the map refresh and map check issues in the same series. The eval non-inferiority run may need an attended or paid run; the file-level checks can be done in the lane.

    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: a Feature needs an open parent issue a listed human filed that awaits no decision. A recorded decision does not change these rules (.github/actions/resolve-config/admission-rules.json); a person who wants it worked adds agent-ready.

  4. self-assigned this
    on Oct 24, 2026
  5. kyle-sexton commented on Oct 24, 2026

    @kyle-sexton
    MemberAuthor
    No description provided.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

priority: mediumReal value, no hard deadline; normal backlog flow.status: needs-decisionAwaiting a human or maintainer judgment call.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