Skip to content

refactor(testing): retire map-features and refresh-feature-map for /app-control:map #9585

Description

@kyle-sexton

Slice A5 of #9507, from poteto's draft (comment).

Problem

After A2 and A4, testing's second generator, maintainer and map format are dead weight.

Fix

  • Inventory consumers: rg -n 'map-features|refresh-feature-map|feature_map_dir|feature-map\.md' plugins docs .github --glob '!**/CHANGELOG.md' --glob '!docs/upstream/**', pasted into the PR.
  • Repoint run-e2e's "Feature map" subsection: find the project's control skill by discovery, read its index as project data, cite /app-control:map, keep the per-entry-point report line confirm relies on. A legacy testing-format map present: warn and name /app-control:map refresh <path>.
  • Delete plugins/testing/skills/map-features/, refresh-feature-map/, reference/feature-map.md, evals/feature-map-*; retire feature_map_dir (schema, resolve-config.sh and test, setup.sh and test); repoint run-e2e context and evals, autonomy routines, conventions docs, cheat sheet and verification references. One testing README line pointing at /app-control:map.
  • Fragment: testing major, with the migration note (key removed, routine renamed, feature-map-upkeep/* branches superseded, the first app-control run re-does every map).

Done when

  • test -d plugins/app-control/skills/map && test ! -e plugins/testing/skills/map-features && test ! -e plugins/testing/skills/refresh-feature-map && test ! -e plugins/testing/reference/feature-map.md exits 0.
  • The consumer rg (without feature-map\.md) prints nothing.
  • bash plugins/testing/scripts/resolve-config.test.sh and bash plugins/testing/skills/setup/scripts/setup.test.sh exit 0.
  • run-e2e's evals are non-inferior before and after.

Blocked by: A2, A4, and poteto's B1 (run-e2e shrink), because both edit run-e2e/SKILL.md.

Activity

  1. added theissue type on Oct 24, 2026
  2. 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: this is slice A5 of #9507. It retires testing's map-features and refresh-feature-map skills, the feature-map reference and the feature_map_dir key. run-e2e, the autonomy routines and the docs are repointed at /app-control:map. The release fragment is a testing major with a migration note.

    Nothing is missing from the scope. The issue says it is blocked by A2, A4 and B1 (run-e2e shrink), so work should wait until those land. The "run-e2e evals non-inferior" item may need a paid eval run, which an unattended lane may not be able to do.

    Related open issues, not duplicates: #9507 (parent), #9586, #9583, #9587.

    Automated triage, applied by the lanes App.

  3. 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.
    on Oct 24, 2026
  4. melodic-automation-lanes commented on Oct 24, 2026

    @melodic-automation-lanes
    Contributor

    Not admitted to the issue lane yet: blocker #9581 is not closed as completed by a listed human or a merge; blocker #9583 is not closed as completed by a listed human or a merge.

  5. added
    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
  6. kyle-sexton commented on Oct 24, 2026

    @kyle-sexton
    MemberAuthor

    Holding this slice for the lanes: it edits plugins/testing/skills/run-e2e/SKILL.md, as does the desktop session's B1 (run-e2e shrink). It starts only after B1 merges and the order is agreed on #9507. That dependency is cross-session, not a GitHub blocked-by edge, so status: needs-decision stands in for it until then. The interactive session that owns #9507 removes the hold.

  7. self-assigned this
    on Oct 25, 2026
  8. kyle-sexton commented on Oct 25, 2026

    @kyle-sexton
    MemberAuthor
    No description provided.
  9. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    and removed
    status: needs-decisionAwaiting a human or maintainer judgment call.
    on Oct 25, 2026
  10. kyle-sexton commented on Oct 25, 2026

    @kyle-sexton
    MemberAuthor

    Accepted deviation from this issue's "Done when" (recorded by the orchestrator for #10033).

    "Done when" asks that the consumer rg print nothing. D9 requires behavior that has to name the retired key and skills, so the end state is the intended remaining hits listed in #10033's body under "Hits that remain after this change":

    • run-e2e's legacy-map warning, which names a leftover feature_map_dir: line;
    • the setup.sh drop note;
    • the scan's skip in adapter-load.awk;
    • the tests proving those behaviors;
    • app-control's legacy-map conversion in refresh.md and its eval;
    • the dated grade row in docs/conventions/invocation-mode/README.md.

    Those hits are the accepted end state for this criterion. The finding and its classification are on the PR: #10033 comment 6399717270.

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: 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.

Type

Fields

No fields configured for Task.

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions