Skip to content

Phase 22: capability truth table + MCP scope freeze + release gates - #54

Merged
lidge-jun merged 5 commits into
mainfrom
chore/strict-migration
May 6, 2026
Merged

Phase 22: capability truth table + MCP scope freeze + release gates#54
lidge-jun merged 5 commits into
mainfrom
chore/strict-migration

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

Rebased Phase 22 work onto current main (P02-P51 strict-checkjs already merged).

Commits (5)

  • d167987 feat(phase22.1): add CAPABILITY_TRUTH_TABLE.md as single source of truth
  • 2e2fbb6 feat(phase22.3): freeze MCP browser scope + strict input schema
  • 74bd2d9 docs(phase22.4): add EXTERNAL_CDP.md deferral doc
  • 45026f7 feat(phase22.6): named release gates with truth-table + scope-freeze checks
  • 662ed96 fix(phase22.6): wire gate:all into CI workflows and release scripts

Verification

  • gate:all 5/5 PASS (typecheck, tests, truth-table-fresh, mcp-scope-frozen, no-experimental-in-readme-ready-section)
  • tsc --noEmit -p tsconfig.checkjs.json: clean
  • tsc --noEmit -p tsconfig.checkjs-dom.json: clean
  • check-strict-baseline.mjs: 0 any / 0 debt all dirs
  • GPT Pro audit: PASS (rebased on local with all gates green; force-with-lease push completed)

Branch hygiene

After this merges, only main + chore/strict-migration remain (chore/strict-migration tracks future strict-migration work).

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

lidge-jun and others added 5 commits May 6, 2026 10:41
Phase 22 closeout. Adds structure/CAPABILITY_TRUTH_TABLE.md with the canonical
five-column status table (Capability | Status | Code Location | Tests |
Mirror In cli-jaw) covering browser runtime cleanup/doctor, ChatGPT/Gemini/
Grok resolvers, action-intent / target-resolver (incl. send.click),
answerArtifact, sourceAudit, frozen MCP browser tool scope, external CDP
deferral, benchmark trajectory, and named release gates. Links the table
from structure/INDEX.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Locks the agbrowse MCP browser-tool surface to the two implemented tools
(browser_snapshot, browser_click_ref) and tracks the eight planned tools
in NOT_IMPLEMENTED_BROWSER_TOOLS. Adds a strict JSON-Schema validator
(validateBrowserToolInput) wired into mcp-server.callMcpTool so any
unknown property, wrong type, missing required field, out-of-range
number, bad enum, or non-matching ref pattern is rejected before
provider work happens.

Adds test/unit/phase22-mcp-freeze.test.mjs as a regression gate that
fails if a new browser tool is registered without:
- being added to BROWSER_TOOLS or NOT_IMPLEMENTED_BROWSER_TOOLS, AND
- being mentioned in structure/CAPABILITY_TRUTH_TABLE.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Locks External / Remote CDP as deferred (experimental). Documents the
contract that must exist before the deferral is lifted (auth, lifecycle
ownership, policy boundary, trace-evidence parity, disconnect/origin
spoofing tests) and the rules for any experimental code paths
(EXPERIMENTAL marker, opt-in flag, truth-table sync, no README readiness
claim).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…checks

Add scripts/release-gates.mjs implementing 5 named gates:
- typecheck: node --check on entry points + structure/check-doc-drift.sh
  (agbrowse is .mjs; no tsc)
- tests: npm test
- truth-table-fresh: 7-day mtime window + required-term presence
- mcp-scope-frozen: enforces FROZEN_BROWSER_TOOL_NAMES via schema import
- no-experimental-in-readme-ready-section: scans README ready/feature
  sections for forbidden experimental terms

Wired via 6 package.json scripts (gate:typecheck, gate:tests,
gate:truth-table-fresh, gate:mcp-scope-frozen,
gate:no-experimental-in-readme-ready-section, gate:all).

Gates are the named contract referenced by Phase 22 release claims;
violating any one blocks a release.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add npm run gate:all step to:
- .github/workflows/release.yml (after fixture evals, before pack/publish)
- scripts/release.sh (before pack/publish dry-run)
- scripts/release-preview.sh (before pack dry-run)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@lidge-jun
lidge-jun merged commit 3507b41 into main May 6, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant