lazycodex-ai 5.1.45 → 5.1.46

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 (236) hide show
  1. package/README.de.md +0 -5
  2. package/README.es.md +0 -5
  3. package/README.fr.md +0 -5
  4. package/README.it.md +0 -5
  5. package/README.ja.md +0 -5
  6. package/README.ko.md +0 -5
  7. package/README.md +4 -5
  8. package/README.pt-br.md +0 -5
  9. package/README.ru.md +0 -6
  10. package/README.zh-cn.md +0 -5
  11. package/dist/cli/index.js +76 -156
  12. package/dist/cli-node/index.js +76 -156
  13. package/package.json +1 -1
  14. package/packages/lsp-daemon/dist/cli.js +3 -3
  15. package/packages/lsp-daemon/dist/client.js +3 -3
  16. package/packages/lsp-daemon/dist/index.js +3 -3
  17. package/packages/lsp-tools-mcp/dist/cli.js +3 -3
  18. package/packages/lsp-tools-mcp/dist/mcp.js +3 -3
  19. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  20. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +22 -12
  21. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  22. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  23. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  24. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  25. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  26. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  27. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  28. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  29. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  30. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  31. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  32. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  33. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  34. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  35. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  36. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  37. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  38. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  39. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  40. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  41. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  42. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  43. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  62. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  63. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  64. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  65. package/packages/omo-codex/plugin/package-lock.json +12 -12
  66. package/packages/omo-codex/plugin/package.json +1 -1
  67. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +8 -3
  68. package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +0 -2
  69. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +1 -1
  70. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  71. package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +2 -2
  72. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  73. package/packages/omo-codex/plugin/skills/ulw-research/AGENTS.md +14 -2
  74. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +36 -11
  75. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +73 -13
  76. package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger-grammar.md +19 -1
  77. package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger.md +95 -0
  78. package/packages/omo-codex/plugin/skills/ulw-research/references/fidelity-claim-kinds.md +19 -0
  79. package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +21 -4
  80. package/packages/omo-codex/plugin/skills/ulw-research/references/report-visualization.md +2 -0
  81. package/packages/omo-codex/plugin/skills/ulw-research/references/unit-rules.md +157 -0
  82. package/packages/omo-codex/plugin/skills/ulw-research/scripts/claim-kinds.mjs +116 -0
  83. package/packages/omo-codex/plugin/skills/ulw-research/scripts/cli-support.mjs +19 -5
  84. package/packages/omo-codex/plugin/skills/ulw-research/scripts/contracts.mjs +27 -6
  85. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-meaning.mjs +191 -0
  86. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-verify.mjs +164 -0
  87. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands.mjs +239 -0
  88. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-derive.mjs +66 -0
  89. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-expr.mjs +108 -0
  90. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-fill.mjs +194 -0
  91. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-kinds.mjs +127 -13
  92. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-schema.mjs +33 -16
  93. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger.mjs +29 -9
  94. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-locate.mjs +231 -0
  95. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-pairs.mjs +187 -0
  96. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-recompute.mjs +89 -0
  97. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-binding.mjs +130 -0
  98. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-brief.mjs +5 -0
  99. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-claims.mjs +89 -0
  100. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-lexicon.mjs +145 -0
  101. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-records.mjs +163 -0
  102. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-state.mjs +2 -1
  103. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-trace.mjs +85 -0
  104. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-values.mjs +229 -0
  105. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-fidelity.mjs +113 -0
  106. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-static.mjs +28 -8
  107. package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-lite.mjs +2 -2
  108. package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-markup.mjs +182 -0
  109. package/packages/omo-codex/plugin/skills/ulw-research/scripts/md-lite.mjs +193 -0
  110. package/packages/omo-codex/plugin/skills/ulw-research/scripts/meaning-check.mjs +196 -0
  111. package/packages/omo-codex/plugin/skills/ulw-research/scripts/outcome.mjs +6 -5
  112. package/packages/omo-codex/plugin/skills/ulw-research/scripts/placeholder.mjs +184 -0
  113. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-apply.mjs +115 -0
  114. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-diff.mjs +31 -0
  115. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-project.mjs +125 -0
  116. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-rules.mjs +170 -0
  117. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools-commands.mjs +19 -8
  118. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools.mjs +15 -0
  119. package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-commands.mjs +140 -0
  120. package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-snapshot.mjs +176 -0
  121. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-algebra.mjs +101 -0
  122. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-errors.mjs +23 -0
  123. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-metadata.mjs +31 -0
  124. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-pairs.mjs +72 -0
  125. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-precision.mjs +44 -0
  126. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-rules-shapes.mjs +64 -0
  127. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-rules.mjs +173 -0
  128. package/packages/omo-codex/plugin/skills/ulw-research/scripts/units.mjs +4 -4
  129. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +19 -0
  130. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +7 -3
  131. package/packages/omo-codex/scripts/install-dist/install-local.mjs +26 -16
  132. package/packages/shared-skills/skills/ast-grep/AGENTS.md +1 -1
  133. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  134. package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +2 -2
  135. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  136. package/packages/shared-skills/skills/ulw-research/AGENTS.md +14 -2
  137. package/packages/shared-skills/skills/ulw-research/SKILL.md +37 -12
  138. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +73 -13
  139. package/packages/shared-skills/skills/ulw-research/references/fact-ledger-grammar.md +19 -1
  140. package/packages/shared-skills/skills/ulw-research/references/fact-ledger.md +95 -0
  141. package/packages/shared-skills/skills/ulw-research/references/fidelity-claim-kinds.md +19 -0
  142. package/packages/shared-skills/skills/ulw-research/references/report-gates.md +21 -4
  143. package/packages/shared-skills/skills/ulw-research/references/report-visualization.md +2 -0
  144. package/packages/shared-skills/skills/ulw-research/references/unit-rules.md +157 -0
  145. package/packages/shared-skills/skills/ulw-research/scripts/claim-kinds.mjs +116 -0
  146. package/packages/shared-skills/skills/ulw-research/scripts/claim-kinds.test.ts +193 -0
  147. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.mjs +19 -5
  148. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.test.ts +13 -2
  149. package/packages/shared-skills/skills/ulw-research/scripts/contracts.mjs +27 -6
  150. package/packages/shared-skills/skills/ulw-research/scripts/contracts.test.ts +3 -0
  151. package/packages/shared-skills/skills/ulw-research/scripts/copy-returns.test.ts +183 -0
  152. package/packages/shared-skills/skills/ulw-research/scripts/delivery-barrier.test.ts +245 -0
  153. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-meaning.mjs +191 -0
  154. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-verify.mjs +164 -0
  155. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands.mjs +239 -0
  156. package/packages/shared-skills/skills/ulw-research/scripts/fact-derive.mjs +66 -0
  157. package/packages/shared-skills/skills/ulw-research/scripts/fact-derive.test.ts +375 -0
  158. package/packages/shared-skills/skills/ulw-research/scripts/fact-expr.mjs +108 -0
  159. package/packages/shared-skills/skills/ulw-research/scripts/fact-fill.mjs +194 -0
  160. package/packages/shared-skills/skills/ulw-research/scripts/fact-fill.test.ts +221 -0
  161. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-grammar.test.ts +9 -2
  162. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.mjs +127 -13
  163. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.test.ts +18 -3
  164. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-legacy.test.ts +160 -0
  165. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-schema.mjs +33 -16
  166. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger.mjs +29 -9
  167. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger.test.ts +2 -0
  168. package/packages/shared-skills/skills/ulw-research/scripts/fact-locate.mjs +231 -0
  169. package/packages/shared-skills/skills/ulw-research/scripts/fact-locate.test.ts +118 -0
  170. package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.mjs +187 -0
  171. package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.test.ts +167 -0
  172. package/packages/shared-skills/skills/ulw-research/scripts/fact-recompute.mjs +89 -0
  173. package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-dimensions.test.ts +409 -0
  174. package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-rules.test.ts +388 -0
  175. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-binding.mjs +130 -0
  176. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-binding.test.ts +81 -0
  177. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-brief.mjs +5 -0
  178. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-claims.mjs +89 -0
  179. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-lexicon.mjs +145 -0
  180. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-lexicon.test.ts +117 -0
  181. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-records.mjs +163 -0
  182. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-state.mjs +2 -1
  183. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-trace.mjs +85 -0
  184. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-trace.test.ts +58 -0
  185. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.mjs +229 -0
  186. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.test.ts +270 -0
  187. package/packages/shared-skills/skills/ulw-research/scripts/gates-fidelity.mjs +113 -0
  188. package/packages/shared-skills/skills/ulw-research/scripts/gates-fidelity.test.ts +73 -0
  189. package/packages/shared-skills/skills/ulw-research/scripts/gates-static.mjs +28 -8
  190. package/packages/shared-skills/skills/ulw-research/scripts/html-lite.mjs +2 -2
  191. package/packages/shared-skills/skills/ulw-research/scripts/html-markup.mjs +182 -0
  192. package/packages/shared-skills/skills/ulw-research/scripts/md-lite.mjs +193 -0
  193. package/packages/shared-skills/skills/ulw-research/scripts/md-lite.test.ts +271 -0
  194. package/packages/shared-skills/skills/ulw-research/scripts/meaning-check.mjs +196 -0
  195. package/packages/shared-skills/skills/ulw-research/scripts/meaning-check.test.ts +228 -0
  196. package/packages/shared-skills/skills/ulw-research/scripts/outcome.mjs +6 -5
  197. package/packages/shared-skills/skills/ulw-research/scripts/placeholder.mjs +184 -0
  198. package/packages/shared-skills/skills/ulw-research/scripts/placeholder.test.ts +77 -0
  199. package/packages/shared-skills/skills/ulw-research/scripts/polish-apply.mjs +115 -0
  200. package/packages/shared-skills/skills/ulw-research/scripts/polish-apply.test.ts +363 -0
  201. package/packages/shared-skills/skills/ulw-research/scripts/polish-diff.mjs +31 -0
  202. package/packages/shared-skills/skills/ulw-research/scripts/polish-diff.test.ts +168 -0
  203. package/packages/shared-skills/skills/ulw-research/scripts/polish-markup.test.ts +187 -0
  204. package/packages/shared-skills/skills/ulw-research/scripts/polish-project.mjs +125 -0
  205. package/packages/shared-skills/skills/ulw-research/scripts/polish-rules.mjs +170 -0
  206. package/packages/shared-skills/skills/ulw-research/scripts/report-tools-commands.mjs +19 -8
  207. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.mjs +15 -0
  208. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.test.ts +458 -2
  209. package/packages/shared-skills/skills/ulw-research/scripts/source-commands.mjs +140 -0
  210. package/packages/shared-skills/skills/ulw-research/scripts/source-snapshot.mjs +176 -0
  211. package/packages/shared-skills/skills/ulw-research/scripts/source-snapshot.test.ts +113 -0
  212. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/assets/share.csv +3 -0
  213. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/gen-legacy-dev.mjs +89 -0
  214. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-basic.json +223 -0
  215. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-legacy-dev.json +859 -0
  216. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-verify.json +420 -0
  217. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/report-bad.html +19 -0
  218. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/report-good.html +39 -0
  219. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/acronyms.json +3 -0
  220. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/meta.json +9 -0
  221. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/sentences.jsonl +7 -0
  222. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/text.txt +7 -0
  223. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4.html +19 -0
  224. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/acronyms.json +1 -0
  225. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/meta.json +9 -0
  226. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/sentences.jsonl +1 -0
  227. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/text.txt +1 -0
  228. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S9.txt +1 -0
  229. package/packages/shared-skills/skills/ulw-research/scripts/unit-algebra.mjs +101 -0
  230. package/packages/shared-skills/skills/ulw-research/scripts/unit-errors.mjs +23 -0
  231. package/packages/shared-skills/skills/ulw-research/scripts/unit-metadata.mjs +31 -0
  232. package/packages/shared-skills/skills/ulw-research/scripts/unit-pairs.mjs +72 -0
  233. package/packages/shared-skills/skills/ulw-research/scripts/unit-precision.mjs +44 -0
  234. package/packages/shared-skills/skills/ulw-research/scripts/unit-rules-shapes.mjs +64 -0
  235. package/packages/shared-skills/skills/ulw-research/scripts/unit-rules.mjs +173 -0
  236. package/packages/shared-skills/skills/ulw-research/scripts/units.mjs +4 -4
@@ -0,0 +1,859 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "rows": [
4
+ {
5
+ "fact_id": "F1",
6
+ "kind": "measured",
7
+ "raw": "12 kilometers",
8
+ "quote": "The figure is 12 kilometers.",
9
+ "extracted_by": "fact add --find",
10
+ "observed_at": "2026-10-20T08:00:00Z",
11
+ "label": "north-span",
12
+ "value": "12",
13
+ "unit": "kilometers",
14
+ "value_span": [
15
+ 14,
16
+ 16
17
+ ],
18
+ "source_id": "S1",
19
+ "locator": {
20
+ "artifact": "sources/S1/text.txt",
21
+ "line": 2,
22
+ "char_start": 0,
23
+ "char_end": 30
24
+ },
25
+ "locate_hint": null,
26
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
27
+ "valid_at": null,
28
+ "qualifier": null,
29
+ "entity": null,
30
+ "sentence_id": null,
31
+ "observation_id": null,
32
+ "fuzzy": false,
33
+ "outside_floor": false,
34
+ "population": null,
35
+ "missing_rule": null,
36
+ "accounting_basis": null,
37
+ "snapshot_window": null,
38
+ "revision": null,
39
+ "exact": {
40
+ "num": "12",
41
+ "den": "1"
42
+ },
43
+ "render": null,
44
+ "operation": null,
45
+ "operands": [],
46
+ "derived_from": [],
47
+ "formula": null,
48
+ "factor": null,
49
+ "rationale": null,
50
+ "status": "active"
51
+ },
52
+ {
53
+ "fact_id": "F2",
54
+ "kind": "measured",
55
+ "raw": "8.5 kilometers",
56
+ "quote": "The figure is 8.5 kilometers.",
57
+ "extracted_by": "fact add --find",
58
+ "observed_at": "2026-10-20T08:00:00Z",
59
+ "label": "south-span",
60
+ "value": "8.5",
61
+ "unit": "kilometers",
62
+ "value_span": [
63
+ 14,
64
+ 17
65
+ ],
66
+ "source_id": "S1",
67
+ "locator": {
68
+ "artifact": "sources/S1/text.txt",
69
+ "line": 2,
70
+ "char_start": 0,
71
+ "char_end": 30
72
+ },
73
+ "locate_hint": null,
74
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
75
+ "valid_at": null,
76
+ "qualifier": null,
77
+ "entity": null,
78
+ "sentence_id": null,
79
+ "observation_id": null,
80
+ "fuzzy": false,
81
+ "outside_floor": false,
82
+ "population": null,
83
+ "missing_rule": null,
84
+ "accounting_basis": null,
85
+ "snapshot_window": null,
86
+ "revision": null,
87
+ "exact": {
88
+ "num": "17",
89
+ "den": "2"
90
+ },
91
+ "render": null,
92
+ "operation": null,
93
+ "operands": [],
94
+ "derived_from": [],
95
+ "formula": null,
96
+ "factor": null,
97
+ "rationale": null,
98
+ "status": "active"
99
+ },
100
+ {
101
+ "fact_id": "F3",
102
+ "kind": "measured",
103
+ "raw": "41.2 per cent",
104
+ "quote": "The figure is 41.2 per cent.",
105
+ "extracted_by": "fact add --find",
106
+ "observed_at": "2026-10-20T08:00:00Z",
107
+ "label": "share-online",
108
+ "value": "41.2",
109
+ "unit": "per cent",
110
+ "value_span": [
111
+ 14,
112
+ 18
113
+ ],
114
+ "source_id": "S1",
115
+ "locator": {
116
+ "artifact": "sources/S1/text.txt",
117
+ "line": 2,
118
+ "char_start": 0,
119
+ "char_end": 30
120
+ },
121
+ "locate_hint": null,
122
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
123
+ "valid_at": null,
124
+ "qualifier": null,
125
+ "entity": null,
126
+ "sentence_id": null,
127
+ "observation_id": null,
128
+ "fuzzy": false,
129
+ "outside_floor": false,
130
+ "population": null,
131
+ "missing_rule": null,
132
+ "accounting_basis": null,
133
+ "snapshot_window": null,
134
+ "revision": null,
135
+ "exact": {
136
+ "num": "206",
137
+ "den": "5"
138
+ },
139
+ "render": null,
140
+ "operation": null,
141
+ "operands": [],
142
+ "derived_from": [],
143
+ "formula": null,
144
+ "factor": null,
145
+ "rationale": null,
146
+ "status": "active"
147
+ },
148
+ {
149
+ "fact_id": "F4",
150
+ "kind": "measured",
151
+ "raw": "1.5 pp",
152
+ "quote": "The figure is 1.5 pp.",
153
+ "extracted_by": "fact add --find",
154
+ "observed_at": "2026-10-20T08:00:00Z",
155
+ "label": "share-gap",
156
+ "value": "1.5",
157
+ "unit": "pp",
158
+ "value_span": [
159
+ 14,
160
+ 17
161
+ ],
162
+ "source_id": "S1",
163
+ "locator": {
164
+ "artifact": "sources/S1/text.txt",
165
+ "line": 2,
166
+ "char_start": 0,
167
+ "char_end": 30
168
+ },
169
+ "locate_hint": null,
170
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
171
+ "valid_at": null,
172
+ "qualifier": null,
173
+ "entity": null,
174
+ "sentence_id": null,
175
+ "observation_id": null,
176
+ "fuzzy": false,
177
+ "outside_floor": false,
178
+ "population": null,
179
+ "missing_rule": null,
180
+ "accounting_basis": null,
181
+ "snapshot_window": null,
182
+ "revision": null,
183
+ "exact": {
184
+ "num": "3",
185
+ "den": "2"
186
+ },
187
+ "render": null,
188
+ "operation": null,
189
+ "operands": [],
190
+ "derived_from": [],
191
+ "formula": null,
192
+ "factor": null,
193
+ "rationale": null,
194
+ "status": "active"
195
+ },
196
+ {
197
+ "fact_id": "F5",
198
+ "kind": "measured",
199
+ "raw": "320 \uba85",
200
+ "quote": "The figure is 320 \uba85.",
201
+ "extracted_by": "fact add --find",
202
+ "observed_at": "2026-10-20T08:00:00Z",
203
+ "label": "staff-count",
204
+ "value": "320",
205
+ "unit": "\uba85",
206
+ "value_span": [
207
+ 14,
208
+ 17
209
+ ],
210
+ "source_id": "S1",
211
+ "locator": {
212
+ "artifact": "sources/S1/text.txt",
213
+ "line": 2,
214
+ "char_start": 0,
215
+ "char_end": 30
216
+ },
217
+ "locate_hint": null,
218
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
219
+ "valid_at": null,
220
+ "qualifier": null,
221
+ "entity": null,
222
+ "sentence_id": null,
223
+ "observation_id": null,
224
+ "fuzzy": false,
225
+ "outside_floor": false,
226
+ "population": null,
227
+ "missing_rule": null,
228
+ "accounting_basis": null,
229
+ "snapshot_window": null,
230
+ "revision": null,
231
+ "exact": {
232
+ "num": "320",
233
+ "den": "1"
234
+ },
235
+ "render": null,
236
+ "operation": null,
237
+ "operands": [],
238
+ "derived_from": [],
239
+ "formula": null,
240
+ "factor": null,
241
+ "rationale": null,
242
+ "status": "active"
243
+ },
244
+ {
245
+ "fact_id": "F6",
246
+ "kind": "measured",
247
+ "raw": "750 \ucc9c\uc6d0",
248
+ "quote": "The figure is 750 \ucc9c\uc6d0.",
249
+ "extracted_by": "fact add --find",
250
+ "observed_at": "2026-10-20T08:00:00Z",
251
+ "label": "unit-price",
252
+ "value": "750",
253
+ "unit": "\ucc9c\uc6d0",
254
+ "value_span": [
255
+ 14,
256
+ 17
257
+ ],
258
+ "source_id": "S1",
259
+ "locator": {
260
+ "artifact": "sources/S1/text.txt",
261
+ "line": 2,
262
+ "char_start": 0,
263
+ "char_end": 30
264
+ },
265
+ "locate_hint": null,
266
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
267
+ "valid_at": null,
268
+ "qualifier": null,
269
+ "entity": null,
270
+ "sentence_id": null,
271
+ "observation_id": null,
272
+ "fuzzy": false,
273
+ "outside_floor": false,
274
+ "population": null,
275
+ "missing_rule": null,
276
+ "accounting_basis": null,
277
+ "snapshot_window": null,
278
+ "revision": null,
279
+ "exact": {
280
+ "num": "750",
281
+ "den": "1"
282
+ },
283
+ "render": null,
284
+ "operation": null,
285
+ "operands": [],
286
+ "derived_from": [],
287
+ "formula": null,
288
+ "factor": null,
289
+ "rationale": null,
290
+ "status": "active"
291
+ },
292
+ {
293
+ "fact_id": "F7",
294
+ "kind": "measured",
295
+ "raw": "007 km",
296
+ "quote": "The figure is 007 km.",
297
+ "extracted_by": "fact add --find",
298
+ "observed_at": "2026-10-20T08:00:00Z",
299
+ "label": "padded-span",
300
+ "value": "007",
301
+ "unit": "km",
302
+ "value_span": [
303
+ 14,
304
+ 17
305
+ ],
306
+ "source_id": "S1",
307
+ "locator": {
308
+ "artifact": "sources/S1/text.txt",
309
+ "line": 2,
310
+ "char_start": 0,
311
+ "char_end": 30
312
+ },
313
+ "locate_hint": null,
314
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
315
+ "valid_at": null,
316
+ "qualifier": null,
317
+ "entity": null,
318
+ "sentence_id": null,
319
+ "observation_id": null,
320
+ "fuzzy": false,
321
+ "outside_floor": false,
322
+ "population": null,
323
+ "missing_rule": null,
324
+ "accounting_basis": null,
325
+ "snapshot_window": null,
326
+ "revision": null,
327
+ "exact": {
328
+ "num": "7",
329
+ "den": "1"
330
+ },
331
+ "render": null,
332
+ "operation": null,
333
+ "operands": [],
334
+ "derived_from": [],
335
+ "formula": null,
336
+ "factor": null,
337
+ "rationale": null,
338
+ "status": "active"
339
+ },
340
+ {
341
+ "fact_id": "F8",
342
+ "kind": "measured",
343
+ "raw": "-2.5 per cent",
344
+ "quote": "The figure is -2.5 per cent.",
345
+ "extracted_by": "fact add --find",
346
+ "observed_at": "2026-10-20T08:00:00Z",
347
+ "label": "net-change",
348
+ "value": "-2.5",
349
+ "unit": "per cent",
350
+ "value_span": [
351
+ 14,
352
+ 18
353
+ ],
354
+ "source_id": "S1",
355
+ "locator": {
356
+ "artifact": "sources/S1/text.txt",
357
+ "line": 2,
358
+ "char_start": 0,
359
+ "char_end": 30
360
+ },
361
+ "locate_hint": null,
362
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
363
+ "valid_at": null,
364
+ "qualifier": null,
365
+ "entity": null,
366
+ "sentence_id": null,
367
+ "observation_id": null,
368
+ "fuzzy": false,
369
+ "outside_floor": false,
370
+ "population": null,
371
+ "missing_rule": null,
372
+ "accounting_basis": null,
373
+ "snapshot_window": null,
374
+ "revision": null,
375
+ "exact": {
376
+ "num": "-5",
377
+ "den": "2"
378
+ },
379
+ "render": null,
380
+ "operation": null,
381
+ "operands": [],
382
+ "derived_from": [],
383
+ "formula": null,
384
+ "factor": null,
385
+ "rationale": null,
386
+ "status": "active"
387
+ },
388
+ {
389
+ "fact_id": "Q1",
390
+ "kind": "quote",
391
+ "raw": "grew fast",
392
+ "quote": "The market grew fast.",
393
+ "extracted_by": "fact add --find",
394
+ "observed_at": "2026-10-20T08:00:00Z",
395
+ "label": "quote-claim",
396
+ "value": null,
397
+ "unit": null,
398
+ "value_span": [
399
+ 11,
400
+ 20
401
+ ],
402
+ "source_id": "S1",
403
+ "locator": {
404
+ "artifact": "sources/S1/text.txt",
405
+ "line": 2,
406
+ "char_start": 0,
407
+ "char_end": 30
408
+ },
409
+ "locate_hint": null,
410
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
411
+ "valid_at": null,
412
+ "qualifier": null,
413
+ "entity": null,
414
+ "sentence_id": null,
415
+ "observation_id": null,
416
+ "fuzzy": false,
417
+ "outside_floor": false,
418
+ "population": null,
419
+ "missing_rule": null,
420
+ "accounting_basis": null,
421
+ "snapshot_window": null,
422
+ "revision": null,
423
+ "exact": null,
424
+ "render": null,
425
+ "operation": null,
426
+ "operands": [],
427
+ "derived_from": [],
428
+ "formula": null,
429
+ "factor": null,
430
+ "rationale": null,
431
+ "status": "active"
432
+ },
433
+ {
434
+ "fact_id": "F9",
435
+ "kind": "assumed",
436
+ "raw": "",
437
+ "quote": "",
438
+ "extracted_by": "fact add --assumed",
439
+ "observed_at": "2026-10-20T08:00:00Z",
440
+ "label": "growth-assumption",
441
+ "value": "3",
442
+ "unit": "%",
443
+ "value_span": null,
444
+ "source_id": null,
445
+ "locator": null,
446
+ "locate_hint": null,
447
+ "snapshot_sha256": null,
448
+ "valid_at": null,
449
+ "qualifier": null,
450
+ "entity": null,
451
+ "sentence_id": null,
452
+ "observation_id": null,
453
+ "fuzzy": false,
454
+ "outside_floor": false,
455
+ "population": null,
456
+ "missing_rule": null,
457
+ "accounting_basis": null,
458
+ "snapshot_window": null,
459
+ "revision": null,
460
+ "exact": null,
461
+ "render": null,
462
+ "operation": null,
463
+ "operands": [],
464
+ "derived_from": [],
465
+ "formula": null,
466
+ "factor": null,
467
+ "rationale": "planning assumption from the brief",
468
+ "status": "active"
469
+ },
470
+ {
471
+ "fact_id": "F10",
472
+ "kind": "assumed",
473
+ "raw": "",
474
+ "quote": "",
475
+ "extracted_by": "fact add --assumed",
476
+ "observed_at": "2026-10-20T08:00:00Z",
477
+ "label": "whole-ratio",
478
+ "value": "1",
479
+ "unit": "%",
480
+ "value_span": null,
481
+ "source_id": null,
482
+ "locator": null,
483
+ "locate_hint": null,
484
+ "snapshot_sha256": null,
485
+ "valid_at": null,
486
+ "qualifier": null,
487
+ "entity": null,
488
+ "sentence_id": null,
489
+ "observation_id": null,
490
+ "fuzzy": false,
491
+ "outside_floor": false,
492
+ "population": null,
493
+ "missing_rule": null,
494
+ "accounting_basis": null,
495
+ "snapshot_window": null,
496
+ "revision": null,
497
+ "exact": {
498
+ "num": "2",
499
+ "den": "2"
500
+ },
501
+ "render": null,
502
+ "operation": null,
503
+ "operands": [],
504
+ "derived_from": [],
505
+ "formula": null,
506
+ "factor": null,
507
+ "rationale": "planning assumption from the brief",
508
+ "status": "active"
509
+ },
510
+ {
511
+ "fact_id": "F11",
512
+ "kind": "assumed",
513
+ "raw": "",
514
+ "quote": "",
515
+ "extracted_by": "fact add --assumed",
516
+ "observed_at": "2026-10-20T08:00:00Z",
517
+ "label": "quarter-ratio",
518
+ "value": "2.5",
519
+ "unit": "kilometers",
520
+ "value_span": null,
521
+ "source_id": null,
522
+ "locator": null,
523
+ "locate_hint": null,
524
+ "snapshot_sha256": null,
525
+ "valid_at": null,
526
+ "qualifier": null,
527
+ "entity": null,
528
+ "sentence_id": null,
529
+ "observation_id": null,
530
+ "fuzzy": false,
531
+ "outside_floor": false,
532
+ "population": null,
533
+ "missing_rule": null,
534
+ "accounting_basis": null,
535
+ "snapshot_window": null,
536
+ "revision": null,
537
+ "exact": {
538
+ "num": "10",
539
+ "den": "4"
540
+ },
541
+ "render": null,
542
+ "operation": null,
543
+ "operands": [],
544
+ "derived_from": [],
545
+ "formula": null,
546
+ "factor": null,
547
+ "rationale": "planning assumption from the brief",
548
+ "status": "active"
549
+ },
550
+ {
551
+ "fact_id": "F12",
552
+ "kind": "assumed",
553
+ "raw": "",
554
+ "quote": "",
555
+ "extracted_by": "fact add --assumed",
556
+ "observed_at": "2026-10-20T08:00:00Z",
557
+ "label": "padded-exact",
558
+ "value": "7",
559
+ "unit": "km",
560
+ "value_span": null,
561
+ "source_id": null,
562
+ "locator": null,
563
+ "locate_hint": null,
564
+ "snapshot_sha256": null,
565
+ "valid_at": null,
566
+ "qualifier": null,
567
+ "entity": null,
568
+ "sentence_id": null,
569
+ "observation_id": null,
570
+ "fuzzy": false,
571
+ "outside_floor": false,
572
+ "population": null,
573
+ "missing_rule": null,
574
+ "accounting_basis": null,
575
+ "snapshot_window": null,
576
+ "revision": null,
577
+ "exact": {
578
+ "num": "007",
579
+ "den": "01"
580
+ },
581
+ "render": null,
582
+ "operation": null,
583
+ "operands": [],
584
+ "derived_from": [],
585
+ "formula": null,
586
+ "factor": null,
587
+ "rationale": "planning assumption from the brief",
588
+ "status": "active"
589
+ },
590
+ {
591
+ "fact_id": "F13",
592
+ "kind": "assumed",
593
+ "raw": "",
594
+ "quote": "",
595
+ "extracted_by": "fact add --assumed",
596
+ "observed_at": "2026-10-20T08:00:00Z",
597
+ "label": "negative-exact",
598
+ "value": "-2.5",
599
+ "unit": "per cent",
600
+ "value_span": null,
601
+ "source_id": null,
602
+ "locator": null,
603
+ "locate_hint": null,
604
+ "snapshot_sha256": null,
605
+ "valid_at": null,
606
+ "qualifier": null,
607
+ "entity": null,
608
+ "sentence_id": null,
609
+ "observation_id": null,
610
+ "fuzzy": false,
611
+ "outside_floor": false,
612
+ "population": null,
613
+ "missing_rule": null,
614
+ "accounting_basis": null,
615
+ "snapshot_window": null,
616
+ "revision": null,
617
+ "exact": {
618
+ "num": "-10",
619
+ "den": "04"
620
+ },
621
+ "render": null,
622
+ "operation": null,
623
+ "operands": [],
624
+ "derived_from": [],
625
+ "formula": null,
626
+ "factor": null,
627
+ "rationale": "planning assumption from the brief",
628
+ "status": "active"
629
+ },
630
+ {
631
+ "fact_id": "F14",
632
+ "kind": "derived",
633
+ "raw": "",
634
+ "quote": "",
635
+ "extracted_by": "fact derive",
636
+ "observed_at": "2026-10-20T08:00:00Z",
637
+ "label": "total-span",
638
+ "value": "20.5",
639
+ "unit": "kilometers",
640
+ "value_span": null,
641
+ "source_id": null,
642
+ "locator": null,
643
+ "locate_hint": null,
644
+ "snapshot_sha256": null,
645
+ "valid_at": null,
646
+ "qualifier": null,
647
+ "entity": null,
648
+ "sentence_id": null,
649
+ "observation_id": null,
650
+ "fuzzy": false,
651
+ "outside_floor": false,
652
+ "population": null,
653
+ "missing_rule": null,
654
+ "accounting_basis": null,
655
+ "snapshot_window": null,
656
+ "revision": null,
657
+ "exact": {
658
+ "num": "82",
659
+ "den": "4"
660
+ },
661
+ "render": null,
662
+ "operation": "sum",
663
+ "operands": [
664
+ "F1",
665
+ "F2"
666
+ ],
667
+ "derived_from": [
668
+ "F1",
669
+ "F2"
670
+ ],
671
+ "formula": "F1 + F2",
672
+ "factor": null,
673
+ "rationale": null,
674
+ "status": "active"
675
+ },
676
+ {
677
+ "fact_id": "F15",
678
+ "kind": "converted",
679
+ "raw": "",
680
+ "quote": "",
681
+ "extracted_by": "fact derive",
682
+ "observed_at": "2026-10-20T08:00:00Z",
683
+ "label": "span-metres",
684
+ "value": "12000",
685
+ "unit": "m",
686
+ "value_span": null,
687
+ "source_id": null,
688
+ "locator": null,
689
+ "locate_hint": null,
690
+ "snapshot_sha256": null,
691
+ "valid_at": null,
692
+ "qualifier": null,
693
+ "entity": null,
694
+ "sentence_id": null,
695
+ "observation_id": null,
696
+ "fuzzy": false,
697
+ "outside_floor": false,
698
+ "population": null,
699
+ "missing_rule": null,
700
+ "accounting_basis": null,
701
+ "snapshot_window": null,
702
+ "revision": null,
703
+ "exact": {
704
+ "num": "24000",
705
+ "den": "2"
706
+ },
707
+ "render": null,
708
+ "operation": "convert",
709
+ "operands": [
710
+ "F1"
711
+ ],
712
+ "derived_from": [
713
+ "F1"
714
+ ],
715
+ "formula": "F1 * 1000",
716
+ "factor": "1000",
717
+ "rationale": null,
718
+ "status": "active"
719
+ },
720
+ {
721
+ "fact_id": "F16",
722
+ "kind": "measured",
723
+ "raw": "5 km",
724
+ "quote": "The figure is 5 km.",
725
+ "extracted_by": "fact add --find",
726
+ "observed_at": "2026-10-20T08:00:00Z",
727
+ "label": "blank-entity",
728
+ "value": "5",
729
+ "unit": "km",
730
+ "value_span": [
731
+ 14,
732
+ 15
733
+ ],
734
+ "source_id": "S1",
735
+ "locator": {
736
+ "artifact": "sources/S1/text.txt",
737
+ "line": 2,
738
+ "char_start": 0,
739
+ "char_end": 30
740
+ },
741
+ "locate_hint": null,
742
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
743
+ "valid_at": null,
744
+ "qualifier": null,
745
+ "entity": "",
746
+ "sentence_id": null,
747
+ "observation_id": null,
748
+ "fuzzy": false,
749
+ "outside_floor": false,
750
+ "population": null,
751
+ "missing_rule": null,
752
+ "accounting_basis": null,
753
+ "snapshot_window": null,
754
+ "revision": null,
755
+ "exact": {
756
+ "num": "5",
757
+ "den": "1"
758
+ },
759
+ "render": null,
760
+ "operation": null,
761
+ "operands": [],
762
+ "derived_from": [],
763
+ "formula": null,
764
+ "factor": null,
765
+ "rationale": null,
766
+ "status": "active"
767
+ },
768
+ {
769
+ "fact_id": "F17",
770
+ "kind": "measured",
771
+ "raw": "6 km",
772
+ "quote": "The figure is 6 km.",
773
+ "extracted_by": "fact add --find",
774
+ "observed_at": "2026-10-20T08:00:00Z",
775
+ "label": "tagged-sum",
776
+ "value": "6",
777
+ "unit": "km",
778
+ "value_span": [
779
+ 14,
780
+ 15
781
+ ],
782
+ "source_id": "S1",
783
+ "locator": {
784
+ "artifact": "sources/S1/text.txt",
785
+ "line": 2,
786
+ "char_start": 0,
787
+ "char_end": 30
788
+ },
789
+ "locate_hint": null,
790
+ "snapshot_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
791
+ "valid_at": null,
792
+ "qualifier": null,
793
+ "entity": null,
794
+ "sentence_id": null,
795
+ "observation_id": null,
796
+ "fuzzy": false,
797
+ "outside_floor": false,
798
+ "population": null,
799
+ "missing_rule": null,
800
+ "accounting_basis": null,
801
+ "snapshot_window": null,
802
+ "revision": null,
803
+ "exact": {
804
+ "num": "6",
805
+ "den": "1"
806
+ },
807
+ "render": null,
808
+ "operation": "sum",
809
+ "operands": [],
810
+ "derived_from": [],
811
+ "formula": null,
812
+ "factor": null,
813
+ "rationale": null,
814
+ "status": "active"
815
+ },
816
+ {
817
+ "fact_id": "F18",
818
+ "kind": "assumed",
819
+ "raw": "",
820
+ "quote": "",
821
+ "extracted_by": "fact add --assumed",
822
+ "observed_at": "2026-10-20T08:00:00Z",
823
+ "label": "keyed-exact",
824
+ "value": "3",
825
+ "unit": "km",
826
+ "value_span": null,
827
+ "source_id": null,
828
+ "locator": null,
829
+ "locate_hint": null,
830
+ "snapshot_sha256": null,
831
+ "valid_at": null,
832
+ "qualifier": null,
833
+ "entity": null,
834
+ "sentence_id": null,
835
+ "observation_id": null,
836
+ "fuzzy": false,
837
+ "outside_floor": false,
838
+ "population": null,
839
+ "missing_rule": null,
840
+ "accounting_basis": null,
841
+ "snapshot_window": null,
842
+ "revision": null,
843
+ "exact": {
844
+ "num": "3",
845
+ "den": "1",
846
+ "note": "from the brief"
847
+ },
848
+ "render": null,
849
+ "operation": null,
850
+ "operands": [],
851
+ "derived_from": [],
852
+ "formula": null,
853
+ "factor": null,
854
+ "rationale": "planning assumption from the brief",
855
+ "status": "active"
856
+ }
857
+ ],
858
+ "events": []
859
+ }