# Project selection research

Research date: 2026-08-10. Updated duplication check: 2026-08-24.

## 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;
- [`prowk/MoonSchema`](https://github.com/prowk/MoonSchema) and [`cosgammmmma/moonschema`](https://github.com/cosgammmmma/moonschema): JSON Schema/configuration validation and data modeling;
- [`lyjttio/moon-data-contract`](https://mooncakes.io/docs/lyjttio/moon-data-contract%400.2.1): contract model, runtime validation, schema evolution audit, registry/generation, governance, migration/rollback planning, policy gate and Markdown/JSON/JUnit/HTML evidence export;
- [`QinXi-ai/moonguard`](https://github.com/QinXi-ai/moonguard) and [`FidollarinLA/moon_api_guard`](https://github.com/FidollarinLA/moon_api_guard): MoonBit public API compatibility checking for package surfaces;
- [`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 and 2026-08-24 re-checks 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

GitHub searches for `EvoWitness MoonBit` and `MoonBit schema compatibility witness` returned no same-name or same-core-function repository. No MoonBit package was found whose primary function combines all of the following:

1. explicit backward/forward/full accepted-value-set compatibility semantics for two versioned payload models;
2. local classification of versioned payload model 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 beside 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, migration planner 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.
