# Project selection research

Research date: 2026-08-10. Updated duplication check: 2026-08-21.

## Ecosystem scan

The project direction was selected after reviewing the Mooncakes package index and searching Mooncakes/GitHub for trace analysis, workflow, schema validation, schema evolution and compatibility tooling.

Existing neighboring MoonBit packages include:

- [`YumeCross/schema`](https://mooncakes.io/docs/YumeCross/schema): JSON Schema validation;
- [`mizchi/jsonschema`](https://mooncakes.io/docs/mizchi/jsonschema): JSON Schema validation and code generation;
- [`Betterlol/moon_zod`](https://mooncakes.io/docs/Betterlol/moon_zod): runtime schema validation and conversions;
- [`lyjttio/moon-data-contract`](https://mooncakes.io/docs/lyjttio/moon-data-contract%400.2.1): data contract validation, schema evolution audit, policy gate, migration plan and evidence export;
- [`JJ-ai-nb/moonbit-submit-guard`](https://mooncakes.io/docs/JJ-ai-nb/moonbit-submit-guard%400.1.0): hackathon submission readiness checks;
- [`WB-ai-nb/constraint-lens`](https://mooncakes.io/docs/WB-ai-nb/constraint-lens): reviewer-feedback parsing, novelty matrices and resubmission plans;
- [`NBB2006/harborcheck`](https://mooncakes.io/docs/NBB2006/harborcheck): README example verification and open-source provenance proof;
- [`SHX-ai-nb/capsuletrace-upload`](https://mooncakes.io/docs/SHX-ai-nb/capsuletrace-upload): capability boundaries, requirement traces and acceptance evidence;
- [`SCL-NN/moontracekit`](https://mooncakes.io/): logical clocks and causal analysis;
- [`mizchi/bitflow`](https://mooncakes.io/): workflow engine and DAG planning.

The trace/workflow direction was rejected because recent Mooncakes modules already cover adjacent capabilities. General JSON Schema validation was also rejected because multiple mature implementations exist. Broad data-contract governance was rejected after the 2026-08-20 re-check because `moon-data-contract` already covers that area. Submission-readiness, README/provenance proof, reviewer-feedback repair planning and acceptance-trace tooling were rejected after the 2026-08-21 re-check because the packages above already occupy those niches.

## Chosen gap

No MoonBit package was found whose primary function combines all of the following:

1. explicit backward/forward/full data-contract compatibility semantics;
2. local classification of schema evolution changes;
3. constructive minimal JSON counterexamples;
4. re-validation of each witness against both versions;
5. Markdown, JSON, SARIF and JSONL witness-pack reporting from a Wasm-friendly MoonBit core.

EvoWitness therefore occupies a complementary layer above validation and governance libraries. Its public narrative is deliberately witness-first: it is a compatibility falsifier and evidence-pack generator, not a registry, governance portal, submission checker, rejection-feedback planner, provenance proof toolkit, acceptance-trace matrix, JUnit reporter or all-purpose policy suite. Future adapters may translate JSON Schema or other formats into the EvoWitness model, but the current implementation does not copy or wrap their source code.

## Name check

Searches for “EvoWitness” and the core phrase “MoonBit schema compatibility witness” did not identify a conflicting software project or Mooncakes module. The module name remains subject to the publisher's Mooncakes namespace availability.

## Reproducibility and licensing decision

The implementation uses a self-contained DSL and hand-authored fixtures so evaluation does not require a service, database, browser or proprietary test corpus. The core is original MoonBit code under MIT; the only runtime import is MoonBit's standard JSON package.
