Repository navigation
user-experience: install-test and confirm the unconfirmed and deferred route rows #6667
Description
Refs: #6306
Problem
The user-experience plugin ships its route rows (plugins/user-experience/reference/routing.json) without install-testing the third-party tools they name. Per the routing-as-data convention (docs/conventions/routing-as-data/README.md), account-free rows that were not tested ship unconfirmed and account-bound rows ship deferred, so shape and the job skills never route to a deferred row and disclose an unconfirmed one. These rows stay that way until someone installs each tool and confirms the route works.
| Job | Id | Kind | Account | Status | As of |
|---|---|---|---|---|---|
| research-instruments | /design:user-research |
skill | none | unconfirmed | 2026-10-09 |
| research-instruments | usertesting |
mcp | paid | deferred | 2026-10-09 |
| synthesis | /product-management:synthesize-research |
skill | none | unconfirmed | 2026-10-09 |
| synthesis | /design:research-synthesis |
skill | none | unconfirmed | 2026-10-09 |
| synthesis | dovetail |
mcp | login | deferred | 2026-10-09 |
| synthesis | miro@claude-plugins-official |
plugin | login | deferred | 2026-10-09 |
| flows-ia | figma@claude-plugins-official |
plugin | login | deferred | 2026-10-09 |
| flows-ia | miro@claude-plugins-official |
plugin | login | deferred | 2026-10-09 |
| flows-ia | optimal |
mcp | login | deferred | 2026-10-09 |
| evaluation | /design:design-critique |
skill | none | unconfirmed | 2026-10-09 |
| evaluation | maze |
mcp | login | deferred | 2026-10-09 |
| journeys | miro@claude-plugins-official |
plugin | login | deferred | 2026-10-09 |
| measurement | /product-management:metrics-review |
skill | none | unconfirmed | 2026-10-09 |
| measurement | contentsquare |
mcp | login | deferred | 2026-10-09 |
| analytics | amplitude@claude-plugins-official |
plugin | login | deferred | 2026-10-09 |
| analytics | posthog@claude-plugins-official |
plugin | login | deferred | 2026-10-09 |
| analytics | mixpanel |
mcp | login | deferred | 2026-10-09 |
Known weak spots: the optimal row's pointer is the vendor homepage and its detect name is unconfirmed; the test fixture tests/fixtures/mcp-list-empty.txt is not recorded claude mcp list output.
What install-and-test must show, per row
- The tool installs (plugin from its marketplace, MCP server from its documented setup) and
scripts/detect.mjsreports its id underinstalled. - The route's job runs through it from the matching skill (
/user-experience:shapeor the job skill) and returns output the skill can label. - The row's
detect,pointer,as_ofandrecheckare correct as of the test date.
Then set the row to confirmed (or remove it), update as_of, and note the test in the PR.
Acceptance criteria
- Every row in the table is
confirmedwith a freshas_of, or removed with a reason. node --test 'plugins/user-experience/tests/*.test.mjs'passes.
Activity
github-actions commentedon Oct 9, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Small
Complexity: Low
Uncertainty: Knowable
Flags: none
Blocked by: none
#6667 (comment)
The decision settles the open questions. The work is to install-test the 5 account-free skill rows in a sandboxed config directory and confirm them. The 12 account-bound rows stay deferred.
Automated triage, applied by the lanes App.
kyle-sexton commentedon Oct 13, 2026
Decision recorded. The owner approved applying independently verified recommendations (confirmed, low-risk set) on 2026-10-13.
Basis: AGENTS.md 'When to stop' (user-scope config needs the user); docs/conventions/routing-as-data/README.md:40-41
Basis: docs/conventions/routing-as-data/README.md:40-41 ('A deferred route is never used'); plugins/user-experience/reference/routing.json (12 deferred rows as of 2026-10-09)
routing.json ships 5 unconfirmed account-free skill rows and 12 deferred account-bound rows that need install-testing before they can be confirmed. Account-bound rows need the owner's logins (one is paid), and the acceptance criteria currently demand every row be confirmed or removed.
Verified by an independent fresh-context check (confirmed, risk low): gh issue view 6667 (OPEN); origin/main docs/conventions/routing-as-data/README.md:40-41 status rules; origin/main plugins/user-experience/reference/routing.json: 5 unconfirmed account-free, 12 deferred (miro x3), 2 confirmed; anthropics/knowledge-work-plugins: PUBLIC, marketplace lists design and product-management; all 5 SKILL.md paths exist (assumption true)
Admission to an agent lane stays with the work-class rules and owner ratification.
github-actions commentedon Oct 25, 2026
The triage sweep dispatched intake triage for this issue (attempt 2 of 2).
melodic-automation-lanes commentedon Oct 25, 2026
Not admitted to the issue lane: no trusted-human acceptance criteria: a listed human must put the confirmed
- [ ]criteria in the body or post them as their own comment, or, on an issue a listed human filed, intake's newest refinement comment must hold them unedited. Admission takes the issue once each of those is met, when intake triages it again (.github/actions/resolve-config/admission-rules.json).melodic-automation-lanes commentedon Oct 25, 2026
The latest triage verdict holds nothing: the issue is at
status: ready.melodic-automation-lanes commentedon Oct 25, 2026
Refinement. A read-only run explored this repository, searched its issues and pull requests, and read the allowed docs to draft what follows. On an issue a listed human filed, it counts as the issue's spec once posted, while unedited; it is still model text, so check it.
Intended outcome: Install-test the design and product-management plugins in a throwaway config directory and set the 5 account-free unconfirmed skill rows in routing.json to confirmed with a fresh as_of, leaving the 12 login or paid rows deferred.
Acceptance criteria
Dependencies
Related work
Sources read
Automated refinement by the lanes App. Admission counts only criteria a listed human wrote: to confirm these, post them as your own comment whose first line is
**Decision recorded.**, which sends the issue back through intake.kyle-sexton commentedon Oct 26, 2026
This was generated by AI.
Releasing the hold: no question is open. The latest
status: needs-decisioncame from admission ("no trusted-human acceptance criteria"), which ran before the refinement comment holding the criteria was posted. This issue was filed by a listed human, so the unedited refinement counts as its spec (owner Q78). The label comes off and intake triage is dispatched again so admission reads the refinement.One correction to the refinement: drop the last criterion's clause saying the issue "stays open for the 12 deferred rows". The 2026-10-13 decision narrowed the acceptance criteria to the 5 account-free rows, so the issue closes when those 5 are confirmed. The 12 paid rows stay deferred (docs/conventions/routing-as-data/README.md:40-41).
melodic-automation-lanes commentedon Oct 26, 2026
The work-resolve-issue lane stopped partway through this issue and needs a person.
Why, in the run's own words:
What the run says it did not do:
Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/40261911416
To retry, remove
needs-humanand addagent-readyagain.kyle-sexton commentedon Oct 26, 2026
This was generated by AI.
Routed to the host runner, not the owner. The remaining work is an install test in a throwaway
CLAUDE_CONFIG_DIRwith theclaudeCLI and node, which the issue lane cannot run (https://github.com/melodic-software/claude-code-plugins/actions/runs/40261911416).Under the owner's 2026-10-26 stop rule, a person is needed only for a change in intent or vision, an implementation finding that changes the intent or primary design, or a high or critical security issue; host, attended and eval runs are agent work. So
needs-humancomes off. It moves to thehost-runlabel, and the host runner takes it.