Deterministic measurement planning and quality evidence for dimensional inspection.
moon check --target all --deny-warn
moon test --target all --deny-warn
moon run src/cmd/metrologylet feature = {
id: "H1",
kind: @lsh775/moonbit_metrology.Hole,
nominal: 10.0,
lower: -0.1,
upper: 0.1,
datum: false,
}
let device = {
id: "cmm-01",
accuracy: 0.01,
reach: 50.0,
supported_kinds: [@lsh775/moonbit_metrology.Hole],
}
let plan = @lsh775/moonbit_metrology.plan(
part_id="bracket-01",
features=[feature],
devices=[device],
)moon run src/cmd/metrologymodel -> rules -> selection/planner -> execution/scheduling
| |
observations audit/report/export
|
statistics/capability/trendsmoon bench --release
moon bench --release --target nativemoon fmt --check
moon check --target all --deny-warn
moon test --target all --deny-warn
moon test --enable-coverage --deny-warn
moon coverage analyzepowershell -ExecutionPolicy Bypass -File scripts/count-production-moonbit.ps1pub(all) struct AcceptancePolicy {
warning_uncertainty_ratio : Double
fail_uncertainty_ratio : Double
minimum_cpk : Double
minimum_samples : Int
allow_unmeasured : Bool
}pub(all) struct AdapterContract {
kind : AdapterKind
supported_kinds : Array[FeatureKind]
required_fields : Array[String]
}pub(all) struct AuditTrace {
part_id : String
entries : Array[AuditEntry]
warnings : Array[String]
coverage : Double
capability : Bool
}pub(all) struct BatchQualityResult {
feature_id : String
observed_count : Int
defect_rate : Double
cpk : Double
decision : QualityDecision
}pub(all) struct BatchSummary {
feature_id : String
count : Int
pass_count : Int
fail_count : Int
unmeasured_count : Int
mean : Double
minimum : Double?
maximum : Double?
range : Double
standard_deviation : Double
defect_rate : Double
capability : CapabilitySummary
}pub(all) struct CapabilitySummary {
cp : Double
cpk : Double
adequate : Bool
sample_count : Int
uncertainty : Double
}pub(all) struct ControlLimits {
center : Double
lower : Double
upper : Double
sensitivity : Double
}pub(all) struct DashboardCard {
key : String
label : String
value : String
status : String
}pub(all) struct Device {
id : String
accuracy : Double
reach : Double
supported_kinds : Array[FeatureKind]
}pub(all) struct DeviceCandidate {
device_id : String
device : Device
score : Double
reason : SelectionReason
}pub(all) struct DeviceProfile {
device : Device
calibration_date : String
calibration_expiry : String
owner : String
}pub(all) struct Diagnostic {
code : String
message : String
index : Int
severity : DiagnosticSeverity
}pub(all) struct DurationEstimate {
step_count : Int
sample_count : Int
seconds : Double
setup_seconds : Double
measurement_seconds : Double
transfer_seconds : Double
}pub(all) struct EvidenceIndex {
observation_count : Int
unique_feature_count : Int
duplicate_feature_count : Int
sample_count : Int
feature_ids : Array[String]
}pub(all) struct ExecutionPhase {
phase : PlanPhase
steps : Array[MeasurementStep]
device_id : String
}pub(all) struct Feature {
id : String
kind : FeatureKind
nominal : Double
lower : Double
upper : Double
datum : Bool
}pub(all) struct MeasurementContext {
operator : String
instrument : String
environment : String
timestamp : String
}pub(all) struct MeasurementPlan {
part_id : String
steps : Array[MeasurementStep]
summary : PlanSummary
}pub(all) struct MeasurementStep {
feature_id : String
device_id : String
strategy : Strategy
direction : String
uncertainty : Double
}pub(all) struct Observation {
feature_id : String
value : Double
sample_count : Int
}pub(all) struct ObservationAnalysis {
feature_id : String
count : Int
summary : BatchSummary
within_control_limit_count : Int
outlier_count : Int
mean_residual : Double
trend : String
repeat_consistent : Bool
}pub(all) struct ObservationBatch {
feature_id : String
observations : Array[Observation]
context : MeasurementContext
}pub(all) struct OptimizationResult {
goal : OptimizationGoal
schedule : ScheduledPlan
baseline_score : Double
optimized_score : Double
improvement : Double
}pub(all) struct ParsedObservations {
observations : Array[Observation]
diagnostics : Array[Diagnostic]
}pub(all) struct PlanExplanation {
feature_id : String
device_id : String
reason : SelectionReason
message : String
}pub(all) struct PlanMetrics {
step_count : Int
single_count : Int
repeated_count : Int
scan_count : Int
device_count : Int
device_switches : Int
estimated_samples : Int
estimated_seconds : Double
total_uncertainty : Double
average_uncertainty : Double
maximum_uncertainty : Double
minimum_uncertainty : Double
datum_count : Int
normal_count : Int
warning_count : Int
}pub(all) struct PlanSummary {
coverage : Double
capability : Bool
steps : Int
warnings : Array[String]
}pub(all) struct ProgramSummary {
feature_count : Int
observed_feature_count : Int
pass_count : Int
fail_count : Int
unmeasured_count : Int
coverage : Double
pass_rate : Double
defect_rate : Double
mean_cpk : Double
minimum_cpk : Double
high_risk_count : Int
warning_count : Int
}pub(all) struct QualityDashboard {
part_id : String
summary : ProgramSummary
cards : Array[DashboardCard]
status : String
}pub(all) struct QualityScore {
coverage : Double
capability : Bool
warning_count : Int
score : Double
}pub(all) struct QualityTrendSummary {
batch_count : Int
total_samples : Int
total_defects : Int
defect_rate : Double
minimum_rate : Double
maximum_rate : Double
average_rate : Double
}pub(all) struct ReadinessReport {
catalog_diagnostics : Array[Diagnostic]
observation_diagnostics : Array[Diagnostic]
plan_diagnostics : Array[Diagnostic]
error_count : Int
warning_count : Int
ready : Bool
}pub(all) struct ReleaseCheck {
name : String
passed : Bool
detail : String
}pub(all) struct ReleaseGate {
part_id : String
checks : Array[ReleaseCheck]
ready : Bool
risk : String
}pub(all) struct ReplayResult {
expected_part_id : String
actual_part_id : String
expected_steps : Int
actual_steps : Int
matches : Bool
issues : Array[ReplayIssue]
}pub(all) struct ReportManifest {
schema_version : Int
application_version : String
part_id : String
feature_count : Int
observation_count : Int
step_count : Int
warning_count : Int
evidence_coverage : Double
reproducible : Bool
status : String
}pub(all) struct ResultCollection {
feature_ids : Array[String]
results : Array[FeatureResult]
pass_count : Int
fail_count : Int
unmeasured_count : Int
}pub(all) struct RiskMatrix {
low_count : Int
medium_count : Int
high_count : Int
total_count : Int
}pub(all) struct SchedulePolicy {
datum_first : Bool
group_by_device : Bool
max_batch_size : Int
}pub(all) struct ScheduledPlan {
part_id : String
steps : Array[MeasurementStep]
phases : Array[ExecutionPhase]
batches : Array[Array[MeasurementStep]]
phase_count : Int
device_switches : Int
estimated_seconds : Double
}pub enum Strategy {
SinglePoint
RepeatedPoint(count~ : Int)
Scan(count~ : Int)
}pub(all) struct TraceEvent {
kind : TraceEventKind
part_id : String
feature_id : String
step_index : Int
message : String
}pub(all) struct TrendPoint {
batch_id : String
sample_count : Int
defect_count : Int
}pub(all) struct ValidationSummary {
error_count : Int
warning_count : Int
is_valid : Bool
first_error_code : String
}pub(all) struct ValueQualityResult {
feature_id : String
value : Double
normalized_deviation : Double
uncertainty : Double
decision : QualityDecision
}pub enum Verdict {
Pass
Fail(reason~ : String)
Unmeasured
}fn acceptance_policy(warning_uncertainty_ratio~ : Double, fail_uncertainty_ratio~ : Double, minimum_cpk~ : Double, minimum_samples~ : Int, allow_unmeasured~ : Bool) -> AcceptancePolicyfn analyze_observations(feature~ : Feature, observations~ : Array[Observation], uncertainty~ : Double) -> ObservationAnalysisfn assess_readiness(features~ : Array[Feature], devices~ : Array[Device], plan~ : MeasurementPlan, observations~ : Array[Observation]) -> ReadinessReportfn benchmark_feature_csv() -> Stringfn build_audit_trace_with_features(plan~ : MeasurementPlan, features~ : Array[Feature], observations~ : Array[Observation]) -> AuditTracefn build_dashboard(features~ : Array[Feature], observations~ : Array[Observation], plan~ : MeasurementPlan) -> QualityDashboardfn build_report_manifest(plan : MeasurementPlan, features : Array[Feature], observations : Array[Observation], application_version : String) -> ReportManifestfn canonical_part_id(part_id : String) -> Stringfn capability_indices(feature~ : Feature, values~ : Array[Double], uncertainty~ : Double) -> CapabilitySummaryfn collect_feature_results(features : Array[Feature], observations : Array[Observation]) -> ResultCollectionfn device_profile(device~ : Device, calibration_date~ : String, calibration_expiry~ : String, owner~ : String) -> DeviceProfilefn device_transfer_seconds(previous : String, next : String) -> Doublefn evaluate_release_gate(plan : MeasurementPlan, features : Array[Feature], observations : Array[Observation]) -> ReleaseGatefn evaluate_value(policy~ : AcceptancePolicy, feature~ : Feature, value~ : Double, uncertainty~ : Double) -> ValueQualityResultfn new_device(id : String, accuracy : Double, reach : Double, supported_kinds : Array[FeatureKind]) -> Devicefn normalize_identifier(value : String) -> Stringfn pad_right(value : String, width : Int) -> Stringfn render_metric(key : String, value : Double) -> Stringfn sample_count_is_valid(count : Int) -> Boolfn schedule_policy(datum_first~ : Bool, group_by_device~ : Bool, max_batch_size~ : Int) -> SchedulePolicyfn split_steps_into_batches(steps : Array[MeasurementStep], max_batch_size : Int) -> Array[Array[MeasurementStep]]fn summarize_program(features~ : Array[Feature], observations~ : Array[Observation], plan~ : MeasurementPlan) -> ProgramSummaryfn truncate_text(value : String, limit : Int) -> Stringfn validate_observations(features : Array[Feature], observations : Array[Observation]) -> Array[Diagnostic]Install
Download zipDeterministic measurement planning and quality evidence for dimensional inspection.