Repository navigation
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.2 remaining items
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.kyle-sexton commentedon Oct 28, 2026
Host run. Install-tested the five account-free user-experience routes in a throwaway
CLAUDE_CONFIG_DIRand ran each one from its job skill.What ran (2026-10-27, Claude Code 2.1.312):
claude plugin marketplace add anthropics/knowledge-work-plugins(commit 2574e29), thenclaude plugin install design@knowledge-work-pluginsandproduct-management@knowledge-work-plugins(both 1.2.0), plususer-experience@melodic-software0.2.7 from the branch. No user-scope config changed. The main login was checked before and after.node scripts/detect.mjsagainst that install: all five ids underinstalled, eachreachable: true,reasonnull.claude -p --permission-mode autosession per route, with the plugins loaded via--plugin-dir. A session-only PATH shim sent the skill'sclaude plugin listcall to the throwaway config. Each session invoked exactly the expected routed skill, named the route and labeled its output:/design:user-researchfrom/user-experience:plan-user-research/product-management:synthesize-researchfrom/user-experience:synthesize(rank 1)/design:research-synthesisfrom/user-experience:synthesize, with product-management not loaded (rank 2)/design:design-critiquefrom/user-experience:evaluate/product-management:metrics-reviewfrom/user-experience:evaluatenode --test plugins/user-experience/tests/*.test.mjs: 123 pass, 0 fail.Acceptance criteria:
as_ofset to 2026-10-27: pass.installed: pass.detect,pointerandrecheckchecked: pass. All were correct, so none changed.PR: #10608 (draft; closes this issue when merged).
Target labels: add none; remove host-run.