Validate the package and its coverage
Test each entry, review generated expectations, and validate the exact package graph.
Coverage tests whether a binding reads the expected entries and fields. Package validation tests the locked route, transform, records, Lexicons, and presentation together. The two procedures are necessary before release.
Prepare the canonical files
Edit the definition, manifests, Lexicons, bindings, hook source, surfaces, and approved review evidence. Keep site URLs, selectors, and normalization rules in the package. Canonical Lexicon JSON controls runtime validation. Generated TypeScript is the authoring SDK. Hook modules must bundle into self-contained JavaScript. Read the runtime environment for available operations and imports.
For each new or changed Lexicon, lint the exact documents declared by its manifest:
yarn goat lex lint --json <lexicon-document>...
yarn fruitful lexicon generate <feed-package-definition> --write
yarn fruitful lexicon generate <feed-package-definition> --checkGenerate only after the Lexicons, bindings, and transform agree:
yarn fruitful plugin generate feed-packages/<name> --write --json
yarn fruitful plugin generate feed-packages/<name> --check --jsonIf runtime bytes change for an existing release, increase its version. Do not overwrite the recorded release digest.
Coverage
yarn fruitful plugin coverage feed-packages/<name> --jsonFor each fixture, examine these fields:
| Field | Meaning |
|---|---|
matchedEntryCount | Entries that the entry selector matched |
extractedEntryCount | Entries that produced an extract |
processedEntryCount | Entries stored after post-processing |
requiredFields | Fields that each entry must provide |
neverObservedFields | Declared fields that no entry provided |
rejectedEntryIndexes | Entries that post-processing rejected, with reasons |
entries[].semanticSignature | The field shape observed for each entry |
Test each matched entry. Give a reason for each required-field gap and rejection, or repair its cause. For a never-observed field, find whether its selector or its required status is incorrect. Keep evidence for each observed semantic shape. A sample of successful entries does not prove complete coverage.
For new captures, use the MCP inspection procedure.
Run analyze_binding_coverage and validate_capture_package against the same capture and definition.
Then validate the stored review cases with the CLI.
Validate
yarn fruitful plugin validate feed-packages/<name> --jsonThe validation summary is the canonical evaluator report without captured content. It evaluates each review case through the locked package graph:
| Check | Meaning of a pass |
|---|---|
execution | The transform ran without errors in the sandbox for each case. |
determinism | Two runs produced the same output bytes. |
coverage | Coverage met the required thresholds. |
lexicons | Each record passed its pinned Lexicon's validation. |
views | buildView produced a valid View for each root. |
goldens | Records matched the committed expectation. |
presentation | Rendered surfaces matched the committed presentation examples. |
Make sure the report identifies the intended package root and resolution.
resolutionDigest identifies the exact package graph that validation evaluated.
Examine the aggregate checks and each case's results.
Include record counts and types, determinism, coverage, rejections, required gaps, golden agreement, presentation agreement, and diagnostics.
Use detailed coverage output or local diagnostics when the summary cannot explain a result.
Examine meaning after generation
Compare generated expectations with approved evidence. Examine changed values, record identities, relationships, and Activity-root membership. Generation produces a candidate expectation, not evidence that the expectation is correct. If identities or relationships change unexpectedly, stop regeneration. Repair the Lexicon, binding, or transform before you continue.
The summary alone cannot prove the following properties:
- Correct record values and stable Activity-root membership.
- Capture readiness and approval of exact fixture bytes.
- Separation of runtime artifacts from private review evidence.
- Correct presentation meaning and a credible result for a reader.
Examine these properties through approved evidence, the product preview, and release inspection. Tell the reader whether the evidence came from stored fixtures or a new authenticated capture.
Update generated references when contracts change
Regenerate the published schemas and reference pages after changes to these contracts:
#extractor#recordRef- The CLI command table
- Manifest or binding Lexicons.
yarn docs:reference --write
yarn docs:reference --checkEdit the source contract for generated prose. Do not edit generated reference output directly.
Reference: CLI.