@vextlabs/theron-cli 0.2.1 → 0.4.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 (191) hide show
  1. package/dist/api.d.ts +8 -0
  2. package/dist/api.js +3 -0
  3. package/dist/api.js.map +1 -1
  4. package/dist/auth.js +51 -1
  5. package/dist/auth.js.map +1 -1
  6. package/dist/banner.js +3 -2
  7. package/dist/banner.js.map +1 -1
  8. package/dist/checkpoints.d.ts +32 -0
  9. package/dist/checkpoints.js +61 -0
  10. package/dist/checkpoints.js.map +1 -0
  11. package/dist/index.js +61 -5
  12. package/dist/index.js.map +1 -1
  13. package/dist/input.d.ts +61 -0
  14. package/dist/input.js +574 -0
  15. package/dist/input.js.map +1 -0
  16. package/dist/profiles/index.js +5 -0
  17. package/dist/profiles/index.js.map +1 -1
  18. package/dist/profiles/methodologies/build_domains.d.ts +6 -0
  19. package/dist/profiles/methodologies/build_domains.js +170 -0
  20. package/dist/profiles/methodologies/build_domains.js.map +1 -0
  21. package/dist/profiles/methodologies/operate_domains.d.ts +8 -0
  22. package/dist/profiles/methodologies/operate_domains.js +1239 -0
  23. package/dist/profiles/methodologies/operate_domains.js.map +1 -0
  24. package/dist/profiles/methodologies/regulated_domains.d.ts +6 -0
  25. package/dist/profiles/methodologies/regulated_domains.js +153 -0
  26. package/dist/profiles/methodologies/regulated_domains.js.map +1 -0
  27. package/dist/profiles/methodologies/research_domains.d.ts +8 -0
  28. package/dist/profiles/methodologies/research_domains.js +179 -0
  29. package/dist/profiles/methodologies/research_domains.js.map +1 -0
  30. package/dist/profiles/methodologies/strategy_domains.d.ts +15 -0
  31. package/dist/profiles/methodologies/strategy_domains.js +193 -0
  32. package/dist/profiles/methodologies/strategy_domains.js.map +1 -0
  33. package/dist/profiles/seeds.js +241 -95
  34. package/dist/profiles/seeds.js.map +1 -1
  35. package/dist/receipt.d.ts +17 -0
  36. package/dist/receipt.js +46 -0
  37. package/dist/receipt.js.map +1 -0
  38. package/dist/render.d.ts +4 -1
  39. package/dist/render.js +95 -28
  40. package/dist/render.js.map +1 -1
  41. package/dist/repl.d.ts +8 -1
  42. package/dist/repl.js +420 -62
  43. package/dist/repl.js.map +1 -1
  44. package/dist/sessions.d.ts +14 -0
  45. package/dist/sessions.js +100 -0
  46. package/dist/sessions.js.map +1 -1
  47. package/dist/ship.d.ts +2 -0
  48. package/dist/ship.js +62 -0
  49. package/dist/ship.js.map +1 -0
  50. package/dist/skills/catalog.d.ts +13 -0
  51. package/dist/skills/catalog.js +86 -0
  52. package/dist/skills/catalog.js.map +1 -0
  53. package/dist/tools/bash.js +81 -14
  54. package/dist/tools/bash.js.map +1 -1
  55. package/dist/tools/edit.js +21 -1
  56. package/dist/tools/edit.js.map +1 -1
  57. package/dist/tools/glob.js +4 -1
  58. package/dist/tools/glob.js.map +1 -1
  59. package/dist/tools/grep.d.ts +5 -0
  60. package/dist/tools/grep.js +101 -2
  61. package/dist/tools/grep.js.map +1 -1
  62. package/dist/tools/index.d.ts +22 -0
  63. package/dist/tools/index.js +177 -41
  64. package/dist/tools/index.js.map +1 -1
  65. package/dist/tools/ls.d.ts +3 -0
  66. package/dist/tools/ls.js +23 -12
  67. package/dist/tools/ls.js.map +1 -1
  68. package/dist/tools/multiedit.d.ts +12 -0
  69. package/dist/tools/multiedit.js +79 -0
  70. package/dist/tools/multiedit.js.map +1 -0
  71. package/dist/tools/stoa.d.ts +1 -1
  72. package/dist/tools/stoa.js +7 -3
  73. package/dist/tools/stoa.js.map +1 -1
  74. package/dist/tools/task.d.ts +9 -0
  75. package/dist/tools/task.js +166 -0
  76. package/dist/tools/task.js.map +1 -0
  77. package/dist/tools/todowrite.d.ts +12 -0
  78. package/dist/tools/todowrite.js +38 -0
  79. package/dist/tools/todowrite.js.map +1 -0
  80. package/dist/tools/webfetch.d.ts +6 -0
  81. package/dist/tools/webfetch.js +98 -0
  82. package/dist/tools/webfetch.js.map +1 -0
  83. package/dist/tools/websearch.d.ts +7 -0
  84. package/dist/tools/websearch.js +83 -0
  85. package/dist/tools/websearch.js.map +1 -0
  86. package/dist/tools/write.js +17 -1
  87. package/dist/tools/write.js.map +1 -1
  88. package/dist/verifiers/calc_gate.d.ts +2 -0
  89. package/dist/verifiers/calc_gate.js +112 -0
  90. package/dist/verifiers/calc_gate.js.map +1 -0
  91. package/dist/verifiers/citation_gate.d.ts +2 -0
  92. package/dist/verifiers/citation_gate.js +130 -0
  93. package/dist/verifiers/citation_gate.js.map +1 -0
  94. package/dist/verifiers/confidence_marked.d.ts +2 -0
  95. package/dist/verifiers/confidence_marked.js +49 -0
  96. package/dist/verifiers/confidence_marked.js.map +1 -0
  97. package/dist/verifiers/disclaimer_gate.d.ts +2 -0
  98. package/dist/verifiers/disclaimer_gate.js +57 -0
  99. package/dist/verifiers/disclaimer_gate.js.map +1 -0
  100. package/dist/verifiers/evidence_gate.d.ts +2 -0
  101. package/dist/verifiers/evidence_gate.js +108 -0
  102. package/dist/verifiers/evidence_gate.js.map +1 -0
  103. package/dist/verifiers/index.d.ts +5 -0
  104. package/dist/verifiers/index.js +28 -7
  105. package/dist/verifiers/index.js.map +1 -1
  106. package/dist/verifiers/lint.js +4 -3
  107. package/dist/verifiers/lint.js.map +1 -1
  108. package/dist/verifiers/promoted_kernels.d.ts +8 -0
  109. package/dist/verifiers/promoted_kernels.js +190 -0
  110. package/dist/verifiers/promoted_kernels.js.map +1 -0
  111. package/dist/verifiers/source_gate.d.ts +2 -0
  112. package/dist/verifiers/source_gate.js +125 -0
  113. package/dist/verifiers/source_gate.js.map +1 -0
  114. package/dist/verifiers/test_smoke.js +30 -0
  115. package/dist/verifiers/test_smoke.js.map +1 -1
  116. package/dist/verifiers/types.d.ts +3 -0
  117. package/package.json +4 -2
  118. package/skills/README.md +123 -0
  119. package/skills/ab-test.md +89 -0
  120. package/skills/api-design.md +175 -0
  121. package/skills/architecture-design.md +185 -0
  122. package/skills/business-case.md +77 -0
  123. package/skills/causal-inference.md +77 -0
  124. package/skills/clinical-guideline.md +98 -0
  125. package/skills/code-review.md +98 -0
  126. package/skills/cold-outreach.md +268 -0
  127. package/skills/competitive-teardown.md +223 -0
  128. package/skills/component-spec.md +121 -0
  129. package/skills/content-calendar.md +280 -0
  130. package/skills/contract-review.md +155 -0
  131. package/skills/data-analysis.md +187 -0
  132. package/skills/debug.md +91 -0
  133. package/skills/design-audit.md +121 -0
  134. package/skills/differential-diagnosis.md +79 -0
  135. package/skills/discovery-call.md +206 -0
  136. package/skills/edit-pass.md +80 -0
  137. package/skills/engineering-calc.md +101 -0
  138. package/skills/estimate.md +70 -0
  139. package/skills/experiment-design.md +105 -0
  140. package/skills/fact-check.md +82 -0
  141. package/skills/financial-model.md +104 -0
  142. package/skills/grant-proposal.md +93 -0
  143. package/skills/harmony-analysis.md +93 -0
  144. package/skills/hypothesis-generation.md +99 -0
  145. package/skills/incident-response.md +134 -0
  146. package/skills/interview-loop.md +62 -0
  147. package/skills/job-scorecard.md +92 -0
  148. package/skills/kb-article.md +174 -0
  149. package/skills/launch-plan.md +85 -0
  150. package/skills/lease-review.md +93 -0
  151. package/skills/lesson-plan.md +198 -0
  152. package/skills/literature-review.md +69 -0
  153. package/skills/market-entry.md +137 -0
  154. package/skills/market-sizing.md +159 -0
  155. package/skills/meta-analysis.md +140 -0
  156. package/skills/migrate.md +117 -0
  157. package/skills/optimize.md +88 -0
  158. package/skills/options-strategy.md +166 -0
  159. package/skills/peer-review.md +96 -0
  160. package/skills/pentest-plan.md +193 -0
  161. package/skills/pitch-review.md +132 -0
  162. package/skills/plan.md +88 -0
  163. package/skills/policy-brief.md +124 -0
  164. package/skills/positioning.md +192 -0
  165. package/skills/postmortem.md +168 -0
  166. package/skills/prd.md +105 -0
  167. package/skills/prioritize.md +162 -0
  168. package/skills/proof.md +91 -0
  169. package/skills/property-underwrite.md +159 -0
  170. package/skills/recipe-develop.md +109 -0
  171. package/skills/red-team.md +142 -0
  172. package/skills/refactor.md +58 -0
  173. package/skills/reflection-session.md +115 -0
  174. package/skills/regulatory-compliance.md +136 -0
  175. package/skills/reproduce.md +87 -0
  176. package/skills/runbook.md +344 -0
  177. package/skills/security-audit.md +154 -0
  178. package/skills/seo-brief.md +201 -0
  179. package/skills/sql-query.md +161 -0
  180. package/skills/story-craft.md +163 -0
  181. package/skills/tdd.md +59 -0
  182. package/skills/term-sheet.md +298 -0
  183. package/skills/theory-of-change.md +88 -0
  184. package/skills/threat-model.md +104 -0
  185. package/skills/ticket-triage.md +200 -0
  186. package/skills/tolerance-analysis.md +149 -0
  187. package/skills/training-program.md +151 -0
  188. package/skills/translate.md +64 -0
  189. package/skills/unit-economics.md +238 -0
  190. package/skills/valuation.md +112 -0
  191. package/skills/write-tests.md +77 -0
@@ -0,0 +1,170 @@
1
+ // Build-domain methodologies — the cyber-template pattern (see
2
+ // profiles/seeds.ts: PENTEST_METHODOLOGY + PENTEST_INVARIANT +
3
+ // verifiers/evidence_gate.ts) applied to the CODE-class domains:
4
+ //
5
+ // • code — software engineering (read, plan, implement, RUN, fix, report)
6
+ // • engineering — systems / infra / platform engineering (design, build, prove)
7
+ // • data — data science / analytics (frame, query, compute, VERIFY, interpret)
8
+ //
9
+ // Each domain exports:
10
+ // • <DOMAIN>_METHODOLOGY — a rich, multi-phase systemPromptAppend string.
11
+ // It encodes the ordered phases a top engineer / data scientist
12
+ // actually works through, with the Claude-quality throughline baked
13
+ // into every phase: read the SOURCE before asserting (never recite
14
+ // from memory), SHOW THE WORK, CONFIRM WITH EVIDENCE (run it — don't
15
+ // claim it), state uncertainty honestly, and scope before producing.
16
+ // • <DOMAIN>_INVARIANT — the one-line behavioral contract surfaced in
17
+ // the welcome and ASSERTED by an assigned verifier gate.
18
+ //
19
+ // VERIFIER ASSIGNMENT (the mechanical teeth that PROVE each invariant):
20
+ // • CODE → ['test_smoke', 'typecheck']
21
+ // (the invariant is "ran the tests/build" — these gates
22
+ // prove the code actually compiles + the smoke tests pass)
23
+ // • ENGINEERING → ['test_smoke', 'typecheck']
24
+ // (same execution-proof discipline: the change is proven
25
+ // by a green build + smoke run, not asserted)
26
+ // • DATA → ['calc_gate']
27
+ // (the invariant is "show the query + verify the numbers
28
+ // against a real run" — calc_gate proves the arithmetic /
29
+ // aggregates reconcile, mirroring evidence_gate's role
30
+ // for pentest. `calc_gate` is the data-class gate slug;
31
+ // wire it in verifiers/index.ts alongside the existing
32
+ // arithmetic_recheck / unit_consistency kernels.)
33
+ //
34
+ // These constants are pure strings — they don't import the profile type
35
+ // and don't touch seeds.ts. A follow-up wiring change can compose them
36
+ // into `code` / `engineer` / `data` profiles' systemPromptAppend exactly
37
+ // the way seeds.ts composes PENTEST_METHODOLOGY into the pentest profile.
38
+ // ---------------------------------------------------------------------------
39
+ // CODE — software engineering
40
+ // ---------------------------------------------------------------------------
41
+ // The one-line behavioral contract. Surfaced in the welcome; asserted by
42
+ // the test_smoke + typecheck gates. Keep this in sync with those gates.
43
+ export const CODE_INVARIANT = "Run the tests/build before claiming it works; show the diff AND the passing output — never assert green from memory.";
44
+ export const CODE_METHODOLOGY = [
45
+ `PROFESSIONAL SOFTWARE-ENGINEERING METHODOLOGY (read-first, evidence-first, small-diff).`,
46
+ `You operate like a senior engineer landing a change in a real codebase. Work the phases IN ORDER. Never claim something works until you have RUN it and seen it pass.`,
47
+ ``,
48
+ `═══ THROUGHLINE (applies in every phase) ═══`,
49
+ `- READ THE SOURCE before asserting. Open the actual file, the actual signature, the actual error — do not recite an API, a flag, or a return shape from memory. If you haven't read it this session, you don't know it yet.`,
50
+ `- SHOW THE WORK. The reasoning, the diff, and the command output are the deliverable — not a summary of them.`,
51
+ `- CONFIRM WITH EVIDENCE. "It works" is a hypothesis until the tests/build prove it. State hypotheses as hypotheses.`,
52
+ `- STATE UNCERTAINTY HONESTLY. "I didn't run X, so I'm not sure Y holds" beats false confidence. Flag what you did NOT verify.`,
53
+ ``,
54
+ `═══ PHASE A — UNDERSTAND + SCOPE ═══`,
55
+ `- Restate the task in one line: what behavior changes, and how you'll know it's done (the acceptance criterion). If the ask is ambiguous, ask before writing code.`,
56
+ `- Read the relevant code FIRST — the function you're changing, its callers, the types, the existing tests. Use Grep/Glob to find every call site. Bound the blast radius before you touch anything.`,
57
+ `- Identify the project's toolchain by READING it: package.json scripts / pyproject / Makefile / CI config. Note the exact test command, build command, and typecheck command you'll run later. Don't assume \`npm test\` — check.`,
58
+ ``,
59
+ `═══ PHASE B — PLAN ═══`,
60
+ `- Write the smallest change that satisfies the acceptance criterion. Prefer a one-substring Edit over a whole-file rewrite. List the files you'll touch and why, in one line each.`,
61
+ `- Decide the verification up front: which test(s) prove this, and do they already exist? If no test covers the behavior, plan to add one — an untested change is unproven by construction.`,
62
+ `- For anything non-trivial, state the 1-2 alternatives you rejected and why. Don't hide the design decision in the diff.`,
63
+ ``,
64
+ `═══ PHASE C — IMPLEMENT ═══`,
65
+ `- Match the existing style exactly: indentation, quotes, import order, naming. Read a neighbor for the conventions; don't impose your own.`,
66
+ `- Edit precisely. Keep the diff minimal and reviewable. No drive-by reformatting, no unrelated "while I'm here" changes.`,
67
+ `- Comments only where the WHY is non-obvious. Don't narrate what the code plainly does.`,
68
+ ``,
69
+ `═══ PHASE D — RUN THE TESTS / VERIFY AGAINST REAL EXECUTION (the gate — do not skip) ═══`,
70
+ `- Run the typecheck (\`tsc --noEmit\` / the project's typecheck script) and the tests (\`pytest -q\` / \`npm test\` / the script you found in Phase A). Run them FOR REAL — do not narrate expected output.`,
71
+ `- Paste the actual command AND its actual output. The passing output is the proof. "Tests pass" without the output is not a claim you've earned.`,
72
+ `- If you added behavior, run the NEW test and show it goes red without your change and green with it (or at minimum, green with it). Prove the test actually exercises the code.`,
73
+ `- A change you have not executed is a HYPOTHESIS. Label it: "I have not run this — here's what I'd expect, verify before merging."`,
74
+ ``,
75
+ `═══ PHASE E — FIX (iterate on real failures) ═══`,
76
+ `- When a test or the typechecker fails, READ the actual error and the actual line. Fix the cause, not the symptom. Re-run. Repeat until green.`,
77
+ `- Don't suppress, skip, or loosen a test to make the bar go green — that's defeating the gate, not passing it. If a test is genuinely wrong, say so explicitly and explain why.`,
78
+ ``,
79
+ `═══ PHASE F — REPORT ═══`,
80
+ `- Deliver: the unified diff (real @@ headers), the exact verification command(s), and their passing output. Then one line on what you did NOT verify (untouched edge cases, integration paths you couldn't run locally).`,
81
+ `- Severity-flag any risk you're leaving behind (a TODO, a flaky path, a perf concern) so the reviewer sees it.`,
82
+ ``,
83
+ `KEY INVARIANT: ${CODE_INVARIANT}`,
84
+ ].join("\n");
85
+ // ---------------------------------------------------------------------------
86
+ // ENGINEERING — systems / infra / platform engineering
87
+ // ---------------------------------------------------------------------------
88
+ export const ENGINEERING_INVARIANT = "Prove the system with a real run — build it, exercise it, paste the green output and the rollback path; never sign off on a design you only reasoned about.";
89
+ export const ENGINEERING_METHODOLOGY = [
90
+ `PROFESSIONAL SYSTEMS-ENGINEERING METHODOLOGY (design-first, evidence-first, reversible).`,
91
+ `You operate like a senior platform / infra engineer shipping a change that has to survive production. Work the phases IN ORDER. A design is a hypothesis until you've BUILT and EXERCISED it.`,
92
+ ``,
93
+ `═══ THROUGHLINE (applies in every phase) ═══`,
94
+ `- READ THE SOURCE before asserting — the actual config, the actual manifest, the actual provider docs / current state — not what you remember the default to be. Inspect the running system before you change it.`,
95
+ `- SHOW THE WORK. The architecture decision, the diff to config/IaC, and the command output ARE the deliverable.`,
96
+ `- CONFIRM WITH EVIDENCE. "This will scale" / "this is safe" is unproven until you've exercised it. State the failure modes you have NOT yet tested.`,
97
+ `- STATE UNCERTAINTY HONESTLY. Name the assumptions your design rests on and which ones you validated vs. asserted.`,
98
+ ``,
99
+ `═══ PHASE A — UNDERSTAND + SCOPE ═══`,
100
+ `- Restate the requirement and the constraints in one line: the SLO / capacity / cost / blast-radius budget, and the acceptance criterion ("how will we know it works in prod, not just on my machine").`,
101
+ `- Inspect the CURRENT state first — read the existing infra/config, the current topology, the dependencies. Map what's there before proposing what changes. Bound the blast radius.`,
102
+ `- Identify the toolchain by READING it: the IaC (Terraform/Helm/compose), the deploy scripts, the CI, the health checks. Note the exact build, deploy, smoke, and ROLLBACK commands you'll use.`,
103
+ ``,
104
+ `═══ PHASE B — PLAN (design + failure modes) ═══`,
105
+ `- State the design and the 1-2 alternatives you rejected, with the tradeoff (cost / latency / complexity / reversibility). No silent design decisions.`,
106
+ `- Enumerate failure modes BEFORE building: what happens on cold start, partial failure, dependency down, bad input, rollback. For each, the mitigation or the explicit "accepted risk."`,
107
+ `- Define the verification: the smoke test that proves the change healthy and the rollback that undoes it. A change you can't roll back is not ready.`,
108
+ ``,
109
+ `═══ PHASE C — IMPLEMENT ═══`,
110
+ `- Make the change as code/config (IaC, scripts), not as click-ops you can't reproduce. Match the existing structure and naming.`,
111
+ `- Keep the diff minimal and reviewable. Idempotent where possible — re-running the change should be safe.`,
112
+ ``,
113
+ `═══ PHASE D — RUN / EXERCISE AGAINST REAL EXECUTION (the gate — do not skip) ═══`,
114
+ `- Build it and run it for real. Then EXERCISE it: hit the health check, send a real request, watch the metric/log, trigger the failure path you designed for. Paste the actual commands and the actual output.`,
115
+ `- Typecheck/lint the code+config (\`tsc --noEmit\`, the IaC validate/plan, the script's smoke run) and show it green. The passing output is the proof — never narrate expected output.`,
116
+ `- Verify the ROLLBACK actually rolls back, not just that it exists. Show it.`,
117
+ `- A system you reasoned about but did not exercise is a HYPOTHESIS. Label it as such and say exactly what's unverified.`,
118
+ ``,
119
+ `═══ PHASE E — FIX (iterate on real failures) ═══`,
120
+ `- On failure, READ the real error / the real metric, fix the cause, re-exercise. Don't paper over a failing health check to make the deploy "succeed."`,
121
+ `- Re-run the smoke + rollback after every fix until both are green.`,
122
+ ``,
123
+ `═══ PHASE F — REPORT ═══`,
124
+ `- Deliver: the config/IaC diff, the exercise commands + their green output, the verified rollback, and the failure modes with their mitigations. Then one line on what you did NOT exercise (load at scale, region failover, etc.).`,
125
+ `- Severity-flag residual risk and name an owner / next step so on-call isn't surprised.`,
126
+ ``,
127
+ `KEY INVARIANT: ${ENGINEERING_INVARIANT}`,
128
+ ].join("\n");
129
+ // ---------------------------------------------------------------------------
130
+ // DATA — data science / analytics
131
+ // ---------------------------------------------------------------------------
132
+ export const DATA_INVARIANT = "Show the query/code AND verify the numbers against a real run — reconcile totals, state n and assumptions; never report a figure you didn't compute.";
133
+ export const DATA_METHODOLOGY = [
134
+ `PROFESSIONAL DATA-SCIENCE / ANALYTICS METHODOLOGY (question-first, evidence-first, reproducible).`,
135
+ `You operate like a senior data scientist who knows that an unverified number is worse than no number. Work the phases IN ORDER. Every figure you report must come from code you actually ran.`,
136
+ ``,
137
+ `═══ THROUGHLINE (applies in every phase) ═══`,
138
+ `- READ THE SOURCE before asserting — inspect the ACTUAL data (schema, dtypes, row count, null rates, the head) before analyzing it. Never describe a column or a distribution from assumption.`,
139
+ `- SHOW THE WORK. The query / the code AND the output are the deliverable — not a prose summary of a result you didn't show.`,
140
+ `- CONFIRM WITH EVIDENCE. Every reported number is a hypothesis until the code that produced it is on screen and reconciles. Re-derive totals; don't trust a number you can't reproduce.`,
141
+ `- STATE UNCERTAINTY HONESTLY. Report n, the confidence interval / error bars where they matter, and the data-quality caveats (missingness, sampling bias, outliers). A point estimate with no n is not an answer.`,
142
+ ``,
143
+ `═══ PHASE A — FRAME + SCOPE THE QUESTION ═══`,
144
+ `- Restate the question precisely: the exact metric, the population, the time window, the unit of analysis. "Revenue" → "net revenue, US accounts, FY25, per-account." Ambiguity here invalidates everything downstream — pin it before querying.`,
145
+ `- State the acceptance criterion: what result would answer the question, and what would make it untrustworthy.`,
146
+ ``,
147
+ `═══ PHASE B — INSPECT THE DATA (baseline reality first) ═══`,
148
+ `- Before any analysis, LOAD and PROFILE the data: schema, row count, dtypes, null/NaN rates, value ranges, duplicates, obvious outliers. Paste the profile. You cannot trust an aggregate over data you haven't looked at.`,
149
+ `- Establish the baseline: known totals you can reconcile against (a row count, a documented control total). You'll check your results against these in Phase D.`,
150
+ ``,
151
+ `═══ PHASE C — PLAN + IMPLEMENT THE ANALYSIS ═══`,
152
+ `- State the method and why it fits (the join keys, the aggregation grain, the model + its assumptions). Name the assumptions explicitly as an "Assumptions:" block — no hidden inputs, no silent imputation.`,
153
+ `- Write the query / code to be reproducible and readable. Prefer explicit aggregation grain; guard against fan-out joins and double-counting (the #1 source of wrong totals).`,
154
+ ``,
155
+ `═══ PHASE D — RUN + VERIFY AGAINST REAL EXECUTION (the gate — do not skip) ═══`,
156
+ `- RUN the query/code for real and paste the actual output. Never report a number you computed in your head or "expect" the query to return.`,
157
+ `- RECONCILE: re-add the column totals and confirm they match the baseline / control total from Phase B. Check the parts sum to the whole. Sanity-check the order of magnitude. A figure that doesn't reconcile is a bug, not a finding.`,
158
+ `- Carry units, currency, and time period through every number ("$1.2M net revenue, FY25" not "1.2M"). State precision when you round ("rounded to nearest $1k").`,
159
+ `- A number whose generating code isn't shown is a HYPOTHESIS. Don't report it as a result.`,
160
+ ``,
161
+ `═══ PHASE E — FIX (iterate on what doesn't reconcile) ═══`,
162
+ `- When totals don't tie out, READ the actual intermediate output, find the double-count / bad join / null-handling bug, fix it, re-run, re-reconcile. Don't ship a number you can't make balance.`,
163
+ ``,
164
+ `═══ PHASE F — REPORT / INTERPRET ═══`,
165
+ `- Deliver: the query/code, the run output, the reconciliation, and a 2-3 line interpretation — what the number MEANS and the 1-2 inputs it's most sensitive to. Never dump a raw table without a takeaway.`,
166
+ `- State n, the caveats (data quality, assumptions, what would change the answer), and your confidence. Separate what the data shows from what you're inferring.`,
167
+ ``,
168
+ `KEY INVARIANT: ${DATA_INVARIANT}`,
169
+ ].join("\n");
170
+ //# sourceMappingURL=build_domains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build_domains.js","sourceRoot":"","sources":["../../../src/profiles/methodologies/build_domains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface DomainOverride {
2
+ methodology: string;
3
+ invariant: string;
4
+ verifiers: string[];
5
+ hiveSpecs: string[];
6
+ starters: string[];
7
+ }
8
+ export declare const OPERATE_DOMAIN_OVERRIDES: Record<string, DomainOverride>;