Skip to content

feat(user-interface): apply team routing in /user-interface:design #7041

Description

@kyle-sexton

Refs: #6594, #7039

Problem

#7039 gives user-interface a team layer whose routing key (rows, disable, deny) is validated by scripts/detect.mjs --config and shown by /user-interface:setup check, but nothing applies it: detect.mjs computes installed from the bundled reference/routing.json rows only, and skills/design/SKILL.md never reads --config. A team routing.deny: [figma] therefore loads with no error and has no effect.

Found by the pre-ready code review of #7039. That PR documents routing as validated-only rather than wiring it in, to keep its scope.

Expected

Per docs/conventions/routing-as-data/README.md "Team layer": a team row overrides the bundled row with the same concern plus id, key by key, and a new one adds a row; disable and deny are unions; a route skipped by deny names the team file as the source; a missing or malformed team file degrades to the bundled routes with disclosure.

Done when

  • The validated team routing is merged into the routes /user-interface:design uses, with tests in plugins/user-interface/tests/detect.test.mjs.
  • skills/design/SKILL.md reads the resolved config and names the team file when deny skips a route.
  • The validated-only notes in plugins/user-interface/README.md and the routing-as-data Adopters row are removed.

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 11, 2026
  2. github-actions commented on Oct 11, 2026

    @github-actions
    Contributor

    Thanks for the report. Automated triage handed this issue to a maintainer.

    Automated triage. A maintainer reviews it.

  3. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 11, 2026
  4. removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 12, 2026
  5. kyle-sexton commented on Oct 13, 2026

    @kyle-sexton
    MemberAuthor

    Decision recorded. The owner approved applying independently verified recommendations on 2026-10-12.

    #7039 validates the team routing key but nothing applies it, so a team deny has no effect. Done-when criteria and the convention's Team layer rules are stated; nothing on main applies it yet.

    Verified by an independent fresh-context check (confirmed, risk low): origin/main plugins/user-interface/scripts/detect.mjs:249-310 (checkRouting validates, teamOnly routing); origin/main plugins/user-interface/skills/design/SKILL.md: no --config read; origin/main docs/conventions/routing-as-data/README.md:104 'Team layer', :153 adopters row 'validated, but /user-interface:design does not apply it yet'; plugins/user-interface/tests/detect.test.mjs exists; git grep for user-interface detect/routing consumers outside the plugin: docs only (assumption true); gh pr list search 7041: #7039, #7060 merged, nothing applies routing

    Admission to an agent lane stays with the work-class rules and owner ratification.

  6. kyle-sexton commented on Oct 13, 2026

    @kyle-sexton
    MemberAuthor

    Owner batch-ratified this admission in an attended session on 2026-10-12: work-class: scoped. Rule: class C1-C3, no trust surface, the independent check confirmed the recorded decision, and no owner step remains.

  7. added
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    priority: mediumReal value, no hard deadline; normal backlog flow.
    and removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 13, 2026
  8. kyle-sexton commented on Oct 18, 2026

    @kyle-sexton
    MemberAuthor

    Agent Brief

    Type: Feature
    Summary: Apply the user-interface team layer's routing key in /user-interface:design.

    Current behavior:
    The user-interface team layer's routing key (rows, disable, deny) is validated by the detect script's config check and shown by setup check, but the detect script computes installed routes from the bundled routing rows only, and the design skill never reads the resolved config. A team routing.deny: [figma] has no effect.

    Desired behavior:
    The resolved routes follow the routing-as-data convention's Team layer: a team row overrides the bundled row with the same concern and id key by key, a new team row adds a route, disable and deny are unions, a route skipped by deny names the team file as its source, and a missing or malformed team file degrades to the bundled routes with a disclosure. The design skill reads the resolved config and names the team file when deny skips a route.

    Key interfaces:

    • The detect script's resolved routes output: includes team routing.
    • The design skill's route source: the resolved config.

    Acceptance criteria:

    • Detect tests cover a team override row, a team-added row, disable, deny with the team file named as source, and a malformed team file that degrades to bundled routes with a disclosure.
    • scripts/run-test-file.sh passes on the detect test file.
    • The design skill reads the resolved config and names the team file when deny skips a route.
    • The validated-only notes in the user-interface README and the routing-as-data adopters row are gone.
    • CI's skill-quality passes on the PR (a PR check; this run does not run it).
    • scripts/check-changelog-fragments.sh passes.

    Out of scope:


    This was generated by AI during backlog shaping. Held, not admitted: this brief is drafted and checked, but the issue lane would stop on it today. It is admitted, by adding agent-ready, once the lane can run the skill-quality check scripts (Automation Lanes' PR #7912). Held under the owner's 2026-10-18 lane-narrowing course correction.

  9. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 18, 2026
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.

    Fields

    No fields configured for Feature.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions