HermitCrab synthesis: 98% of Mbugwe synthesis work goes to candidates whose root lookup hits but never match the surface

未关闭
#607 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
52/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
csharp
领域
backend

调研方向

Start with docs/hermitcrab-2026-10-21-search-cost-round.md, lines 319–330, then review the failure-reason trace from #534 and the related discussion in #560. Identify where synthesis failures are traced and determine how to classify candidates whose lexical lookup hits but whose surface does not match. Done means the failures are classified by rejecting rule in work steps; do not add pruning.

由索引模型根据 Issue 内容生成。

描述

Claude-drafted.

98% of Mbugwe's synthesis work goes to candidates whose lexical lookup hits but whose synthesis never matches the surface form. It is the largest unaddressed bucket on Mbugwe, and no sound prune is known. The same share was 86% on the private deletion variant, but that figure was measured before a port fix (fix B) that cut the variant's total work by 94.7%, so it does not describe the current port or hc.dll.

Status: open research lead, not started.

What we know (HC-Rust port, synthesis work in work steps):

  • 98% on Mbugwe; the record does not give the sample or the fix state for that figure.
  • 86% on the private deletion variant, before fix B (303,966,311 work steps then, 16,220,190 after).
  • A lexical oracle cannot prune these candidates: the root is reachable, so lexical-reachability pruning (ledger rows 10 and 11) cannot reach them.
  • The 2026-10-27 census on hc.dll attributes steps by failure reason (SurfaceFormMismatch is 27.2% of Mbugwe synthesis steps) but does not split root-reachable failures.

Not known: which rules reject these candidates, and whether a sound condition exists.

Proposed change: classify these failures by the rule that rejects them, in work steps. Do not add a prune until a sound condition is found.

Related: #534 (PR, closed, not merged), #560 (open). The failure-reason trace that would do the classification is #534's; the census harness (branch research/failure-reason-stats at af97348b) is test-only. PanGloss: sillsdev/PanGloss#109 (pointer, open), which depends on sillsdev/PanGloss#34 (open, ports #534).

Next: revive the #534 failure-reason trace, or extend the census harness, and report work steps per rejecting rule on Mbugwe.


Evidence -- what the record states
  • Open lead 4: 86% (deletion variant, before fix B) and 98% (Mbugwe) of synthesis work goes to candidates whose lookup hits but whose synthesis never matches the surface (L338-L341); the same sentence appears in the C1 verdict (L160-L162).
  • Fix B: a re-inserted segment-class node keeps its members on a featureless grammar. It was a bug in the Rust port; C# was already exact. Deletion variant, held list: 303,966,311 to 16,220,190 work steps, 94.7% less (L51).
  • Before fix B, a two-word profile of the deletion variant put synthesis at about 90% of parser work (L101-L103).
Sources -- pinned to 2eba2f50 (closed PR #490 record)
What would reopen this

A sound condition that rejects a root-reachable failure class before it is synthesised, with a work-step ceiling worth its cost.

主要语言
C#
星标
29
派生
16
平均合并
5 天 20 小时
30 天内合并 PR
11

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 有 Pull Request 模板
  • 没有贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

sillsdev/machine 的其他 Issue

查看 sillsdev/machine 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。