Docs · PatentChecker

PatentChecker docs for evaluation, verification, and delivery risk

Use this lane for buyer evaluation, evidence verification, self-hosting, adapters, coverage scope, and the delivery-system surfaces behind vector and sequence IP review.

Patent IPDelivery riskVerificationSelf-serve
Need another page?
Search the docs

Jump to buyers, verification, demos, self-hosting, or adapters without opening the full docs tree first.

Mobile navigation
Jump to section
Open
This document defines the practical validation surface for patentchecker.
The repository has multiple kinds of checks:
  • compiled JavaScript/TypeScript tests;
  • source-only targeted tests;
  • Python tests;
  • deterministic artifact and example validation;
  • CI policy and release guardrails.
The goal of this page is to make it clear which command covers which risk.
If you need one bounded runtime path before choosing a validation command, start with docs/runtime-flows.md.

60-second chooser

Use the smallest row that matches the change. Add the higher-confidence row only when the change is buyer-visible, release-visible, or crosses lane boundaries.
Change areaMinimum local checkHigher-confidence check
Fresh clone, local runtime, or contributor setupnpm run contributor:smokenpm run repo:doctor -- --json --strict-local-runtime; npm run ecosystem:doctor -- --json
TS/JS runtime, CLI, or shared engine behaviornpm testaffected lane recipe below; npm run sellable:v1 for buyer-visible changes
Demo collateral, procurement package refresh, or scenario-specific bundle familiesuse the matching npm run test:demo, npm run test:exposure-bundle, or npm run test:intellia-risk-bundle from the lane recipe belownpm test when shared runtime code changed; npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].focused_validation_scripts, script_path_prefix, or the maintained workflow-family docs changed
MCP server tool/resource surface, manifest, or stdio startup wiringnpm run test:mcpnpm run ci:supported-surfaces-invariants when the documented MCP contract or maintained support docs changed
Self-serve onboarding bridge, preflight, first-run, or receipt verificationnpm run test:self-serve-bridgenpm test; npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].bridge_scripts, workflow_surface.family_policies[].focused_validation_scripts, or the maintained support docs changed
Platform-owned self-serve packaging, billing, ops-request, evaluation, or upgrade lifecycle flowsnpm run test:platform-self-serve; use npm run test:platform-self-serve:ops-request here for compatibility-wrapper changes and the same lane in ../patentchecker-platform for functional ops-request behavior; use npm run test:platform-self-serve:evaluation:delivery and npm run test:platform-self-serve:upgrade:delivery here for delegated delivery wrappers and the matching lanes in ../patentchecker-platform for functional delivery monitoring behavior; use npm run test:platform-self-serve:evaluation here for delegated evaluation delivery/follow-up wrappers plus the remaining local outcome/activation/issuance slice, and run the same lane in ../patentchecker-platform when delivery or follow-up behavior itself changed; use npm run test:platform-self-serve:upgrade here for delegated upgrade transition wrappers plus the remaining local ship/apply/return slice, and run the same lane in ../patentchecker-platform when transition behavior itself changednpm test; npm run ci:supported-surfaces-invariants when workflow_surface.family_policies for platform:self-serve:, including focused_validation_scripts, subfamily_path_policies, or delegated-wrapper metadata, or the maintained support docs changed
Internal outreach, sales collateral, or prime delivery workflowsuse the matching npm run test:internal-outreach, npm run test:internal-sales, or npm run test:internal-prime from the lane recipe belownpm test when shared runtime code changed; npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].focused_validation_scripts, script_path_prefix, or the maintained boundary docs changed
Offline packet, buyer verification, or public release docsnpm run miec:verify; add npm run ci:public-release-surface-invariants when release docs, assets, or workflow wiring changednpm run integrity:all -- --quiet; npm run release:mirror:smoke -- --quiet after publish
Watchlist, run verification, or adapter integrationnpm run test:watchlistnpm run demo:watchlist; npm run verify:run -- <run_dir> after a concrete run; npm test when shared engine behavior also changed
Valuation source normalization, report, or signed bundlenpm run test:valuationlane recipe below; npm run evidence-kit:check-golden when signing or canonicalization changed; npm test when shared engine behavior also changed
Python-backed verification or provenance helpersnpm run test:pythonaffected lane recipe when Python output is buyer-visible
Support policy, workflow family policy, or validation docsnpm run ci:supported-surfaces-invariantsnpm run contributor:smoke; npm run sellable:v1 when the change alters release behavior
Runtime metadata, package runtime, or CI workflow securitynpm run ci:runtime-metadata-invariants or npm run ci:workflow-security-invariantsnpm run sellable:v1 for release-sensitive changes

Command families

There are two command families in this repo, and they should not be treated as interchangeable.

1. Repo-health and contract checks

These confirm that contributor setup, policy wiring, release metadata, and support contracts are still aligned.
Examples:
  • npm run contributor:smoke
  • npm run repo:doctor -- --json --strict-local-runtime
  • npm run ci:supported-surfaces-invariants
  • npm run ci:public-release-surface-invariants
  • npm run ci:python-surface-invariants
  • npm run ci:runtime-metadata-invariants
  • npm run ci:workflow-security-invariants
These checks are necessary when you change docs, policies, release wiring, or runtime metadata. They do not prove that a product lane still behaves correctly.

2. Lane behavior checks

These confirm that a concrete product or operator path still works.
Examples:
  • npm run demo:watchlist
  • npm run verify:run -- <run_dir>
  • node dist/src/mcp/patentchecker_mcp_server.js --repo-root "$PWD" --print-manifest
  • patentchecker packet lint ...
  • patentchecker value --source ...
  • patentchecker verify <bundle_dir> ...
  • npm test
  • npm run test:python
These checks are the right place to start when you changed runtime behavior, verification behavior, or user-visible artifacts.
Use both families when a change crosses product behavior and policy or release boundaries.

Primary commands

CommandScopeIncludesDoes not includeWhen to use
npm testMain JS/TS regression suitenpm run build plus all compiled *.test.js files under dist/, discovered by scripts/run_all_tests.mjsSource-only JS tests outside dist; Python testsDefault repo regression check before and after code changes
npm run test:mcpFocused MCP lane regressionnpm run build, MCP manifest print via node dist/src/mcp/patentchecker_mcp_server.js --repo-root "$PWD" --print-manifest, plus the mcp group in scripts/run_all_tests.mjsUnrelated JS suites; Python tests; support-policy checksMCP server startup, manifest, tool wiring, or repo-root resolution changes
npm run test:self-serve-bridgeFocused repo-owned self-serve bridge regressionnpm run build plus the self-serve-bridge group in scripts/run_all_tests.mjs: doctor, first-run, license-status, provision, and receipt verification coveragePlatform-owned issuance and lifecycle flows; unrelated JS suites; Python testsSelf-serve onboarding bridge, preflight, first-run, or receipt verification changes
npm run test:platform-self-serveFocused platform self-serve wrapper regressionnpm run build plus the platform-self-serve group in scripts/run_all_tests.mjs: readiness-bundle, starter-package, receipt-package, rotation, invoice, and billing-queue coverageops-request, evaluation, and upgrade lifecycle clusters; unrelated JS suites; Python testsPlatform-owned wrapper, packaging, rotation, billing, or queueing changes before widening to a lifecycle cluster
npm run test:platform-self-serve:ops-requestFocused platform self-serve ops-request wrapper regression in this reponpm run build plus the platform-self-serve:ops-request group in scripts/run_all_tests.mjs, which now validates compatibility delegation into patentchecker-platformFunctional queue behavior, other lifecycle clusters, unrelated JS suites, Python testsWrapper or handoff changes under platform:self-serve:ops-request:*; run the same lane in ../patentchecker-platform when queue behavior itself changed
npm run test:platform-self-serve:evaluation:deliveryFocused delegated evaluation delivery wrapper regression in this reponpm run build plus the platform-self-serve:evaluation:delivery group in scripts/run_all_tests.mjs, which validates compatibility delegation for platform:self-serve:evaluation:{report,alert,scheduler}Functional delivery monitoring behavior, remaining evaluation implementation, other lifecycle clusters, unrelated JS suites, Python testsWrapper or handoff changes under platform:self-serve:evaluation:{report,alert,scheduler}; run the same lane in ../patentchecker-platform when delivery monitoring behavior itself changed
npm run test:platform-self-serve:upgrade:deliveryFocused delegated upgrade delivery wrapper regression in this reponpm run build plus the platform-self-serve:upgrade:delivery group in scripts/run_all_tests.mjs, which validates compatibility delegation for platform:self-serve:upgrade:{report,alert,scheduler}Functional delivery monitoring behavior, remaining upgrade implementation, other lifecycle clusters, unrelated JS suites, Python testsWrapper or handoff changes under platform:self-serve:upgrade:{report,alert,scheduler}; run the same lane in ../patentchecker-platform when delivery monitoring behavior itself changed
npm run test:platform-self-serve:evaluationFocused platform self-serve evaluation regressionnpm run build plus the platform-self-serve:evaluation group in scripts/run_all_tests.mjs, including the delegated delivery wrapper lane, the delegated delivery/follow-up wrapper lane, and the remaining local evaluation outcome/activation/issuance testsUpgrade lifecycle, unrelated JS suites, Python testsBroader platform:self-serve:evaluation:* changes that touch delegated delivery or follow-up wrappers, local outcome handling, local activation handling, or local issuance/packaging behavior
npm run test:platform-self-serve:upgradeFocused platform self-serve upgrade regressionnpm run build plus the platform-self-serve:upgrade group in scripts/run_all_tests.mjs, including the delegated upgrade delivery wrapper lane, the delegated upgrade transition wrapper lane, and the remaining local ship/apply/return testsEvaluation lifecycle, unrelated JS suites, Python testsBroader platform:self-serve:upgrade:* changes that touch delegated transition wrappers, local shipping, local application, or return packaging behavior
npm run test:internal-outreachFocused internal outreach regressionnpm run build plus the internal-outreach group in scripts/run_all_tests.mjs: contact-research queue, patch/finalize, drafts, send-ready, dashboard, ops-cycle, snapshot, momentum, and close-loop coverageSales or prime workflows; unrelated JS suites; Python testsoutreach:* changes under scripts/internal/outreach/
npm run test:internal-salesFocused internal sales collateral regressionnpm run build plus the internal-sales group in scripts/run_all_tests.mjs: court-ready offer and court-ready sales-kit coverageOutreach or prime workflows; unrelated JS suites; Python testssales:* changes under scripts/internal/sales/
npm run test:internal-primeFocused internal prime-delivery regressionnpm run build plus the internal-prime group in scripts/run_all_tests.mjs: signed-receipt preparation/validation, packet-c closure, evidence bundle, metadata validation, finalize, and ops SLO coverageOutreach or sales workflows; unrelated JS suites; Python testsprime:* changes under scripts/internal/prime/
npm run test:watchlistFocused watchlist regressionnpm run build plus the watchlist group in scripts/run_all_tests.mjs: watchlist compile/runner coverage, run verification, alerts summary views, and adapter/scope boundary testsEnd-to-end demo:watchlist; unrelated JS suites; Python testsWatchlist authoring, runner, adapter contract, or run-verification changes that do not need the full repo suite yet
npm run test:valuationFocused valuation regressionnpm run build plus the valuation group in scripts/run_all_tests.mjs: valuation runtime and CLI coverageEvidence-kit golden checks, full JS suite, Python testsValuation normalization, scoring, report, or CLI changes before widening to bundle-specific checks
npm run test:gov-proofTargeted source JS testtests/gov_proof_bundle.test.jsThe broader JS suite; Python testsFast verification when touching the gov proof bundle path
npm run test:pythonPython regression gatescripts/ci/pytest_gate.sh, pinned Python from .python-version, temporary virtualenv, locked dependencies from tests/requirements-ci.txt, pytest -q, fail-closed on interpreter drift and skipped/deselected/xfailJS/TS testsAny change that touches Python code under src/patentchecker/, patentchecker/, verify/, or Python-backed workflows
npm run contributor:smokeMaintained first-pass contributor preflightnpm run repo:doctor -- --json --strict-local-runtime plus npm run validate:examples via scripts/contributor_smoke.jsFull JS regression suite; Python tests; higher-order release gatesFresh clones, contributor-machine sanity checks, or the first repo-owned command to run before choosing a wider validation path
npm run test:demoFocused demo/collateral regressionnpm run build plus the demo group in scripts/run_all_tests.mjs: CRISPR demo, demo offline packet, gov proof, NASA horizon package, NAVSEA proof bundle, and NAVSEA outreach package coverageExposure or Intellia scenario bundles; unrelated JS suites; Python testsdemo:* changes that refresh collateral, public demo packets, or procurement-ready packages
npm run test:exposure-bundleFocused exposure-bundle regressionnpm run build plus the exposure-bundle group in scripts/run_all_tests.mjs: builder, tools, and pipeline coverage for exposure-bundle:v1:*Demo or Intellia bundle families; unrelated JS suites; Python testsexposure-bundle:* changes
npm run test:intellia-risk-bundleFocused Intellia risk bundle regressionnpm run build plus the intellia-risk-bundle group in scripts/run_all_tests.mjs: seed/build/pipeline coverage for intellia-risk-bundle:v1:*Demo or exposure-bundle families; unrelated JS suites; Python testsintellia-risk-bundle:* changes
npm run validate:examplesExample/build validationBuild plus example/schema validation via scripts/validate_examples.jsFull JS regression suite; Python testsWhen touching schemas, examples, fixtures, or generated example outputs
npm run miec:verifyMIEC evidence pathvalidate:examples plus scripts/miec_verify.jsGeneral repo regression surfaceWhen touching MIEC or offline packet verification paths
npm run evidence-kit:check-goldenDeterministic evidence-kit fixtureGolden fixture regeneration/check via scripts/generate_evidence_kit_golden_fixture.mjsGeneral app behaviorWhen touching evidence-kit canonicalization, packaging, signing, or deterministic output rules
npm run ci:runtime-metadata-invariantsRuntime metadata policyNode version alignment across package metadata, CI, and runtime descriptorsFunctional behaviorWhen touching package.json, CI runtime setup, Docker runtime, or release metadata
npm run ci:python-surface-invariantsPython workflow contract policySupported repo-run Python entrypoints, pinned Python 3.12 baseline, pytest gate, hashed requirements, workflow docs, and no-package-install stance via scripts/ci/check_python_surface_invariants.jsRuntime behavior of Python code itselfWhen touching Python entrypoints, Python workflow docs, pytest gate, or packaging boundaries
npm run ci:supported-surfaces-invariantsSupport-tier policyMachine-readable support-tier policy, contributor entry map, canonical npm workflow inventory under workflow_surface.primary_npm_entrypoints, exclusion of workflow_surface.non_default_prefixes from that primary inventory, non-default family policy under workflow_surface.family_policies, controlled target_home and transition_phase migration values and support-level combinations, grouped-family script_path_prefix guards, nested-cluster subfamily_path_policies, repo-owned bridge_scripts allowlists, family-level focused_validation_scripts, non-default family max_script_count caps, support-contract docs, workflow enforcement, and sellable gate alignment via scripts/ci/check_supported_surfaces_invariants.jsFunctional behavior of the product itselfWhen touching README.md, docs/mcp-server.md, docs/core-surfaces.md, docs/workflow-family-policy.md, SUPPORTED_SURFACES.md, CI enforcement wiring, or the support policy JSON
npm run ci:public-release-surface-invariantsPublic release contract policyMachine-readable public release asset policy, release workflow asset wiring, mirror allowlist, buyer/release docs, and release-gate filter alignment via scripts/ci/check_public_release_surface_invariants.jsRuntime behavior of the product itselfWhen touching public release assets, release docs, mirror automation, or release workflow asset wiring
npm run ci:workflow-security-invariantsCI/workflow policyWorkflow permission and action pinning rules described in docs/ci-invariants.mdProduct behaviorWhen touching .github/workflows/ or release automation
npm run ci:packetify-reproCross-environment determinismHost vs container packetify reproducibility via scripts/ci/packetify_reproducibility.shGeneral business logicWhen touching packetify, archive determinism, or bundle serialization
npm run sellable:v1Composite product gatevalidate:examples, npm test, contract descriptor check, workflow security invariants, runtime metadata invariants, Python surface invariants, buyer-surface checks, notices/compliance checks via scripts/sellable_v1_gate.jsPython testsPre-merge or pre-release confidence check for user-visible and buyer-visible changes
npm run integrity:all -- --quietBuyer-path integrity ceremonyvalidate:examples, npm test, MIEC verification, demo offline packet build, zip safety, native verify, optional mirror verification via scripts/integrity_all.jsPython tests unless run separatelyRelease and public-artifact confidence checks
npm run release:mirror:smoke -- --quietPublic mirror smokeDownload current-tag public mirror bytes, validate release_assets.sha256, run ZIP safety, extract demo_offline_packet.zip, run packet-native verification, and emit artifacts/ops_proof.json via scripts/integrity_all.js --mirror-onlyLocal build/test validation and Python testsAfter publishing a tag, or when validating the public mirror path in release-gate
npm run validate:shadowShadow-root validationvalidate:examples in a temporary shadow repoFull sellable gate; Python testsWhen local dist/ writes or working tree I/O make in-place validation unreliable
npm run sellable:v1:shadowShadow-root composite gatesellable:v1 in a temporary shadow repoPython testsSame use case as above, but for the higher-order sellable gate

Lane-based validation recipes

Use these recipes when the lane is clear but the exact command set is not. Each lane is split into a minimum check set and a higher-confidence set so ordinary changes do not default to the broadest gate.

Buyer and offline verification surface

Use this recipe when changing released packets, buyer verification docs, packet validation logic, or public release contract wiring.
Fastest repo-local smoke:
  • npm run miec:verify
  • npm run ci:public-release-surface-invariants when touching public release docs, release assets, or release workflow wiring
  • npm run validate:examples when packet inputs, examples, or normative docs changed
Artifact-side confirmation when you already have a packet:
  • patentchecker packet lint --packet-dir <PACKET_DIR> --validate-modules --validate-views --validate-zip
Policy and release-contract checks:
  • npm run ci:public-release-surface-invariants
Higher-confidence:
  • npm run integrity:all -- --quiet
  • npm run release:mirror:smoke -- --quiet after publish or when validating the public mirror path

Watchlist and monitoring surface

Use this recipe when changing watchlist authoring, runner behavior, adapters, packet views, or run verification.
Fastest targeted regression:
  • npm run test:watchlist
Focused behavior confirmation:
  • npm run demo:watchlist
  • npm run watchlist:run -- --watchlist <watchlist.v0.1.json> --out-dir <DIR> --run-at <ISO-8601Z>
  • npm run verify:run -- <run_dir>
Regression floor:
  • npm run test:watchlist
Higher-confidence:
  • patentchecker packet lint --run-dir <RUN_DIR> --packet-dir <PACKET_DIR> --validate-views when packet/view logic changed
  • npm run validate:examples when schemas, examples, or shipped fixtures changed
  • npm test when the same change also touched shared engine behavior outside the watchlist lane

Demo and scenario-specific bundle families

Use this recipe when changing demo collateral refresh paths under demo:* or scenario-specific bundle pipelines under exposure-bundle:* and intellia-risk-bundle:*. These families remain explicitly secondary, but the policy now records lane-specific maintainer entrypoints under workflow_surface.family_policies[].focused_validation_scripts and groups their entrypoint scripts under scripts/demo/, scripts/exposure_bundle/, and scripts/intellia_risk_bundle/.
Fastest targeted regression:
  • npm run test:demo for demo:*
  • npm run test:exposure-bundle for exposure-bundle:*
  • npm run test:intellia-risk-bundle for intellia-risk-bundle:*
Higher-confidence:
  • npm test when shared runtime code or common helper behavior also changed
  • npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].focused_validation_scripts, script_path_prefix, or the maintained workflow-family docs changed

Self-serve onboarding and receipt-verification bridge

Use this recipe when changing the repo-owned self-serve bridge: workspace provisioning, preflight checks, first-run orchestration, license status, or offline receipt verification. The bridge allowlist is tracked under workflow_surface.family_policies[].bridge_scripts, and its named maintainer entrypoint is tracked under workflow_surface.family_policies[].focused_validation_scripts; broader lifecycle flows now sit under platform:self-serve:*.
Fastest targeted regression:
  • npm run test:self-serve-bridge
Higher-confidence:
  • npm test
  • npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].bridge_scripts, workflow_surface.family_policies[].focused_validation_scripts, or the maintained support docs changed

Platform-owned self-serve issuance and lifecycle ops

Use this recipe when changing readiness bundles, starter packaging, receipt-packaging helpers, token or license rotation, invoice export or delivery, billing queues, ops-request processing, evaluation issuance, or upgrade lifecycle flows under platform:self-serve:*. The supported named entrypoints for these clusters are tracked under workflow_surface.family_policies[].focused_validation_scripts, and the grouped lifecycle directories are pinned under workflow_surface.family_policies[].subfamily_path_policies. The delegated ops-request slice records wrapper_only, delegated_to_repo, delegate_helper_path, and delegated_script_path_prefix, while the partially delegated evaluation and upgrade slices record delegated_scripts with the same repo/helper/path metadata, so the policy can distinguish checked-in compatibility wrappers from in-repo functional implementations. The ops-request cluster, the evaluation delivery-monitoring trio, the evaluation delivery/follow-up trio, and the delegated upgrade delivery and transition wrappers are now functionally owned by patentchecker-platform, so this repo only validates the compatibility wrappers for those slices.
Fastest wrapper-focused regression:
  • npm run test:platform-self-serve
Add the affected lifecycle cluster:
  • npm run test:platform-self-serve:ops-request when touching platform:self-serve:ops-request:* wrappers in this repo
  • cd ../patentchecker-platform && npm run test:platform-self-serve:ops-request when the queue behavior itself changed
  • npm run test:platform-self-serve:evaluation:delivery when touching platform:self-serve:evaluation:{report,alert,scheduler} wrappers in this repo
  • cd ../patentchecker-platform && npm run test:platform-self-serve:evaluation:delivery when evaluation delivery monitoring behavior itself changed
  • npm run test:platform-self-serve:evaluation when touching delegated platform:self-serve:evaluation:{mark-delivery,set-follow-up,mark-follow-up} wrappers or the remaining local platform:self-serve:evaluation: outcome/activation/issuance slice
  • cd ../patentchecker-platform && npm run test:platform-self-serve:evaluation when evaluation delivery or follow-up behavior itself changed
  • npm run test:platform-self-serve:upgrade:delivery when touching platform:self-serve:upgrade:{report,alert,scheduler} wrappers in this repo
  • cd ../patentchecker-platform && npm run test:platform-self-serve:upgrade:delivery when upgrade delivery monitoring behavior itself changed
  • npm run test:platform-self-serve:upgrade when touching delegated upgrade transition wrappers or the remaining local platform:self-serve:upgrade:{ship,mark-applied,return} slice
  • cd ../patentchecker-platform && npm run test:platform-self-serve:upgrade when upgrade transition behavior itself changed
Higher-confidence:
  • npm test
  • npm run ci:supported-surfaces-invariants when workflow_surface.family_policies for platform:self-serve:, including focused_validation_scripts, subfamily_path_policies, wrapper_only, delegated_scripts, delegated_to_repo, delegate_helper_path, or delegated_script_path_prefix, or the maintained support docs changed

Internal outreach, sales, and prime operating families

Use this recipe when changing script-backed internal operating workflows under outreach:*, sales:*, or prime:*. These families stay out of the default product surface, but their focused maintainer entrypoints are still recorded under workflow_surface.family_policies[].focused_validation_scripts so maintainers do not need raw file lists.
Fastest targeted regression:
  • npm run test:internal-outreach for outreach:*
  • npm run test:internal-sales for sales:*
  • npm run test:internal-prime for prime:*
Higher-confidence:
  • npm test when shared runtime code or common helper behavior also changed
  • npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].focused_validation_scripts, script_path_prefix, or the maintained boundary docs changed

MCP automation surface

Use this recipe when changing the stdio server startup path, tool wiring, resource manifests, repo-root resolution, or the documented MCP contract in docs/mcp-server.md.
Fastest focused regression:
  • npm run test:mcp
Higher-confidence:
  • npm run ci:supported-surfaces-invariants when changing package.json, docs/mcp-server.md, or the maintained support-tier docs

Patent valuation and evidence bundle surface

Use this recipe when changing valuation normalization, scoring, bundle generation, or offline bundle verification.
Fastest targeted regression:
  • npm run test:valuation
Concrete behavior confirmation:
  • npm run build
  • node dist/src/cli/patentchecker.js value --source examples/patent_valuation/epo_lnp_source.v0.1.json --cache-dir ./out/valuation-cache --signing-key tests/fixtures/evidence_kit/keys/ed25519_privkey.pem --out-dir ./out/epo_lnp.run --emit-markdown --zip --overwrite
  • node dist/src/cli/patentchecker.js verify ./out/epo_lnp.run/bundle --expected-fingerprint <ed25519:...>
Focused normalization check:
  • node dist/src/cli/patentchecker.js patent-valuation ingest --source examples/patent_valuation/epo_lnp_source.v0.1.json --out ./out/epo_lnp.inputs.json --cache-dir ./out/valuation-cache
Regression floor:
  • npm run test:valuation
  • npm run validate:examples
Higher-confidence:
  • npm run evidence-kit:check-golden when touching canonicalization, signing, or bundle serialization
  • npm test when the same change also touched shared engine behavior outside the valuation lane

Python-backed verification and provenance helpers

Use this recipe when changing Python-backed verification, evidence retrieval, provenance helpers, or documented repo-run Python entrypoints. Use docs/node-python-boundary.md when you need to decide whether the change is in a Python-owned workflow or only consumes Python-emitted artifacts from a Node-first lane.
Fastest regression check:
  • npm run test:python
Contract check:
  • npm run ci:python-surface-invariants
Higher-confidence:
  • pair the Python checks above with the higher-confidence gate from the affected product lane when Python changes alter buyer-visible or release-visible behavior

Support policy and release guardrails

Use this recipe when changing contributor policy, support tiers, release metadata, or workflow security rules.
Fastest repo-health check:
  • npm run contributor:smoke
Policy checks:
  • npm run ci:supported-surfaces-invariants
  • npm run ci:runtime-metadata-invariants
  • npm run ci:workflow-security-invariants when .github/workflows/** changed
Higher-confidence:
  • npm run sellable:v1
  • npm run integrity:all -- --quiet when the same change also affects buyer-visible release behavior

What npm test actually means

npm test is the default JavaScript/TypeScript regression command. It does two things:
  1. Builds the repository with npm run build.
  2. Recursively discovers every compiled *.test.js file under dist/ and runs them with node --test.
That makes it the correct default for most TS/JS changes, but it is not the entire repo validation surface. When the lane is clear, npm run test:watchlist, npm run test:valuation, npm run test:mcp, npm run test:self-serve-bridge, npm run test:demo, npm run test:exposure-bundle, npm run test:intellia-risk-bundle, the npm run test:platform-self-serve* family, and the npm run test:internal-* family keep maintainers on focused entrypoints instead of forcing raw node --test file lists or the full suite.
Notably, npm test does not cover:
  • tests/gov_proof_bundle.test.js, which is source-only and has its own command;
  • the Python suite executed by npm run test:python;
  • release/invariant checks such as runtime metadata, workflow security, packetify reproducibility, or integrity ceremony checks.

CI workflow mapping

The main workflow files map to the validation surface as follows.
WorkflowPurposeMain checks
.github/workflows/validate.ymlDefault PR/push sellable gateruntime metadata invariants, Python surface invariants, supported surfaces invariants, public release surface invariants, workflow security invariants, npm audit, npm run sellable:v1, Python gate
.github/workflows/tripwire.ymlMain-branch policy enforcementpublic audit, gitleaks, runtime/workflow invariants, Python surface invariants, supported surfaces invariants, public release surface invariants, validate:examples, npm test, evidence-kit golden, Python gate
.github/workflows/release-gate.ymlRelease-surface gatepublic release surface invariants, evidence-kit golden, npm run integrity:all, npm run release:mirror:smoke
.github/workflows/release.ymlRelease build/publish pathruntime metadata invariants, Python surface invariants, supported surfaces invariants, public release surface invariants, workflow security invariants, npm run sellable:v1, packaging/publication, npm run release:mirror:smoke after public mirror publish
.github/workflows/packetify-repro.ymlDeterministic packetify cross-checknpm run ci:packetify-repro
.github/workflows/miec.ymlMIEC path verificationnpm run validate:examples plus MIEC-specific checks

Change-based guidance

Use this as the minimum bar by change type.
Change typeMinimum local validation
TS/JS business logic under src/npm test
demo:* collateral, proof-bundle, or procurement-package behaviornpm run test:demo; add npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].focused_validation_scripts, script_path_prefix, or maintained workflow-family docs changed
Buyer verification docs, packet validation logic, or offline packet contract changesnpm run miec:verify; add npm run ci:public-release-surface-invariants when release docs, assets, or workflow wiring changed
exposure-bundle:* scenario-bundle behaviornpm run test:exposure-bundle; add npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].focused_validation_scripts, script_path_prefix, or maintained workflow-family docs changed
intellia-risk-bundle:* scenario-bundle behaviornpm run test:intellia-risk-bundle; add npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].focused_validation_scripts, script_path_prefix, or maintained workflow-family docs changed
MCP server tool, resource, manifest, or stdio startup behaviornpm run test:mcp; add npm run ci:supported-surfaces-invariants when the documented contract changed
Repo-owned self-serve bridge behaviornpm run test:self-serve-bridge; add npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].bridge_scripts or workflow_surface.family_policies[].focused_validation_scripts changed
Platform-owned self-serve wrapper, packaging, billing, or queueing behaviornpm run test:platform-self-serve; add the affected lifecycle cluster command when the change also touches ops-request, evaluation, or upgrade
platform:self-serve:ops-request:* wrapper behavior in this reponpm run test:platform-self-serve:ops-request; add cd ../patentchecker-platform && npm run test:platform-self-serve:ops-request when queue behavior changed
platform:self-serve:evaluation:{report,alert,scheduler} wrapper behavior in this reponpm run test:platform-self-serve:evaluation:delivery; add cd ../patentchecker-platform && npm run test:platform-self-serve:evaluation:delivery when delivery monitoring behavior changed
Delegated platform:self-serve:evaluation:{mark-delivery,set-follow-up,mark-follow-up} wrapper behavior in this reponpm run test:platform-self-serve:evaluation; add cd ../patentchecker-platform && npm run test:platform-self-serve:evaluation when delivery or follow-up behavior changed
platform:self-serve:upgrade:{report,alert,scheduler} wrapper behavior in this reponpm run test:platform-self-serve:upgrade:delivery; add cd ../patentchecker-platform && npm run test:platform-self-serve:upgrade:delivery when delivery monitoring behavior changed
Delegated platform:self-serve:upgrade:{mark-delivery,set-follow-up,mark-follow-up,mark-outcome} wrapper behavior in this reponpm run test:platform-self-serve:upgrade; add cd ../patentchecker-platform && npm run test:platform-self-serve:upgrade when upgrade transition behavior changed
Remaining local platform:self-serve:evaluation: outcome, activation, issuance, and packaging behaviornpm run test:platform-self-serve:evaluation
Remaining local platform:self-serve:upgrade:{ship,mark-applied,return} lifecycle behaviornpm run test:platform-self-serve:upgrade
outreach:* operating workflow behaviornpm run test:internal-outreach; add npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].focused_validation_scripts, script_path_prefix, or maintained boundary docs changed
sales:* collateral workflow behaviornpm run test:internal-sales; add npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].focused_validation_scripts, script_path_prefix, or maintained boundary docs changed
prime:* delivery workflow behaviornpm run test:internal-prime; add npm run ci:supported-surfaces-invariants when workflow_surface.family_policies[].focused_validation_scripts, script_path_prefix, or maintained boundary docs changed
Watchlist authoring, runner behavior, adapter integration, or run verificationnpm run test:watchlist
Valuation normalization, scoring, report, or CLI behaviornpm run test:valuation; add npm run validate:examples when examples or shipped outputs changed
Source-only gov proof bundle pathnpm run test:gov-proof
Python code under src/patentchecker/, patentchecker/, or verify/npm run test:python
Python workflow contract, pytest gate, or packaging boundarynpm run ci:python-surface-invariants and npm run test:python
Support policy, contributor entry map, MCP support contract, or support-tier enforcement wiringnpm run ci:supported-surfaces-invariants
Fresh clone or contributor-machine sanity checknpm run contributor:smoke
Public release asset contract, mirror allowlist, or release workflow asset wiringnpm run ci:public-release-surface-invariants
Public mirror bytes after publishnpm run release:mirror:smoke -- --quiet
Schemas, examples, fixtures, normative docsnpm run validate:examples
Evidence-kit signing/canonicalization/bundle serializationnpm test and npm run evidence-kit:check-golden
Packetify/archive determinismnpm test and npm run ci:packetify-repro
CI/workflow metadata or runtime setupnpm run ci:workflow-security-invariants and npm run ci:runtime-metadata-invariants
Buyer-facing, release-facing, or packaging surfacenpm run sellable:v1
Public release or offline verification pathnpm run integrity:all -- --quiet

RepoIntel and Generated Wiki Note

The generated testing page under docs/wiki/testing.md is useful for orientation, but it is an inferred summary and may under-report the live repo surface.
In particular:
  • not every supported validation command is named test:*;
  • some high-signal validation commands live under validate:*, evidence-kit:*, ci:*, sellable:*, and integrity:*;
  • the generated wiki may sample only a subset of test files even when the repository contains a much larger test inventory under tests/, verify/, and src/**/*.test.*.
Treat the following as the source of truth, in this order:
  1. this page for the practical validation contract;
  2. config/supported_surfaces.policy.v0.1.json for the machine-readable support-tier map, canonical npm workflow inventory, non-default prefix exclusions, non-default family policy, controlled target_home and transition_phase values, support-level combinations, grouped-family script_path_prefix guards, nested lifecycle subfamily_path_policies, repo-owned bridge_scripts allowlists, family-level focused_validation_scripts, and max_script_count caps;
  3. config/public_release_surface.policy.v0.1.json for the machine-readable public release asset map;
  4. SUPPORTED_SURFACES.md for support-level policy;
  5. package.json for the current command surface;
  6. the actual paths under tests/, verify/, and src/**/*.test.* for the live file inventory.
If you need a quick local inventory instead of an inferred wiki view, use:
BashRunnable example
rg --files tests src verify | rg '(^tests/|\\.test\\.(ts|js|py)$|/test_[^/]+\\.py$)'

Support stance

The commands in this file are the supported validation entrypoints for repository work.
By contrast:
  • ad hoc direct invocation of internal helper scripts under scripts/lib/** is not a supported validation contract;
  • generated wiki pages under docs/wiki/ are reference material, not the source of truth for test policy;
  • npm run test:python is the supported contributor-facing entrypoint for the Python gate, even though it is implemented by scripts/ci/pytest_gate.sh;
  • a passing npm test result should not be interpreted as a full release gate unless the relevant higher-order checks also passed.
PatentChecker testing matrix | Omnis documentation | Omnis Genomics