ibex 0.2.0 → 0.3.0

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 (437) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +95 -272
  3. data/docs/architecture.md +187 -35
  4. data/docs/bison-import.md +103 -0
  5. data/docs/comparison-policy.md +127 -0
  6. data/docs/configuration-model.md +59 -0
  7. data/docs/configuration-report.md +28 -0
  8. data/docs/conflict-explanation-reviews/v1/records/README.md +28 -0
  9. data/docs/conflict-explanation-study.md +62 -0
  10. data/docs/construction-profiling.md +157 -0
  11. data/docs/cst-migration.md +3 -4
  12. data/docs/cst.md +24 -0
  13. data/docs/decisions/0000-template.md +24 -0
  14. data/docs/decisions/0001-separate-ir-pipeline.md +34 -0
  15. data/docs/decisions/0002-opaque-user-code-boundary.md +32 -0
  16. data/docs/decisions/0003-self-hosted-grammar-frontend.md +32 -0
  17. data/docs/decisions/0004-shared-semantic-and-lossless-source-model.md +33 -0
  18. data/docs/decisions/0005-contained-grammar-composition.md +34 -0
  19. data/docs/decisions/0006-bounded-structural-grammar-lowering.md +32 -0
  20. data/docs/decisions/0007-shared-parser-construction-pipeline.md +33 -0
  21. data/docs/decisions/0008-versioned-runtime-package-boundary.md +36 -0
  22. data/docs/decisions/0009-isolated-parser-sessions.md +34 -0
  23. data/docs/decisions/0010-committed-runtime-observation.md +34 -0
  24. data/docs/decisions/0011-versioned-semantic-action-boundary.md +37 -0
  25. data/docs/decisions/0012-bounded-nonexecuting-analysis.md +37 -0
  26. data/docs/decisions/0013-transactional-generation-publication.md +37 -0
  27. data/docs/decisions/0014-versioned-generated-lexer.md +35 -0
  28. data/docs/decisions/0015-worker-isolated-browser-analysis.md +32 -0
  29. data/docs/decisions/0016-red-green-concrete-syntax.md +34 -0
  30. data/docs/decisions/0017-persistent-syntax-artifacts.md +35 -0
  31. data/docs/decisions/0018-conservative-incremental-syntax-reuse.md +38 -0
  32. data/docs/decisions/0019-runtime-syntax-session-boundary.md +51 -0
  33. data/docs/decisions/0020-grammar-ir-parser-contract.md +65 -0
  34. data/docs/decisions/0021-data-only-parser-table-sidecar.md +50 -0
  35. data/docs/decisions/0022-manifest-bound-verification-report.md +77 -0
  36. data/docs/decisions/0023-syntax-only-repair-results.md +48 -0
  37. data/docs/decisions/0024-direct-ielr-construction.md +42 -0
  38. data/docs/decisions/README.md +74 -0
  39. data/docs/declarative-configuration.md +262 -0
  40. data/docs/development.md +179 -2
  41. data/docs/direct-ielr-decision.md +120 -0
  42. data/docs/direct-multi-entry-decision.md +82 -0
  43. data/docs/editor-setup.md +2 -1
  44. data/docs/error-ux-review-rubric-v1.md +117 -0
  45. data/docs/error-ux-reviews/v1/records/README.md +22 -0
  46. data/docs/error-ux-round2-review-status-v1.json +27 -0
  47. data/docs/error-ux-round2-reviews/v1/records/README.md +30 -0
  48. data/docs/error-ux-round2-v1.json +1581 -0
  49. data/docs/error-ux-round2.md +111 -0
  50. data/docs/error-ux.md +54 -0
  51. data/docs/getting-started.md +80 -0
  52. data/docs/grammar-reference.md +184 -13
  53. data/docs/ielr-design.md +43 -0
  54. data/docs/ielr.md +92 -0
  55. data/docs/ja/bison-import.md +51 -0
  56. data/docs/ja/stable-api.md +53 -0
  57. data/docs/lexer-construction-profile.md +109 -0
  58. data/docs/lexer-migration.md +5 -0
  59. data/docs/maturity.md +128 -0
  60. data/docs/project-site-strategy.md +54 -0
  61. data/docs/racc-migration-evidence.md +45 -0
  62. data/docs/racc-migration.md +11 -0
  63. data/docs/release-readiness.md +126 -68
  64. data/docs/repair-semantics.md +123 -0
  65. data/docs/runtime-abi-evolution.md +307 -0
  66. data/docs/stability.md +144 -34
  67. data/docs/status.md +43 -0
  68. data/docs/syntax-sessions.md +183 -0
  69. data/docs/table-artifact.md +125 -0
  70. data/docs/test-interactions.md +219 -0
  71. data/docs/verification-report.md +137 -0
  72. data/docs/verifier-trust-boundary.md +199 -0
  73. data/docs/workloads.md +132 -0
  74. data/lib/ibex/analysis/digraph.rb +128 -0
  75. data/lib/ibex/analysis.rb +1 -0
  76. data/lib/ibex/bison_import/importer.rb +516 -0
  77. data/lib/ibex/bison_import/tokenizer.rb +260 -0
  78. data/lib/ibex/bison_import.rb +200 -0
  79. data/lib/ibex/bounded_subprocess.rb +171 -0
  80. data/lib/ibex/cli/ambiguity.rb +14 -5
  81. data/lib/ibex/cli/analysis.rb +134 -0
  82. data/lib/ibex/cli/bison_import.rb +121 -0
  83. data/lib/ibex/cli/config.rb +128 -0
  84. data/lib/ibex/cli/diagnostics.rb +31 -11
  85. data/lib/ibex/cli/documentation.rb +11 -8
  86. data/lib/ibex/cli/equiv.rb +169 -0
  87. data/lib/ibex/cli/error_messages.rb +11 -4
  88. data/lib/ibex/cli/explain.rb +14 -5
  89. data/lib/ibex/cli/fix.rb +203 -0
  90. data/lib/ibex/cli/formatting.rb +11 -10
  91. data/lib/ibex/cli/fuzz.rb +200 -0
  92. data/lib/ibex/cli/fuzz_regressions.rb +145 -0
  93. data/lib/ibex/cli/generation_artifacts.rb +53 -2
  94. data/lib/ibex/cli/generation_error_messages.rb +1 -1
  95. data/lib/ibex/cli/grammar_tests.rb +32 -14
  96. data/lib/ibex/cli/ir_tools.rb +5 -61
  97. data/lib/ibex/cli/outputs.rb +60 -33
  98. data/lib/ibex/cli/reduce.rb +202 -0
  99. data/lib/ibex/cli/reduce_reporting.rb +71 -0
  100. data/lib/ibex/cli/samples.rb +49 -23
  101. data/lib/ibex/cli/verify.rb +116 -0
  102. data/lib/ibex/cli/watch.rb +6 -5
  103. data/lib/ibex/cli.rb +357 -56
  104. data/lib/ibex/codegen/action_locations.rb +1 -1
  105. data/lib/ibex/codegen/action_method_source.rb +5 -6
  106. data/lib/ibex/codegen/action_source.rb +3 -2
  107. data/lib/ibex/codegen/ambiguity.rb +5 -4
  108. data/lib/ibex/codegen/explain.rb +123 -55
  109. data/lib/ibex/codegen/generated_action_abi.rb +10 -5
  110. data/lib/ibex/codegen/rbs.rb +15 -7
  111. data/lib/ibex/codegen/report.rb +25 -13
  112. data/lib/ibex/codegen/ruby.rb +28 -64
  113. data/lib/ibex/codegen/ruby_actions.rb +9 -6
  114. data/lib/ibex/codegen/ruby_syntax.rb +15 -9
  115. data/lib/ibex/configuration/analysis_grammar.rb +35 -0
  116. data/lib/ibex/configuration/explanation.rb +421 -0
  117. data/lib/ibex/configuration/inspector.rb +232 -0
  118. data/lib/ibex/configuration.rb +580 -0
  119. data/lib/ibex/coverage/collector.rb +21 -11
  120. data/lib/ibex/coverage/event_stream.rb +13 -7
  121. data/lib/ibex/coverage/report.rb +26 -18
  122. data/lib/ibex/coverage/runtime_event_validator.rb +30 -21
  123. data/lib/ibex/delta_reducer.rb +99 -0
  124. data/lib/ibex/diff.rb +140 -0
  125. data/lib/ibex/equiv/machine.rb +135 -0
  126. data/lib/ibex/equiv.rb +373 -0
  127. data/lib/ibex/fix.rb +557 -0
  128. data/lib/ibex/frontend/ast.rb +22 -2
  129. data/lib/ibex/frontend/bootstrap_parser.rb +6 -13
  130. data/lib/ibex/frontend/diagnostic.rb +1 -1
  131. data/lib/ibex/frontend/formatter.rb +72 -26
  132. data/lib/ibex/frontend/generated_parser.rb +147 -117
  133. data/lib/ibex/frontend/generated_parser_base.rb +7 -3
  134. data/lib/ibex/frontend/generated_parser_includes.rb +1 -11
  135. data/lib/ibex/frontend/generation.rb +1 -1
  136. data/lib/ibex/frontend/parser/declarations.rb +17 -2
  137. data/lib/ibex/frontend/parser_configuration_support.rb +56 -0
  138. data/lib/ibex/frontend/regenerator.rb +1 -0
  139. data/lib/ibex/frontend/resolution.rb +2 -1
  140. data/lib/ibex/frontend/resolver.rb +1 -1
  141. data/lib/ibex/frontend/rule_documentation.rb +2 -1
  142. data/lib/ibex/frontend/source_cursor.rb +2 -2
  143. data/lib/ibex/frontend/source_span.rb +9 -1
  144. data/lib/ibex/frontend/token_adapter/declaration_state.rb +38 -6
  145. data/lib/ibex/frontend/token_adapter.rb +10 -0
  146. data/lib/ibex/frontend.rb +1 -0
  147. data/lib/ibex/fuzz.rb +219 -0
  148. data/lib/ibex/generation_input.rb +1 -1
  149. data/lib/ibex/generation_manifest.rb +36 -25
  150. data/lib/ibex/generation_transaction.rb +1 -1
  151. data/lib/ibex/generation_transaction_recovery.rb +4 -4
  152. data/lib/ibex/generation_transaction_validation.rb +2 -2
  153. data/lib/ibex/grammar_tests.rb +1 -1
  154. data/lib/ibex/ir/automaton_ir.rb +61 -19
  155. data/lib/ibex/ir/grammar_ir.rb +76 -45
  156. data/lib/ibex/ir/lexer_ir.rb +5 -5
  157. data/lib/ibex/ir/parser_contract.rb +135 -0
  158. data/lib/ibex/ir/serialize.rb +203 -76
  159. data/lib/ibex/ir/validator/automaton.rb +64 -34
  160. data/lib/ibex/ir/validator/base.rb +51 -33
  161. data/lib/ibex/ir/validator/grammar.rb +113 -83
  162. data/lib/ibex/ir/validator/lexer.rb +2 -2
  163. data/lib/ibex/ir/validator.rb +2 -1
  164. data/lib/ibex/ir.rb +16 -3
  165. data/lib/ibex/lalr/build_metrics.rb +50 -2
  166. data/lib/ibex/lalr/builder.rb +191 -56
  167. data/lib/ibex/lalr/conflict_search.rb +15 -4
  168. data/lib/ibex/lalr/counterexample.rb +19 -14
  169. data/lib/ibex/lalr/direct_lookaheads.rb +110 -57
  170. data/lib/ibex/lalr/goto_follows.rb +229 -0
  171. data/lib/ibex/lalr/ielr/annotator.rb +214 -0
  172. data/lib/ibex/lalr/ielr/bits.rb +28 -0
  173. data/lib/ibex/lalr/ielr/inadequacy.rb +47 -0
  174. data/lib/ibex/lalr/ielr/item_lookaheads.rb +78 -0
  175. data/lib/ibex/lalr/ielr/pipeline.rb +75 -0
  176. data/lib/ibex/lalr/ielr/split_stability.rb +78 -0
  177. data/lib/ibex/lalr/ielr/split_state.rb +20 -0
  178. data/lib/ibex/lalr/ielr/state_splitter.rb +258 -0
  179. data/lib/ibex/lalr/ielr_partition.rb +22 -8
  180. data/lib/ibex/lalr/inadequacy_report.rb +50 -0
  181. data/lib/ibex/lalr/lookahead_propagation.rb +111 -0
  182. data/lib/ibex/lalr/lr0_collection.rb +121 -0
  183. data/lib/ibex/lalr/unreachable_states.rb +80 -0
  184. data/lib/ibex/lalr.rb +52 -1
  185. data/lib/ibex/location.rb +3 -3
  186. data/lib/ibex/lsp/document_handlers.rb +9 -7
  187. data/lib/ibex/lsp/initialization_handlers.rb +9 -7
  188. data/lib/ibex/lsp/navigation_handlers.rb +25 -11
  189. data/lib/ibex/lsp/parser_configuration_assistance.rb +149 -0
  190. data/lib/ibex/lsp/position_codec.rb +6 -2
  191. data/lib/ibex/lsp/request_handlers.rb +3 -2
  192. data/lib/ibex/lsp/request_support.rb +14 -7
  193. data/lib/ibex/lsp/server.rb +13 -11
  194. data/lib/ibex/lsp/symbol_index.rb +13 -13
  195. data/lib/ibex/lsp/symbol_index_builder.rb +30 -20
  196. data/lib/ibex/lsp/symbol_occurrence.rb +8 -2
  197. data/lib/ibex/lsp/transport.rb +13 -3
  198. data/lib/ibex/lsp/workspace.rb +5 -4
  199. data/lib/ibex/lsp/workspace_analyzer.rb +1 -1
  200. data/lib/ibex/lsp.rb +1 -0
  201. data/lib/ibex/messages/en.yml +28 -0
  202. data/lib/ibex/messages/ja.yml +28 -0
  203. data/lib/ibex/messages.rb +68 -0
  204. data/lib/ibex/metrics.rb +175 -0
  205. data/lib/ibex/normalize/declarations.rb +2 -0
  206. data/lib/ibex/normalize/diagnostics.rb +63 -38
  207. data/lib/ibex/normalize/expander.rb +5 -4
  208. data/lib/ibex/normalize/expression.rb +8 -6
  209. data/lib/ibex/normalize/grammar_builder.rb +26 -0
  210. data/lib/ibex/normalize/inline_expansion.rb +100 -49
  211. data/lib/ibex/normalize/lexer.rb +3 -3
  212. data/lib/ibex/normalize/parameter_ebnf_lowering.rb +11 -10
  213. data/lib/ibex/normalize/parameter_lowering.rb +40 -23
  214. data/lib/ibex/normalize/parameters.rb +31 -4
  215. data/lib/ibex/normalize/parser_configuration.rb +70 -0
  216. data/lib/ibex/normalize.rb +10 -20
  217. data/lib/ibex/racc_migration/report.rb +6 -3
  218. data/lib/ibex/rake_task.rb +1 -1
  219. data/lib/ibex/samples.rb +43 -13
  220. data/lib/ibex/table_artifact/builder.rb +266 -0
  221. data/lib/ibex/table_artifact/cst_projection.rb +70 -0
  222. data/lib/ibex/table_artifact/document.rb +39 -0
  223. data/lib/ibex/table_artifact/executor.rb +187 -0
  224. data/lib/ibex/table_artifact/serializer.rb +57 -0
  225. data/lib/ibex/table_artifact/validator/metadata.rb +179 -0
  226. data/lib/ibex/table_artifact/validator/support.rb +86 -0
  227. data/lib/ibex/table_artifact/validator/tables.rb +238 -0
  228. data/lib/ibex/table_artifact/validator.rb +253 -0
  229. data/lib/ibex/table_artifact.rb +88 -0
  230. data/lib/ibex/table_simulation/result.rb +6 -2
  231. data/lib/ibex/table_simulation/step.rb +3 -1
  232. data/lib/ibex/tables.rb +14 -0
  233. data/lib/ibex/verifiable_generation_bundle.rb +86 -0
  234. data/lib/ibex/verification_report/builder.rb +159 -0
  235. data/lib/ibex/verification_report/canonical_ir.rb +123 -0
  236. data/lib/ibex/verification_report/logical_path.rb +68 -0
  237. data/lib/ibex/verification_report/validator.rb +329 -0
  238. data/lib/ibex/verification_report.rb +69 -0
  239. data/lib/ibex/verify/action_correspondence.rb +138 -0
  240. data/lib/ibex/verify/language_witness.rb +295 -0
  241. data/lib/ibex/verify/reference_collection.rb +190 -0
  242. data/lib/ibex/verify/result.rb +73 -0
  243. data/lib/ibex/verify/verifier.rb +598 -0
  244. data/lib/ibex/verify.rb +15 -0
  245. data/lib/ibex/version.rb +1 -1
  246. data/lib/ibex/watch/runner.rb +10 -1
  247. data/lib/ibex/watch/source_snapshot.rb +13 -8
  248. data/lib/ibex.rb +10 -0
  249. data/schema/{automaton-ir-v1.schema.json → automaton-ir-definitions.schema.json} +6 -6
  250. data/schema/{automaton-ir-v2.schema.json → automaton-ir.schema.json} +14 -7
  251. data/schema/bison-import-v1.schema.json +106 -0
  252. data/schema/conflict-explanation-review-v1.schema.json +196 -0
  253. data/schema/conflict-explanation-study-v1.schema.json +528 -0
  254. data/schema/construction-profile-v1.schema.json +779 -0
  255. data/schema/diff-v1.schema.json +41 -0
  256. data/schema/direct-ielr-decision-v1.schema.json +200 -0
  257. data/schema/equiv-v1.schema.json +64 -0
  258. data/schema/error-ux-review-v1.schema.json +609 -0
  259. data/schema/error-ux-round2-review-v1.schema.json +191 -0
  260. data/schema/error-ux-round2-v1.schema.json +519 -0
  261. data/schema/explain-v1.schema.json +63 -1
  262. data/schema/fix-v1.schema.json +64 -0
  263. data/schema/fix-v2.schema.json +66 -0
  264. data/schema/fix-v3.schema.json +101 -0
  265. data/schema/fuzz-regression-v1.schema.json +79 -0
  266. data/schema/fuzz-v1.schema.json +114 -0
  267. data/schema/{grammar-ir-v2.schema.json → grammar-ir-extensions.schema.json} +20 -65
  268. data/schema/{grammar-ir-v1.schema.json → grammar-ir-foundation.schema.json} +3 -3
  269. data/schema/grammar-ir.schema.json +271 -0
  270. data/schema/ielr-benchmark-v1.schema.json +85 -0
  271. data/schema/lexer-profile-v1.schema.json +491 -0
  272. data/schema/metrics-v1.schema.json +60 -0
  273. data/schema/reduce-v1.schema.json +22 -0
  274. data/schema/reduce-v2.schema.json +63 -0
  275. data/schema/table-artifact-v1.schema.json +377 -0
  276. data/schema/verification-report-v1.schema.json +222 -0
  277. data/schema/verify-v1.schema.json +42 -0
  278. data/sig/ibex/analysis/digraph.rbs +19 -0
  279. data/sig/ibex/bison_import/importer.rbs +140 -0
  280. data/sig/ibex/bison_import/tokenizer.rbs +91 -0
  281. data/sig/ibex/bison_import.rbs +95 -0
  282. data/sig/ibex/bounded_subprocess.rbs +76 -0
  283. data/sig/ibex/cli/ambiguity.rbs +6 -0
  284. data/sig/ibex/cli/analysis.rbs +43 -0
  285. data/sig/ibex/cli/bison_import.rbs +32 -0
  286. data/sig/ibex/cli/config.rbs +35 -0
  287. data/sig/ibex/cli/diagnostics.rbs +16 -3
  288. data/sig/ibex/cli/documentation.rbs +5 -1
  289. data/sig/ibex/cli/equiv.rbs +49 -0
  290. data/sig/ibex/cli/error_messages.rbs +6 -0
  291. data/sig/ibex/cli/explain.rbs +6 -0
  292. data/sig/ibex/cli/fix.rbs +53 -0
  293. data/sig/ibex/cli/formatting.rbs +5 -1
  294. data/sig/ibex/cli/fuzz.rbs +47 -0
  295. data/sig/ibex/cli/fuzz_regressions.rbs +40 -0
  296. data/sig/ibex/cli/generation_artifacts.rbs +21 -2
  297. data/sig/ibex/cli/generation_error_messages.rbs +2 -2
  298. data/sig/ibex/cli/grammar_tests.rbs +15 -3
  299. data/sig/ibex/cli/ir_tools.rbs +7 -19
  300. data/sig/ibex/cli/outputs.rbs +9 -3
  301. data/sig/ibex/cli/reduce.rbs +60 -0
  302. data/sig/ibex/cli/reduce_reporting.rbs +27 -0
  303. data/sig/ibex/cli/samples.rbs +8 -0
  304. data/sig/ibex/cli/verify.rbs +28 -0
  305. data/sig/ibex/cli/watch.rbs +2 -2
  306. data/sig/ibex/cli.rbs +79 -5
  307. data/sig/ibex/codegen/action_method_source.rbs +4 -4
  308. data/sig/ibex/codegen/explain.rbs +45 -25
  309. data/sig/ibex/codegen/generated_action_abi.rbs +14 -10
  310. data/sig/ibex/codegen/rbs.rbs +12 -10
  311. data/sig/ibex/codegen/report.rbs +12 -12
  312. data/sig/ibex/codegen/ruby.rbs +18 -15
  313. data/sig/ibex/codegen/ruby_actions.rbs +6 -6
  314. data/sig/ibex/codegen/ruby_syntax.rbs +10 -8
  315. data/sig/ibex/configuration/analysis_grammar.rbs +13 -0
  316. data/sig/ibex/configuration/explanation.rbs +195 -0
  317. data/sig/ibex/configuration/inspector.rbs +53 -0
  318. data/sig/ibex/configuration.rbs +242 -0
  319. data/sig/ibex/coverage/collector.rbs +16 -14
  320. data/sig/ibex/coverage/event_stream.rbs +12 -10
  321. data/sig/ibex/coverage/report.rbs +20 -18
  322. data/sig/ibex/coverage/runtime_event_validator.rbs +38 -36
  323. data/sig/ibex/delta_reducer.rbs +38 -0
  324. data/sig/ibex/diff.rbs +47 -0
  325. data/sig/ibex/equiv/machine.rbs +54 -0
  326. data/sig/ibex/equiv.rbs +129 -0
  327. data/sig/ibex/fix.rbs +138 -0
  328. data/sig/ibex/frontend/ast.rbs +33 -7
  329. data/sig/ibex/frontend/bootstrap_parser.rbs +2 -0
  330. data/sig/ibex/frontend/diagnostic.rbs +2 -2
  331. data/sig/ibex/frontend/formatter.rbs +38 -30
  332. data/sig/ibex/frontend/generated_parser.rbs +87 -77
  333. data/sig/ibex/frontend/generated_parser_base.rbs +4 -2
  334. data/sig/ibex/frontend/parser/declarations.rbs +3 -0
  335. data/sig/ibex/frontend/parser_configuration_support.rbs +27 -0
  336. data/sig/ibex/frontend/resolution.rbs +3 -2
  337. data/sig/ibex/frontend/source_cursor.rbs +2 -2
  338. data/sig/ibex/frontend/source_span.rbs +5 -2
  339. data/sig/ibex/frontend/token_adapter/declaration_state.rbs +13 -1
  340. data/sig/ibex/frontend/token_adapter.rbs +6 -0
  341. data/sig/ibex/fuzz.rbs +71 -0
  342. data/sig/ibex/generation_input.rbs +2 -2
  343. data/sig/ibex/generation_manifest.rbs +35 -32
  344. data/sig/ibex/generation_transaction_recovery.rbs +2 -2
  345. data/sig/ibex/generation_transaction_validation.rbs +2 -2
  346. data/sig/ibex/grammar_tests.rbs +2 -2
  347. data/sig/ibex/ir/automaton_ir.rbs +30 -11
  348. data/sig/ibex/ir/grammar_ir.rbs +41 -27
  349. data/sig/ibex/ir/lexer_ir.rbs +8 -8
  350. data/sig/ibex/ir/parser_contract.rbs +69 -0
  351. data/sig/ibex/ir/serialize.rbs +63 -28
  352. data/sig/ibex/ir/validator/automaton.rbs +47 -44
  353. data/sig/ibex/ir/validator/base.rbs +35 -31
  354. data/sig/ibex/ir/validator/grammar.rbs +78 -67
  355. data/sig/ibex/ir/validator/lexer.rbs +4 -4
  356. data/sig/ibex/ir.rbs +9 -3
  357. data/sig/ibex/lalr/build_metrics.rbs +42 -2
  358. data/sig/ibex/lalr/builder.rbs +75 -24
  359. data/sig/ibex/lalr/conflict_search.rbs +5 -2
  360. data/sig/ibex/lalr/counterexample.rbs +17 -14
  361. data/sig/ibex/lalr/direct_lookaheads.rbs +35 -28
  362. data/sig/ibex/lalr/goto_follows.rbs +89 -0
  363. data/sig/ibex/lalr/ielr/annotator.rbs +67 -0
  364. data/sig/ibex/lalr/ielr/bits.rbs +14 -0
  365. data/sig/ibex/lalr/ielr/inadequacy.rbs +24 -0
  366. data/sig/ibex/lalr/ielr/item_lookaheads.rbs +35 -0
  367. data/sig/ibex/lalr/ielr/pipeline.rbs +17 -0
  368. data/sig/ibex/lalr/ielr/split_stability.rbs +27 -0
  369. data/sig/ibex/lalr/ielr/split_state.rbs +14 -0
  370. data/sig/ibex/lalr/ielr/state_splitter.rbs +76 -0
  371. data/sig/ibex/lalr/ielr_partition.rbs +17 -5
  372. data/sig/ibex/lalr/inadequacy_report.rbs +21 -0
  373. data/sig/ibex/lalr/lookahead_propagation.rbs +38 -0
  374. data/sig/ibex/lalr/lr0_collection.rbs +50 -0
  375. data/sig/ibex/lalr/unreachable_states.rbs +25 -0
  376. data/sig/ibex/lalr.rbs +11 -1
  377. data/sig/ibex/location.rbs +6 -6
  378. data/sig/ibex/lsp/document_handlers.rbs +8 -8
  379. data/sig/ibex/lsp/initialization_handlers.rbs +12 -12
  380. data/sig/ibex/lsp/navigation_handlers.rbs +15 -12
  381. data/sig/ibex/lsp/parser_configuration_assistance.rbs +49 -0
  382. data/sig/ibex/lsp/position_codec.rbs +8 -4
  383. data/sig/ibex/lsp/request_handlers.rbs +4 -4
  384. data/sig/ibex/lsp/request_support.rbs +8 -8
  385. data/sig/ibex/lsp/server.rbs +16 -16
  386. data/sig/ibex/lsp/symbol_index.rbs +20 -21
  387. data/sig/ibex/lsp/symbol_index_builder.rbs +9 -8
  388. data/sig/ibex/lsp/symbol_occurrence.rbs +11 -5
  389. data/sig/ibex/lsp/transport.rbs +18 -6
  390. data/sig/ibex/lsp/workspace.rbs +3 -2
  391. data/sig/ibex/lsp/workspace_analyzer.rbs +1 -1
  392. data/sig/ibex/messages.rbs +26 -0
  393. data/sig/ibex/metrics.rbs +50 -0
  394. data/sig/ibex/normalize/diagnostics.rbs +4 -4
  395. data/sig/ibex/normalize/expander.rbs +2 -2
  396. data/sig/ibex/normalize/expression.rbs +10 -8
  397. data/sig/ibex/normalize/grammar_builder.rbs +11 -0
  398. data/sig/ibex/normalize/inline_expansion.rbs +59 -50
  399. data/sig/ibex/normalize/lexer.rbs +4 -4
  400. data/sig/ibex/normalize/parameter_ebnf_lowering.rbs +15 -14
  401. data/sig/ibex/normalize/parameter_lowering.rbs +18 -18
  402. data/sig/ibex/normalize/parameters.rbs +13 -8
  403. data/sig/ibex/normalize/parser_configuration.rbs +23 -0
  404. data/sig/ibex/normalize.rbs +11 -5
  405. data/sig/ibex/racc_migration/report.rbs +8 -6
  406. data/sig/ibex/rake_task.rbs +1 -1
  407. data/sig/ibex/samples.rbs +13 -4
  408. data/sig/ibex/table_artifact/builder.rbs +93 -0
  409. data/sig/ibex/table_artifact/cst_projection.rbs +20 -0
  410. data/sig/ibex/table_artifact/document.rbs +27 -0
  411. data/sig/ibex/table_artifact/executor.rbs +66 -0
  412. data/sig/ibex/table_artifact/serializer.rbs +25 -0
  413. data/sig/ibex/table_artifact/validator/metadata.rbs +52 -0
  414. data/sig/ibex/table_artifact/validator/support.rbs +46 -0
  415. data/sig/ibex/table_artifact/validator/tables.rbs +63 -0
  416. data/sig/ibex/table_artifact/validator.rbs +66 -0
  417. data/sig/ibex/table_artifact.rbs +32 -0
  418. data/sig/ibex/table_simulation/result.rbs +8 -4
  419. data/sig/ibex/table_simulation/step.rbs +4 -2
  420. data/sig/ibex/tables.rbs +10 -9
  421. data/sig/ibex/verifiable_generation_bundle.rbs +24 -0
  422. data/sig/ibex/verification_report/builder.rbs +53 -0
  423. data/sig/ibex/verification_report/canonical_ir.rbs +41 -0
  424. data/sig/ibex/verification_report/logical_path.rbs +34 -0
  425. data/sig/ibex/verification_report/validator.rbs +114 -0
  426. data/sig/ibex/verification_report.rbs +44 -0
  427. data/sig/ibex/verify/action_correspondence.rbs +50 -0
  428. data/sig/ibex/verify/language_witness.rbs +112 -0
  429. data/sig/ibex/verify/reference_collection.rbs +63 -0
  430. data/sig/ibex/verify/result.rbs +52 -0
  431. data/sig/ibex/verify/verifier.rbs +170 -0
  432. data/sig/ibex/verify.rbs +6 -0
  433. data/sig/ibex/watch/runner.rbs +12 -2
  434. data/sig/ibex/watch/source_snapshot.rbs +13 -9
  435. metadata +232 -12
  436. data/lib/ibex/ir/migration.rb +0 -120
  437. data/sig/ibex/ir/migration.rbs +0 -34
@@ -0,0 +1,48 @@
1
+ # ADR 0023: Keep editor repair proposals syntax-only
2
+
3
+ ## Status
4
+
5
+ Accepted as an Experimental runtime API boundary.
6
+
7
+ ## Context
8
+
9
+ The semantic repair path selects a `RepairPlan` whose buffered token positions
10
+ and replay values are meaningful to a parser application, but an editor needs
11
+ source edits and a fresh syntax result. Exposing replay values would couple the
12
+ editor boundary to application semantic actions and could be mistaken for an
13
+ intent or correctness guarantee.
14
+
15
+ ## Decision
16
+
17
+ Add `SyntaxSession#repair` as a separate, additive operation. It runs a fresh
18
+ private parser with production actions suppressed, captures token identity and
19
+ absolute byte ranges, resolves source spelling only from caller-provided text
20
+ or conservative punctuation literals, applies byte edits to an immutable
21
+ `SourceText`, and validates the edited bytes with another fresh syntax session.
22
+ The result contains bounded search status, immutable syntax edit metadata,
23
+ diagnostics, exact updated source bytes, and the validation snapshot, but no
24
+ semantic value. The originating session is never mutated and the application's
25
+ repair callback is not invoked.
26
+
27
+ ## Alternatives rejected
28
+
29
+ 1. Reuse the semantic replay result: rejected because it would expose or
30
+ fabricate application values and would make editor output depend on action
31
+ execution.
32
+ 2. Add a second editor-specific search algorithm: rejected because it would
33
+ create two bounded-search semantics and a new proof surface.
34
+ 3. Infer arbitrary token spellings: rejected because a token name does not
35
+ define source bytes; missing named-token spelling therefore fails closed.
36
+
37
+ The v1 boundary accepts one selected repair segment. Overlapping edits,
38
+ multiple segments, exhaustion, cancellation, and hard service limits cannot
39
+ be converted into successful results.
40
+
41
+ ## Consequences
42
+
43
+ The runtime API and RBS surface grow additively while parser-table format v6,
44
+ IR schemas, and grammar syntax remain unchanged. Embedded generated parsers
45
+ must be regenerated to acquire the implementation. Accepted proposals prove
46
+ only fresh syntactic acceptance; they do not prove semantic correctness or
47
+ user intent. Error validation retains exact edited bytes separately because an
48
+ error CST may contain only the consumed prefix.
@@ -0,0 +1,42 @@
1
+ # ADR 0024: Keep direct IELR as an opt-in construction strategy
2
+
3
+ - Status: Accepted for experimental implementation; default adoption remains held
4
+ - Date: 2026-08-11
5
+
6
+ ## Context
7
+
8
+ The existing IELR partition strategy constructs canonical LR(1) first and then
9
+ merges compatible states. That path is conservative and is retained as the
10
+ default. A direct implementation is useful when canonical state construction
11
+ is the dominant cost, but it carries a larger proof and maintenance surface.
12
+
13
+ ## Decision
14
+
15
+ Implement direct IELR as `Builder`'s explicit `ielr_strategy: :direct` and as
16
+ the CLI option `--ielr-strategy=direct`. The direct pipeline is built from
17
+ LR(0), goto-follow closures, lane annotations, split-stability checks, state
18
+ splitting, and a second item-level lookahead propagation pass. It emits the
19
+ same Automaton IR consumed by all other algorithms.
20
+
21
+ Keep `:partition` as the default IELR strategy. Do not claim that direct IELR
22
+ is globally state-minimal, do not change public state-number baselines, and do
23
+ not enable unreachable-state compaction by default. The direct decision dossier
24
+ remains a release and evidence gate; an opt-in implementation is not evidence
25
+ that the gate has been satisfied.
26
+
27
+ ## Consequences
28
+
29
+ - Direct construction can be exercised and profiled without changing existing
30
+ parser output or release defaults.
31
+ - The implementation records phase metrics and offers bounded diagnostic
32
+ reports, which makes future independent review possible.
33
+ - The direct path must retain adversarial fixtures, gallery regression tests,
34
+ RBS, and static-quality checks as part of its maintenance budget.
35
+ - A future default change requires new real-workload measurements, an
36
+ independent adequacy review, and a separately updated decision record.
37
+
38
+ ## Provenance constraint
39
+
40
+ The implementation is derived from the published IELR paper and local parser
41
+ specifications only. GPL implementation sources are not inspected, translated,
42
+ or used as design input.
@@ -0,0 +1,74 @@
1
+ # Implementation architecture decisions
2
+
3
+ This directory records only durable implementation choices whose rationale
4
+ cannot be recovered safely from code or reference documentation alone.
5
+
6
+ An ADR belongs here only when every answer below is yes:
7
+
8
+ 1. Were at least two credible implementation approaches available?
9
+ 2. Does the choice cross a component, execution, persistence, packaging, or
10
+ security boundary?
11
+ 3. Would reversing it require coordinated changes or invalidate stored or
12
+ generated artifacts?
13
+ 4. Does a future maintainer need the rejected alternatives and trade-offs to
14
+ avoid repeating the decision?
15
+
16
+ Delete or merge an ADR when the answer stops being yes. Renumber the remaining
17
+ files; this directory is a current architecture index, not an append-only
18
+ project diary.
19
+
20
+ The following are not ADRs:
21
+
22
+ - feature and command specifications;
23
+ - descriptions of code that has already been implemented;
24
+ - compatibility fixes and migration edge cases;
25
+ - individual performance optimizations or rejected experiments;
26
+ - test plans, benchmarks, acceptance evidence, and release gates;
27
+ - maturity or stability declarations; and
28
+ - decisions superseded by the current implementation.
29
+
30
+ Those facts belong in reference documentation, tests, benchmark artifacts, or
31
+ version control. Evidence may support an ADR, but it is not the decision.
32
+
33
+ The following subjects belong in their operational documents instead:
34
+
35
+ - contributor workflow, CI jobs, test matrices, dependency automation, and
36
+ quality gates: [`docs/development.md`](../development.md);
37
+ - benchmark protocols, artifact ingestion, and comparison rules:
38
+ [`benchmark/README.md`](../../benchmark/README.md);
39
+ - documentation organization, generation, hosting, and publication:
40
+ the relevant documentation or workflow;
41
+ - maturity, compatibility, and deprecation policy:
42
+ [`docs/stability.md`](../stability.md);
43
+ - release decisions and release gates:
44
+ [`docs/release-readiness.md`](../release-readiness.md); and
45
+ - error-experience evidence and human assessments:
46
+ [`docs/error-ux.md`](../error-ux.md).
47
+
48
+ Use [`0000-template.md`](0000-template.md) for a new implementation decision.
49
+
50
+ ## Current decisions
51
+
52
+ - [0001: Separate pipeline stages with current IR](0001-separate-ir-pipeline.md)
53
+ - [0002: Keep grammar-embedded Ruby opaque until code generation](0002-opaque-user-code-boundary.md)
54
+ - [0003: Self-host the grammar parser behind an explicit bootstrap](0003-self-hosted-grammar-frontend.md)
55
+ - [0004: Derive semantic and lossless source views from one lexing pass](0004-shared-semantic-and-lossless-source-model.md)
56
+ - [0005: Resolve grammar composition in a contained filesystem boundary](0005-contained-grammar-composition.md)
57
+ - [0006: Lower grammar extensions structurally and under explicit bounds](0006-bounded-structural-grammar-lowering.md)
58
+ - [0007: Share one downstream pipeline across parser algorithms](0007-shared-parser-construction-pipeline.md)
59
+ - [0008: Separate the runtime behind a versioned parser-table ABI](0008-versioned-runtime-package-boundary.md)
60
+ - [0009: Isolate mutable parser sessions from immutable parser data](0009-isolated-parser-sessions.md)
61
+ - [0010: Observe only committed runtime transitions](0010-committed-runtime-observation.md)
62
+ - [0011: Compile opaque actions once behind a versioned calling boundary](0011-versioned-semantic-action-boundary.md)
63
+ - [0012: Keep parser analysis bounded and free of semantic execution](0012-bounded-nonexecuting-analysis.md)
64
+ - [0013: Publish generated artifacts as a verified transaction](0013-transactional-generation-publication.md)
65
+ - [0014: Model generated lexers as an independently versioned stage](0014-versioned-generated-lexer.md)
66
+ - [0015: Isolate browser analysis in a replaceable worker](0015-worker-isolated-browser-analysis.md)
67
+ - [0016: Represent concrete syntax with immutable Green data and lazy Red views](0016-red-green-concrete-syntax.md)
68
+ - [0017: Persist and edit syntax through Green structure](0017-persistent-syntax-artifacts.md)
69
+ - [0018: Reuse incremental syntax only with conservative proofs](0018-conservative-incremental-syntax-reuse.md)
70
+ - [0019: Keep generated-language syntax sessions in the runtime](0019-runtime-syntax-session-boundary.md)
71
+ - [0020: Persist parser contracts in Grammar IR](0020-grammar-ir-parser-contract.md)
72
+ - [0021: Persist executable parser tables as a data-only sidecar](0021-data-only-parser-table-sidecar.md)
73
+ - [0022: Bind scoped verification evidence through the generation manifest](0022-manifest-bound-verification-report.md)
74
+ - [0023: Keep editor repair proposals syntax-only](0023-syntax-only-repair-results.md)
@@ -0,0 +1,262 @@
1
+ # Declarative configuration inventory
2
+
3
+ <!-- Generated by tool/quality/configuration_inventory.rb; edit options-v1.yml and regenerate. -->
4
+
5
+ This inventory classifies every production `OptionParser` registration API call under `exe/` and `lib/` without loading Ibex or user code.
6
+ The closed API family is `on`, `on_head`, `on_tail`, `define`, `define_head`, `define_tail`,
7
+ `def_option`, `def_head_option`, and `def_tail_option` in explicit or implicit call forms.
8
+ Unresolved registrations and splats fail closed; every source method has a reviewed command surface.
9
+ Reflective registration through `send`, `public_send`, `__send__`, or bound methods is prohibited
10
+ at method lookup time, before assignment or `call` can hide it.
11
+ A parser/options-style helper parameter is a conservative OptionParser signal.
12
+ A static literal beginning with `-` on any otherwise-unproven receiver is deliberately rejected;
13
+ this enforced conservative restriction has no scope-bound exclusion registry.
14
+ The admission decision follows `.idea/ibex-declarative-configuration-policy.md`: grammar-owned settings
15
+ must pass A1-A8 and every X1-X7 exclusion remains outside grammar syntax.
16
+
17
+ The static baseline is 187 source call sites and 196 runtime registrations:
18
+ 185 ordinary call sites plus 7 `fix` budget variants and 4 `import-bison` budget variants.
19
+ Those registrations expose 214 effective spelling records after aliases and
20
+ `--[no-]save-regression` are expanded; optional-argument notation remains one option pattern.
21
+
22
+ Verification: `bundle exec rake quality:configuration_inventory`.
23
+ Regeneration: `bundle exec ruby tool/quality/configuration_inventory.rb render`.
24
+
25
+ ## Decision rules
26
+
27
+ This D001 artifact is inventory-only and adds no grammar syntax. The D002 typed effective-configuration model
28
+ consumes these canonical classifications without changing the inventory's admission decisions. D006 admits
29
+ root-only extended syntax for parser algorithm and entry construction; it does not turn the inventory into
30
+ a generic CLI key-value language.
31
+ `grammar_contract` is reserved for parser meaning/public contract and requires A1-A8, fixed semantics,
32
+ root-only composition, provenance, and IR persistence. `project_build_policy` covers representation and packaging.
33
+ It also covers source mapping and companion artifacts rejected by X5.
34
+ `invocation_request` covers operations, paths, presentation, caller budgets,
35
+ and warning execution policy rejected by X1-X4, X6, or X7.
36
+ No current registration is classified as `grammar_minimum`: `test --coverage` remains an invocation request
37
+ with admission deferred until user-production coverage and monotone merge are defined.
38
+
39
+ | First-wave concept | Owner | Algebra | Current persistence status |
40
+ |---|---|---|---|
41
+ | `grammar.mode`, `parser.superclass`, `actions.omit_calls` | Grammar Contract | staged fixed compatibility | current Grammar IR; legacy CLI override needs D008 |
42
+ | `parser.algorithm`, `parser.entries` | Grammar Contract | fixed generation / explicit algorithm analysis override | root `parser` syntax writes the current Grammar IR; manifest records contract and construction facts |
43
+ | `cst.trivia` | Grammar Contract | fixed generation / explicit analysis override | root `parser` syntax writes the current Grammar IR; manifest records contract and CST facts |
44
+ | table/runtime/debug/source mapping/companions | Project Build Policy | project selection | manifest records current generation choices |
45
+ | emit/path/watch/report/budget/locale/help/warnings | Invocation Request | invocation only | excluded from Grammar IR |
46
+
47
+ Fixed means a grammar declaration may be matched but not silently contradicted by generation CLI.
48
+ Analysis commands and grammar tests may choose a different algorithm only as an explicit, reported
49
+ noncanonical override; parser entry construction remains fixed.
50
+ The current Grammar IR closes persistence for the first-wave construction and CST concepts. The root-only `parser`
51
+ block exposes `parser.algorithm`, `parser.entries`, and `cst_trivia` as source syntax and requires the
52
+ existing `pragma cst` compatibility declaration; declaration-free grammars retain the current default.
53
+
54
+ ## Owner summary
55
+
56
+ | Owner class | Registrations |
57
+ |---|---:|
58
+ | `grammar_contract` | 34 |
59
+ | `grammar_minimum` | 0 |
60
+ | `project_build_policy` | 11 |
61
+ | `invocation_request` | 151 |
62
+
63
+ ## Decisions
64
+
65
+ | Surface | CLI spelling / aliases | Canonical concept | Source / semantic type | Domain / default | Stages | Public-contract effect | Owner | Admission | Override | IR / manifest | Trust | Compatibility | Source |
66
+ |---|---|---|---|---|---|---|---|---|---|---|---|---|---|
67
+ | generate | --check | `invocation.generate.check` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:504` |
68
+ | generate | --line-convert-all | `source.line_mapping` | boolean / boolean | true \| false / action sections only | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `current` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:490` |
69
+ | generate | --superclass=CLASS | `parser.superclass` | string / string | string constrained by command validation / grammar superclass or runtime parser base | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.superclass). | `grammar_contract` | `admitted_a1_a8` | `staged_fixed_compatibility` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `staged_compatibility` | `lib/ibex/cli.rb:501` |
70
+ | generate | -C, --check-only | `invocation.generate.check_only` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:505` |
71
+ | generate | -D FLAGS | `compatibility.debug_flags` | string / string | string constrained by command validation / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `internal_compatibility` | `lib/ibex/cli.rb:508` |
72
+ | generate | -F, --frozen | `build.frozen_strings` | boolean / boolean | true \| false / false | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `current` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:487` |
73
+ | generate | -P | `compatibility.profiling` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `internal_compatibility` | `lib/ibex/cli.rb:507` |
74
+ | generate | -S, --output-status | `report.output_status` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:506` |
75
+ | generate | -a, --no-omit-actions | `actions.omit_calls` | boolean / boolean | true \| false / nil; grammar/code-generator action ABI default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (actions.omit_calls). | `grammar_contract` | `admitted_a1_a8` | `staged_fixed_compatibility` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `staged_compatibility` | `lib/ibex/cli.rb:498` |
76
+ | generate | -l, --no-line-convert | `source.line_mapping` | boolean / boolean | true \| false / action sections only | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `current` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:494` |
77
+ | generate | --copyright | `presentation.copyright` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:518` |
78
+ | generate | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:519` |
79
+ | global | --lang=LANG | `presentation.language` | string / enum | en \| ja / normalized IBEX_LANG (en/ja), falling back to en; environment-dependent presentation only | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | Normalize untrusted CLI/environment text to en or ja; environment-dependent presentation is non-reproducible and never grammar state. | `current` | `lib/ibex/cli.rb:513` |
80
+ | generate | --runtime-version | `presentation.runtime_version` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:517` |
81
+ | generate | --version | `presentation.version` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:516` |
82
+ | generate | --dot=FILE | `path.generate.dot` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:460` |
83
+ | generate | --html=FILE | `path.generate.html` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:462` |
84
+ | generate | --manifest[=FILE] | `companion.manifest` | optional string or boolean / optional_path_or_boolean | false \| true (derived path) \| caller-supplied path / false; derived .ibex.json path when requested without a value | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:457` |
85
+ | generate | --mermaid=FILE | `path.generate.mermaid` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:461` |
86
+ | generate | --railroad=FILE | `path.generate.railroad` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:463` |
87
+ | generate | -E, --embedded | `runtime.embedded` | boolean / boolean | true \| false / false | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `current` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:445` |
88
+ | generate | -O, --log-file=FILE | `path.generate.log_file` | string / path | caller-supplied filesystem or logical source path / derived .output path when reporting is requested | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:466` |
89
+ | generate | -e, --executable [RUBY] | `build.executable` | optional string or boolean / optional_string_or_boolean | false \| true (command default) \| caller-supplied string / false; /usr/bin/env ruby when requested without a value | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `current` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:470` |
90
+ | generate | -g | `build.debug` | boolean / boolean | true \| false / false | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `current` | CLI input only; it must not become trusted grammar or execute while inventorying. | `obsolete_alias` | `lib/ibex/cli.rb:451` |
91
+ | generate | -o, --output-file=FILE | `path.generate.output_file` | string / path | caller-supplied filesystem or logical source path / derived .rb path beside the grammar | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:444` |
92
+ | generate | -t, --debug | `build.debug` | boolean / boolean | true \| false / false | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `current` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:448` |
93
+ | generate | -v, --verbose | `invocation.generate.verbose` | boolean / boolean | true \| false / false; no automaton report | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:454` |
94
+ | generate | --algorithm=NAME | `parser.algorithm` | enum / enum | slr \| lalr \| ielr \| lr1 / lalr | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.algorithm). | `grammar_contract` | `admitted_a1_a8` | `fixed` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli.rb:417` |
95
+ | generate | --cst-trivia=POLICY | `cst.trivia` | enum / enum | leading \| balanced \| drop; source alias attach normalizes to leading / leading | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (cst.trivia). | `grammar_contract` | `admitted_a1_a8` | `fixed` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli.rb:410` |
96
+ | generate | --emit=FORMAT | `invocation.generate.emit` | string / enum | ast \| sets \| lexer-ir \| grammar-ir \| automaton-ir \| ruby / ruby | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:400` |
97
+ | generate | --entry-isolation | `parser.entries` | boolean / boolean | true \| false / shared | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.entries). | `grammar_contract` | `admitted_a1_a8` | `fixed` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli.rb:432` |
98
+ | generate | --from=FORMAT | `invocation.generate.from` | enum / enum | grammar-ir \| automaton-ir / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | Validate the selected IR as untrusted data; never execute embedded user sections while loading or inventorying it. | `current` | `lib/ibex/cli.rb:403` |
99
+ | generate | --ielr-report | `invocation.generate.ielr_report` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:423` |
100
+ | generate | --ielr-strategy=NAME | `invocation.generate.ielr_strategy` | enum / enum | direct \| partition / partition | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:420` |
101
+ | generate | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `staged_fixed_compatibility` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `staged_compatibility` | `lib/ibex/cli.rb:406` |
102
+ | generate | --remove-unreachable | `invocation.generate.remove_unreachable` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:426` |
103
+ | generate | --suggest-ielr | `invocation.generate.suggest_ielr` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:429` |
104
+ | generate | --table=FORMAT | `table.representation` | enum / enum | plain \| compact / compact | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `current` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:407` |
105
+ | generate | --warnings=CATEGORIES | `invocation.warning_policy` | string / set_of_enums | all \| error \| all,error \| none / unset; warnings are neither displayed nor promoted to errors | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x7_diagnostic_suppression` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:435` |
106
+ | generate | --watch | `invocation.generate.watch` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:438` |
107
+ | generate | --action-source[=FILE] | `companion.action_source` | optional string or boolean / optional_path_or_boolean | false \| true (derived path) \| caller-supplied path / false; derived .actions.rb path when requested without a value | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `current` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:480` |
108
+ | generate | --rbs[=FILE] | `companion.rbs` | optional string or boolean / optional_path_or_boolean | false \| true (derived path) \| caller-supplied path / false; derived .rbs path when requested without a value | code_generation, artifact_publication | Changes artifact representation, packaging, source mapping, or companion output; parser language semantics stay unchanged. | `project_build_policy` | `excluded_x5_packaging_or_deployment` | `project_selection` | `not_persisted` / `current` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli.rb:477` |
109
+ | check-ambiguity | --algorithm=NAME | `parser.algorithm` | enum / enum | slr \| lalr \| ielr \| lr1 / lalr | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.algorithm). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/ambiguity.rb:58` |
110
+ | check-ambiguity | --ambiguity | `invocation.check_ambiguity.ambiguity` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/ambiguity.rb:46` |
111
+ | check-ambiguity | --entry-isolation | `parser.entries` | boolean / boolean | true \| false / shared | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.entries). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/ambiguity.rb:61` |
112
+ | check-ambiguity | --format=FORMAT | `report.check_ambiguity.format` | enum / enum | text \| json / text | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/ambiguity.rb:55` |
113
+ | check-ambiguity | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/ambiguity.rb:67` |
114
+ | check-ambiguity | --max-configurations=N | `invocation.check_ambiguity.max_configurations` | integer / integer | integer constrained by command validation / 50000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/ambiguity.rb:52` |
115
+ | check-ambiguity | --max-tokens=N | `invocation.check_ambiguity.max_tokens` | integer / integer | integer constrained by command validation / 32 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/ambiguity.rb:49` |
116
+ | check-ambiguity | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/ambiguity.rb:64` |
117
+ | diff-or-metrics | --algorithm=NAME | `parser.algorithm` | enum / enum | slr \| lalr \| ielr \| lr1 / lalr | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.algorithm). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/analysis.rb:63` |
118
+ | diff-or-metrics | --format=FORMAT | `report.diff_or_metrics.format` | enum / enum | json \| text / json | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/analysis.rb:70` |
119
+ | diff-or-metrics | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/analysis.rb:71` |
120
+ | diff-or-metrics | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/analysis.rb:66` |
121
+ | import-bison | --max-actions=N | `invocation.import_bison.max_actions` | integer / integer | integer constrained by command validation / 100000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | Treat the foreign grammar as untrusted data; import statically without executing C actions or user sections. | `current` | `lib/ibex/cli/bison_import.rb:84` |
122
+ | import-bison | --max-bytes=N | `invocation.import_bison.max_bytes` | integer / integer | integer constrained by command validation / 20971520 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | Treat the foreign grammar as untrusted data; import statically without executing C actions or user sections. | `current` | `lib/ibex/cli/bison_import.rb:84` |
123
+ | import-bison | --max-rules=N | `invocation.import_bison.max_rules` | integer / integer | integer constrained by command validation / 50000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | Treat the foreign grammar as untrusted data; import statically without executing C actions or user sections. | `current` | `lib/ibex/cli/bison_import.rb:84` |
124
+ | import-bison | --max-tokens=N | `invocation.import_bison.max_tokens` | integer / integer | integer constrained by command validation / 1000000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | Treat the foreign grammar as untrusted data; import statically without executing C actions or user sections. | `current` | `lib/ibex/cli/bison_import.rb:84` |
125
+ | import-bison | --class=NAME | `invocation.import_bison.class` | string / string | string constrained by command validation / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | Treat the foreign grammar as untrusted data; import statically without executing C actions or user sections. | `current` | `lib/ibex/cli/bison_import.rb:70` |
126
+ | import-bison | --format=FORMAT | `report.import_bison.format` | enum / enum | source \| json / source | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | Treat the foreign grammar as untrusted data; import statically without executing C actions or user sections. | `current` | `lib/ibex/cli/bison_import.rb:66` |
127
+ | import-bison | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | Treat the foreign grammar as untrusted data; import statically without executing C actions or user sections. | `current` | `lib/ibex/cli/bison_import.rb:72` |
128
+ | import-bison | -o FILE, --output=FILE | `path.import_bison.output` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | Treat the foreign grammar as untrusted data; import statically without executing C actions or user sections. | `current` | `lib/ibex/cli/bison_import.rb:69` |
129
+ | config | --algorithm=NAME | `parser.algorithm` | enum / enum | slr \| lalr \| ielr \| lr1 / lalr | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.algorithm). | `grammar_contract` | `admitted_a1_a8` | `fixed` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/config.rb:85` |
130
+ | config | --cst-trivia=POLICY | `cst.trivia` | enum / enum | leading \| balanced \| drop; source alias attach normalizes to leading / leading | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (cst.trivia). | `grammar_contract` | `admitted_a1_a8` | `fixed` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/config.rb:91` |
131
+ | config | --entry-isolation | `parser.entries` | boolean / boolean | true \| false / shared | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.entries). | `grammar_contract` | `admitted_a1_a8` | `fixed` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/config.rb:88` |
132
+ | config | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `staged_fixed_compatibility` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `staged_compatibility` | `lib/ibex/cli/config.rb:82` |
133
+ | config | --no-omit-actions | `actions.omit_calls` | boolean / boolean | true \| false / nil; grammar/code-generator action ABI default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (actions.omit_calls). | `grammar_contract` | `admitted_a1_a8` | `staged_fixed_compatibility` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `staged_compatibility` | `lib/ibex/cli/config.rb:97` |
134
+ | config | --superclass=CLASS | `parser.superclass` | string / string | string constrained by command validation / grammar superclass or runtime parser base | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.superclass). | `grammar_contract` | `admitted_a1_a8` | `staged_fixed_compatibility` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `staged_compatibility` | `lib/ibex/cli/config.rb:94` |
135
+ | config | --format=FORMAT | `report.config.format` | enum / enum | text \| json / text | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/config.rb:70` |
136
+ | config | --from=FORMAT | `invocation.config.from` | enum / enum | grammar-ir / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | Validate the selected IR as untrusted data; never execute embedded user sections while loading or inventorying it. | `current` | `lib/ibex/cli/config.rb:73` |
137
+ | config | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/config.rb:77` |
138
+ | generate | --counterexample-max-configurations=N | `analysis.counterexample.max_configurations` | integer / integer | integer constrained by command validation / 50000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/counterexample_options.rb:23` |
139
+ | generate | --counterexample-max-tokens=N | `analysis.counterexample.max_tokens` | integer / integer | integer constrained by command validation / 32 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/counterexample_options.rb:20` |
140
+ | generate | --counterexamples | `invocation.generate.counterexamples` | boolean / boolean | true \| false / false | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/counterexample_options.rb:19` |
141
+ | coverage-check | --min-productions=PERCENT | `invocation.coverage_check.min_productions` | float / float | finite float constrained by command validation / 0.0 | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/coverage.rb:105` |
142
+ | coverage-check | --min-states=PERCENT | `invocation.coverage_check.min_states` | float / float | finite float constrained by command validation / 0.0 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/coverage.rb:102` |
143
+ | coverage-collect-or-merge | -o FILE, --output=FILE | `path.coverage_collect_or_merge.output` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/coverage.rb:91` |
144
+ | debug | --format=FORMAT | `report.debug.format` | enum / enum | text \| json / text | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/debug.rb:55` |
145
+ | debug | --max-stack=N | `invocation.debug.max_stack` | integer / integer | integer constrained by command validation / 10000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/debug.rb:59` |
146
+ | debug | --max-steps=N | `invocation.debug.max_steps` | integer / integer | integer constrained by command validation / 100000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/debug.rb:56` |
147
+ | diagnostics | --format=FORMAT | `report.diagnostics.format` | enum / enum | text \| json / text | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/diagnostics.rb:76` |
148
+ | diagnostics | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/diagnostics.rb:83` |
149
+ | diagnostics | --max-diagnostics=N | `invocation.diagnostics.max_diagnostics` | integer / integer | integer constrained by command validation / 20 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/diagnostics.rb:77` |
150
+ | diagnostics | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/diagnostics.rb:80` |
151
+ | doc | --format=FORMAT | `report.doc.format` | enum / enum | markdown \| html \| railroad / markdown | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/documentation.rb:59` |
152
+ | doc | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/documentation.rb:66` |
153
+ | doc | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/documentation.rb:63` |
154
+ | doc | -o FILE, --output=FILE | `path.doc.output` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/documentation.rb:62` |
155
+ | equiv | --max-actions=N | `invocation.equiv.max_actions` | integer / integer | integer constrained by command validation / 100000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/equiv.rb:104` |
156
+ | equiv | --max-configurations=N | `invocation.equiv.max_configurations` | integer / integer | integer constrained by command validation / 50000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/equiv.rb:101` |
157
+ | equiv | --max-stack=N | `invocation.equiv.max_stack` | integer / integer | integer constrained by command validation / 10000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/equiv.rb:107` |
158
+ | equiv | --max-tokens=N | `invocation.equiv.max_tokens` | integer / integer | integer constrained by command validation / 8 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/equiv.rb:98` |
159
+ | equiv | --samples=N | `invocation.equiv.samples` | integer / integer | integer constrained by command validation / 100 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/equiv.rb:94` |
160
+ | equiv | --seed=N | `invocation.equiv.seed` | integer / integer | integer constrained by command validation / 0 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/equiv.rb:97` |
161
+ | equiv | --algorithm=NAME | `parser.algorithm` | enum / enum | slr \| lalr \| ielr \| lr1 / lalr | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.algorithm). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/equiv.rb:58` |
162
+ | equiv | --format=FORMAT | `report.equiv.format` | enum / enum | json \| text / json | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/equiv.rb:73` |
163
+ | equiv | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/equiv.rb:74` |
164
+ | equiv | --map=OLD=NEW | `invocation.equiv.map` | string / string | string constrained by command validation / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/equiv.rb:65` |
165
+ | equiv | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/equiv.rb:61` |
166
+ | error-messages | --algorithm=NAME | `parser.algorithm` | enum / enum | slr \| lalr \| ielr \| lr1 / lalr | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.algorithm). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/error_messages.rb:67` |
167
+ | error-messages | --from=FORMAT | `invocation.error_messages.from` | enum / enum | grammar-ir \| automaton-ir / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | Validate the selected IR as untrusted data; never execute embedded user sections while loading or inventorying it. | `current` | `lib/ibex/cli/error_messages.rb:63` |
168
+ | error-messages | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/error_messages.rb:75` |
169
+ | error-messages | --list | `invocation.error_messages.list` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/error_messages.rb:53` |
170
+ | error-messages | --max-configurations=N | `invocation.error_messages.max_configurations` | integer / integer | integer constrained by command validation / 50000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/error_messages.rb:60` |
171
+ | error-messages | --max-tokens=N | `invocation.error_messages.max_tokens` | integer / integer | integer constrained by command validation / 32 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/error_messages.rb:57` |
172
+ | error-messages | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/error_messages.rb:66` |
173
+ | error-messages | --update[=FILE] | `invocation.error_messages.update` | optional string or boolean / optional_path_or_boolean | false \| true (derived path) \| caller-supplied path / false; grammar.messages when requested without a value | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/error_messages.rb:54` |
174
+ | error-messages | --warnings=CATEGORIES | `invocation.warning_policy` | string / set_of_enums | all \| error \| all,error \| none / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x7_diagnostic_suppression` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/error_messages.rb:71` |
175
+ | error-messages | -S, --output-status | `report.output_status` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/error_messages.rb:74` |
176
+ | explain | --counterexample-max-configurations=N | `analysis.counterexample.max_configurations` | integer / integer | integer constrained by command validation / 50000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/explain.rb:72` |
177
+ | explain | --counterexample-max-tokens=N | `analysis.counterexample.max_tokens` | integer / integer | integer constrained by command validation / 32 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/explain.rb:69` |
178
+ | explain | --algorithm=NAME | `parser.algorithm` | enum / enum | slr \| lalr \| ielr \| lr1 / lalr | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.algorithm). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/explain.rb:53` |
179
+ | explain | --entry-isolation | `parser.entries` | boolean / boolean | true \| false / shared | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.entries). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/explain.rb:56` |
180
+ | explain | --format=FORMAT | `report.explain.format` | enum / enum | text \| json / text | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/explain.rb:50` |
181
+ | explain | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/explain.rb:63` |
182
+ | explain | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/explain.rb:59` |
183
+ | explain | --state=N | `invocation.explain.state` | integer / integer | integer constrained by command validation / unset | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/explain.rb:46` |
184
+ | explain | --token=NAME | `invocation.explain.token` | string / string | string constrained by command validation / unset | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/explain.rb:47` |
185
+ | fix | --equiv-max-configurations=N | `invocation.fix.equiv_max_configurations` | integer / integer | integer constrained by command validation / 50000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:140` |
186
+ | fix | --equiv-max-tokens=N | `invocation.fix.equiv_max_tokens` | integer / integer | integer constrained by command validation / 8 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:140` |
187
+ | fix | --equiv-samples=N | `invocation.fix.equiv_samples` | integer / integer | integer constrained by command validation / 100 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:140` |
188
+ | fix | --max-builds=N | `invocation.fix.max_builds` | integer / integer | integer constrained by command validation / 32 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:140` |
189
+ | fix | --max-candidates=N | `invocation.fix.max_candidates` | integer / integer | integer constrained by command validation / 32 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:140` |
190
+ | fix | --verify-max-items=N | `invocation.fix.verify_max_items` | integer / integer | integer constrained by command validation / 1000000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:140` |
191
+ | fix | --verify-max-states=N | `invocation.fix.verify_max_states` | integer / integer | integer constrained by command validation / 100000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:140` |
192
+ | fix | --conflict-index=N | `invocation.fix.conflict_index` | integer / integer | integer constrained by command validation / first conflict in the selected state | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:122` |
193
+ | fix | --state=N | `invocation.fix.state` | integer / integer | integer constrained by command validation / first unresolved conflict | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:117` |
194
+ | fix | --algorithm=NAME | `parser.algorithm` | enum / enum | slr \| lalr \| ielr \| lr1 / lalr | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.algorithm). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/fix.rb:94` |
195
+ | fix | --apply[=ID] | `invocation.fix.apply` | optional string or boolean / optional_string_or_boolean | false \| true (command default) \| caller-supplied string / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | Mutates the selected grammar only through the command explicit atomic-write safety checks; inventorying never applies a proposal. | `current` | `lib/ibex/cli/fix.rb:101` |
196
+ | fix | --format=FORMAT | `report.fix.format` | enum / enum | json \| text / json | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:107` |
197
+ | fix | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:108` |
198
+ | fix | --messages=FILE | `path.fix.messages` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fix.rb:104` |
199
+ | fix | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/fix.rb:97` |
200
+ | formatting | --check | `invocation.formatting.check` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/formatting.rb:79` |
201
+ | formatting | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/formatting.rb:87` |
202
+ | formatting | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/formatting.rb:81` |
203
+ | formatting | --stdin-filename=FILE | `path.formatting.stdin_filename` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/formatting.rb:84` |
204
+ | formatting | --write | `invocation.formatting.write` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | Mutates explicit formatting targets through the command atomic-write checks; inventorying never writes target files. | `current` | `lib/ibex/cli/formatting.rb:80` |
205
+ | fuzz | --coverage-guided | `invocation.fuzz.coverage_guided` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:99` |
206
+ | fuzz | --max-actions=N | `invocation.fuzz.max_actions` | integer / integer | integer constrained by command validation / 100000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:93` |
207
+ | fuzz | --max-stack=N | `invocation.fuzz.max_stack` | integer / integer | integer constrained by command validation / 10000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:96` |
208
+ | fuzz | --path-length=N | `invocation.fuzz.path_length` | integer / integer | integer constrained by command validation / 2 | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:102` |
209
+ | fuzz | --save-regression, --no-save-regression | `invocation.fuzz.save_regression` | boolean / boolean | true \| false / true | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:134` |
210
+ | fuzz | --against-max-output=N | `invocation.fuzz.against_max_output` | integer / integer | integer constrained by command validation / 1048576 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:123` |
211
+ | fuzz | --against-runtime=DESCRIPTION | `invocation.fuzz.against_runtime` | string / string | string constrained by command validation / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:115` |
212
+ | fuzz | --against-timeout=SECONDS | `invocation.fuzz.against_timeout` | integer / integer | integer constrained by command validation / 10 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:120` |
213
+ | fuzz | --against=COMMAND | `invocation.fuzz.against` | string / string | string constrained by command validation / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | Executes the explicit untrusted JSON-token target in a bounded subprocess; never execute it during inventory or configuration resolution. | `current` | `lib/ibex/cli/fuzz.rb:112` |
214
+ | fuzz | --format=FORMAT | `report.fuzz.format` | enum / enum | json \| text / json | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:137` |
215
+ | fuzz | --max-reduction-trials=N | `invocation.fuzz.max_reduction_trials` | integer / integer | integer constrained by command validation / 1000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:126` |
216
+ | fuzz | --regression-dir=DIR | `path.fuzz.regression_dir` | string / path | caller-supplied filesystem or logical source path / test/fuzz/regressions | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:129` |
217
+ | fuzz | --count=N | `invocation.fuzz.count` | integer / integer | integer constrained by command validation / 100 | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:76` |
218
+ | fuzz | --max-depth=N | `invocation.fuzz.max_depth` | integer / integer | integer constrained by command validation / 16 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:83` |
219
+ | fuzz | --max-expansions=N | `invocation.fuzz.max_expansions` | integer / integer | integer constrained by command validation / 100000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:86` |
220
+ | fuzz | --max-tokens=N | `invocation.fuzz.max_tokens` | integer / integer | integer constrained by command validation / 32 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:80` |
221
+ | fuzz | --seed=N | `invocation.fuzz.seed` | integer / integer | integer constrained by command validation / 0 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:79` |
222
+ | fuzz | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:70` |
223
+ | fuzz | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/fuzz.rb:66` |
224
+ | fuzz | --warnings=CATEGORIES | `invocation.warning_policy` | string / set_of_enums | all \| error \| all,error \| none / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x7_diagnostic_suppression` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/fuzz.rb:67` |
225
+ | generate | --messages=FILE | `path.generate.messages` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/generation_error_messages.rb:14` |
226
+ | test | --algorithm=NAME | `parser.algorithm` | enum / enum | slr \| lalr \| ielr \| lr1 / lalr | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.algorithm). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/grammar_tests.rb:65` |
227
+ | test | --coverage=PERCENT | `invocation.test.coverage` | integer / integer | integer constrained by command validation / disabled | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `deferred_a5_minimum_undefined` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/grammar_tests.rb:78` |
228
+ | test | --entry-isolation | `parser.entries` | boolean / boolean | true \| false / shared | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (parser.entries). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/grammar_tests.rb:69` |
229
+ | test | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/grammar_tests.rb:61` |
230
+ | test | --timeout=SECONDS | `invocation.test.timeout` | integer / integer | integer constrained by command validation / 10 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/grammar_tests.rb:73` |
231
+ | test | -h, --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/grammar_tests.rb:81` |
232
+ | lsp | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/lsp.rb:29` |
233
+ | lsp | --stdio | `invocation.lsp.stdio` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/lsp.rb:28` |
234
+ | migrate-check | --format=FORMAT | `report.migrate_check.format` | enum / enum | text \| json / text | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/racc_migration.rb:73` |
235
+ | migrate-check | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/racc_migration.rb:74` |
236
+ | migrate-harness | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/racc_migration.rb:83` |
237
+ | migrate-harness | -o FILE, --output=FILE | `path.migrate_harness.output` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x2_path_or_destination` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/racc_migration.rb:82` |
238
+ | reduce | --command=COMMAND | `invocation.reduce.command` | string / string | string constrained by command validation / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | Executes the explicit untrusted checker in a bounded subprocess; never execute it during inventory or configuration resolution. | `current` | `lib/ibex/cli/reduce.rb:102` |
239
+ | reduce | --format=FORMAT | `report.reduce.format` | enum / enum | json \| text / json | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/reduce.rb:120` |
240
+ | reduce | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/reduce.rb:123` |
241
+ | reduce | --max-input-bytes=N | `invocation.reduce.max_input_bytes` | integer / integer | integer constrained by command validation / 10485760 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/reduce.rb:117` |
242
+ | reduce | --max-output-bytes=N | `invocation.reduce.max_output_bytes` | integer / integer | integer constrained by command validation / 1048576 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/reduce.rb:114` |
243
+ | reduce | --max-trials=N | `invocation.reduce.max_trials` | integer / integer | integer constrained by command validation / 1000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/reduce.rb:108` |
244
+ | reduce | --mode=MODE | `invocation.reduce.mode` | enum / enum | tokens \| lines \| bytes / tokens | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/reduce.rb:105` |
245
+ | reduce | --timeout=SECONDS | `invocation.reduce.timeout` | integer / integer | integer constrained by command validation / 10 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/reduce.rb:111` |
246
+ | samples | --count=N | `invocation.samples.count` | integer / integer | integer constrained by command validation / 5 | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/samples.rb:56` |
247
+ | samples | --max-depth=N | `invocation.samples.max_depth` | integer / integer | integer constrained by command validation / 16 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/samples.rb:65` |
248
+ | samples | --max-expansions=N | `invocation.samples.max_expansions` | integer / integer | integer constrained by command validation / 100000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/samples.rb:68` |
249
+ | samples | --max-tokens=N | `invocation.samples.max_tokens` | integer / integer | integer constrained by command validation / 32 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/samples.rb:62` |
250
+ | samples | --path-length=N | `invocation.samples.path_length` | integer / integer | integer constrained by command validation / 1 | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/samples.rb:77` |
251
+ | samples | --seed=N | `invocation.samples.seed` | integer / integer | integer constrained by command validation / 0 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/samples.rb:59` |
252
+ | samples | --strategy=NAME | `invocation.samples.strategy` | enum / enum | random \| coverage / random | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/samples.rb:71` |
253
+ | samples | --from=FORMAT | `invocation.samples.from` | enum / enum | grammar-ir \| automaton-ir / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | Validate the selected IR as untrusted data; never execute embedded user sections while loading or inventorying it. | `current` | `lib/ibex/cli/samples.rb:86` |
254
+ | samples | --mode=MODE | `grammar.mode` | enum / enum | default \| extended / default | frontend, normalization, parser_generation | Changes parser construction, grammar/action ABI, tree ownership, or parser public contract (grammar.mode). | `grammar_contract` | `admitted_a1_a8` | `analysis_override` | `grammar_ir_current` / `current` | Validate statically; do not execute grammar actions or user sections. | `current` | `lib/ibex/cli/samples.rb:89` |
255
+ | samples | --warnings=CATEGORIES | `invocation.warning_policy` | string / set_of_enums | all \| error \| all,error \| none / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x7_diagnostic_suppression` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/samples.rb:92` |
256
+ | samples | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/samples.rb:50` |
257
+ | verify | --format=FORMAT | `report.verify.format` | enum / enum | json \| text / json | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/verify.rb:72` |
258
+ | verify | --grammar=GRAMMAR | `invocation.verify.grammar` | string / path | caller-supplied filesystem or logical source path / unset | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/verify.rb:63` |
259
+ | verify | --help | `presentation.help` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x3_presentation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/verify.rb:73` |
260
+ | verify | --max-items=N | `invocation.verify.max_items` | integer / integer | integer constrained by command validation / 1000000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/verify.rb:69` |
261
+ | verify | --max-states=N | `invocation.verify.max_states` | integer / integer | integer constrained by command validation / 100000 | analysis, report | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x4_caller_budget` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/verify.rb:66` |
262
+ | verify | --strict | `invocation.verify.strict` | boolean / boolean | true \| false / false | invocation | Changes only the selected operation, bounded evidence, destination, or presentation for this invocation. | `invocation_request` | `excluded_x1_operation` | `invocation_only` | `not_persisted` / `not_applicable` | CLI input only; it must not become trusted grammar or execute while inventorying. | `current` | `lib/ibex/cli/verify.rb:62` |