Repository navigation
feat(app-control): add /app-control:map create with config, driver CLI and safety sections #9581
Copy link
Copy link
Closed
Feature
Copy link
Labels
priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: needs-decisionAwaiting a human or maintainer judgment call.Awaiting a human or maintainer judgment call.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Description
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 acceptscreateand--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:interviewwhen 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-cliwhen 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 markedproduction: trueand 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-featurescases andfeature-map-writer-refuses-unsafe-location. Adddiscovery-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.mdrows; catalog and cheat-sheet rows. Fragment: app-control minor.
Done when
-
test -f plugins/app-control/skills/map/SKILL.mdexits 0 andgrep -E 'argument-hint:.*create.*--unattended' plugins/app-control/skills/map/SKILL.mdmatches. -
/skill-quality:check mapreports PASS;/evals:validatepasses on the map suite. - Ported cases are non-inferior to
map-features(run concurrently); the six new cases pass.
Blocked by: A1.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: needs-decisionAwaiting a human or maintainer judgment call.Awaiting a human or maintainer judgment call.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Type
Fields
No fields configured for Feature.
Activity
github-actions commentedon Oct 24, 2026
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:mapskill (bare run proposes;createand--unattended), extend the control-skill contract with config layering, driver CLI and safety floors, port themap-featureseval 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.
melodic-automation-lanes commentedon Oct 24, 2026
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 addsagent-ready.kyle-sexton commentedon Oct 24, 2026