Skip to content

Add manual-only translation mode, mapping provenance, and actionable auto-mapping diagnostics - #186

Merged
TristinPorter merged 1 commit into
Devfrom
copilot/repository-explanation-and-evaluation
Jun 3, 2026
Merged

Add manual-only translation mode, mapping provenance, and actionable auto-mapping diagnostics#186
TristinPorter merged 1 commit into
Devfrom
copilot/repository-explanation-and-evaluation

Conversation

Copilot AI commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

This change introduces explicit translation-control modes and makes mapping selection provenance first-class in plan/runtime diagnostics. It enforces manual-only behavior when requested, preserves explicit relationships under fill-missing behavior, and adds targeted diagnostics for automatic, ambiguous, and unsupported mappings.

  • Translation control in CompilerOptions

    • Added AutoTranslationMode with:
      • Off → manual relationships only
      • FillMissingOnly (default) → auto-select only for uncovered rules
    • Added WarnOnAutomaticMappings (default true) to emit warning diagnostics for every auto-selected mapping.
  • First-class mapping provenance

    • Added MappingSelectionProvenance (Explicit, Automatic) to selected mappings.
    • Carried provenance into:
      • RuleCoverageSummary
      • MappingDecisionReport
      • runtime mapping-provenance diagnostics
    • Added RuntimeDiagnosticReport.MappingSummary with counts:
      • explicit mappings used
      • automatic mappings used
      • missing mappings
      • ambiguous mappings
  • Manual-only and fill-missing enforcement

    • AutoTranslationMode.Off now fails compilation when any source rule lacks an explicit relationship.
    • Failure messages enumerate missing source rules and direct users to define manual relationships.
    • FillMissingOnly preserves explicit mappings as authoritative and auto-selects only remaining uncovered rules.
  • Ambiguity/unsupported guidance and reliability integration

    • Added ambiguity diagnostics for close-confidence candidate sets, including top candidates and margin.
    • Added manual-required diagnostics for unsupported/uncovered rules.
    • Reliability violations now use explicit messages tied to:
      • unsupported mappings requiring manual relationships
      • ambiguous automatic mappings requiring manual relationships
      • automatic-mapping determinism concerns
  • Tests and docs updates

    • Expanded CDTk.Tests/UnitTest1.cs for:
      • manual-only failure on missing relationships
      • fill-missing partial semantics with per-auto warnings
      • explicit mapping non-override
      • ambiguity diagnostics
      • manual-required unsupported diagnostics
    • Updated README.md, docs/troubleshooting.md, and docs/release-readiness.md to document new options, diagnostics, and migration path.
var options = new CompilerOptions
{
    ReliabilityPolicy = TranslationReliabilityPolicy.Permissive,
    AutoTranslationMode = AutoTranslationMode.Off,   // require explicit relationships
    WarnOnAutomaticMappings = true
};

var compiler = new Compiler(sourceGrammar, targetGrammar, semantics, options);
var report = compiler.CompileSource(input).ToDiagnosticReport();
// report.MappingSummary + report.Decisions now expose explicit vs automatic provenance

@TristinPorter
TristinPorter marked this pull request as ready for review June 3, 2026 00:58
@TristinPorter
TristinPorter merged commit 384b585 into Dev Jun 3, 2026
1 check passed
@TristinPorter
TristinPorter deleted the copilot/repository-explanation-and-evaluation branch June 3, 2026 01:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants