mustflow 2.116.1 → 2.116.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/templates/default/i18n.toml +72 -6
- package/templates/default/locales/en/.mustflow/skills/INDEX.md +37 -11
- package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/SKILL.md +477 -0
- package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/compiler-diagnostics-abi-linker-checklist.md +778 -0
- package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/compiler-generators-properties-checklist.md +501 -0
- package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/compiler-test-strategy-differential-checklist.md +498 -0
- package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/debug-symbol-symbolication-checklist.md +412 -0
- package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/ir-design-ssa-pass-pipeline-checklist.md +759 -0
- package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/miscompile-reduction-ir-checklist.md +434 -0
- package/templates/default/locales/en/.mustflow/skills/cross-platform-filesystem-safety/SKILL.md +55 -36
- package/templates/default/locales/en/.mustflow/skills/cross-platform-filesystem-safety/references/path-containment-handle-checklist.md +251 -0
- package/templates/default/locales/en/.mustflow/skills/file-upload-security-review/SKILL.md +133 -32
- package/templates/default/locales/en/.mustflow/skills/file-upload-security-review/references/file-upload-parser-ssrf-resource-checklist.md +306 -0
- package/templates/default/locales/en/.mustflow/skills/formal-verification-review/SKILL.md +310 -0
- package/templates/default/locales/en/.mustflow/skills/formal-verification-review/references/formal-concurrency-model-checking-smt-checklist.md +457 -0
- package/templates/default/locales/en/.mustflow/skills/formal-verification-review/references/formal-contracts-modeling-checklist.md +434 -0
- package/templates/default/locales/en/.mustflow/skills/formal-verification-review/references/formal-memory-bounds-ci-checklist.md +509 -0
- package/templates/default/locales/en/.mustflow/skills/fuzz-harness-review/SKILL.md +439 -0
- package/templates/default/locales/en/.mustflow/skills/fuzz-harness-review/references/fuzz-harness-campaign-checklist.md +379 -0
- package/templates/default/locales/en/.mustflow/skills/fuzz-harness-review/references/fuzz-oracle-triage-ci-checklist.md +307 -0
- package/templates/default/locales/en/.mustflow/skills/idempotency-integrity-review/SKILL.md +48 -28
- package/templates/default/locales/en/.mustflow/skills/idempotency-integrity-review/references/operation-ordering-stale-write-checklist.md +259 -0
- package/templates/default/locales/en/.mustflow/skills/input-boundary-validation-review/SKILL.md +329 -0
- package/templates/default/locales/en/.mustflow/skills/input-boundary-validation-review/references/input-boundary-security-checklist.md +319 -0
- package/templates/default/locales/en/.mustflow/skills/input-event-synchronization-review/SKILL.md +306 -0
- package/templates/default/locales/en/.mustflow/skills/input-event-synchronization-review/references/input-session-state-checklist.md +298 -0
- package/templates/default/locales/en/.mustflow/skills/input-event-synchronization-review/references/remote-input-transport-interaction-checklist.md +328 -0
- package/templates/default/locales/en/.mustflow/skills/interpreter-engineering-review/SKILL.md +353 -0
- package/templates/default/locales/en/.mustflow/skills/interpreter-engineering-review/references/interpreter-diagnostics-recovery-checklist.md +267 -0
- package/templates/default/locales/en/.mustflow/skills/interpreter-engineering-review/references/interpreter-execution-closure-performance-checklist.md +428 -0
- package/templates/default/locales/en/.mustflow/skills/interpreter-engineering-review/references/interpreter-gc-verification-checklist.md +457 -0
- package/templates/default/locales/en/.mustflow/skills/interpreter-engineering-review/references/interpreter-semantics-runtime-checklist.md +391 -0
- package/templates/default/locales/en/.mustflow/skills/modal-loop-reentrancy-review/SKILL.md +294 -0
- package/templates/default/locales/en/.mustflow/skills/modal-loop-reentrancy-review/references/modal-loop-reentrancy-checklist.md +290 -0
- package/templates/default/locales/en/.mustflow/skills/modal-loop-reentrancy-review/references/nested-modal-state-lifetime-checklist.md +297 -0
- package/templates/default/locales/en/.mustflow/skills/name-resolution-integrity-review/SKILL.md +252 -0
- package/templates/default/locales/en/.mustflow/skills/name-resolution-integrity-review/references/dns-network-resolution-checklist.md +394 -0
- package/templates/default/locales/en/.mustflow/skills/name-resolution-integrity-review/references/language-symbol-resolution-checklist.md +282 -0
- package/templates/default/locales/en/.mustflow/skills/name-resolution-integrity-review/references/module-package-loader-resolution-checklist.md +352 -0
- package/templates/default/locales/en/.mustflow/skills/parser-engineering-review/SKILL.md +103 -17
- package/templates/default/locales/en/.mustflow/skills/parser-engineering-review/references/cst-ast-lowering-checklist.md +260 -0
- package/templates/default/locales/en/.mustflow/skills/parser-engineering-review/references/lexer-tokenization-checklist.md +397 -0
- package/templates/default/locales/en/.mustflow/skills/parser-engineering-review/references/tree-serialization-compatibility-checklist.md +164 -0
- package/templates/default/locales/en/.mustflow/skills/parser-engineering-review/references/tree-traversal-rewrite-checklist.md +209 -0
- package/templates/default/locales/en/.mustflow/skills/race-condition-review/SKILL.md +68 -11
- package/templates/default/locales/en/.mustflow/skills/race-condition-review/references/race-reproduction-memory-model-checklist.md +268 -0
- package/templates/default/locales/en/.mustflow/skills/routes.toml +151 -0
- package/templates/default/locales/en/.mustflow/skills/session-handoff-integrity-review/SKILL.md +343 -0
- package/templates/default/locales/en/.mustflow/skills/session-handoff-integrity-review/references/session-auth-stream-resume-checklist.md +413 -0
- package/templates/default/locales/en/.mustflow/skills/session-handoff-integrity-review/references/session-handoff-protocol-checklist.md +485 -0
- package/templates/default/locales/en/.mustflow/skills/two-phase-transition-integrity-review/SKILL.md +267 -0
- package/templates/default/locales/en/.mustflow/skills/two-phase-transition-integrity-review/references/admission-decision-recovery-checklist.md +308 -0
- package/templates/default/locales/en/.mustflow/skills/two-phase-transition-integrity-review/references/two-phase-transition-checklist.md +229 -0
- package/templates/default/locales/en/.mustflow/skills/ui-dispatch-lifecycle-review/SKILL.md +300 -0
- package/templates/default/locales/en/.mustflow/skills/ui-dispatch-lifecycle-review/references/ui-affinity-event-loop-checklist.md +277 -0
- package/templates/default/locales/en/.mustflow/skills/ui-dispatch-lifecycle-review/references/ui-dispatch-lifecycle-checklist.md +292 -0
- package/templates/default/manifest.toml +115 -1
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.formal-verification-review
|
|
3
|
+
locale: en
|
|
4
|
+
canonical: true
|
|
5
|
+
revision: 2
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: formal-verification-review
|
|
9
|
+
description: Apply this skill when formal specifications, Hoare-style contracts, weakest preconditions, loop or object invariants, termination variants, ghost state, frame conditions, refinement maps, state or trace invariants, inductive invariants, linearizability, concurrency or failure model checking, bounded model checking, state-space reduction, SMT encodings, solver outcomes, theorem-prover proofs, safety or liveness properties, fairness assumptions, counterexamples, proof trust boundaries, vacuity checks, assumption manifests, verification debt, or proof CI are created, changed, reviewed, debugged, or reported.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.formal-verification-review
|
|
15
|
+
command_intents:
|
|
16
|
+
- changes_status
|
|
17
|
+
- changes_diff_summary
|
|
18
|
+
- lint
|
|
19
|
+
- build
|
|
20
|
+
- test_related
|
|
21
|
+
- test
|
|
22
|
+
- test_audit
|
|
23
|
+
- docs_validate_fast
|
|
24
|
+
- test_release
|
|
25
|
+
- mustflow_check
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Formal Verification Review
|
|
29
|
+
|
|
30
|
+
<!-- mustflow-section: purpose -->
|
|
31
|
+
## Purpose
|
|
32
|
+
|
|
33
|
+
Review formal verification as a scoped claim about an explicit model, assumptions, and observation,
|
|
34
|
+
not as proof that an entire program or deployed system is universally correct.
|
|
35
|
+
|
|
36
|
+
Keep modeled state, implementation state, safety, progress, termination, fairness, bounds, external
|
|
37
|
+
assumptions, solver completeness, trusted tooling, counterexamples, refinement, runtime validation,
|
|
38
|
+
verification cost, and CI status as separate evidence layers.
|
|
39
|
+
|
|
40
|
+
<!-- mustflow-section: use-when -->
|
|
41
|
+
## Use When
|
|
42
|
+
|
|
43
|
+
- A precondition, postcondition, invariant, variant, frame condition, ghost variable, lemma, axiom,
|
|
44
|
+
proof harness, model, theorem, or refinement relation changes.
|
|
45
|
+
- State-machine safety, liveness, fairness, concurrency, retry, ownership, memory, integer, array,
|
|
46
|
+
pointer, ABI, or boundary properties are formally checked.
|
|
47
|
+
- Concurrent histories, linearization, weak-memory behavior, message loss or duplication, crash and
|
|
48
|
+
recovery boundaries, idempotent effects, or adversarial schedules are modeled or checked.
|
|
49
|
+
- Abstraction direction, stuttering refinement, symmetry, partial-order reduction, context or failure
|
|
50
|
+
bounds, lossy exploration, CEGAR, induction, or solver theory selection changes proof coverage.
|
|
51
|
+
- A model checker, bounded checker, SMT-backed verifier, proof assistant, symbolic executor, abstract
|
|
52
|
+
interpreter, or translation validator produces a correctness or counterexample claim.
|
|
53
|
+
- Scope, bit width, unwind depth, state count, time horizon, solver timeout, unknown result,
|
|
54
|
+
unsupported feature, trusted stub, external function, or generated-code boundary affects evidence.
|
|
55
|
+
- Formal artifacts are placed in change gates, periodic verification, canary, release, assumption,
|
|
56
|
+
counterexample, baseline, resource-metric, or proof-debt workflows.
|
|
57
|
+
|
|
58
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
59
|
+
## Do Not Use When
|
|
60
|
+
|
|
61
|
+
- Only ordinary runtime tests or test organization change with no formal model, proof obligation, or
|
|
62
|
+
bounded symbolic claim; use the matching test skill.
|
|
63
|
+
- Only compiler IR translation validation, miscompile localization, or compiler-stage refinement is
|
|
64
|
+
in scope; use `compiler-engineering-review` as the owner and this skill only for proof boundaries.
|
|
65
|
+
- Only a concrete race, lock, atomic, schedule, or database interleaving is implemented or debugged
|
|
66
|
+
without a formal model; use `race-condition-review`.
|
|
67
|
+
- Only application validation, schema checking, input sanitization, or static typing changes; use the
|
|
68
|
+
matching validation, schema, or type skill.
|
|
69
|
+
- Only memory cleanup or retained-reference ownership changes without formal obligations; use
|
|
70
|
+
`memory-lifetime-review`.
|
|
71
|
+
|
|
72
|
+
<!-- mustflow-section: required-inputs -->
|
|
73
|
+
## Required Inputs
|
|
74
|
+
|
|
75
|
+
- Exact claim: state space, inputs, observations, preconditions, postconditions, safety, progress,
|
|
76
|
+
liveness, termination, refinement, equivalence, or bounded counterexample property.
|
|
77
|
+
- Model-to-reality ledger: modeled state, transitions, atomic actions, omitted failures, environment,
|
|
78
|
+
scheduler, clocks, resources, implementation fields, events, and external effects.
|
|
79
|
+
- Contract ledger: caller and callee obligations, success and every failure outcome, reads, writes,
|
|
80
|
+
unchanged state, old or ghost state, alias and ownership assumptions, and exception or cancellation.
|
|
81
|
+
- Numeric and memory semantics: mathematical versus fixed-width values, overflow, casts, shifts,
|
|
82
|
+
allocation identity, offset, bounds, alignment, initialization, provenance, aliasing, lifetime,
|
|
83
|
+
deallocation, and external resource behavior.
|
|
84
|
+
- Progress ledger: loop or recursion variant, scheduler and fairness guarantees, timeout or retry
|
|
85
|
+
model, deadlock, starvation, livelock, and total versus partial correctness decision.
|
|
86
|
+
- Bound ledger: instance scope, integer width, trace length, loop unwind, recursion depth, object or
|
|
87
|
+
node count, context-switch and failure count, solver resource limit, abstraction,
|
|
88
|
+
under-approximation, reduction mode, lossy search, and completeness signal.
|
|
89
|
+
- Trust ledger: verifier, solver, kernel, libraries, axioms, admitted facts, stubs, externals, model
|
|
90
|
+
extraction or generation, code generator, compiler, runtime, FFI, operating system, and hardware.
|
|
91
|
+
- Result ledger: valid, invalid, counterexample, unknown, timeout, unsupported, incomplete bound,
|
|
92
|
+
tool failure, flaky or unstable proof, and actual resource consumption.
|
|
93
|
+
- CI ledger: toolchain pins, assumption manifest, contract compatibility, proof-debt baseline,
|
|
94
|
+
counterexample promotion, refinement map, owner, cadence, budget, and configured command intents.
|
|
95
|
+
|
|
96
|
+
Read [Formal Contracts and Modeling Checklist](references/formal-contracts-modeling-checklist.md) when
|
|
97
|
+
contracts, weakest preconditions, invariants, variants, ghost or old state, frame conditions, state
|
|
98
|
+
models, safety, liveness, fairness, tool selection, scope, or trusted bases are in scope.
|
|
99
|
+
|
|
100
|
+
Read [Formal Memory, Bounds, and CI Checklist](references/formal-memory-bounds-ci-checklist.md) when
|
|
101
|
+
machine integers, casts, indexing, pointers, allocation lifetime, bounded checking, unwinding,
|
|
102
|
+
external stubs, counterexample replay, assumption manifests, verification cost, proof brittleness,
|
|
103
|
+
refinement maps, or CI operation is in scope.
|
|
104
|
+
|
|
105
|
+
Read [Formal Concurrency, Model Checking, and SMT Checklist](references/formal-concurrency-model-checking-smt-checklist.md)
|
|
106
|
+
when state, action, or trace properties, inductive-invariant strengthening, linearizability,
|
|
107
|
+
stuttering refinement, adversarial scheduling, network or crash behavior, weak memory, state-space
|
|
108
|
+
reduction, model-based test derivation, SMT theories, SSA, quantifiers, unsat cores, or solver
|
|
109
|
+
evidence are in scope.
|
|
110
|
+
|
|
111
|
+
<!-- mustflow-section: preconditions -->
|
|
112
|
+
## Preconditions
|
|
113
|
+
|
|
114
|
+
- The task matches the Use When conditions and does not match the exclusions.
|
|
115
|
+
- The property authority and modeled observation are identified, or the missing design decision is
|
|
116
|
+
reported before proof success or failure is interpreted.
|
|
117
|
+
- The selected repository instructions and command contract have been checked.
|
|
118
|
+
|
|
119
|
+
<!-- mustflow-section: allowed-edits -->
|
|
120
|
+
## Allowed Edits
|
|
121
|
+
|
|
122
|
+
- Update formal specifications, contracts, invariants, variants, ghost state, frame conditions,
|
|
123
|
+
lemmas, proof harnesses, state models, refinement maps, trusted stubs, assumption manifests,
|
|
124
|
+
counterexample fixtures, verification configuration, CI metadata, proof metrics, focused tests,
|
|
125
|
+
and directly synchronized docs or templates.
|
|
126
|
+
- Add runtime guards at unverified external boundaries and promote reproducible counterexamples into
|
|
127
|
+
deterministic regression or property fixtures when the repository owns those surfaces.
|
|
128
|
+
- Do not weaken a contract, add an assumption, reduce a bound, suppress an unknown result, or widen
|
|
129
|
+
the trusted base merely to make verification green without explicit review evidence.
|
|
130
|
+
- Do not claim implementation, binary, deployment, hardware, or environmental correctness beyond
|
|
131
|
+
the proven model and trust boundary.
|
|
132
|
+
|
|
133
|
+
<!-- mustflow-section: procedure -->
|
|
134
|
+
## Procedure
|
|
135
|
+
|
|
136
|
+
1. State the theorem or counterexample claim precisely. Name the quantified inputs, initial states,
|
|
137
|
+
allowed transitions, observation, terminal conditions, and whether the claim is bounded,
|
|
138
|
+
conditional, partial, total, probabilistic, or universal.
|
|
139
|
+
2. Map the model to reality. Record each model variable and action against implementation fields,
|
|
140
|
+
events, storage, callbacks, failures, retries, scheduling, and external effects. Mark every omitted
|
|
141
|
+
behavior and justify why the property does not depend on it.
|
|
142
|
+
3. Select a verification family by property. Use state exploration for bounded concurrent or
|
|
143
|
+
relational counterexamples, contract and SMT verification for executable imperative obligations,
|
|
144
|
+
and kernel-checked proof when a reusable theorem or certified construction is the product. Do not
|
|
145
|
+
choose by syntax preference or tutorial convenience.
|
|
146
|
+
4. Separate state, action, and trace properties. Use state predicates for snapshots, action
|
|
147
|
+
predicates for one-step deltas, and trace or history predicates for ordering, duplication,
|
|
148
|
+
monotonicity, and linearizability. Do not erase a forbidden history because the final state looks
|
|
149
|
+
acceptable.
|
|
150
|
+
5. Prove safety through a genuinely inductive strengthening. Check initialization, preservation,
|
|
151
|
+
and implication to the desired property as separate obligations. Treat a preservation failure
|
|
152
|
+
from an unreachable state as evidence that the induction hypothesis is too weak, not as a reason
|
|
153
|
+
to increase a finite trace bound indefinitely.
|
|
154
|
+
6. Define the abstraction direction. For safety, prefer a justified over-approximation that permits
|
|
155
|
+
at least the implementation behaviors relevant to the property. Mark under-approximations,
|
|
156
|
+
lossy state storage, bounded schedules, and omitted identities as bug-finding evidence only unless
|
|
157
|
+
a separate completeness or cutoff argument closes the gap.
|
|
158
|
+
7. Model nondeterminism as an adversarial choice over every permitted schedule, message outcome,
|
|
159
|
+
failure boundary, retry, timeout race, callback, and external response. Constrain only behavior
|
|
160
|
+
the real protocol or platform forbids, and record the evidence for each constraint.
|
|
161
|
+
8. Justify every atomic action and state-space reduction. Show that hidden intermediate states are
|
|
162
|
+
unobservable to threads, callbacks, cancellation, recovery, and external systems. Validate
|
|
163
|
+
symmetry, partial-order, transition coarsening, and other reductions against the property and
|
|
164
|
+
keep lossy exploration modes out of universal claims.
|
|
165
|
+
9. Define preconditions as caller obligations. Keep hostile or ordinary invalid input inside the
|
|
166
|
+
function's explicit failure domain unless it is genuinely outside the API definition. Require a
|
|
167
|
+
satisfiable witness for each important precondition set.
|
|
168
|
+
10. Derive obligations backward from the postcondition. Use weakest-precondition reasoning to place
|
|
169
|
+
assertions, branch conditions, and intermediate lemmas where the final guarantee actually needs
|
|
170
|
+
them instead of adding plausible facts by intuition.
|
|
171
|
+
11. Build loop and recursion proofs with three separate duties: initialization, preservation, and
|
|
172
|
+
postcondition derivation. State a well-founded variant for termination. Report partial correctness
|
|
173
|
+
honestly when termination is not proved.
|
|
174
|
+
12. Express progress through processed prefixes, remaining work, or another inductive decomposition.
|
|
175
|
+
A true but weak bound is not an invariant if it cannot connect loop exit to the final property.
|
|
176
|
+
13. Preserve old state with ghost values or snapshots before destructive updates. Prove content,
|
|
177
|
+
permutation, ownership, or history properties separately from shape properties such as sorting or
|
|
178
|
+
structural validity.
|
|
179
|
+
14. Write frame conditions. Name what may be read, what may be changed, and what must remain equal to
|
|
180
|
+
its prior state on success, failure, exception, cancellation, timeout, retry, and partial work.
|
|
181
|
+
15. Model aliases and memory regions, not only pointer inequality. Use allocation identity plus
|
|
182
|
+
half-open offset ranges where possible, and prove address arithmetic before using a range result.
|
|
183
|
+
16. Treat object invariants as shared obligations across constructors and every public transition.
|
|
184
|
+
If callbacks or reentrancy can occur during a temporarily broken state, restore the invariant
|
|
185
|
+
before exposure or make the transition atomic at the modeled boundary.
|
|
186
|
+
17. Separate normal and abnormal postconditions. Give success, typed failure, exception, cancellation,
|
|
187
|
+
timeout, partial write, rollback, and retry paths explicit state guarantees.
|
|
188
|
+
18. Match actual machine semantics. Model fixed width, signedness, overflow, wrapping, traps, checked
|
|
189
|
+
failures, casts, shifts, pointers, floating point, and debug or release differences rather than
|
|
190
|
+
silently proving a mathematical-integer program.
|
|
191
|
+
19. Separate safety, progress, termination, and liveness. State scheduler and fairness assumptions
|
|
192
|
+
only when the implementation or operating environment actually provides them. A fairness axiom
|
|
193
|
+
is part of the claim, not proof that a real scheduler is fair.
|
|
194
|
+
20. Make boundedness visible. Record object scope, integer width, trace length, unwind depth,
|
|
195
|
+
recursion, and resource limits. Require a completeness or unwinding assertion when claiming all
|
|
196
|
+
permitted executions fit inside a bound; otherwise report only the explored domain.
|
|
197
|
+
21. Test reachability and vacuity. Require initial-state witnesses, branch or error-state cover
|
|
198
|
+
properties, and periodic negative controls that invert a postcondition, remove behavior, or inject
|
|
199
|
+
an invariant violation. A proof that survives a meaningful defect is not trusted evidence.
|
|
200
|
+
22. Encode SMT obligations with the executable semantics they claim to represent. Choose integer,
|
|
201
|
+
bit-vector, floating-point, array, string, datatype, and uninterpreted-function theories
|
|
202
|
+
deliberately; expose path conditions through SSA or an equivalent transition relation; and keep
|
|
203
|
+
quantifier instantiation, loop unwinding, and memory-domain assumptions visible.
|
|
204
|
+
23. Classify every tool outcome. Keep valid, invalid, counterexample, unknown, timeout, unsupported,
|
|
205
|
+
incomplete bound, tool failure, and unstable proof distinct. Never convert absence of a found
|
|
206
|
+
counterexample into proof outside the tool's completeness contract.
|
|
207
|
+
24. Treat solver evidence as an artifact to validate. Replay satisfiable models against the original
|
|
208
|
+
semantics, preserve the submitted formula and options for unsatisfiable outcomes, distinguish an
|
|
209
|
+
unsat core from a proof certificate, and use an independent checker or solver diversity when the
|
|
210
|
+
risk warrants it.
|
|
211
|
+
25. Record the trusted computing base. Include kernels, solvers, axioms, admitted facts, libraries,
|
|
212
|
+
externals, stubs, extraction, generated code, compilers, runtimes, FFI, operating system, and
|
|
213
|
+
hardware that the final claim depends on.
|
|
214
|
+
26. Isolate external boundaries. Treat file, network, clock, randomness, native library, allocator,
|
|
215
|
+
database, and FFI contracts as assumptions unless separately verified. Validate their concrete
|
|
216
|
+
inputs and outputs at runtime before entering the verified core.
|
|
217
|
+
27. Check memory and arithmetic obligations before operations. Prove overflow-safe additions and
|
|
218
|
+
multiplications, cast and shift domains, index construction, allocation lifetime, initialization,
|
|
219
|
+
alignment, valid representation, alias rules, and exactly-once release across failures.
|
|
220
|
+
28. Replay counterexamples against the real implementation when possible. Preserve the formal trace,
|
|
221
|
+
input, bound, model version, implementation version, and translation step. Promote a confirmed
|
|
222
|
+
case into an ordinary regression or property seed without deleting the original formal artifact.
|
|
223
|
+
29. Maintain an executable refinement map. Translate implementation events and state into model
|
|
224
|
+
actions and variables, or generate implementation tests from model transitions. A prose-only map
|
|
225
|
+
drifts as soon as fields, retries, or atomic boundaries change.
|
|
226
|
+
30. Derive model-based tests from the same transition and observation vocabulary. Use them to check
|
|
227
|
+
the refinement adapter, concrete fault injection, short histories, and retained counterexamples;
|
|
228
|
+
do not present generated tests as a substitute for exhaustive or deductive evidence.
|
|
229
|
+
31. Pin the verification environment. Version the verifier, solver, libraries, options, target,
|
|
230
|
+
container or runtime identity, and proof dependencies. Upgrade them separately from feature work
|
|
231
|
+
and compare result taxonomy, assumptions, proof cost, and counterexample changes.
|
|
232
|
+
32. Operate verification in bounded lanes. Keep changed obligations and fast bounded checks in change
|
|
233
|
+
gates, broader scopes and repeated complexity checks in periodic lanes, and full models, larger
|
|
234
|
+
bounds, supported targets, and extraction or binary evidence in canary or release lanes.
|
|
235
|
+
33. Track proof cost and brittleness. Store solver resource counts, states, obligations, scope,
|
|
236
|
+
memory, time, and variance. Split large proof contexts, isolate lemmas, and control triggers or
|
|
237
|
+
facts when small edits or repeated runs cause unstable resource use. Do not retry until green.
|
|
238
|
+
34. Keep one assumption manifest. Register axioms, admitted proofs, externals, stubs, fairness,
|
|
239
|
+
scopes, bounds, numeric domains, environment models, and trusted generated artifacts. Treat a new
|
|
240
|
+
assumption or enlarged trusted base as a reviewable risk change.
|
|
241
|
+
35. Check logical contract compatibility. A stronger precondition or weaker postcondition is a
|
|
242
|
+
consumer-facing regression. Where supported, prove that the old precondition implies the new
|
|
243
|
+
precondition and the new postcondition implies the old guarantee under the same observation.
|
|
244
|
+
36. Ratchet verification debt. Baseline admitted facts, unproved obligations, unsupported features,
|
|
245
|
+
incomplete mappings, and unstable proofs. Prevent new debt in changed scope and retire existing
|
|
246
|
+
debt incrementally rather than claiming complete coverage or abandoning verification.
|
|
247
|
+
|
|
248
|
+
<!-- mustflow-section: postconditions -->
|
|
249
|
+
## Postconditions
|
|
250
|
+
|
|
251
|
+
- The claim states its model, quantified domain, observation, assumptions, bounds, completeness,
|
|
252
|
+
property class, and trusted base.
|
|
253
|
+
- Preconditions, success and failure postconditions, frames, invariants, variants, old state, machine
|
|
254
|
+
semantics, aliases, memory, external boundaries, and reachability are explicit or reported missing.
|
|
255
|
+
- Tool results preserve valid, invalid, unknown, timeout, unsupported, incomplete, and unstable states
|
|
256
|
+
without false-green normalization.
|
|
257
|
+
- Counterexamples, refinement mappings, assumption changes, contract compatibility, proof cost,
|
|
258
|
+
verification debt, and CI cadence have observable ownership.
|
|
259
|
+
|
|
260
|
+
<!-- mustflow-section: verification -->
|
|
261
|
+
## Verification
|
|
262
|
+
|
|
263
|
+
Use configured oneshot command intents when available:
|
|
264
|
+
|
|
265
|
+
- `changes_status`
|
|
266
|
+
- `changes_diff_summary`
|
|
267
|
+
- `lint`
|
|
268
|
+
- `build`
|
|
269
|
+
- `test_related`
|
|
270
|
+
- `test`
|
|
271
|
+
- `test_audit`
|
|
272
|
+
- `docs_validate_fast`
|
|
273
|
+
- `test_release`
|
|
274
|
+
- `mustflow_check`
|
|
275
|
+
|
|
276
|
+
Prefer narrow configured model, proof, contract, bounded-check, counterexample-replay, assumption,
|
|
277
|
+
refinement, proof-cost, and vacuity intents when the selected repository exposes them. Do not invent
|
|
278
|
+
raw verifier, solver, proof assistant, model checker, container, or unbounded exploration commands.
|
|
279
|
+
|
|
280
|
+
<!-- mustflow-section: failure-handling -->
|
|
281
|
+
## Failure Handling
|
|
282
|
+
|
|
283
|
+
- If a claim omits a realistic failure, scheduler, numeric, memory, FFI, or environment behavior,
|
|
284
|
+
narrow the claim or repair the model before treating a green result as evidence.
|
|
285
|
+
- If a precondition set has no witness, a branch is unreachable, or a negative control does not fail,
|
|
286
|
+
classify the result as vacuous until reachability and sensitivity are restored.
|
|
287
|
+
- If a bounded checker lacks completeness or unwinding evidence, report the explored bound and stop
|
|
288
|
+
short of an unbounded claim.
|
|
289
|
+
- If the tool returns unknown, timeout, unsupported, incomplete, or unstable, preserve that state;
|
|
290
|
+
do not retry, suppress, or translate it into success.
|
|
291
|
+
- If a counterexample does not replay, inspect the model-to-implementation map, abstraction, runtime
|
|
292
|
+
environment, bound, and tool semantics before discarding either side.
|
|
293
|
+
- If proof execution is unconfigured or too broad for the current lane, stop at specification review,
|
|
294
|
+
static consistency, focused fixtures, and a manual verification plan.
|
|
295
|
+
|
|
296
|
+
<!-- mustflow-section: output-format -->
|
|
297
|
+
## Output Format
|
|
298
|
+
|
|
299
|
+
- Formal claim, property class, observation, and authority
|
|
300
|
+
- Model-to-implementation map and omitted behaviors
|
|
301
|
+
- Preconditions, postconditions, frames, invariants, variants, ghost or old state, and reachability
|
|
302
|
+
- Safety, progress, termination, liveness, fairness, scope, bound, and completeness decisions
|
|
303
|
+
- Numeric, memory, alias, lifetime, external, and failure-path obligations
|
|
304
|
+
- Tool family, result taxonomy, trusted base, assumptions, and proof-cost evidence
|
|
305
|
+
- Counterexample, replay, regression promotion, and refinement-map evidence
|
|
306
|
+
- Contract compatibility, verification debt, cadence, and owner decisions
|
|
307
|
+
- Files changed
|
|
308
|
+
- Configured command intents run
|
|
309
|
+
- Missing or skipped proof, solver, model, replay, refinement, vacuity, and release evidence
|
|
310
|
+
- Remaining model, assumption, bound, trust, drift, brittleness, or verification-debt risk
|