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.
Files changed (58) hide show
  1. package/package.json +1 -1
  2. package/templates/default/i18n.toml +72 -6
  3. package/templates/default/locales/en/.mustflow/skills/INDEX.md +37 -11
  4. package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/SKILL.md +477 -0
  5. package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/compiler-diagnostics-abi-linker-checklist.md +778 -0
  6. package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/compiler-generators-properties-checklist.md +501 -0
  7. package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/compiler-test-strategy-differential-checklist.md +498 -0
  8. package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/debug-symbol-symbolication-checklist.md +412 -0
  9. package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/ir-design-ssa-pass-pipeline-checklist.md +759 -0
  10. package/templates/default/locales/en/.mustflow/skills/compiler-engineering-review/references/miscompile-reduction-ir-checklist.md +434 -0
  11. package/templates/default/locales/en/.mustflow/skills/cross-platform-filesystem-safety/SKILL.md +55 -36
  12. package/templates/default/locales/en/.mustflow/skills/cross-platform-filesystem-safety/references/path-containment-handle-checklist.md +251 -0
  13. package/templates/default/locales/en/.mustflow/skills/file-upload-security-review/SKILL.md +133 -32
  14. package/templates/default/locales/en/.mustflow/skills/file-upload-security-review/references/file-upload-parser-ssrf-resource-checklist.md +306 -0
  15. package/templates/default/locales/en/.mustflow/skills/formal-verification-review/SKILL.md +310 -0
  16. package/templates/default/locales/en/.mustflow/skills/formal-verification-review/references/formal-concurrency-model-checking-smt-checklist.md +457 -0
  17. package/templates/default/locales/en/.mustflow/skills/formal-verification-review/references/formal-contracts-modeling-checklist.md +434 -0
  18. package/templates/default/locales/en/.mustflow/skills/formal-verification-review/references/formal-memory-bounds-ci-checklist.md +509 -0
  19. package/templates/default/locales/en/.mustflow/skills/fuzz-harness-review/SKILL.md +439 -0
  20. package/templates/default/locales/en/.mustflow/skills/fuzz-harness-review/references/fuzz-harness-campaign-checklist.md +379 -0
  21. package/templates/default/locales/en/.mustflow/skills/fuzz-harness-review/references/fuzz-oracle-triage-ci-checklist.md +307 -0
  22. package/templates/default/locales/en/.mustflow/skills/idempotency-integrity-review/SKILL.md +48 -28
  23. package/templates/default/locales/en/.mustflow/skills/idempotency-integrity-review/references/operation-ordering-stale-write-checklist.md +259 -0
  24. package/templates/default/locales/en/.mustflow/skills/input-boundary-validation-review/SKILL.md +329 -0
  25. package/templates/default/locales/en/.mustflow/skills/input-boundary-validation-review/references/input-boundary-security-checklist.md +319 -0
  26. package/templates/default/locales/en/.mustflow/skills/input-event-synchronization-review/SKILL.md +306 -0
  27. package/templates/default/locales/en/.mustflow/skills/input-event-synchronization-review/references/input-session-state-checklist.md +298 -0
  28. package/templates/default/locales/en/.mustflow/skills/input-event-synchronization-review/references/remote-input-transport-interaction-checklist.md +328 -0
  29. package/templates/default/locales/en/.mustflow/skills/interpreter-engineering-review/SKILL.md +353 -0
  30. package/templates/default/locales/en/.mustflow/skills/interpreter-engineering-review/references/interpreter-diagnostics-recovery-checklist.md +267 -0
  31. package/templates/default/locales/en/.mustflow/skills/interpreter-engineering-review/references/interpreter-execution-closure-performance-checklist.md +428 -0
  32. package/templates/default/locales/en/.mustflow/skills/interpreter-engineering-review/references/interpreter-gc-verification-checklist.md +457 -0
  33. package/templates/default/locales/en/.mustflow/skills/interpreter-engineering-review/references/interpreter-semantics-runtime-checklist.md +391 -0
  34. package/templates/default/locales/en/.mustflow/skills/modal-loop-reentrancy-review/SKILL.md +294 -0
  35. package/templates/default/locales/en/.mustflow/skills/modal-loop-reentrancy-review/references/modal-loop-reentrancy-checklist.md +290 -0
  36. package/templates/default/locales/en/.mustflow/skills/modal-loop-reentrancy-review/references/nested-modal-state-lifetime-checklist.md +297 -0
  37. package/templates/default/locales/en/.mustflow/skills/name-resolution-integrity-review/SKILL.md +252 -0
  38. package/templates/default/locales/en/.mustflow/skills/name-resolution-integrity-review/references/dns-network-resolution-checklist.md +394 -0
  39. package/templates/default/locales/en/.mustflow/skills/name-resolution-integrity-review/references/language-symbol-resolution-checklist.md +282 -0
  40. package/templates/default/locales/en/.mustflow/skills/name-resolution-integrity-review/references/module-package-loader-resolution-checklist.md +352 -0
  41. package/templates/default/locales/en/.mustflow/skills/parser-engineering-review/SKILL.md +103 -17
  42. package/templates/default/locales/en/.mustflow/skills/parser-engineering-review/references/cst-ast-lowering-checklist.md +260 -0
  43. package/templates/default/locales/en/.mustflow/skills/parser-engineering-review/references/lexer-tokenization-checklist.md +397 -0
  44. package/templates/default/locales/en/.mustflow/skills/parser-engineering-review/references/tree-serialization-compatibility-checklist.md +164 -0
  45. package/templates/default/locales/en/.mustflow/skills/parser-engineering-review/references/tree-traversal-rewrite-checklist.md +209 -0
  46. package/templates/default/locales/en/.mustflow/skills/race-condition-review/SKILL.md +68 -11
  47. package/templates/default/locales/en/.mustflow/skills/race-condition-review/references/race-reproduction-memory-model-checklist.md +268 -0
  48. package/templates/default/locales/en/.mustflow/skills/routes.toml +151 -0
  49. package/templates/default/locales/en/.mustflow/skills/session-handoff-integrity-review/SKILL.md +343 -0
  50. package/templates/default/locales/en/.mustflow/skills/session-handoff-integrity-review/references/session-auth-stream-resume-checklist.md +413 -0
  51. package/templates/default/locales/en/.mustflow/skills/session-handoff-integrity-review/references/session-handoff-protocol-checklist.md +485 -0
  52. package/templates/default/locales/en/.mustflow/skills/two-phase-transition-integrity-review/SKILL.md +267 -0
  53. package/templates/default/locales/en/.mustflow/skills/two-phase-transition-integrity-review/references/admission-decision-recovery-checklist.md +308 -0
  54. package/templates/default/locales/en/.mustflow/skills/two-phase-transition-integrity-review/references/two-phase-transition-checklist.md +229 -0
  55. package/templates/default/locales/en/.mustflow/skills/ui-dispatch-lifecycle-review/SKILL.md +300 -0
  56. package/templates/default/locales/en/.mustflow/skills/ui-dispatch-lifecycle-review/references/ui-affinity-event-loop-checklist.md +277 -0
  57. package/templates/default/locales/en/.mustflow/skills/ui-dispatch-lifecycle-review/references/ui-dispatch-lifecycle-checklist.md +292 -0
  58. package/templates/default/manifest.toml +115 -1
@@ -0,0 +1,268 @@
1
+ # Race Reproduction and Memory-Model Checklist
2
+
3
+ Use this reference for intermittent races, native-thread incidents, synchronization primitive
4
+ selection, lock-free structures, or linearizability claims. Keep tool execution inside the selected
5
+ repository's configured command contract.
6
+
7
+ ## Contents
8
+
9
+ 1. [Defect classification](#defect-classification)
10
+ 2. [Forbidden outcome and incident capsule](#forbidden-outcome-and-incident-capsule)
11
+ 3. [Ownership and backing-storage map](#ownership-and-backing-storage-map)
12
+ 4. [Deterministic actor harness](#deterministic-actor-harness)
13
+ 5. [Schedule exploration and replay](#schedule-exploration-and-replay)
14
+ 6. [Schedule-aware observability](#schedule-aware-observability)
15
+ 7. [Primitive selection](#primitive-selection)
16
+ 8. [Publication and memory ordering](#publication-and-memory-ordering)
17
+ 9. [CAS, ABA, and reclamation](#cas-aba-and-reclamation)
18
+ 10. [Linearizability](#linearizability)
19
+ 11. [Environment and optimization matrix](#environment-and-optimization-matrix)
20
+ 12. [Failure and evidence matrix](#failure-and-evidence-matrix)
21
+ 13. [Skill handoffs](#skill-handoffs)
22
+
23
+ ## Defect classification
24
+
25
+ Do not use one word for every timing failure:
26
+
27
+ | Class | Mechanical oracle | Evidence boundary |
28
+ | --- | --- | --- |
29
+ | logical race condition | a forbidden business, lifecycle, or ordering outcome | may exist without conflicting unsynchronized memory access |
30
+ | data race | runtime-specific conflicting memory access without the required synchronization | a clean dynamic run covers only the executed path and schedule |
31
+ | lifetime violation | access after release, reuse, close, or reclamation | atomic pointer updates do not prove object lifetime |
32
+ | deadlock | a reachable wait-for cycle with no permitted progress | a hang can instead be starvation, lost notification, or blocked I/O |
33
+ | starvation or livelock | bounded work repeatedly fails to make required progress | final state alone may not show the failure |
34
+ | ordering failure | an event, callback, message, or state transition violates its declared order | timestamps do not establish cross-actor visibility |
35
+
36
+ A detector can confirm the class it observes. It cannot prove all logical invariants or every
37
+ downstream impact, and passing one detector does not validate unexecuted schedules.
38
+
39
+ ## Forbidden outcome and incident capsule
40
+
41
+ Turn the symptom into a stable predicate before debugging:
42
+
43
+ - name the invariant and one result that must not occur;
44
+ - include operation results, not only final counters;
45
+ - distinguish timeout, crash, detector report, invalid history, and assertion failure;
46
+ - preserve the original input before minimizing it;
47
+ - require minimization to retain the same failure key and earliest meaningful checkpoint.
48
+
49
+ Capture a reproduction capsule:
50
+
51
+ | Surface | Fields |
52
+ | --- | --- |
53
+ | source and binary | source revision, executable hash, symbols hash, linked-library identity |
54
+ | build | compiler, linker, flags, optimization, assertions, sanitizer or detector configuration |
55
+ | runtime | OS, runtime version, architecture, CPU count, scheduler mode, allocator |
56
+ | test | target, actor count, input, timeout, iteration, oracle version |
57
+ | schedule | deterministic gate sequence, scheduler seed, actual decision trace, forced yields |
58
+ | environment | relevant variables, locale, timezone, affinity, container or VM shape |
59
+ | observation | failure key, earliest checkpoint, actor-local trace, synchronization edges |
60
+
61
+ Store exact replay evidence through the repository's existing artifact policy. Do not introduce raw
62
+ logs, binaries, or private data into version control merely because the capsule calls for them.
63
+
64
+ ## Ownership and backing-storage map
65
+
66
+ Map ownership before reading mutex code:
67
+
68
+ | Object or invariant | Created by | Read by | Written by | Transferred to | Retired by | Protection |
69
+ | --- | --- | --- | --- | --- | --- | --- |
70
+ | one concrete surface | actor or component | actors | actors | handoff rule | lifecycle owner | lock, transaction, message, atomic, or undefined |
71
+
72
+ Follow actual backing storage rather than variable names:
73
+
74
+ - aliases, views, slices, iterators, shared buffers, mapped regions, pooled objects, and shallow
75
+ copies can name the same mutable bytes;
76
+ - `const`, `final`, and read-only interfaces may protect a reference while reachable state changes;
77
+ - getters, caches, counters, lazy fields, hashing, logging, and reference tracking can write;
78
+ - file offsets, sockets, process environment, working directory, signal state, database rows,
79
+ distributed leases, and provider resources are shared state even outside process memory;
80
+ - lifecycle transitions such as initialize, publish, cancel, close, detach, destroy, and reclaim
81
+ deserve separate owners and synchronization rules.
82
+
83
+ Protect the invariant, not each field. Several individually atomic fields can still expose a
84
+ combination that the specification forbids.
85
+
86
+ ## Deterministic actor harness
87
+
88
+ Prefer the smallest harness that can decide the forbidden outcome:
89
+
90
+ - keep two or the minimum required actors;
91
+ - keep one shared object or durable record;
92
+ - use an arbiter that observes all actor results and asserts the invariant;
93
+ - start actors from a barrier so setup order does not masquerade as concurrency;
94
+ - place named gates at the meaningful race window;
95
+ - reset every shared surface between schedules;
96
+ - join or cancel every actor before the next case.
97
+
98
+ Example schedule shape, expressed as evidence rather than executable code:
99
+
100
+ 1. actor A reads generation 7 and pauses;
101
+ 2. actor B replaces the object with generation 8 and completes;
102
+ 3. actor A resumes its conditional action;
103
+ 4. the arbiter rejects any accepted generation-7 effect.
104
+
105
+ Delay after the shared read, validation, removal, cancellation check, publication flag, or
106
+ compare-and-swap load. A delay at an unrelated function entry burns time without widening the
107
+ critical window.
108
+
109
+ ## Schedule exploration and replay
110
+
111
+ Use a hierarchy of evidence:
112
+
113
+ 1. force the suspected order with explicit gates;
114
+ 2. explore bounded schedules systematically when a model scheduler exists;
115
+ 3. perturb synchronization boundaries with recorded randomized decisions;
116
+ 4. replay a captured real failure when platform support and policy permit it;
117
+ 5. use repeated stress only as supplementary search evidence.
118
+
119
+ Preserve the actual decision trace in addition to the seed. A seed can produce a different schedule
120
+ when actor counts, timer events, random-call counts, or runtime versions change.
121
+
122
+ Minimize two dimensions independently:
123
+
124
+ - input minimization removes unrelated objects, commands, requests, and state transitions;
125
+ - schedule minimization removes actors, context switches, yields, gates, and delay decisions.
126
+
127
+ Reject a reduction that changes a data race into a timeout, a lifetime failure into an assertion,
128
+ or the earliest violated invariant into a different one.
129
+
130
+ ## Schedule-aware observability
131
+
132
+ A contended global logger can create synchronization and hide the race it is meant to observe.
133
+ Prefer a bounded per-actor ring buffer with compact events such as:
134
+
135
+ - actor-local monotonic sequence;
136
+ - actor or task identity;
137
+ - object identity and generation;
138
+ - operation and checkpoint;
139
+ - observed value or result class;
140
+ - synchronization object identity;
141
+ - request, transaction, message, or transition identity.
142
+
143
+ After failure, construct a happens-before graph from:
144
+
145
+ - actor-local program order;
146
+ - mutex unlock to the next successful lock;
147
+ - release operation to the acquire that observes it;
148
+ - channel send to the corresponding receive under that channel's contract;
149
+ - task creation, completion, join, and cancellation acknowledgement;
150
+ - queue publication to delivery claim;
151
+ - durable transaction commit to the version read that observes it.
152
+
153
+ Wall-clock order is supporting metadata. It is not proof that another actor was allowed to observe a
154
+ write.
155
+
156
+ ## Primitive selection
157
+
158
+ | Need | Suitable direction | Frequent mistake |
159
+ | --- | --- | --- |
160
+ | exclusive ownership of a critical invariant | mutex or single owner | binary semaphore used despite missing owner-bound release |
161
+ | capacity limit | semaphore | assuming permits also protect pool membership or slot identity |
162
+ | wait until a predicate changes | condition plus predicate under one mutex | treating a signal as durable state or waiting outside a loop |
163
+ | deliver a value or transfer ownership | immutable message, deep copy, or enforced move | sending a pointer while the sender keeps mutating it |
164
+ | confirm receiver processing | explicit acknowledgement or result future | treating buffered send completion as processing completion |
165
+ | publish one immutable snapshot | atomic pointer plus valid memory ordering and lifetime | assuming pointer atomicity protects reachable mutation or reclamation |
166
+ | update one scalar | atomic read-modify-write | splitting a multi-field invariant across unrelated atomics |
167
+ | serialize one business key | per-key owner, transaction, or conditional update | one global lock or process-local lock for multi-instance truth |
168
+
169
+ Give channel close authority to one coordinator when several producers exist. Collect producer
170
+ completion separately, then close once. Explain every shared state's synchronization path as one
171
+ continuous edge; mixing mutex, atomic, and channel access does not connect them automatically.
172
+
173
+ Keep external effects out of retryable compare-and-swap loops. A failed compare-and-swap may repeat
174
+ the calculation, and its failure ordering still governs any value read on the failed path.
175
+
176
+ ## Publication and memory ordering
177
+
178
+ For payload publication, identify:
179
+
180
+ 1. ordinary writes that initialize the payload;
181
+ 2. the release operation that publishes readiness;
182
+ 3. the acquire operation that observes the published value;
183
+ 4. the exact value-transfer relationship connecting them;
184
+ 5. the lifetime rule keeping the payload valid through the reader's use.
185
+
186
+ A relaxed atomic is atomic for that object but does not order unrelated payload accesses. Several
187
+ atomics do not combine into one transaction. Check success and failure memory ordering separately
188
+ for compare-and-swap loops, especially when the failed value is dereferenced.
189
+
190
+ Use small memory-model tests with a few actors and a table of allowed and forbidden outcomes. Do not
191
+ bury publication validation inside a large queue or application integration test.
192
+
193
+ ## CAS, ABA, and reclamation
194
+
195
+ Audit equality and lifetime separately:
196
+
197
+ - a pointer address can be reused for a different object;
198
+ - a version or stamp distinguishes reuse only until it wraps;
199
+ - calculate whether the chosen tag width can wrap within the supported update rate and lifetime;
200
+ - force rapid address reuse with a bounded test allocator or pool;
201
+ - keep a reader paused while another actor removes, retires, and attempts to reclaim the object;
202
+ - measure memory backpressure when a slow reader delays reclamation.
203
+
204
+ For hazard-style protection, require the reader to publish protection and then re-read the source.
205
+ If the source changed, retry before dereference. For epoch or grace-period schemes, prove that no
206
+ retired object is reused before all earlier readers exit, and bound retained memory when a reader
207
+ stalls.
208
+
209
+ Route general allocation, ownership, and use-after-free analysis through `memory-lifetime-review`.
210
+ Keep this skill focused on the interleaving and synchronization that make reclamation unsafe.
211
+
212
+ ## Linearizability
213
+
214
+ Final size or final checksum can pass even when intermediate operation results are impossible.
215
+ Capture each operation's invocation, response, input, output, and real-time precedence. Name the
216
+ single instruction, transaction, or durable conditional write where the operation takes effect.
217
+
218
+ Validate whether the completed history can be ordered against a sequential reference model while
219
+ preserving non-overlapping real-time precedence. If no valid ordering exists, the history is not
220
+ linearizable. If the state space is too large, shrink operations and actors before weakening the
221
+ oracle.
222
+
223
+ ## Environment and optimization matrix
224
+
225
+ Treat environment as part of the reproduction contract:
226
+
227
+ - one core versus multiple cores;
228
+ - under-subscription and over-subscription;
229
+ - architecture and memory model;
230
+ - debug, release, assertions, and supported optimization levels;
231
+ - supported compilers and runtime versions;
232
+ - allocator and object-pool configuration;
233
+ - timer source, scheduler, affinity, container, VM, and NUMA shape when material.
234
+
235
+ One environment passing does not prove other supported environments. Use only configured build,
236
+ test, sanitizer, scheduler, or replay intents; otherwise report the missing lane as manual evidence.
237
+
238
+ ## Failure and evidence matrix
239
+
240
+ | Scenario | Required observation |
241
+ | --- | --- |
242
+ | two actors read the same precondition | the arbiter rejects double success or proves one atomic winner |
243
+ | close overlaps callback or send | no post-close effect, use, or duplicate close escapes |
244
+ | publication flag is observed | initialized payload visibility follows a valid ordering edge |
245
+ | compare-and-swap retries | external effect occurs only for the winning logical operation |
246
+ | address is removed and reused | stale actor cannot treat the new object as the old identity |
247
+ | slow reader blocks reclamation | object stays live and retained memory remains bounded or alerted |
248
+ | condition notification arrives early | persistent predicate still lets the waiter progress |
249
+ | buffered message send completes | code does not claim receiver processing without acknowledgement |
250
+ | detector run is clean | report only executed-path detector evidence, not universal race safety |
251
+ | random schedule fails | seed plus decision trace replays the same forbidden outcome |
252
+ | minimized schedule passes | reject the reduction and restore the last failure-preserving schedule |
253
+ | final state looks correct | operation history still satisfies the declared sequential model |
254
+
255
+ ## Skill handoffs
256
+
257
+ - Use `concurrency-invariant-review` for broad ownership, primitive discipline, deadlock, starvation,
258
+ and multi-resource invariant design.
259
+ - Use `async-timing-boundary-review` when fixed delays, readiness, event-loop turns, rendering, or
260
+ eventual consistency are the primary problem.
261
+ - Use `structured-concurrency-supervision-review` for parent-child task ownership, join,
262
+ cancellation propagation, and orphan prevention.
263
+ - Use `memory-lifetime-review` for general use-after-free, retention, native resource, and allocator
264
+ lifetime analysis.
265
+ - Use `two-phase-transition-integrity-review` for prepare-and-commit authority handoffs with epochs
266
+ and fencing.
267
+ - Use the relevant database, queue, idempotency, security, or filesystem skill when the race crosses
268
+ that durable boundary.
@@ -241,6 +241,32 @@ suggests_adjuncts = ["transaction-boundary-integrity-review", "queue-processing-
241
241
  positive_terms = ["after-commit", "commit-publish", "dual-write", "outbox", "publish", "reconcile", "reconciliation", "transactional-outbox"]
242
242
  negative_terms = ["approval", "budget", "child", "credit", "ledger", "llm", "policy", "supervisor", "tool"]
243
243
 
244
+ [routes."two-phase-transition-integrity-review"]
245
+ category = "general_code"
246
+ route_type = "adjunct"
247
+ priority = 84
248
+ applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "security_change", "privacy_change", "data_change", "migration_change", "docs_change", "package_metadata_change", "release_risk"]
249
+
250
+ [routes."two-phase-transition-integrity-review".dependencies]
251
+ suggests_adjuncts = ["idempotency-integrity-review", "dual-write-consistency", "execution-ledger-integrity-review"]
252
+
253
+ [routes."two-phase-transition-integrity-review".contexts]
254
+ positive_terms = ["activate", "admission", "commit", "cutover", "decision", "epoch", "fencing", "generation", "handoff", "in-doubt", "lease", "owner", "prepare", "promote", "protocol", "reconcile", "session", "transition", "unknown-outcome"]
255
+ negative_terms = ["database-2pc-only", "llm", "prompt", "tool-call"]
256
+
257
+ [routes."session-handoff-integrity-review"]
258
+ category = "general_code"
259
+ route_type = "adjunct"
260
+ priority = 86
261
+ applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "security_change", "privacy_change", "data_change", "migration_change", "docs_change", "package_metadata_change", "release_risk"]
262
+
263
+ [routes."session-handoff-integrity-review".dependencies]
264
+ suggests_adjuncts = ["two-phase-transition-integrity-review", "idempotency-integrity-review", "execution-ledger-integrity-review", "dual-write-consistency"]
265
+
266
+ [routes."session-handoff-integrity-review".contexts]
267
+ positive_terms = ["agent-handoff", "application-ack", "auth-grant", "bidirectional-cursor", "command-ledger", "connection-generation", "conversation-cursor", "drained-redirector", "handoff-envelope", "handoff-reconciler", "handoff-ticket", "make-before-break", "owner-epoch", "quiesce", "resume-ticket", "resume-too-old", "session-handoff", "session-migration", "shadow-target", "split-brain", "stale-writer", "state-hash", "stream-handoff", "target-acceptance", "tombstone", "tool-ledger", "vector-cursor"]
268
+ negative_terms = ["design-handoff", "implementation-plan", "private-agent-files", "read-only-transcript", "restart-summary", "stateless-request"]
269
+
244
270
  [routes."structured-concurrency-supervision-review"]
245
271
  category = "general_code"
246
272
  route_type = "adjunct"
@@ -502,6 +528,62 @@ route_type = "adjunct"
502
528
  priority = 79
503
529
  applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "security_change", "data_change"]
504
530
 
531
+ [routes."parser-engineering-review".contexts]
532
+ positive_terms = ["analysis-invalidation", "ast-lowering", "ast-serialization", "ast-verifier", "concrete-syntax-tree", "cst", "error-node", "hir-lowering", "lossless-cst", "missing-token", "node-id", "origin-map", "parser", "persistent-node-id", "rewrite-termination", "source-trivia", "surface-ast", "syntax-rewriter", "syntax-tree", "tree-transformer", "tree-visitor", "trivia-attachment", "wire-schema"]
533
+ negative_terms = ["structured-config-parse-only"]
534
+
535
+ [routes."name-resolution-integrity-review"]
536
+ category = "general_code"
537
+ route_type = "adjunct"
538
+ priority = 82
539
+ applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "security_change", "privacy_change", "data_change", "docs_change", "package_metadata_change", "release_risk"]
540
+
541
+ [routes."name-resolution-integrity-review".dependencies]
542
+ suggests_adjuncts = ["incident-triage-review", "compiler-engineering-review", "interpreter-engineering-review", "dependency-reality-check", "module-boundary-review", "cache-integrity-review", "observability-debuggability-review"]
543
+
544
+ [routes."name-resolution-integrity-review".contexts]
545
+ positive_terms = ["argument-dependent-lookup", "authoritative-dns", "bazel-repository-mapping", "class-loader", "cmake-find-package", "conditional-exports", "connection-pool-dns", "container-dns", "delegation", "dns-cache", "dns64", "dnssec", "doh", "edns", "extension-method", "glue-record", "gradle-variant", "happy-eyeballs", "headless-service", "https-record", "import-resolution", "kubernetes-dns", "loader-identity", "macro-hygiene", "module-cache", "module-resolution", "name-resolution", "namespace-package", "ndots", "negative-dns-cache", "nodata", "nss-state-machine", "nxdomain", "package-exports", "peer-dependency-context", "proxy-dns", "recursive-dns", "resolution-trace", "resolver-api", "resolver-path", "scope-shadowing", "search-suffix", "serve-stale", "split-dns", "svcb", "temporal-dead-zone", "ttl-cutover", "two-phase-lookup", "variant-selection"]
546
+ negative_terms = ["dependency-install-only", "dns-record-authoring-only", "domain-registration-only", "linker-symbol-only", "route-matching-only"]
547
+
548
+ [routes."compiler-engineering-review"]
549
+ category = "general_code"
550
+ route_type = "adjunct"
551
+ priority = 81
552
+ applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "security_change", "data_change", "docs_change", "package_metadata_change", "release_risk"]
553
+
554
+ [routes."compiler-engineering-review".dependencies]
555
+ suggests_adjuncts = ["parser-engineering-review", "formal-verification-review", "fuzz-harness-review", "race-condition-review", "memory-lifetime-review", "test-design-guard"]
556
+
557
+ [routes."compiler-engineering-review".contexts]
558
+ positive_terms = ["abi", "allocation-identity", "analysis-generation", "analysis-invalidation", "analysis-preservation", "archive-extraction", "assembler", "binary-export", "binary-id", "borrow-checker", "build-id", "canonical-form", "capture-analysis", "codegen", "comdat", "compiler", "compiler-testing", "crash-dump", "crash-symbolication", "critical-edge", "data-layout", "dead-code-elimination", "debug-symbol", "diagnostic-span", "differential-testing", "dominance", "dsym", "dwarf", "dynamic-loading", "dynamic-symbol", "effect-system", "elf", "exceptional-edge", "export-allowlist", "fact-provenance", "feature-interaction", "gnu-ld", "hir", "identical-code-folding", "import-library", "interposition", "ir", "ir-layer", "lcssa", "lifetime-epoch", "link-map", "link-order", "linker", "lir", "load-address", "loader-binding", "lowering-legality", "lto", "mach-o", "machine-ir", "mangling", "memoryssa", "metamorphic-testing", "mir", "miscompile", "object-format", "optimization-pass", "ownership-token", "pass-ordering", "pdb", "pe-coff", "phi-node", "plugin-abi", "plugin-loader", "pointer-provenance", "progressive-lowering", "property-testing", "relocation", "return-address", "section-gc", "section-reachability", "sealed-block", "semantic-refinement", "semantic-type", "source-location", "split-dwarf", "ssa", "ssa-destruction", "staged-verifier", "static-link", "storage-type", "strip-symbols", "symbol-server", "symbol-table", "symbol-versioning", "symbol-visibility", "thinlto", "transformation-coverage", "typed-hir", "unwind", "unwind-info", "verifier", "well-defined-program", "wrong-code"]
559
+ negative_terms = ["application-build-only", "application-test-only", "css-compiler", "dependency-install", "template-compiler"]
560
+
561
+ [routes."interpreter-engineering-review"]
562
+ category = "general_code"
563
+ route_type = "adjunct"
564
+ priority = 80
565
+ applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "security_change", "privacy_change", "data_change", "docs_change", "package_metadata_change", "release_risk"]
566
+
567
+ [routes."interpreter-engineering-review".dependencies]
568
+ suggests_adjuncts = ["parser-engineering-review", "compiler-engineering-review", "error-message-integrity-review", "fuzz-harness-review", "memory-lifetime-review"]
569
+
570
+ [routes."interpreter-engineering-review".contexts]
571
+ positive_terms = ["ast-interpreter", "bytecode", "closure", "completion-value", "diagnostic-fingerprint", "environment-chain", "ephemeron", "evaluation-order", "garbage-collector", "interpreter", "native-function", "opcode", "operator-dispatch", "resolver", "runtime-value", "sandbox-budget", "semantic-oracle", "upvalue", "virtual-machine", "vm", "write-barrier"]
572
+ negative_terms = ["host-runtime-upgrade", "jvm-runtime-only", "python-runtime-only", "shell-interpreter", "template-renderer-only"]
573
+
574
+ [routes."formal-verification-review"]
575
+ category = "general_code"
576
+ route_type = "adjunct"
577
+ priority = 83
578
+ applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "security_change", "privacy_change", "data_change", "docs_change", "package_metadata_change", "release_risk"]
579
+
580
+ [routes."formal-verification-review".dependencies]
581
+ suggests_adjuncts = ["race-condition-review", "two-phase-transition-integrity-review", "idempotency-integrity-review", "memory-lifetime-review", "compiler-engineering-review"]
582
+
583
+ [routes."formal-verification-review".contexts]
584
+ positive_terms = ["action-invariant", "alloy", "assumption-manifest", "bounded-model-checking", "cegar", "contract-proof", "dafny", "dpor", "fairness-assumption", "formal-verification", "hoare-logic", "ic3", "inductive-invariant", "invariant-proof", "kani", "lean", "linearizability", "liveness-proof", "model-based-testing", "model-checking", "partial-order-reduction", "proof-assistant", "proof-obligation", "prophecy-variable", "refinement-map", "rocq", "sat-unsat-unknown", "smt", "solver-theory", "state-explosion", "stuttering-refinement", "theorem-prover", "tla-plus", "trace-invariant", "total-correctness", "unsat-core", "vacuous-proof", "weak-memory-model", "weakest-precondition"]
585
+ negative_terms = ["schema-validation-only", "static-type-check-only", "unit-test-only", "validation-library-only"]
586
+
505
587
  [routes."type-state-modeling-review"]
506
588
  category = "general_code"
507
589
  route_type = "adjunct"
@@ -514,6 +596,52 @@ route_type = "adjunct"
514
596
  priority = 77
515
597
  applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "security_change", "privacy_change", "data_change"]
516
598
 
599
+ [routes."race-condition-review".dependencies]
600
+ suggests_adjuncts = ["concurrency-invariant-review", "memory-lifetime-review", "async-timing-boundary-review"]
601
+
602
+ [routes."race-condition-review".contexts]
603
+ positive_terms = ["aba", "atomic", "data-race", "happens-before", "interleaving", "linearizability", "lock-free", "race", "reclamation", "schedule", "semaphore", "thread"]
604
+ negative_terms = ["layout", "pricing", "prompt", "translation"]
605
+
606
+ [routes."input-event-synchronization-review"]
607
+ category = "general_code"
608
+ route_type = "adjunct"
609
+ priority = 82
610
+ applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "ui_change", "security_change", "privacy_change", "data_change", "package_metadata_change", "release_risk"]
611
+
612
+ [routes."input-event-synchronization-review".dependencies]
613
+ suggests_adjuncts = ["race-condition-review", "input-boundary-validation-review", "performance-measurement-integrity-review"]
614
+
615
+ [routes."input-event-synchronization-review".contexts]
616
+ positive_terms = ["altgraph", "clipboard-sync", "cloud-gaming", "coalesced-event", "composition-sync", "device-input", "drag", "focus-loss", "gamepad", "ime", "input-ack", "input-epoch", "input-event", "input-jitter", "input-loop", "keyboard", "lost-capture", "mouse", "pointer", "raw-input", "remote-desktop", "remote-input", "remote-kvm", "stuck-key", "surface-epoch", "wheel"]
617
+ negative_terms = ["form-validation", "prompt-input", "request-body", "text-field-only"]
618
+
619
+ [routes."modal-loop-reentrancy-review"]
620
+ category = "general_code"
621
+ route_type = "adjunct"
622
+ priority = 83
623
+ applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "ui_change", "security_change", "privacy_change", "data_change", "package_metadata_change", "release_risk"]
624
+
625
+ [routes."modal-loop-reentrancy-review".dependencies]
626
+ suggests_adjuncts = ["ui-dispatch-lifecycle-review", "input-event-synchronization-review"]
627
+
628
+ [routes."modal-loop-reentrancy-review".contexts]
629
+ positive_terms = ["deferred-delete", "dialog-exec", "dialog-generation", "dispatcher-frame", "message-pump", "modal-depth", "modal-loop", "modal-session", "nested-event-loop", "owner-disable", "process-events", "reentrancy", "run-loop-mode", "sendmessage", "sent-message", "show-dialog", "sync-ui-wait", "try-complete", "ui-deadlock"]
630
+ negative_terms = ["accessibility-only", "css-modal", "database-deadlock", "transaction-lock"]
631
+
632
+ [routes."ui-dispatch-lifecycle-review"]
633
+ category = "general_code"
634
+ route_type = "adjunct"
635
+ priority = 82
636
+ applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "ui_change", "security_change", "privacy_change", "data_change", "package_metadata_change", "release_risk"]
637
+
638
+ [routes."ui-dispatch-lifecycle-review".dependencies]
639
+ suggests_adjuncts = ["race-condition-review", "async-timing-boundary-review", "modal-loop-reentrancy-review"]
640
+
641
+ [routes."ui-dispatch-lifecycle-review".contexts]
642
+ positive_terms = ["begininvoke", "blocking-queued", "bound-model", "delete-later", "dispatchqueue-main", "dispatcher", "event-loop", "gui-freeze", "invoke-required", "mainactor", "native-handle", "object-affinity", "progress-callback", "runlater", "stale-ui-callback", "sync-context", "thread-affinity", "ui-dispatch", "ui-epoch", "ui-queue", "view-lifecycle", "window-closing"]
643
+ negative_terms = ["css-modal", "database-dispatch", "pure-render", "server-queue"]
644
+
517
645
  [routes."async-timing-boundary-review"]
518
646
  category = "general_code"
519
647
  route_type = "adjunct"
@@ -526,6 +654,10 @@ route_type = "adjunct"
526
654
  priority = 76
527
655
  applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "security_change", "privacy_change", "data_change"]
528
656
 
657
+ [routes."concurrency-invariant-review".contexts]
658
+ positive_terms = ["concurrency", "fencing", "lease", "leased", "owner", "shared", "stale-write", "worker"]
659
+ negative_terms = ["css", "layout", "prompt", "translation"]
660
+
529
661
  [routes."failure-integrity-review"]
530
662
  category = "general_code"
531
663
  route_type = "adjunct"
@@ -574,6 +706,13 @@ route_type = "adjunct"
574
706
  priority = 80
575
707
  applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "test_change", "public_api_change", "performance_change", "security_change", "privacy_change", "data_change", "migration_change", "docs_change", "package_metadata_change", "release_risk"]
576
708
 
709
+ [routes."idempotency-integrity-review".dependencies]
710
+ suggests_adjuncts = ["transaction-boundary-integrity-review", "queue-processing-integrity-review", "race-condition-review"]
711
+
712
+ [routes."idempotency-integrity-review".contexts]
713
+ positive_terms = ["aggregate-version", "dedupe", "duplicate-request", "effect-id", "fencing-token", "generation-token", "idempotency-key", "operation-id", "out-of-order", "response-replay", "sequence-gap", "stale-completion", "stale-write", "unknown-outcome"]
714
+ negative_terms = ["database-2pc-only", "lock-order-only", "pure-read", "query-only"]
715
+
577
716
  [routes."retry-policy-integrity-review"]
578
717
  category = "general_code"
579
718
  route_type = "adjunct"
@@ -1087,6 +1226,12 @@ route_type = "adjunct"
1087
1226
  priority = 40
1088
1227
  applies_to_reasons = ["test_change", "behavior_change"]
1089
1228
 
1229
+ [routes."fuzz-harness-review"]
1230
+ category = "tests"
1231
+ route_type = "adjunct"
1232
+ priority = 82
1233
+ applies_to_reasons = ["test_change", "behavior_change", "performance_change", "security_change"]
1234
+
1090
1235
  [routes."test-suite-performance-review"]
1091
1236
  category = "tests"
1092
1237
  route_type = "primary"
@@ -1152,6 +1297,12 @@ route_type = "adjunct"
1152
1297
  priority = 78
1153
1298
  applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "public_api_change", "security_change", "privacy_change", "data_change", "test_change", "docs_change", "package_metadata_change", "release_risk"]
1154
1299
 
1300
+ [routes."input-boundary-validation-review"]
1301
+ category = "security_privacy"
1302
+ route_type = "adjunct"
1303
+ priority = 83
1304
+ applies_to_reasons = ["unknown_change", "code_change", "behavior_change", "public_api_change", "security_change", "privacy_change", "data_change", "test_change", "performance_change"]
1305
+
1155
1306
  [routes."security-flow-review"]
1156
1307
  category = "security_privacy"
1157
1308
  route_type = "adjunct"