@interf/compiler 0.2.4 → 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 (240) hide show
  1. package/README.md +194 -148
  2. package/dist/commands/benchmark.d.ts.map +1 -1
  3. package/dist/commands/benchmark.js +60 -351
  4. package/dist/commands/benchmark.js.map +1 -1
  5. package/dist/commands/compile.d.ts.map +1 -1
  6. package/dist/commands/compile.js +43 -110
  7. package/dist/commands/compile.js.map +1 -1
  8. package/dist/commands/create-workflow-wizard.d.ts +4 -25
  9. package/dist/commands/create-workflow-wizard.d.ts.map +1 -1
  10. package/dist/commands/create-workflow-wizard.js +29 -214
  11. package/dist/commands/create-workflow-wizard.js.map +1 -1
  12. package/dist/commands/create.d.ts +2 -11
  13. package/dist/commands/create.d.ts.map +1 -1
  14. package/dist/commands/create.js +72 -455
  15. package/dist/commands/create.js.map +1 -1
  16. package/dist/commands/default.d.ts.map +1 -1
  17. package/dist/commands/default.js +16 -28
  18. package/dist/commands/default.js.map +1 -1
  19. package/dist/commands/init.d.ts.map +1 -1
  20. package/dist/commands/init.js +71 -337
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/list.d.ts.map +1 -1
  23. package/dist/commands/list.js +12 -22
  24. package/dist/commands/list.js.map +1 -1
  25. package/dist/commands/reset.d.ts.map +1 -1
  26. package/dist/commands/reset.js +27 -124
  27. package/dist/commands/reset.js.map +1 -1
  28. package/dist/commands/source-config-wizard.d.ts +13 -6
  29. package/dist/commands/source-config-wizard.d.ts.map +1 -1
  30. package/dist/commands/source-config-wizard.js +93 -59
  31. package/dist/commands/source-config-wizard.js.map +1 -1
  32. package/dist/commands/status.d.ts.map +1 -1
  33. package/dist/commands/status.js +60 -56
  34. package/dist/commands/status.js.map +1 -1
  35. package/dist/commands/verify.d.ts.map +1 -1
  36. package/dist/commands/verify.js +59 -98
  37. package/dist/commands/verify.js.map +1 -1
  38. package/dist/index.d.ts +7 -7
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -6
  41. package/dist/index.js.map +1 -1
  42. package/dist/lib/agent-constants.js +1 -1
  43. package/dist/lib/agent-constants.js.map +1 -1
  44. package/dist/lib/benchmark-execution.d.ts.map +1 -1
  45. package/dist/lib/benchmark-execution.js +7 -16
  46. package/dist/lib/benchmark-execution.js.map +1 -1
  47. package/dist/lib/benchmark-targets.d.ts +3 -4
  48. package/dist/lib/benchmark-targets.d.ts.map +1 -1
  49. package/dist/lib/benchmark-targets.js +9 -55
  50. package/dist/lib/benchmark-targets.js.map +1 -1
  51. package/dist/lib/benchmark-types.d.ts +2 -3
  52. package/dist/lib/benchmark-types.d.ts.map +1 -1
  53. package/dist/lib/benchmark.d.ts +1 -1
  54. package/dist/lib/benchmark.d.ts.map +1 -1
  55. package/dist/lib/benchmark.js +1 -1
  56. package/dist/lib/benchmark.js.map +1 -1
  57. package/dist/lib/config.d.ts +1 -2
  58. package/dist/lib/config.d.ts.map +1 -1
  59. package/dist/lib/config.js +2 -4
  60. package/dist/lib/config.js.map +1 -1
  61. package/dist/lib/discovery.d.ts +1 -1
  62. package/dist/lib/discovery.d.ts.map +1 -1
  63. package/dist/lib/discovery.js +7 -2
  64. package/dist/lib/discovery.js.map +1 -1
  65. package/dist/lib/eval-packs.d.ts +6 -52
  66. package/dist/lib/eval-packs.d.ts.map +1 -1
  67. package/dist/lib/eval-packs.js +11 -39
  68. package/dist/lib/eval-packs.js.map +1 -1
  69. package/dist/lib/interf-bootstrap.d.ts +3 -5
  70. package/dist/lib/interf-bootstrap.d.ts.map +1 -1
  71. package/dist/lib/interf-bootstrap.js +10 -57
  72. package/dist/lib/interf-bootstrap.js.map +1 -1
  73. package/dist/lib/interf-detect.d.ts +13 -11
  74. package/dist/lib/interf-detect.d.ts.map +1 -1
  75. package/dist/lib/interf-detect.js +59 -45
  76. package/dist/lib/interf-detect.js.map +1 -1
  77. package/dist/lib/interf-scaffold.d.ts +2 -5
  78. package/dist/lib/interf-scaffold.d.ts.map +1 -1
  79. package/dist/lib/interf-scaffold.js +98 -235
  80. package/dist/lib/interf-scaffold.js.map +1 -1
  81. package/dist/lib/interf-workflow-package.d.ts +1 -2
  82. package/dist/lib/interf-workflow-package.d.ts.map +1 -1
  83. package/dist/lib/interf-workflow-package.js +94 -90
  84. package/dist/lib/interf-workflow-package.js.map +1 -1
  85. package/dist/lib/interf.d.ts +4 -5
  86. package/dist/lib/interf.d.ts.map +1 -1
  87. package/dist/lib/interf.js +3 -6
  88. package/dist/lib/interf.js.map +1 -1
  89. package/dist/lib/local-workflows.d.ts +9 -8
  90. package/dist/lib/local-workflows.d.ts.map +1 -1
  91. package/dist/lib/local-workflows.js +42 -94
  92. package/dist/lib/local-workflows.js.map +1 -1
  93. package/dist/lib/obsidian.d.ts +1 -5
  94. package/dist/lib/obsidian.d.ts.map +1 -1
  95. package/dist/lib/obsidian.js +11 -165
  96. package/dist/lib/obsidian.js.map +1 -1
  97. package/dist/lib/registry.d.ts +6 -17
  98. package/dist/lib/registry.d.ts.map +1 -1
  99. package/dist/lib/registry.js +36 -50
  100. package/dist/lib/registry.js.map +1 -1
  101. package/dist/lib/runtime-contracts.d.ts +2 -3
  102. package/dist/lib/runtime-contracts.d.ts.map +1 -1
  103. package/dist/lib/runtime-contracts.js +10 -9
  104. package/dist/lib/runtime-contracts.js.map +1 -1
  105. package/dist/lib/runtime-reconcile.d.ts +2 -5
  106. package/dist/lib/runtime-reconcile.d.ts.map +1 -1
  107. package/dist/lib/runtime-reconcile.js +23 -176
  108. package/dist/lib/runtime-reconcile.js.map +1 -1
  109. package/dist/lib/runtime-runs.d.ts.map +1 -1
  110. package/dist/lib/runtime-runs.js +52 -57
  111. package/dist/lib/runtime-runs.js.map +1 -1
  112. package/dist/lib/runtime-types.d.ts +5 -6
  113. package/dist/lib/runtime-types.d.ts.map +1 -1
  114. package/dist/lib/runtime.d.ts +2 -2
  115. package/dist/lib/runtime.d.ts.map +1 -1
  116. package/dist/lib/runtime.js +1 -1
  117. package/dist/lib/runtime.js.map +1 -1
  118. package/dist/lib/schema.d.ts +53 -312
  119. package/dist/lib/schema.d.ts.map +1 -1
  120. package/dist/lib/schema.js +39 -206
  121. package/dist/lib/schema.js.map +1 -1
  122. package/dist/lib/source-config.d.ts +7 -7
  123. package/dist/lib/source-config.d.ts.map +1 -1
  124. package/dist/lib/source-config.js +55 -62
  125. package/dist/lib/source-config.js.map +1 -1
  126. package/dist/lib/state-artifacts.d.ts +5 -11
  127. package/dist/lib/state-artifacts.d.ts.map +1 -1
  128. package/dist/lib/state-artifacts.js +8 -18
  129. package/dist/lib/state-artifacts.js.map +1 -1
  130. package/dist/lib/state-health.d.ts +4 -8
  131. package/dist/lib/state-health.d.ts.map +1 -1
  132. package/dist/lib/state-health.js +27 -223
  133. package/dist/lib/state-health.js.map +1 -1
  134. package/dist/lib/state-io.d.ts +7 -12
  135. package/dist/lib/state-io.d.ts.map +1 -1
  136. package/dist/lib/state-io.js +26 -93
  137. package/dist/lib/state-io.js.map +1 -1
  138. package/dist/lib/state-view.d.ts +4 -6
  139. package/dist/lib/state-view.d.ts.map +1 -1
  140. package/dist/lib/state-view.js +62 -101
  141. package/dist/lib/state-view.js.map +1 -1
  142. package/dist/lib/state.d.ts +5 -5
  143. package/dist/lib/state.d.ts.map +1 -1
  144. package/dist/lib/state.js +4 -4
  145. package/dist/lib/state.js.map +1 -1
  146. package/dist/lib/summarize-plan.d.ts +2 -2
  147. package/dist/lib/summarize-plan.d.ts.map +1 -1
  148. package/dist/lib/summarize-plan.js +13 -13
  149. package/dist/lib/summarize-plan.js.map +1 -1
  150. package/dist/lib/{validate-kb.d.ts → validate-workspace.d.ts} +8 -8
  151. package/dist/lib/validate-workspace.d.ts.map +1 -0
  152. package/dist/lib/{validate-kb.js → validate-workspace.js} +44 -46
  153. package/dist/lib/validate-workspace.js.map +1 -0
  154. package/dist/lib/validate.d.ts +5 -7
  155. package/dist/lib/validate.d.ts.map +1 -1
  156. package/dist/lib/validate.js +6 -19
  157. package/dist/lib/validate.js.map +1 -1
  158. package/dist/lib/workflow-definitions.d.ts +14 -50
  159. package/dist/lib/workflow-definitions.d.ts.map +1 -1
  160. package/dist/lib/workflow-definitions.js +74 -349
  161. package/dist/lib/workflow-definitions.js.map +1 -1
  162. package/dist/lib/workflow-helpers.d.ts +3 -4
  163. package/dist/lib/workflow-helpers.d.ts.map +1 -1
  164. package/dist/lib/workflow-helpers.js +15 -49
  165. package/dist/lib/workflow-helpers.js.map +1 -1
  166. package/dist/lib/workflow-stage-runner.d.ts +1 -2
  167. package/dist/lib/workflow-stage-runner.d.ts.map +1 -1
  168. package/dist/lib/workflow-stage-runner.js +4 -6
  169. package/dist/lib/workflow-stage-runner.js.map +1 -1
  170. package/dist/lib/workflow-starter-docs.d.ts +3 -5
  171. package/dist/lib/workflow-starter-docs.d.ts.map +1 -1
  172. package/dist/lib/workflow-starter-docs.js +2 -17
  173. package/dist/lib/workflow-starter-docs.js.map +1 -1
  174. package/dist/lib/workflows.d.ts +9 -14
  175. package/dist/lib/workflows.d.ts.map +1 -1
  176. package/dist/lib/workflows.js +13 -30
  177. package/dist/lib/workflows.js.map +1 -1
  178. package/dist/lib/workspace-compile.d.ts +50 -0
  179. package/dist/lib/workspace-compile.d.ts.map +1 -0
  180. package/dist/lib/{workflows-kb.js → workspace-compile.js} +81 -89
  181. package/dist/lib/workspace-compile.js.map +1 -0
  182. package/package.json +9 -9
  183. package/skills/benchmark/SKILL.md +16 -24
  184. package/skills/workflow/create/SKILL.md +7 -14
  185. package/templates/workspace/README.md +23 -0
  186. package/templates/workspace/interfignore +2 -0
  187. package/dist/lib/bundled-templates.d.ts +0 -5
  188. package/dist/lib/bundled-templates.d.ts.map +0 -1
  189. package/dist/lib/bundled-templates.js +0 -23
  190. package/dist/lib/bundled-templates.js.map +0 -1
  191. package/dist/lib/interf-compile-plan.d.ts +0 -12
  192. package/dist/lib/interf-compile-plan.d.ts.map +0 -1
  193. package/dist/lib/interf-compile-plan.js +0 -143
  194. package/dist/lib/interf-compile-plan.js.map +0 -1
  195. package/dist/lib/validate-interface.d.ts +0 -79
  196. package/dist/lib/validate-interface.d.ts.map +0 -1
  197. package/dist/lib/validate-interface.js +0 -535
  198. package/dist/lib/validate-interface.js.map +0 -1
  199. package/dist/lib/validate-kb.d.ts.map +0 -1
  200. package/dist/lib/validate-kb.js.map +0 -1
  201. package/dist/lib/workflows-interface-contracts.d.ts +0 -24
  202. package/dist/lib/workflows-interface-contracts.d.ts.map +0 -1
  203. package/dist/lib/workflows-interface-contracts.js +0 -304
  204. package/dist/lib/workflows-interface-contracts.js.map +0 -1
  205. package/dist/lib/workflows-interface.d.ts +0 -72
  206. package/dist/lib/workflows-interface.d.ts.map +0 -1
  207. package/dist/lib/workflows-interface.js +0 -377
  208. package/dist/lib/workflows-interface.js.map +0 -1
  209. package/dist/lib/workflows-kb.d.ts +0 -50
  210. package/dist/lib/workflows-kb.d.ts.map +0 -1
  211. package/dist/lib/workflows-kb.js.map +0 -1
  212. package/skills/interface/analyze/SKILL.md +0 -191
  213. package/skills/interface/compile/SKILL.md +0 -152
  214. package/skills/interface/compile/references/output-format.md +0 -48
  215. package/skills/interface/create/SKILL.md +0 -87
  216. package/skills/interface/create/references/compile-plan-format.md +0 -109
  217. package/skills/interface/create/references/workflows.md +0 -35
  218. package/skills/interface/query/SKILL.md +0 -48
  219. package/skills/interface/retrieve/SKILL.md +0 -133
  220. package/skills/knowledge-base/compile/SKILL.md +0 -196
  221. package/skills/knowledge-base/compile/references/output-format.md +0 -48
  222. package/skills/knowledge-base/compile/references/stage-claims.md +0 -60
  223. package/skills/knowledge-base/compile/references/stage-entities.md +0 -46
  224. package/skills/knowledge-base/query/SKILL.md +0 -45
  225. package/skills/knowledge-base/summarize/SKILL.md +0 -152
  226. package/templates/interface/README.md +0 -159
  227. package/templates/interface/interfaces.md +0 -102
  228. package/templates/knowledge-base/README.md +0 -137
  229. package/templates/knowledge-base/interfignore +0 -19
  230. package/templates/knowledge-base/registry.md +0 -118
  231. package/templates/workflow-package/README.md +0 -16
  232. package/templates/workflow-package/create/SKILL.md +0 -8
  233. package/templates/workflow-package/interface-query/SKILL.md +0 -29
  234. package/templates/workflow-package/interface-stage/SKILL.md +0 -13
  235. package/templates/workflow-package/knowledge-base-query/SKILL.md +0 -36
  236. package/templates/workflow-package/knowledge-base-stage/SKILL.md +0 -13
  237. package/templates/workflow-starters/interface/interf/README.md +0 -13
  238. package/templates/workflow-starters/interface/interf/create/SKILL.md +0 -15
  239. package/templates/workflow-starters/knowledge-base/interf/README.md +0 -13
  240. package/templates/workflow-starters/knowledge-base/karpathy/README.md +0 -13
@@ -1,191 +0,0 @@
1
- ---
2
- {
3
- "name": "interface/analyze",
4
- "description": "Interface analysis contract. Deep analysis of relevant summaries from the knowledge base. Reads delta files from state, batches them, and extracts entities and claims for this interface's ontology. Use when asked to analyze, extract, or run an analysis stage inside interface compile."
5
- }
6
- ---
7
-
8
- # Interface Compile — Analyze
9
-
10
- Read `interf.json`, `compile-plan.md`, and `.interf/relevant.json` for the current target set from the preceding retrieval stage.
11
-
12
- Local runtime reference:
13
- - active stage contract: `.interf/stage-contract.json`
14
- - active run ledger: `.interf/run.json`
15
- - local config: `interf.json`
16
- - local plan: `compile-plan.md`
17
- - local instruction docs: the files listed by `.interf/stage-contract.json`
18
-
19
- When this skill is embedded into a generated interface, do not try to open SDK repo docs or source files outside the current workspace. The local contract and local docs are the source of truth for this run.
20
-
21
- This skill does the deep analysis — reading summaries and extracting what matters for this interface. It may refine the interface runtime after the requested target set is classified, but bounded audits should close the named task before widening scope.
22
- If `../../.interf/source-access.json` exists, use it as the quick check for whether raw paths are actually reachable from this session before assuming raw fallback will work.
23
- If local docs are listed by the stage contract, read them before analyzing. They may `extend` or `override` the bundled workflow instructions for this stage, but they do not bypass coverage proof or the stage contract.
24
-
25
- Harness role:
26
- - This skill is an internal harness step normally invoked by `interf compile` from inside an interface.
27
- - For standard operation, prefer the CLI or another higher-level tool over calling this skill directly.
28
-
29
- ## Runtime contract
30
-
31
- When invoked by the CLI, honor any explicit execution instructions in the prompt. In particular:
32
- - if `.interf/stage-contract.json` exists, treat it as the authoritative stage contract for this run
33
- - if the prompt gives an expected analysis set size, use it for progress reporting
34
- - use `.interf/relevant.json` as the source of truth for `relevant_files` and `delta_files`
35
- - require `.interf/coverage.json` and `coverage_complete: true` as proof that retrieve reached retrieval closure
36
- - only emit user-facing lines that start with `STATUS:`, `DONE:`, `BLOCKED:`, or `ERROR:`
37
- - the CLI reconciles `.interf/state.json` and refreshes `.interf/health.json` after validation; do not treat those files as stage-owned write targets for analyze
38
- - before any long-running raw inspection, PDF/chart extraction, OCR, or shell-based helper step, emit a `STATUS:` line naming the current subtask
39
- - do not stay silent for more than about one minute while extraction work is still in progress
40
- - when you switch page groups, markets, chart families, or extraction methods, emit another `STATUS:` line first
41
- - do not keep reopening the same large raw PDF once the relevant pages are known; switch to a narrower page-bounded extraction step instead
42
- - avoid long inline Bash heredocs for extraction helpers; prefer one page-bounded command per step, or write a short scratch script file and run it explicitly
43
-
44
- ## Prerequisites
45
-
46
- `.interf/relevant.json` and `.interf/coverage.json` must exist. If not: "Run the retrieval stage first." Stop.
47
-
48
- Before analyzing, prefer running:
49
-
50
- ```bash
51
- interf verify retrieve --json
52
- ```
53
-
54
- If it fails, stop and fix the retrieval proof instead of continuing.
55
-
56
- ## Steps
57
-
58
- ```
59
- Analyze:
60
- - [ ] 1. Read retrieve proof and plan
61
- - [ ] 2. Load summaries in bounded working sets
62
- - [ ] 3. Extract entities, claims, and relationships
63
- - [ ] 4. Refine runtime where evidence demands it
64
- - [ ] 5. Merge results
65
- - [ ] 6. Write analysis handoff
66
- ```
67
-
68
- ### 1. Read retrieve proof and plan
69
-
70
- - `.interf/relevant.json` → `delta_files[]` (or all `relevant_files[]` when delta is conservative)
71
- - `.interf/coverage.json` → proof of scanned summary set, abstract review, and expansion passes
72
- - `compile-plan.md` → this stage's section: what to extract (entity types, claim types, relationships)
73
- - `../../.interf/source-access.json` → sample raw paths and suggested access checks when raw fallback is needed
74
- - local instruction docs listed by the stage contract
75
- - treat the plan as the starting ontology
76
- - if the plan names a bounded audit target set, treat that set as the hard default scope until every requested value is classified as exact, approximate, or unresolved
77
- - if the plan includes a target ledger, use it as the primary checklist and record one result per target
78
- - if the plan depends on exact figures from PDFs, charts, or tables, raw inspection is part of analysis for those items, not an optional afterthought
79
- - for exact-value PDF work, reading raw pages with `Read` confirms location and context, but it does not by itself satisfy the extraction requirement
80
- - choose the local extraction path from whatever the current environment actually supports; do not assume a specific binary or hardcode shell recipes into the answer
81
- - before locking in a machine-readable path, verify that the local method is actually available in this environment; if it is missing or blocked, count that as one failed path and switch to another available local method
82
-
83
- ### 2. Load summaries in bounded working sets
84
-
85
- Read full abstract + overview for each delta file.
86
- Summaries are the default evidence surface, but if the plan requires exact chart/table values and the summaries do not preserve them, inspect the raw source for those specific items and record how the values were derived.
87
- Do not treat `the summary was coarse` as proof that the source lacks the number.
88
- When exact chart values matter, the analysis is not complete until you either recover the value more precisely or record why the local environment blocked a machine-readable attempt.
89
- Keep raw probing focused. Do not dump large SVG, PDF, or OCR bodies into the run log. Extract the needed values, calibration anchors, and method notes only.
90
- If the plan names a bounded target set, keep the extraction bounded to that set. Do not widen to every market, page, or entity in the report unless one extra comparator or calibration anchor is required to answer the task correctly.
91
- For bounded audits, do not widen the ontology, taxonomy, or target set until the requested values are classified or a concrete blocker has been recorded.
92
- Treat metric plus period as part of the target identity. A nearby exact figure with the wrong period, wrong unit, or wrong chart family does not satisfy the target and must remain separate supporting context.
93
- As soon as each target row is classified as exact, approximate, or unresolved, stop extraction and move directly to the required file writes. Do not spend extra turns polishing, re-reading, or chasing more precision after the ledger is complete.
94
-
95
- ### Exact-value escalation for PDFs and charts
96
-
97
- If the task asks for exact chart or table values:
98
- - opening the PDF with `Read` is only the first step; it does not count as the machine-readable extraction attempt
99
- - a concrete local extraction path is the default path rather than an optional enhancement
100
- - before each new page group, market batch, or extraction method, emit a short `STATUS:` line so the run ledger shows where extraction is currently focused
101
- - use `Read` on the raw PDF to confirm location, context, or a narrow page group only; once the page map is known, do not keep reopening the full PDF
102
- - after the page map is known, switch to a page-bounded local extraction helper or scratch file workflow for that page group instead of rereading the whole PDF
103
- - keep helper commands single-purpose and short. Avoid long inline Bash heredocs; if you need multiple steps, write a short scratch script file first or run separate bounded commands
104
- - use this ladder in order and do not stop after a single failed extractor:
105
- 1. confirm the relevant pages, chart titles, axes, units, time cuts, and left-to-right target order from the raw PDF
106
- 1a. before locking in values, build a page-level chart map for each target chart: page, chart title, visible axis range/ticks, legend or component series, and whether the chart is stacked
107
- 2. attempt text or table extraction with a local machine-readable method that you have already verified is available in this environment
108
- 3. if the text layer still misses the values, switch to another machine-readable path that fits the source structure and is already available in the environment
109
- 4. if the chart still has no explicit labels, attempt another recoverable extraction path before giving up on exactness
110
- 4a. try at most two machine-readable extraction paths per target or tightly related page group; if both fail, record the blocker and mark the value unresolved instead of escalating indefinitely
111
- 5. when the report contains known anchor values elsewhere (for example Key Stats or Q1/YTD tables), use them to validate calibration before finalizing historical chart values
112
- 6. if the anchor check is materially off, recalibrate or change method instead of locking in a coarse approximation
113
- 7. only then fall back to a visual estimate
114
- - if the chart is stacked, recover the total stacked height or area unless the request explicitly names one component series; do not treat one colored segment as the requested total
115
- - if multiple charts share a page, keep a separate chart map and scale for each chart family; never reuse one chart's scale for another chart on the same page
116
- - when you use shell commands for scratch extraction, keep them single-purpose and non-destructive. Do not start with `rm`, wildcard cleanup, or chained helpers like `;` and `&&`. Prefer fresh temp filenames or directories instead.
117
- - if a local extraction path is unavailable, blocked, or missing a dependency, record that explicitly, do not retry the same missing path, and either switch once to another available local path or record the blocker
118
- - do not call a value approximate or unavailable until you have exhausted the extraction ladder or documented a concrete blocker on the local extraction path
119
- - if you only have an approximation, keep that precision gap visible in the analysis instead of presenting it as final truth
120
- - if the task only needs a rounded bin, one-decimal chart read, or other answer-grade approximation, and the rendered chart plus visible axis labels already support that answer, stop there instead of drilling deeper into SVG or PDF internals for pseudo-precision
121
- - if you record an approximate chart value, also record the scale band that supports it, such as `between 0.5 and 0.6, closer to 0.5`, plus any nearby labeled anchors used to choose the rounded value or `bin_choice`
122
- - if a chart-derived value sits between adjacent one-decimal bins, set `bin_choice` to the closer supported bin and explain that choice in `scale_band` or the notes; do not default to rounding an uncertain midpoint up
123
- - for approximate chart reads, make `value_display` the answer-grade value a later weak model should quote; keep any finer-grained midpoint guess in `scale_band` or `notes` instead of promoting it into the main display value
124
- - if the visible chart scale is coarser than the requested display precision, prefer the nearest clearly supported bin or anchor rather than interpolating a prettier in-between tenth that the chart does not really justify
125
- - if you cannot state which chart title, scale, and total-vs-component interpretation produced the number, keep the target unresolved instead of emitting a confident approximate answer
126
- - if you widen beyond the named target set, record why in the extraction ledger and stop once that reason is satisfied
127
- - once every requested value is classified as exact, approximate, or unresolved, stop exploring. Write `.interf/analysis.json`, emit the required status line, and finish the stage.
128
- - when using scratch extraction files, keep the command output minimal. Write bulk SVG/OCR/PDF output to temp files and inspect only the relevant slices for the target chart rather than streaming whole blobs into the run log.
129
-
130
- Batching strategy:
131
- - Prefer a working set budget of roughly 35-45% of the model context window per batch
132
- - For 100+ files: spawn subagents per batch
133
-
134
- ### 3. Extract entities, claims, and relationships
135
-
136
- Each batch (or subagent) extracts:
137
- - Entities relevant to this interface's ontology goals
138
- - Claims (patterns, decisions, risks, metrics)
139
- - Relationships between entities
140
- - Modality notes when it matters: whether a key numeric claim came from prose, tables, or chart/figure extraction
141
- - Time-cut notes when it matters: whether a value is annual, quarterly, trailing-twelve-month, or another window
142
- - Precision notes when it matters: exact, approximate, or unresolved
143
- - For bounded audits, only extract the entities and claims needed for the named targets plus any narrowly justified comparators or calibration anchors
144
- - For bounded target ledgers, emit one result per requested item with metric, entity, period, source kind, derivation, value, and precision
145
-
146
- Subagent instruction:
147
- ```
148
- Analyze these summaries for the {interface-name} interface.
149
- Ontology goals: {from compile-plan.md}
150
- Return: entities, claims, relationships as structured list.
151
- Include summary title as evidence reference.
152
- ```
153
-
154
- ### 4. Refine runtime where evidence demands it
155
-
156
- If repeated evidence shows the interface needs better local structure, propose or record:
157
- - new ontology branches
158
- - refined taxonomy labels
159
- - emergent thread clusters
160
- - stronger relationship groupings
161
-
162
- Do not rewrite the runtime gratuitously. Refine only when it helps the interface become a better local context layer for future agents.
163
- For bounded audit or exact-value tasks, do not widen the runtime before the requested values are classified and the main brief can be written.
164
-
165
- ### 5. Merge results
166
-
167
- Combine all batch/subagent outputs:
168
- - Deduplicate entities (same person/company from different batches)
169
- - Merge evidence for existing entities/claims
170
- - merge runtime refinements
171
- - Flag conflicts for manual review
172
-
173
- ### 6. Write analysis handoff
174
-
175
- Store the merged extraction results in `.interf/analysis.json` (temporary, consumed by the next output stage). Include runtime refinements when present.
176
- When exact-value PDF or chart work happened, include a raw extraction ledger in `.interf/analysis.json` with enough detail for the compile stage to judge confidence: source path, pages inspected, methods attempted, result, whether a scratch helper was used, and whether each reported value is exact, approximate, or unresolved.
177
- For chart-derived approximate values, include enough structure in `.interf/analysis.json` for a later reviewer to reconstruct the judgment without reopening the raw file: chart title, whether the chart was stacked, scale band or nearest labeled anchors, and the reason the chosen `bin_choice` is closer than the neighboring bins.
178
- For bounded target audits, the final write sequence is strict: write `.interf/analysis.json`, emit `STATUS: wrote analyze outputs`, emit `DONE: analyze complete`, and stop.
179
-
180
- The CLI reconciles `.interf/state.json` and refreshes `.interf/health.json` after validation.
181
-
182
- Report with status-style lines:
183
- ```
184
- STATUS: loaded analyze plan N files.
185
- STATUS: inspecting <current subtask>
186
- STATUS: analyzed N/N
187
- STATUS: wrote analysis
188
- DONE: analyze complete
189
- ```
190
-
191
- When the analysis artifact is written, emit the required `DONE:` line and stop. The CLI reconciles `.interf/state.json` and refreshes `.interf/health.json` after validation. Do not keep exploring after the analyze contract is satisfied.
@@ -1,152 +0,0 @@
1
- ---
2
- {
3
- "name": "interface/compile",
4
- "description": "Interface output contract. Creates or updates local output files from the analysis. Writes knowledge/, briefs/, and home.md with evidence-linked notes. Use when asked to compile outputs, create notes, or run an output stage inside interface compile."
5
- }
6
- ---
7
-
8
- # Interface Compile — Output
9
-
10
- Read `interf.json` for output definitions and `compile-plan.md` Stage 3 for output specs.
11
-
12
- Local runtime reference:
13
- - active stage contract: `.interf/stage-contract.json`
14
- - active run ledger: `.interf/run.json`
15
- - local config: `interf.json`
16
- - local plan: `compile-plan.md`
17
- - local instruction docs: the files listed by `.interf/stage-contract.json`
18
-
19
- When this skill is embedded into a generated interface, do not try to open SDK repo docs or source files outside the current workspace. The local contract and local docs are the source of truth for this run.
20
-
21
- This skill creates the actual files that make the interface queryable. All outputs are LOCAL — do not write to the knowledge base. The interface should become a local context shell that future agents can enter and navigate easily.
22
- If `../../.interf/source-access.json` exists, use it as the quick check for whether raw paths are actually reachable from this session before assuming raw fallback will work.
23
- If local docs are listed by the stage contract, read them before compiling. They may `extend` or `override` the bundled workflow instructions for this stage, but they do not bypass coverage proof or the stage contract.
24
-
25
- Harness role:
26
- - This skill is an internal harness step normally invoked by `interf compile` from inside an interface.
27
- - For standard operation, prefer the CLI or another higher-level tool over calling this skill directly.
28
-
29
- ## Runtime contract
30
-
31
- When invoked by the CLI, honor any explicit execution instructions in the prompt. In particular:
32
- - if `.interf/stage-contract.json` exists, treat it as the authoritative stage contract for this run
33
- - if the prompt gives a retrieved set size, use it for progress framing
34
- - do not create or edit `.interf/view-spec.json`; the CLI refreshes it after stage completion
35
- - only emit user-facing lines that start with `STATUS:`, `DONE:`, `BLOCKED:`, or `ERROR:`
36
- - the CLI reconciles `.interf/state.json`, refreshes `.interf/health.json`, and refreshes `.interf/view-spec.json` after validation; do not treat those files as stage-owned write targets for compile
37
-
38
- ## Prerequisites
39
-
40
- If `.interf/analysis.json` is missing or unreadable: emit `BLOCKED: missing analysis handoff (.interf/analysis.json)` and stop.
41
-
42
- Before compiling, prefer running:
43
-
44
- ```bash
45
- interf verify retrieve --json
46
- ```
47
-
48
- If it fails, stop and fix the retrieval proof instead of continuing.
49
-
50
- Read `.interf/analysis.json` for the extracted entities, claims, and relationships from the preceding analysis stage.
51
-
52
- ## Steps
53
-
54
- ```
55
- Compile:
56
- - [ ] 1. Read analysis results and output spec
57
- - [ ] 2. Compile entities
58
- - [ ] 3. Compile claims
59
- - [ ] 4. Compile interface-specific outputs
60
- - [ ] 5. Compile navigation
61
- - [ ] 6. Validate
62
- - [ ] 7. Clean up
63
- ```
64
-
65
- ### 1. Read analysis results and output spec
66
-
67
- - `.interf/analysis.json` → extracted entities, claims, relationships, runtime refinements
68
- - `compile-plan.md` → this stage's section: what files to create, in what format
69
- - Existing `knowledge/` → what already exists (for delta: update, don't recreate)
70
- - `../../.interf/source-access.json` → sample raw paths and suggested access checks when raw fallback is needed
71
- - local instruction docs listed by the stage contract
72
- - if the plan asked for exact values from PDFs, charts, or tables, check whether `.interf/analysis.json` includes a raw extraction ledger or equivalent method notes before treating approximations as closed findings
73
-
74
- ### 2. Compile entities
75
-
76
- Create/update `knowledge/entities/` notes. Each entity gets:
77
- - Summary, evidence links, related entities
78
- - Properties for filtering (entity_type, status, confidence)
79
- - Tags for Obsidian surfacing
80
- - Clear wikilinks back to supporting parent summaries so an agent can move entity -> evidence -> source trail without guessing
81
-
82
- ### 3. Compile claims
83
-
84
- Create/update `knowledge/claims/` notes. Prose-as-title: filename IS the claim.
85
- - The claim, why it matters, evidence links
86
- - 2+ sources required for broad synthesis work
87
- - single-source claims are allowed for bounded audit or extraction workflows when provenance includes source path/page, extraction method, and precision (`exact`, `approximate`, or `unresolved`)
88
- - Link claims to related entities, briefs, and parent summaries so backlinks become a real navigation surface
89
-
90
- ### 4. Compile interface-specific outputs
91
-
92
- From `compile-plan.md`: create whatever this output stage defines.
93
- - Treat `compile-plan.md` Stage 3 as the output contract. Follow the exact filenames and folders named there.
94
- - briefs/ hero documents
95
- - summaries/ interface-local temporal views when needed
96
- - Any other outputs defined in the compile plan
97
- - if this is a bounded audit, prefer one focused hero brief plus the smallest supporting note set that makes the target answers easy to retrieve
98
- - do not mirror the whole parent report into the interface unless the compile plan explicitly asks for full-report coverage
99
- - if the plan includes a target ledger, the hero brief must cover every requested target explicitly and unresolved targets must stay unresolved instead of being replaced by nearby exact figures
100
- - Preserve `value_display`, `bin_choice`, `precision`, `source_kind`, and page metadata from `.interf/analysis.json`. Compile is a render pass, not a second chart-reading pass.
101
- - If an approximate chart-derived target includes both `value_display` and `bin_choice`, prefer the conservative answer-grade value for the main hero surface unless the notes explicitly justify a finer display. Keep extra granularity in supporting prose, `scale_band`, or notes rather than upgrading the main answer.
102
- - Do not invent fixed hero-brief filenames or generic claim-folder patterns unless the compile plan explicitly asks for them.
103
-
104
- For delta compiles: update existing files surgically. Do NOT regenerate everything.
105
-
106
- When a local output cites evidence from the main knowledge base, use the parent knowledge-base summary path (`../../summaries/...`). Do not point `source:` or evidence links at the interface-local `summaries/` folder unless that interface actually created the cited file.
107
- When an output depends on exact numbers from PDFs, tables, or charts, say whether the value was text-derived, table-derived, or chart-derived. Do not present chart-extracted values as if they were already explicit in the compiled summaries.
108
- Do not write `data unavailable` or `gap` when the real state is `not yet extracted from the raw source`.
109
- If the analysis only opened raw pages but did not log a machine-readable extraction attempt for an exact-value task, keep the result unresolved instead of upgrading it to a verified finding.
110
- If the analysis logged anchor cross-checks with material drift, keep the finding approximate or unresolved instead of presenting it as settled.
111
- If the question asked for exact values and you only recovered a visual estimate, say `approximate` explicitly and keep the remaining precision gap in the output.
112
- Do not substitute a requested `annual`, `quarterly`, `trailing-12-month`, `availability`, `take-up`, or similar target with another metric or period just because the substitute is exact and easier to quote.
113
-
114
- ### 5. Compile navigation
115
-
116
- - `home.md` — links to all key outputs, counts, last compile
117
- - `knowledge/indexes/` or equivalent local maps when the interface needs better navigation
118
- - make the order of use obvious: AGENTS.md -> home.md -> local knowledge/briefs/summaries -> knowledge-base summaries -> raw if needed
119
- - make upward navigation obvious too: local outputs should link out to parent summaries so an agent can follow backlinks and climb toward stronger evidence
120
- - if Obsidian is mentioned, assume the interface is being browsed from the parent knowledge-base vault rather than as a standalone vault
121
- - Update every compile run
122
-
123
- ### 6. Runtime reconciliation
124
-
125
- Do not reset retrieve/analyze coverage markers manually. The CLI reconciles `.interf/state.json`, refreshes `.interf/health.json`, and refreshes `.interf/view-spec.json` after stage validation so viewers keep a stable presentation contract.
126
-
127
- ### 7. Validate
128
-
129
- - [ ] All outputs from compile-plan.md exist and are non-empty
130
- - [ ] Entity notes have evidence links
131
- - [ ] Claims meet the workflow provenance rule: either 2+ sources or a bounded-audit single-source record with explicit provenance
132
- - [ ] No broken wikilinks
133
- - [ ] home.md is current
134
-
135
- ### 8. Clean up
136
-
137
- Delete `.interf/analysis.json` — it was temporary between stages.
138
-
139
- Report with status-style lines:
140
- ```
141
- STATUS: loaded compile plan N relevant files.
142
- STATUS: wrote entities E
143
- STATUS: wrote claims C
144
- STATUS: wrote interface outputs
145
- DONE: compile complete
146
- ```
147
-
148
- When the required outputs are written, emit the required `DONE:` line and stop. The CLI reconciles `.interf/state.json` and refreshes `.interf/health.json` after validation. Do not keep exploring after the compile contract is satisfied.
149
-
150
- ## Key principle
151
-
152
- **Local outputs only.** Everything this skill creates lives in this interface. The connected knowledge base (at `knowledge_base.path`) is read-only. The interface graph is distilled and focused, not a mirror of the knowledge base. The goal is to make future agent navigation easier, not just to dump another layer of summaries.
@@ -1,48 +0,0 @@
1
- # Output Format Guide
2
-
3
- All outputs are plain markdown. They work standalone for any agent and render well in Obsidian. Obsidian is supported but not required.
4
-
5
- ## Properties (JSON frontmatter)
6
-
7
- Use Obsidian-compatible properties for filtering:
8
-
9
- ```md
10
- ---
11
- {
12
- "entity_type": "person",
13
- "status": "active",
14
- "confidence": "high",
15
- "tags": ["type/entity", "entity/person"]
16
- }
17
- ---
18
- ```
19
-
20
- Properties = machine filtering. Tags = human browsing.
21
-
22
- ## Wikilinks
23
-
24
- Use `[[wikilinks]]` for all internal references. Never raw file paths.
25
-
26
- ## Wiki-link-as-prose
27
-
28
- Links read as sentences:
29
- > This note is where [[readiness assessment language first appears in the knowledge base]]
30
-
31
- ## home.md
32
-
33
- Entry point. Links to key sections, current counts, last compile date. Update every compile.
34
-
35
- ## .base files
36
-
37
- Optional Obsidian-specific JSON files for filterable table/card views. The interface works without them.
38
-
39
- ## Graph optimization
40
-
41
- - Wikilinks consistently (every link = edge)
42
- - One canonical note per entity (no duplicates)
43
- - Home.md and indexes as high-connectivity hubs
44
- - Tags for color-coding in graph view
45
-
46
- ## Independence
47
-
48
- Everything works without Obsidian. Wikilinks are `[[plain text]]`. Properties use JSON frontmatter. Tags are strings. Any agent can read the files directly.
@@ -1,87 +0,0 @@
1
- ---
2
- {
3
- "name": "interface/create",
4
- "description": "Create a new Interf interface. Analyzes a knowledge base to generate an interf.json config and execution plan (compile-plan.md). Use when asked to create an interface, new interface, or build a task-specific view."
5
- }
6
- ---
7
-
8
- # Create Interface
9
-
10
- This stage drafts the initial interface runtime hypothesis from the parent knowledge base.
11
-
12
- ## Stage role
13
-
14
- - planning only
15
- - no raw-source inspection
16
- - no chart/table extraction
17
- - no registry edits
18
-
19
- Read `.interf/stage-contract.json` first and treat it as authoritative.
20
-
21
- ## Minimal completion target
22
-
23
- For automated runs, the primary deliverable is a correct `compile-plan.md`.
24
-
25
- - If scaffolded `interf.json` already matches the stage contract, leave it unchanged.
26
- - If scaffolded `AGENTS.md` already preserves the router, checklist, and parent handoff, leave it unchanged.
27
- - Do not spend the run rewriting scaffold files that already validate.
28
- - After the knowledge-base review, the next action should usually be to rewrite `compile-plan.md` in one full write and stop.
29
-
30
- ## Bounded analysis
31
-
32
- Build the plan from the parent knowledge-base surface only:
33
-
34
- - `../../home.md`
35
- - `../../knowledge/`
36
- - `../../summaries/`
37
-
38
- Read only enough to plan the interface:
39
-
40
- - the primary summary or summaries that anchor the task
41
- - the highest-signal parent knowledge notes that clarify scope
42
- - the local scaffold files you may update
43
-
44
- Do not widen into broad research. If later stages need raw/chart work, encode that in `compile-plan.md` and leave the actual extraction to retrieve/analyze.
45
-
46
- ## Plan requirements
47
-
48
- `compile-plan.md` must:
49
-
50
- - preserve the exact requested use case line in `## Interface Goal`
51
- - keep the existing workflow stage headings and required subsection labels
52
- - translate the task into a concrete target ledger when the task names specific values, periods, entities, metrics, units, or chart/table families
53
- - keep different time cuts and metric families separate, and say when later stages must inspect raw visuals
54
- - require a concrete local extraction path plus exact/approximate/unresolved labeling when precision matters
55
- - require a durable output surface, usually one focused hero brief for bounded audits
56
-
57
- ## AGENTS handling
58
-
59
- `AGENTS.md` is a scaffold router for later agents, not the main output of this stage.
60
-
61
- - Preserve the scaffold router and checklist.
62
- - preserve the `## Manual access checklist`, raw-source gate, and parent knowledge-base handoff
63
- - preserve the router to `workflow/use/query/` and later compile-stage docs
64
- - do not execute those instructions during create
65
- - only rewrite `AGENTS.md` if the existing scaffold is materially wrong for this interface
66
-
67
- ## Finish rule
68
-
69
- Once `compile-plan.md` is correct and the scaffold still validates:
70
-
71
- 1. update `interf.json` only if needed
72
- 2. update `AGENTS.md` only if needed
73
- 3. emit the required status lines
74
- 4. stop
75
-
76
- Do not keep researching after the durable plan is written.
77
-
78
- ## Status contract
79
-
80
- For automated runs, these canonical `STATUS:` lines are mandatory and must appear verbatim on their own lines:
81
-
82
- - `STATUS: loaded interface creation contract.`
83
- - `STATUS: analyzed knowledge-base.`
84
- - `STATUS: wrote compile plan.`
85
-
86
- You may emit `DONE: interface create complete.` as a final progress line, but the CLI validates completion from the scaffold files rather than trusting that line.
87
- Additional `STATUS:` lines are allowed between them, but do not replace or rewrite these canonical markers.
@@ -1,109 +0,0 @@
1
- # Interface Compile Plan Format
2
-
3
- When creating an interface, generate a `compile-plan.md` that follows the selected workflow's stage graph. The examples below show the built-in `Retrieve -> Analyze -> Compile` shape. For custom workflows, repeat the same section pattern for each workflow-defined stage label and contract type. This file lives in the interface root and is git-tracked.
4
-
5
- ## Format
6
-
7
- ```markdown
8
- # {Interface Name} — Compile Plan
9
-
10
- ## Stage 1: Retrieve
11
-
12
- Filter criteria for knowledge-base summaries/:
13
- - Categories: {list of relevant categories}
14
- - Priority evidence tiers: {which source/evidence tiers matter most}
15
- - Truth modes to prioritize or downweight: {fact vs proposal vs brainstorm etc.}
16
- - Key entities: {people/companies to prioritize}
17
- - Date range: {if relevant}
18
-
19
- Expected relevant file count: ~{estimate}
20
- Coverage loop:
21
- - scan all summary frontmatter
22
- - read abstracts for every candidate file
23
- - expand through links until the selected set is stable
24
- - persist selected and rejected files with reasons
25
-
26
- ## Stage 2: Analyze
27
-
28
- For each relevant summary, extract:
29
- - {entity type 1}: {what to look for}
30
- - {entity type 2}: {what to look for}
31
- - Claims: {what patterns/decisions/risks to detect}
32
- - Runtime refinements: {when to add missing ontology/taxonomy/relationship structure}
33
-
34
- Working-set budget: ~{fraction or token budget} of model context window per batch.
35
- Subagent instruction: "{what each subagent should return}"
36
-
37
- ## Stage 3: Compile
38
-
39
- Output files to create/update:
40
-
41
- ### {Output 1, e.g., briefs/Company.md}
42
- Purpose: {what question this answers}
43
- Sections: {structure}
44
- Evidence: {what sources to cite}
45
-
46
- ### {Output 2, e.g., knowledge/entities/*.md}
47
- {same format}
48
-
49
- ### home.md
50
- Links to: {key outputs}
51
- Status: {counts, last compile}
52
- Agent navigation: {how an agent should move from AGENTS.md into the rest of this interface}
53
- ```
54
-
55
- ## Example: Task-Specific interface
56
-
57
- ```markdown
58
- # {Interface Name} — Compile Plan
59
-
60
- ## Stage 1: Retrieve
61
-
62
- Filter criteria for knowledge-base summaries/:
63
- - Categories: {documents, notes, datasets, reports, experiments, or other relevant categories}
64
- - Priority evidence tiers: {which evidence tiers matter most for this task}
65
- - Truth modes to prioritize or downweight: {which truth modes to favor or downweight}
66
- - Key entities: {entities, systems, products, markets, or themes to prioritize}
67
- - Date range: {all time, a recent window, or another task-specific cutoff}
68
-
69
- Expected relevant file count: ~{estimate} of {knowledge_base_summary_total}
70
- Coverage loop:
71
- - scan all {knowledge_base_summary_total} summary frontmatter blocks
72
- - read abstracts for the full candidate set
73
- - follow adjacency links for the relevant clusters until retrieval closure
74
- - persist selected and rejected files with reasons in coverage proof
75
-
76
- ## Stage 2: Analyze
77
-
78
- For each relevant summary, extract:
79
- - {Entity type 1}: {what to extract}
80
- - {Entity type 2}: {what to extract}
81
- - Claims: {what is being asserted and with what level of support}
82
- - Contradictions: {what disagreements matter}
83
- - Open questions: {what remains unresolved}
84
- - Runtime refinements: {what missing structure to add when evidence supports it}
85
-
86
- Working-set budget: ~{fraction} of model context window per batch.
87
- Subagent instruction: "{what each subagent should extract and return}"
88
-
89
- ## Stage 3: Compile
90
-
91
- ### briefs/{Primary Brief}.md
92
- Purpose: "{what question this brief answers}"
93
- Sections: {section structure}
94
- Evidence: {what evidence to prefer}
95
-
96
- ### briefs/{Secondary Brief}.md
97
- Purpose: "{what this note clarifies}"
98
- Sections: {section structure}
99
- Evidence: {what evidence to cite}
100
-
101
- ### briefs/{Follow-up Brief}.md
102
- Purpose: "{what should be checked next}"
103
- Sections: {section structure}
104
- Evidence: {how to link back to gaps or follow-up needs}
105
-
106
- ### home.md
107
- Links to: {key briefs and local outputs}
108
- Agent navigation: AGENTS.md -> home.md -> briefs/ -> knowledge/ -> knowledge-base summaries
109
- ```
@@ -1,35 +0,0 @@
1
- # Interface Workflows
2
-
3
- Interf now ships one built-in interface workflow: `interf`.
4
-
5
- Use it as the default task-specific method on top of a knowledge base. If you need a different bias, create a reusable local workflow under `interf/workflows/interface/` and benchmark it.
6
-
7
- ## interf
8
-
9
- Task-specific evidence distillation. Best when the agent needs a bounded workspace that:
10
- - proves what was scanned and selected
11
- - preserves the exact task nouns the user cares about
12
- - compiles minimal answer-ready artifacts for later retrieval
13
-
14
- **Questions it answers:**
15
- - What exactly is this interface trying to help an agent do?
16
- - Which entities, periods, metrics, comparators, or source families matter?
17
- - What compiled brief or notes should a weaker model rely on instead of rediscovering the raw data?
18
-
19
- **Default bias:**
20
- - narrow retrieval to the requested task before widening scope
21
- - turn the request into a target ledger when the task is bounded
22
- - preserve time periods, units, metric families, and provenance
23
- - when exact values matter, inspect the raw source and classify the result as text-derived, table-derived, or chart-derived
24
- - compile one concise hero brief plus the minimum supporting notes needed for reliable retrieval
25
-
26
- ## Create new workflow
27
-
28
- Create a reusable local interface workflow when the built-in `interf` method is not enough.
29
-
30
- The wizard asks:
31
- 1. What questions should this interface answer?
32
- 2. What categories or entities matter?
33
- 3. What output documents should it maintain?
34
-
35
- Then it saves a named local workflow under `interf/workflows/interface/` and generates `interf.json` plus `compile-plan.md` from knowledge-base analysis.