[PR #238] [MERGED] build: add canonical product catalog and docs drift checks #1889

Closed
opened 2026-10-16 21:12:12 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/238
Author: @N0zoM1z0
Created: 7/15/2026
Status: ✅ Merged
Merged: 7/15/2026
Merged by: @N0zoM1z0

Base: main ← Head: agent/add-canonical-product-catalog-docs-drift-checks


📝 Commits (1)

  • beb9ece build: add canonical product catalog and docs drift checks

📊 Changes

109 files changed (+1878 additions, -281 deletions)

View changed files

📝 .github/pull_request_template.md (+1 -1)
📝 .github/workflows/ci.yml (+1 -1)
📝 AGENTS.md (+2 -0)
📝 README.md (+3 -1)
📝 docs/api/assets/hierarchy.js (+1 -1)
📝 docs/api/assets/navigation.js (+1 -1)
📝 docs/api/assets/search.js (+1 -1)
📝 docs/api/classes/application_PermissionAuthority.PermissionPathError.html (+1 -1)
📝 docs/api/classes/application_ProcessCaptureError.ProcessCaptureError.html (+1 -1)
📝 docs/api/classes/application_ProjectPermissionStore.ProjectPermissionStoreError.html (+1 -1)
📝 docs/api/classes/browser_CdpBrowserProvider.CdpBrowserProvider.html (+10 -10)
📝 docs/api/classes/browser_CdpElectronProvider.CdpElectronProvider.html (+4 -4)
📝 docs/api/classes/domain_errors.AnalysisCancelledError.html (+1 -1)
📝 docs/api/classes/domain_errors.AnalysisCapabilityUnavailableError.html (+1 -1)
📝 docs/api/classes/domain_errors.AnalysisError.html (+1 -1)
📝 docs/api/classes/domain_errors.AnalysisInputError.html (+1 -1)
📝 docs/api/classes/domain_errors.AnalysisOutputError.html (+1 -1)
📝 docs/api/classes/domain_errors.AnalysisProtocolError.html (+1 -1)
📝 docs/api/classes/domain_errors.AnalysisTimeoutError.html (+1 -1)
📝 docs/api/classes/domain_errors.ArtifactOperationError.html (+1 -1)

...and 80 more files

📄 Description

Problem and product rationale

REA product facts were spread across runtime contracts, setup discovery, generated metadata, narrative documentation, and committed TypeDoc output. That made version, tool inventory, provider capability, setup client, schema, and CLI drift easy to introduce without CI detecting it.

This PR establishes a machine-readable source-derived product catalog and makes documentation drift a build failure.

Contract and behavior changes

  • Adds docs/product-catalog.json, derived from package metadata, runtime tool contracts, provider identities and capabilities, setup client definitions, public Zod schema constants, the actual Incur command router, and runtime catalog digests.
  • Makes CLI registration names and setup client metadata canonical runtime sources instead of maintaining separate documentation-only lists.
  • Exposes immutable provider identities and selected public schema constants so documentation tooling can derive facts without importing documentation code into runtime layers.
  • Adds non-mutating --check modes for generated package metadata and the error JSON schema.
  • Adds exact TypeDoc regeneration in a temporary directory followed by file-set and SHA-256 comparison.
  • Adds caller-visible README, localized README, AGENTS, and PR-template fact validation.
  • Adds npm run docs:check to the normal check pipeline and the dedicated CI docs job.
  • Regenerates committed TypeDoc output for newly exported canonical constants.

The MCP inventory remains 78 tools and the one-shot CLI command names remain unchanged.

Compatibility and migration

This is additive build and contributor tooling. There are no MCP schema changes, persisted schema version changes, setup path changes, provider identity changes, or runtime behavior changes. Existing users need no migration.

Contributors changing product facts should run npm run docs:generate and commit the generated catalog, TypeDoc, and schema output. npm run docs:check reports stale files without rewriting them.

Verification

  • npm run check — 106 test files and 724 tests passed; coverage gates passed.
  • npm run verify:package — packaged CLI, setup transaction, skill, 78-tool target-free MCP lifecycle, and related package claims passed.
  • npx vitest run tests/productCatalog.test.ts --coverage.enabled=false --retry=0 --reporter=verbose — 4 tests passed without retry.
  • npm run knip
  • npm run jscpd — passed configured threshold at 1.45% duplicated lines.
  • npm run scan:todos
  • Repeated npm run docs:generate produced byte-identical tracked output, API output, and product catalog digests.
  • git diff --check
  • GitHub Actions: all 12 checks passed, including coverage, Docs Generation, package E2E on Ubuntu and macOS, and real-browser verification.

Real provider verification

  • Real Hopper: not run; this PR does not change Hopper execution behavior or make a new Hopper claim.
  • Real Ghidra: not run; Ghidra support is not introduced in this PR.
  • Real Browser: passed in the GitHub Actions real-browser job against the verified PR head.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/238 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 7/15/2026 **Status:** ✅ Merged **Merged:** 7/15/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `agent/add-canonical-product-catalog-docs-drift-checks` --- ### 📝 Commits (1) - [`beb9ece`](https://github.com/morluto/rea/commit/beb9ece7d1921f4d977d59585da1f34665dbbb8d) build: add canonical product catalog and docs drift checks ### 📊 Changes **109 files changed** (+1878 additions, -281 deletions) <details> <summary>View changed files</summary> 📝 `.github/pull_request_template.md` (+1 -1) 📝 `.github/workflows/ci.yml` (+1 -1) 📝 `AGENTS.md` (+2 -0) 📝 `README.md` (+3 -1) 📝 `docs/api/assets/hierarchy.js` (+1 -1) 📝 `docs/api/assets/navigation.js` (+1 -1) 📝 `docs/api/assets/search.js` (+1 -1) 📝 `docs/api/classes/application_PermissionAuthority.PermissionPathError.html` (+1 -1) 📝 `docs/api/classes/application_ProcessCaptureError.ProcessCaptureError.html` (+1 -1) 📝 `docs/api/classes/application_ProjectPermissionStore.ProjectPermissionStoreError.html` (+1 -1) 📝 `docs/api/classes/browser_CdpBrowserProvider.CdpBrowserProvider.html` (+10 -10) 📝 `docs/api/classes/browser_CdpElectronProvider.CdpElectronProvider.html` (+4 -4) 📝 `docs/api/classes/domain_errors.AnalysisCancelledError.html` (+1 -1) 📝 `docs/api/classes/domain_errors.AnalysisCapabilityUnavailableError.html` (+1 -1) 📝 `docs/api/classes/domain_errors.AnalysisError.html` (+1 -1) 📝 `docs/api/classes/domain_errors.AnalysisInputError.html` (+1 -1) 📝 `docs/api/classes/domain_errors.AnalysisOutputError.html` (+1 -1) 📝 `docs/api/classes/domain_errors.AnalysisProtocolError.html` (+1 -1) 📝 `docs/api/classes/domain_errors.AnalysisTimeoutError.html` (+1 -1) 📝 `docs/api/classes/domain_errors.ArtifactOperationError.html` (+1 -1) _...and 80 more files_ </details> ### 📄 Description ## Problem and product rationale REA product facts were spread across runtime contracts, setup discovery, generated metadata, narrative documentation, and committed TypeDoc output. That made version, tool inventory, provider capability, setup client, schema, and CLI drift easy to introduce without CI detecting it. This PR establishes a machine-readable source-derived product catalog and makes documentation drift a build failure. ## Contract and behavior changes - Adds `docs/product-catalog.json`, derived from package metadata, runtime tool contracts, provider identities and capabilities, setup client definitions, public Zod schema constants, the actual Incur command router, and runtime catalog digests. - Makes CLI registration names and setup client metadata canonical runtime sources instead of maintaining separate documentation-only lists. - Exposes immutable provider identities and selected public schema constants so documentation tooling can derive facts without importing documentation code into runtime layers. - Adds non-mutating `--check` modes for generated package metadata and the error JSON schema. - Adds exact TypeDoc regeneration in a temporary directory followed by file-set and SHA-256 comparison. - Adds caller-visible README, localized README, AGENTS, and PR-template fact validation. - Adds `npm run docs:check` to the normal check pipeline and the dedicated CI docs job. - Regenerates committed TypeDoc output for newly exported canonical constants. The MCP inventory remains 78 tools and the one-shot CLI command names remain unchanged. ## Compatibility and migration This is additive build and contributor tooling. There are no MCP schema changes, persisted schema version changes, setup path changes, provider identity changes, or runtime behavior changes. Existing users need no migration. Contributors changing product facts should run `npm run docs:generate` and commit the generated catalog, TypeDoc, and schema output. `npm run docs:check` reports stale files without rewriting them. ## Verification - `npm run check` — 106 test files and 724 tests passed; coverage gates passed. - `npm run verify:package` — packaged CLI, setup transaction, skill, 78-tool target-free MCP lifecycle, and related package claims passed. - `npx vitest run tests/productCatalog.test.ts --coverage.enabled=false --retry=0 --reporter=verbose` — 4 tests passed without retry. - `npm run knip` - `npm run jscpd` — passed configured threshold at 1.45% duplicated lines. - `npm run scan:todos` - Repeated `npm run docs:generate` produced byte-identical tracked output, API output, and product catalog digests. - `git diff --check` - GitHub Actions: all 12 checks passed, including coverage, Docs Generation, package E2E on Ubuntu and macOS, and real-browser verification. ## Real provider verification - Real Hopper: not run; this PR does not change Hopper execution behavior or make a new Hopper claim. - Real Ghidra: not run; Ghidra support is not introduced in this PR. - Real Browser: passed in the GitHub Actions real-browser job against the verified PR head. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:12:12 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#1889
No description provided.