Repository navigation
Conversation
TueJon
left a comment
There was a problem hiding this comment.
Review — #26 @ afd3bd9 (round 1, first review)
Docs-only PR (+56/−0 across integrate.md, security.md, verify.md). No runtime, template, manifest, or workflow changes. CI check green at this head; ai-review is this task.
Product fit
In scope and warranted. Each addition guards a real failure mode of the skill's own workflow: duplicate tool ownership when a framework adapter already exposes a form action, adapter registration flags / fulfilled calls masking failures during VERIFY, and cross-origin tool selection confusing discovery with authorization. All four fit the skill's purpose (correct inventory → integrate → verify). No new product surface, no dependency, no default behavior change.
Correctness — claims checked against the repo
- Angular Signal Forms ownership (
integrate.md):https://angular.dev/ai/webmcpresolves (200). Guidance is "inventory before annotating, never add a second owner" — consistent with the skill's baseline-aware ground rule and the existing duplicate-name rollback behavior inheal.md/runtime.md. - Adapter observations (
integrate.md): explicitly dated and versioned (2026-11-02) local observations, placed directly above the existing "not tested framework-version certifications" disclaimer — correctly hedged, no certification implied. Contrast with the vendored runtime is accurate:runtime.mdconfirmscreateToolScopedisposal is AbortController registration teardown, and the runtime forwards execution options unchanged and converts bare null/undefined to structured errors, so the "adapter flag is not native evidence / preserve explicit structured results" advice matches shipped runtime semantics. - Native Playwright
page.webmcp(verify.md):https://playwright.dev/docs/api/class-webmcpresolves (200), so the API exists as cited. TheisError-without-throwing warning is consistent with the repo's own fail-closed result conventions, and the paragraph keeps the pinned standalone-harness default unchanged with an explicit do-not-upgrade-toolchain guard. No conflict with the existing Puppeteer paragraph. - Cross-origin gates (
security.md): three-gate description (embedder delegation, providerexposedTo, consumerfromOrigins) matches the repo's ownwebmcp.d.ts(exposedToon register,fromOriginsongetTools,RegisteredToolcarryingorigin+window), and the cited CG anchor section exists (spec page 200). "Discovery does not authorize execution" restates the skill's existing server-as-trust-boundary rule.
What I checked and found clean
- No secrets, no code, no schema/manifest changes;
package.json/skill.json/gemini-extension.jsonall remain 0.7.1 andCHANGELOG.mduntouched — correct for a docs-only change under the repo's version-parity rule. - No frontmatter touched (the known
argument-hint/tagsvalidator rejection noted in the PR body is pre-existing and out of scope; base is equally affected, so not this PR's blocker per the scope-boundary test). - No dead code introduced; no docs invalidated (no env vars, runbooks, or examples changed); no
release-steps/trigger (docs-only, no rollout step). - No external effects: nothing sends, publishes, provisions, or mutates customer systems; no deploy blast radius (no workflow/runner changes).
Findings
None. No blocking, no caveats. Two untested areas (full router navigation, Angular hydration/declarative duplicate registration) are disclosed in the PR body itself, not hidden.
Verdict
ship_it — mergeable as-is.
Framework-owned tools can already expose a form action. Adding declarative attributes or another imperative owner can duplicate that action, while adapter registration flags and fulfilled calls can hide failures.
This updates only the integration, verification and security references: inspect existing Angular Signal Form ownership before annotating; record versioned React/Vue/Angular adapter differences; recognize native Playwright's resolved
isErrorresults; and check all three cross-origin gates plus origin/window identity. The dependency-free default, vendored runtime, package pins, entrypoint and release versions stay unchanged.Validation:
npm run checkpassed (typechecks, syntax checks, 79/79 tests). The pinned local proof passed 47 journey assertions in native Chrome 156 and 47 separately against simulation, with all 24 journal entries reconciled. Native Playwright 1.64.1 enumeration, frame parity, read result and resolved-error behavior were exercised. Full router navigation, Angular hydration and declarative duplicate registration remain untested. The generic skill validator rejects existingargument-hint/tagsfrontmatter; this PR does not modify it.The internal proof report and reproducible fixture are tracked in TWB's workbench; explicit approval d-20261102-0740 covers this scoped guidance PR. No merge, release or deployment is included.