Repository navigation
Closed
Feature
3 / 33 of 3 issues completed
Copy link
Labels
priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.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
Parent
Refs #7555. Source: PLAN Phase 13 (first item), topic poteto-review. Thread: Tool per job (browser
and profiling).
Depends on
- config-cascade: settings resolution and convention home #7571 Settings resolution and convention home
- Child debugging: probe disallowed-tools MCP pattern and large-heap converter #7593 (Q561 probe) gates this thread's setting slice.
Outcome
Each job names one tool through a setting with a named default (browser_driver: playwright-cli):
skills check the tool resolves and stop if it is missing, and heap and trace analysis run in
analyze-profile's SQLite converter, with no MCP handoff.
Decisions
- One named tool per job, no MCP handoff: heap compare and trace analysis in analyze-profile's SQLite
converter;playwright-cliwith CDP sessions for driving and capture; skills name the command,
check it resolves, stop if missing, and say other browser tools are not substitutes (Q561).
Origin: Lauren's (Playwright plus CDP), owner's ("follow Lauren or better"). - Tool per job is a setting with a named default (e.g.
browser_driver: playwright-cli), read
through the adapter; when the default is missing, use the tool the user has, pick one per run and
say which, never rotate mid-run (Q569). Setting scope: repo. - Rejected: Chrome DevTools MCP as a handoff (its artifacts still accepted as input); Claude in
Chrome; Playwright MCP; Puppeteer CDPSession or chrome-remote-interface; memlab and agent-browser
until a run shows the converter cannot answer. - Research tags: skill
disallowed-toolswith an MCP server-wide pattern; the converter on a large
heap; Cursor support fordisallowed-tools(assumption 6, Q579). - This thread closes with the app-control thread's first slice (tool-per-job-setting).
Key interfaces
Variation verdicts: "Browser driver and profiling tools: abstract now; tool-per-job setting read
through the adapter; one named tool, no MCP handoff (Q561, Q569)." Settings: "Tool per job (e.g.
browser_driver: playwright-cli), repo."
Done when
- Child debugging: probe disallowed-tools MCP pattern and large-heap converter #7593 carries a
Probe result:comment for both parts. - The tool-per-job setting resolves through the config cascade with default
browser_driver: playwright-cli, and a skill that reads it stops with a named message when the
tool is missing (a test shows both). - Every slice sub-issue is closed by a merged PR.
Out of scope
- The app-control plugin and capture move (app-control thread).
Metadata
Metadata
Assignees
Labels
priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.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
Work status
ready
Activity
github-actions commentedon Oct 16, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Medium
Complexity: Medium
Uncertainty: Knowable
Flags: none
Blocked by: #7571, #7593
I understand this as adding a per-job tool setting (default
browser_driver: playwright-cli) that resolves through the config cascade. Skills that read it would stop with a named message when the tool is missing. Heap and trace analysis would stay in analyze-profile's SQLite converter, with no MCP handoff. The decisions and done-when items are specific, so I found no open intent question. The work depends on #7571 (settings resolution) and on the #7593 probe result. I found no likely duplicates in the open issues I was given.Automated triage, applied by the lanes App.
feat(testing): resolve a browser_driver setting and stop by name when…
14 remaining items
kyle-sexton commentedon Nov 1, 2026
Issue Triage session: removing agent-ready from this split parent; it waits on its open sub-issue #8651 (host-run), and lane runs on it no-op (run 41293763892).
kyle-sexton commentedon Nov 4, 2026
Status.
Agent choice, not an owner answer.
Intent: each job names one tool through a repo-scoped setting with a named default (
browser_driver: playwright-cli), skills stop by name when it is missing, and heap and trace analysis stay in analyze-profile's SQLite converter with no MCP handoff (this issue's Decisions, from Q561 and Q569 in the poteto-review interview ledger). The owner's 2026-10-20 dispositions round put one more slice under this issue, D9: pr-verify runs the project's own app-control skill after the deterministic tests (#7555 (comment)), filed as #8651. Two of the three Done-when items are met on main; the third waits only on #8651.Met:
Probe result:comment for both parts: thedisallowed-toolsserver-wide pattern (debugging: probe disallowed-tools MCP pattern and large-heap converter #7593) and the converter on a 510.9 MiB heap.browser_driverresolves through the testing cascade with defaultplaywright-cli(plugins/testing/scripts/resolve-config.sh:258), and/testing:run-e2erunscheck-browser-driver.sh(plugins/testing/skills/run-e2e/SKILL.md:199-200), which stops with a message naming the setting, value and source (plugins/testing/scripts/check-browser-driver.sh:35-36).plugins/testing/scripts/resolve-config.test.sh:505-546shows the default and the missing-tool stop. Delivered by feat(testing): resolve a browser_driver setting and stop by name when its tool is missing #8720 (merge commit 5a7c5d8), closing feat(testing): resolve a browser_driver setting and stop by name when its tool is missing #8539.plugins/debugging/skills/analyze-profile/SKILL.md:129-131), from feat(debugging): add compare and retainers subcommands to analyze-profile's query script #8830 (commit 20066ba).Remaining, kept out of the lane checklist: "every slice sub-issue is closed by a merged PR" waits on #8651, which edits the pr-verify workflow and carries
host-run. That is session-builder work (Automation Lanes), not a lane PR on this issue. No other lane work remains here; this issue closes when #8651 closes by a merged PR.needs-spec is satisfied by this record.
kyle-sexton commentedon Nov 6, 2026
kyle-sexton commentedon Nov 6, 2026
kyle-sexton commentedon Nov 6, 2026
Close audit against origin/main
41f3a2bc48(hub H94): 2 of 3 done-when met; the third is blocked outside this issue.Probe result:for both partsbrowser_driverresolves through the cascade with defaultplaywright-cli; a skill stops by name when it is missing; a test shows bothplugins/testing/scripts/resolve-config.sh:258(def=playwright-cli);plugins/testing/skills/run-e2e/SKILL.md:200runscheck-browser-driver.sh, which stops naming the setting, value and source (check-browser-driver.sh:35-37);resolve-config.test.sh:510-521covers the default and the layer order. Delivered by #8720 (closes #8539)PR_VERIFY_CLAUDE_API_KEYhas creditHeap compare stays in analyze-profile's converter (
plugins/debugging/skills/analyze-profile/SKILL.md:129-131), with no MCP handoff, as the Decisions require.Nothing for a lane to build here. #8651 and #11364 belong to the dedicated App Driven PR Verify session. This issue closes when #8651 closes. Lane 5 is releasing its lease.
kyle-sexton commentedon Nov 7, 2026
Closing record. All three done-when boxes are met, checked on main:
Probe result:comments, one for each part.browser_driver: playwright-cli. A skill that reads it stops with a named message when the tool is missing.plugins/testing/scripts/resolve-config.test.sh:514-518(the default, then atesting.yamloverride).:539-544. It exits 1 and names the setting, the command, the source and both ways forward, and says no other browser tool is a silent substitute.