Skip to content

Commit 7b538ee

Browse files
freshtechbrocodex
andcommitted
fix: surface validated workflow lanes in cli guidance
- forward shared workflow transport timeouts for research, shopping, and product-video commands - add validated transcript, research, and shopping lanes to help, onboarding, docs, and skill guidance - extend the best-practices router and CLI help tests to lock the reliable workflows Co-authored-by: Codex <noreply@openai.com>
1 parent 3b481b3 commit 7b538ee

15 files changed

Lines changed: 199 additions & 38 deletions

File tree

docs/CLI.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
Command-line interface for installing and managing the OpenDevBrowser plugin, plus automation commands for agents.
44
Status: active
5-
Last updated: 2026-04-03
5+
Last updated: 2026-04-06
66

77
OpenDevBrowser exposes 57 `opendevbrowser_*` tools; see `README.md` and `docs/SURFACE_REFERENCE.md` for the full inventories.
8-
Generated help is the primary first-contact inventory and onboarding surface. Agent runs should start with `opendevbrowser_prompting_guide` or `opendevbrowser_skill_load opendevbrowser-best-practices "quick start"` before low-level browser commands. Load `opendevbrowser-design-agent` immediately after that baseline for frontend, screenshot-to-code, or `/canvas` design work. Use continuity guidance only for long-running handoff or compaction.
8+
Generated help is the primary first-contact inventory and onboarding surface. Agent runs should start with `opendevbrowser_prompting_guide` or `opendevbrowser_skill_load opendevbrowser-best-practices "quick start"` before low-level browser commands, then load `opendevbrowser_skill_load opendevbrowser-best-practices "validated capability lanes"` when they need the currently proven transcript, research, and shopping workflows. Load `opendevbrowser-design-agent` immediately after that baseline for frontend, screenshot-to-code, or `/canvas` design work. Use continuity guidance only for long-running handoff or compaction.
99
Tool-only commands `opendevbrowser_prompting_guide`, `opendevbrowser_skill_list`, and `opendevbrowser_skill_load` run locally via the skill loader. They are onboarding helpers, not browser-runtime commands, and they do not require relay or daemon bootstrap.
1010
CLI-only power command `rpc` intentionally has no tool equivalent; it is an internal daemon escape hatch behind an explicit safety flag and should be used with extreme caution.
1111
Public-surface metadata now flows from `src/public-surface/source.ts` through `scripts/generate-public-surface-manifest.mjs` into `src/public-surface/generated-manifest.ts`, which is consumed by `src/cli/help.ts`, `src/cli/args.ts`, and re-exported by `src/tools/index.ts`. Onboarding literals still live in `src/cli/onboarding-metadata.json`, and runtime execution authority remains `src/cli/args.ts` plus `src/tools/index.ts`.
@@ -253,6 +253,7 @@ npx opendevbrowser -v
253253

254254
`--help` and `help` print the same generated first-contact inventory:
255255
- An `Agent Quick Start` block that tells agents to start with `opendevbrowser_prompting_guide` or `opendevbrowser_skill_load opendevbrowser-best-practices "quick start"` before low-level browser commands.
256+
- A follow-up `validated_lanes` entry that points agents to `opendevbrowser_skill_load opendevbrowser-best-practices "validated capability lanes"` for the current reliable transcript, research, and shopping runbook.
256257
- A direct pointer to `opendevbrowser_skill_list` when an agent needs a different local skill lane.
257258
- The complete generated CLI command, flag, and `opendevbrowser_*` tool inventories.
258259
- Canonical pointers to `docs/FIRST_RUN_ONBOARDING.md`, `skills/opendevbrowser-best-practices/SKILL.md`, and `docs/SURFACE_REFERENCE.md`.
@@ -396,7 +397,7 @@ The workflow wrappers expose the finalized research/shopping/product-video surfa
396397

397398
```bash
398399
npx opendevbrowser research run --topic "browser automation" --days 30 --mode compact
399-
npx opendevbrowser research run --topic "market map" --from 2026-02-01 --to 2026-02-16 --source-selection all --mode json
400+
npx opendevbrowser research run --topic "Chrome extension debugging workflows" --days 30 --source-selection auto --mode json
400401
npx opendevbrowser research run --topic "creator tools" --sources web,shopping --include-engagement --limit-per-source 5 --mode context
401402
```
402403

@@ -418,19 +419,26 @@ Flags:
418419
- `--cookie-policy-override` (`off|auto|required`)
419420
- `--cookie-policy` (alias of `--cookie-policy-override`)
420421

422+
Notes:
423+
- Use `--source-selection auto` for generic topical research.
424+
- In the current contract, `auto` and `all` both stay inside the public topical families (`web`, `community`, `social`).
425+
- Add shopping only with `--source-selection shopping` or explicit `--sources ...shopping...` when the task is deliberately commercial.
426+
421427
#### Shopping (`shopping run`)
422428

423429
```bash
424430
npx opendevbrowser shopping run --query "usb microphone" --mode compact
425-
npx opendevbrowser shopping run --query "portable monitor" --providers shopping/amazon,shopping/newegg --sort lowest_price --mode md
426-
npx opendevbrowser shopping run --query "desk chair" --budget 250 --region us --mode path
431+
npx opendevbrowser shopping run --query "wireless ergonomic mouse" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --mode json --output-format json
432+
npx opendevbrowser shopping run --query "27 inch 4k monitor" --providers shopping/bestbuy,shopping/ebay --budget 350 --sort lowest_price --browser-mode managed --mode json --output-format json
433+
npx opendevbrowser shopping run --query "wireless earbuds" --providers shopping/amazon --region us --browser-mode managed --mode json --output-format json
427434
```
428435

429436
Flags:
430437
- `--query` (required)
431438
- `--providers` (comma-separated; defaults to all v1 adapters)
432439
- `--budget`
433440
- `--region`
441+
- `--browser-mode` (`auto|extension|managed`)
434442
- `--sort` (`best_deal|lowest_price|highest_rating|fastest_shipping`)
435443
- `--mode` (`compact|json|md|context|path`)
436444
- `--timeout-ms`
@@ -441,6 +449,11 @@ Flags:
441449
- `--cookie-policy-override` (`off|auto|required`)
442450
- `--cookie-policy` (alias of `--cookie-policy-override`)
443451

452+
Notes:
453+
- Use explicit providers plus `--browser-mode managed` for the most reproducible live reruns.
454+
- Treat `--region` as advisory unless `meta.selection.region_authoritative=true`.
455+
- When a run returns no final offers, inspect `meta.primaryConstraintSummary` and `meta.offerFilterDiagnostics` before classifying the provider path as broken.
456+
444457
#### Product presentation asset (`product-video run`)
445458

446459
```bash
@@ -1611,7 +1624,7 @@ When using `--with-config`, a `opendevbrowser.jsonc` is created with documented
16111624
"enableYtdlpAudioAsr": true,
16121625
"enableApify": true,
16131626
"apifyActorId": "streamers/youtube-scraper",
1614-
"enableBrowserFallback": true,
1627+
"enableBrowserFallback": false,
16151628
"ytdlpTimeoutMs": 10000
16161629
}
16171630
},
@@ -1624,14 +1637,15 @@ When using `--with-config`, a `opendevbrowser.jsonc` is created with documented
16241637
16251638
The optional `skills.nudge` section controls the small one-time prompt hint that encourages early `skill(...)` usage on skill-relevant tasks. The optional `continuity` section controls the long-running task nudge and the ledger file path.
16261639
Fingerprint runtime defaults are Tier 1/2/3 enabled, with Tier 2 and Tier 3 driven by continuous signals (debug trace remains readout/reporting).
1627-
Provider runtime anti-bot/transcript controls default to an exhaustive YouTube fallback chain:
1640+
Provider runtime anti-bot/transcript controls default to a public-first YouTube resolver chain:
16281641
- Transcript mode semantics: `auto | web | no-auto | yt-dlp | apify`.
16291642
- Request filter precedence is `filters.youtube_mode > providers.transcript.modeDefault > auto`.
16301643
- No CLI mode flag is introduced in this phase; mode is configured in `providers.transcript.modeDefault` or per-request `youtube_mode` filter.
1631-
- Auto mode fallback chain is `youtubei -> native_caption_parse -> ytdlp_audio_asr -> apify`, with browser-assisted fallback attempted last when browser escalation is available.
1644+
- Auto mode fallback chain is `youtubei -> native_caption_parse -> ytdlp_audio_asr -> apify`.
16321645
- `yt-dlp` audio transcription requires `providers.transcript.enableYtdlpAudioAsr=true`.
16331646
- Apify requires `providers.transcript.enableApify=true`, a valid `APIFY_TOKEN`, and legal checklist approval for `apify`.
1634-
- Browser-assisted fallback requires `providers.transcript.enableBrowserFallback=true` and `providers.antiBotPolicy.allowBrowserEscalation=true`.
1647+
- Browser-assisted fallback is opt-in only and requires `providers.transcript.enableBrowserFallback=true` plus `providers.antiBotPolicy.allowBrowserEscalation=true`.
1648+
- If browser fallback is enabled, run it in an isolated automation profile instead of a daily logged-in Google profile.
16351649
16361650
Provider workflow and execution outputs now include normalized transcript/anti-bot telemetry:
16371651
- Primary provider follow-up summary: `meta.primaryConstraintSummary`.

docs/FIRST_RUN_ONBOARDING.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# First-Run Onboarding (Pre-Release)
22

33
Status: active
4-
Last updated: 2026-04-04
4+
Last updated: 2026-04-06
55

66
This guide is the shipping checklist for validating OpenDevBrowser as a new user **before npm distribution is live**.
77

@@ -55,9 +55,29 @@ Expected:
5555
- help opens with an `Agent Quick Start` block
5656
- the block explicitly points agents to `opendevbrowser_prompting_guide`
5757
- the block explicitly points agents to `opendevbrowser_skill_load opendevbrowser-best-practices "quick start"`
58+
- the block explicitly points agents to `opendevbrowser_skill_load opendevbrowser-best-practices "validated capability lanes"`
5859
- the block explicitly points agents to `opendevbrowser_skill_list` for alternate local workflow lanes
5960
- the block points to `docs/FIRST_RUN_ONBOARDING.md` for proof and `skills/opendevbrowser-best-practices/SKILL.md` as the canonical bundled runbook
6061

62+
## 2c) Validate the currently reliable workflow lanes
63+
64+
These are the most repeatable capability checks from the April 6 validation pass.
65+
66+
```bash
67+
npx --no-install opendevbrowser research run --topic "Chrome extension debugging workflows" --days 30 --source-selection auto --mode json --output-format json
68+
npx --no-install opendevbrowser shopping run --query "wireless ergonomic mouse" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --mode json --output-format json
69+
npx --no-install opendevbrowser shopping run --query "27 inch 4k monitor" --providers shopping/bestbuy,shopping/ebay --budget 350 --sort lowest_price --browser-mode managed --mode json --output-format json
70+
```
71+
72+
Use the bundled best-practices runbook for the full current lane set, including the public-first YouTube transcript probe:
73+
74+
```bash
75+
opendevbrowser_skill_load opendevbrowser-best-practices "validated capability lanes"
76+
```
77+
78+
Region note:
79+
- treat `--region` as advisory unless workflow output reports `meta.selection.region_authoritative=true`
80+
6181
## 3) Isolate config/cache to avoid daemon collisions
6282

6383
For onboarding tests on machines that already run OpenDevBrowser, isolate runtime state:

docs/TROUBLESHOOTING.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Troubleshooting
22

33
Status: active
4-
Last updated: 2026-03-20
4+
Last updated: 2026-04-06
55

66
## Hub daemon status
77

@@ -207,9 +207,9 @@ Where to inspect:
207207

208208
Transcript controls checklist:
209209

210-
1. Default behavior is exhaustive chain-on (`enableYtdlpAudioAsr=true`, `enableApify=true`, `enableBrowserFallback=true`).
210+
1. Default behavior is public-first (`enableYtdlpAudioAsr=true`, `enableApify=true`, `enableBrowserFallback=false`).
211211
2. Mode precedence is `filters.youtube_mode > providers.transcript.modeDefault > auto`; no new CLI mode flag is added in this phase.
212-
3. Keep the progressive fallback chain enabled for non-forced modes: `youtubei -> native_caption_parse -> ytdlp_audio_asr -> apify`.
212+
3. Keep the progressive resolver chain enabled for non-forced modes: `youtubei -> native_caption_parse -> ytdlp_audio_asr -> apify`.
213213
4. Enable Apify only when all are true:
214214
- `providers.transcript.enableApify`
215215
- `providers.transcript.apifyActorId` is configured
@@ -220,7 +220,8 @@ Transcript controls checklist:
220220
7. Enable browser fallback only when all are true:
221221
- `providers.transcript.enableBrowserFallback`
222222
- `providers.antiBotPolicy.allowBrowserEscalation`
223-
8. If `env_limited` appears for browser fallback, disable browser fallback and continue with deterministic resolver strategies.
223+
8. If browser fallback is enabled, use an isolated automation profile instead of a daily logged-in Google profile.
224+
9. If `env_limited` appears for browser fallback, disable browser fallback and continue with deterministic resolver strategies.
224225

225226
Strategy-specific quick checks:
226227

@@ -237,6 +238,13 @@ Strategy-specific quick checks:
237238
- confirm `APIFY_TOKEN` and legal approval for `apify`
238239
5. `transcript_strategy_detail=browser_assisted` failures:
239240
- verify browser escalation policy and fallback enablement settings
241+
- rerun in an isolated automation profile before treating the failure as a resolver regression
242+
243+
### Shopping region trust quick check
244+
245+
1. Treat `--region` as advisory unless `meta.selection.region_authoritative=true`.
246+
2. Inspect `meta.selection.region_support` and `meta.alerts` for `reasonCode=region_unenforced`.
247+
3. If `meta.primaryConstraintSummary` says the requested region was not enforced or that offers were filtered by the currency heuristic, do not present the run as a trustworthy regional comparison.
240248

241249
Reliability promotion and rollback criteria:
242250

skills/opendevbrowser-best-practices/SKILL.md

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: opendevbrowser-best-practices
33
description: This skill should be used when the user asks to design or run OpenDevBrowser provider workflows, scraping pipelines, QA/debug automation, parity checks across modes, or resilient browser operations with codified scripts and artifacts.
4-
version: 2.5.0
4+
version: 2.6.0
55
---
66

77
# OpenDevBrowser Best Practices
@@ -78,6 +78,51 @@ npx opendevbrowser help
7878
./skills/opendevbrowser-design-agent/scripts/design-workflow.sh contract-first
7979
```
8080

81+
## Validated Capability Lanes
82+
83+
Load this section directly with:
84+
85+
```text
86+
opendevbrowser_skill_load opendevbrowser-best-practices "validated capability lanes"
87+
```
88+
89+
Current reliable lanes from the April 6 validation pass:
90+
91+
1. Public-first YouTube transcript retrieval.
92+
93+
```bash
94+
node scripts/youtube-transcript-live-probe.mjs --url "https://www.youtube.com/watch?v=aircAruvnKk" --youtube-mode auto --out artifacts/capability-fix/youtube-transcript-auto.json
95+
```
96+
97+
Rules:
98+
- keep transcript runs public-first
99+
- browser-assisted transcript fallback is opt-in only
100+
- if browser fallback is enabled, use an isolated automation profile instead of a daily logged-in Google profile
101+
102+
2. Generic topical research without shopping contamination.
103+
104+
```bash
105+
npx opendevbrowser research run --topic "Chrome extension debugging workflows" --days 30 --source-selection auto --mode json --output-format json
106+
```
107+
108+
Rules:
109+
- use `--source-selection auto` for general research
110+
- use `--source-selection shopping` or explicit `--sources ...shopping...` only when the task is deliberately commercial
111+
- in the current contract, `auto` and `all` both resolve to `web`, `community`, and `social`
112+
113+
3. Deterministic shopping reruns with explicit providers.
114+
115+
```bash
116+
npx opendevbrowser shopping run --query "wireless ergonomic mouse" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --mode json --output-format json
117+
npx opendevbrowser shopping run --query "27 inch 4k monitor" --providers shopping/bestbuy,shopping/ebay --budget 350 --sort lowest_price --browser-mode managed --mode json --output-format json
118+
npx opendevbrowser shopping run --query "wireless earbuds" --providers shopping/amazon --region us --browser-mode managed --mode json --output-format json
119+
```
120+
121+
Rules:
122+
- use explicit providers plus `--browser-mode managed` for the most reproducible reruns
123+
- treat `--region` as advisory unless `meta.selection.region_authoritative=true`
124+
- inspect `meta.primaryConstraintSummary` and `meta.offerFilterDiagnostics` before calling a no-offer run a provider outage
125+
81126
## Agent Sync Targets
82127

83128
Skill-pack installation and discovery are synchronized for:
@@ -193,6 +238,7 @@ Use the router script to avoid retyping flows:
193238
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh canvas-preflight
194239
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh canvas-feedback-eval
195240
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh skill-runtime-audit
241+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh validated-capabilities
196242
```
197243

198244
## Modes and Surface Parity

skills/opendevbrowser-best-practices/scripts/odb-workflow.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ render_cli_prefix() {
1515
}
1616

1717
CLI_PREFIX="$(render_cli_prefix)"
18+
PACKAGE_ROOT="$(cd "$script_dir/../../.." && pwd)"
19+
TRANSCRIPT_PROBE_PATH="$(printf '%q' "$PACKAGE_ROOT/scripts/youtube-transcript-live-probe.mjs")"
1820

1921
print_help() {
2022
cat <<'EOF'
@@ -34,6 +36,7 @@ Workflows:
3436
parity-check
3537
release-direct-gates
3638
skill-runtime-audit
39+
validated-capabilities
3740
surface-audit
3841
ops-channel-check
3942
cdp-channel-check
@@ -149,10 +152,14 @@ EOF
149152
cat <<'EOF'
150153
npm run build
151154
node scripts/docs-drift-check.mjs
155+
# Discovery, lifecycle, and help parity
152156
npm run test -- tests/skill-loader.test.ts tests/skill-list-tool.test.ts tests/cli-skills-installer.test.ts
153157
npm run test -- tests/cli-help.test.ts tests/cli-help-parity.test.ts tests/skill-runtime-audit.test.ts tests/skill-workflow-packs.test.ts
154158
npx opendevbrowser --help
155159
npx opendevbrowser help
160+
WORKDIR=$(mktemp -d /tmp/odb-skill-audit-XXXXXX)
161+
OPENCODE_CONFIG_DIR="$WORKDIR/config" CODEX_HOME="$WORKDIR/codex-home" CLAUDECODE_HOME="$WORKDIR/claude-home" AMP_CLI_HOME="$WORKDIR/amp-home" npx opendevbrowser --global --full --no-prompt
162+
OPENCODE_CONFIG_DIR="$WORKDIR/config" CODEX_HOME="$WORKDIR/codex-home" CLAUDECODE_HOME="$WORKDIR/claude-home" AMP_CLI_HOME="$WORKDIR/amp-home" npx opendevbrowser --uninstall --global --no-prompt
156163
./skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh
157164
./skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh
158165
./skills/opendevbrowser-continuity-ledger/scripts/validate-skill-assets.sh
@@ -165,6 +172,22 @@ npx opendevbrowser help
165172
./skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh
166173
node scripts/skill-runtime-audit.mjs --smoke --out artifacts/skill-runtime-audit/smoke.json
167174
node scripts/skill-runtime-audit.mjs --out artifacts/skill-runtime-audit/full.json
175+
EOF
176+
;;
177+
validated-capabilities)
178+
cat <<EOF
179+
# Public-first YouTube transcript probe
180+
node $TRANSCRIPT_PROBE_PATH --url "https://www.youtube.com/watch?v=aircAruvnKk" --youtube-mode auto --out artifacts/capability-fix/youtube-transcript-auto.json
181+
182+
# Generic topical research without shopping contamination
183+
$CLI_PREFIX research run --topic "Chrome extension debugging workflows" --days 30 --source-selection auto --mode json --output-format json
184+
185+
# Deterministic shopping reruns with explicit providers
186+
$CLI_PREFIX shopping run --query "wireless ergonomic mouse" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --mode json --output-format json
187+
$CLI_PREFIX shopping run --query "27 inch 4k monitor" --providers shopping/bestbuy,shopping/ebay --budget 350 --sort lowest_price --browser-mode managed --mode json --output-format json
188+
189+
# Region note: advisory unless output reports meta.selection.region_authoritative=true
190+
$CLI_PREFIX shopping run --query "wireless earbuds" --providers shopping/amazon --region us --browser-mode managed --mode json --output-format json
168191
EOF
169192
;;
170193
surface-audit)

0 commit comments

Comments
 (0)