refactor: add DesignIR distillation pipeline
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# LLM semantic review contract
|
||||
|
||||
Read the sanitized `work/review/semantic-batch.json`, not raw STEP geometry.
|
||||
Maintain stable proposal identifiers when an existing candidate expresses the
|
||||
same method.
|
||||
|
||||
Write `work/review/experience-draft.json` with this shape:
|
||||
|
||||
```json
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"draft_kind": "llm_generalized_experience_proposals",
|
||||
"proposals": [
|
||||
{
|
||||
"id": "constraint.part_family.shared_axis",
|
||||
"kind": "constraint",
|
||||
"scope": ["part_family"],
|
||||
"evidence_query": {
|
||||
"required_features": ["rotational_body", "central_passage"],
|
||||
"required_relations": ["dominant_axis_alignment"],
|
||||
"context_features": ["rotational_body", "central_passage"]
|
||||
},
|
||||
"guidance": "Preserve a shared axis across the participating feature roles.",
|
||||
"semantic_rationale": "The relationship remains meaningful when individual dimensions change.",
|
||||
"check": "Confirm that participating features retain their intended common axis."
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Allowed kinds are `feature_motif`, `constraint`, `design_rule`,
|
||||
`validation_rule`, `failure_repair`, `dimensionless_distribution`, and
|
||||
`reconstruction_grammar`.
|
||||
Distribution proposals also provide `observation_name`; the publisher computes
|
||||
the distribution from private evidence and never accepts values from the draft.
|
||||
|
||||
A `reconstruction_grammar` proposal must additionally contain symbolic,
|
||||
number-free reconstruction content:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "reconstruction.patterned_prismatic_part.primary",
|
||||
"kind": "reconstruction_grammar",
|
||||
"scope": ["patterned_prismatic_part"],
|
||||
"evidence_query": {
|
||||
"required_features": ["planar_dominant_body", "cylindrical_feature_network"],
|
||||
"required_relations": [],
|
||||
"context_features": ["planar_dominant_body"]
|
||||
},
|
||||
"guidance": "Build a datum-driven envelope before adding the passage network and repeated features.",
|
||||
"semantic_rationale": "The staged method transfers across dimensional variants while preserving feature relationships.",
|
||||
"reconstruction_grammar": {
|
||||
"parameter_roles": ["overall_long_span", "overall_middle_span", "overall_short_span"],
|
||||
"datum_roles": ["part_center", "primary_axis", "primary_transverse_plane"],
|
||||
"feature_roles": ["planar_dominant_body", "cylindrical_feature_network"],
|
||||
"relation_roles": [],
|
||||
"canonical_stages": [
|
||||
{
|
||||
"id": "establish_reference_frame",
|
||||
"operation": "define_datums",
|
||||
"feature_roles": [],
|
||||
"reference_roles": ["part_center", "primary_axis"]
|
||||
},
|
||||
{
|
||||
"id": "construct_primary_envelope",
|
||||
"operation": "extrude_profile",
|
||||
"feature_roles": ["planar_dominant_body"],
|
||||
"reference_roles": ["part_center", "primary_axis"]
|
||||
}
|
||||
],
|
||||
"cardinality_classes": ["plane_dense", "cylinder_dense"],
|
||||
"validation_roles": ["closed_solid", "surface_mix_consistency"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Follow these rules:
|
||||
|
||||
- Require an evidence query composed only of semantic feature and relation
|
||||
tokens present in the sanitized batch.
|
||||
- Use scopes to prevent unrelated part families from supporting a proposal.
|
||||
- Use `context_features` to define the conditional population used for
|
||||
confidence, so a valid subtype method is not diluted by unrelated variants
|
||||
in the same broad family.
|
||||
- Explain why a proposal transfers across dimensions and variants.
|
||||
- Avoid dimensions, coordinates, source identifiers, face references, and
|
||||
numeric literals in prose.
|
||||
- Do not infer build order or causal failure mechanisms from final geometry.
|
||||
- Treat `canonical_stages` as a recommended reconstruction order, never as a
|
||||
claim about the source CAD history.
|
||||
- For reconstruction grammars, retain only roles and stages repeated by the
|
||||
scoped evidence. Do not insert family knowledge that the sanitized batch
|
||||
does not support.
|
||||
- Prefer a small set of meaningful methods over every possible feature pair.
|
||||
- Preserve earlier proposal IDs when evidence still supports the same meaning.
|
||||
- Let the publisher calculate support and confidence; never claim them in the
|
||||
draft.
|
||||
Reference in New Issue
Block a user