alphacouncil-agent 1.0.4 → 1.0.13
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.
- package/.claude/agents/alphacouncil-insider_sec.md +19 -0
- package/.claude/commands/alpha.md +48 -19
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.grok/agents/alphacouncil-insider_sec.md +19 -0
- package/.grok/commands/alpha.md +48 -19
- package/.opencode/agent/alphacouncil-insider_sec.md +19 -0
- package/.opencode/command/alpha.md +48 -19
- package/CHANGELOG.md +282 -0
- package/CLAUDE.md +55 -13
- package/README.ja.md +42 -16
- package/README.md +70 -27
- package/README.zh-CN.md +53 -20
- package/SECURITY.md +11 -1
- package/commands/alpha.md +48 -19
- package/data/build-profile.v1.json +1 -1
- package/docs/INSTALL.md +9 -6
- package/docs/examples/final_report.SOX.zh.md +442 -0
- package/docs/report-contract.md +27 -3
- package/knowledge/ai-assisted-solo/experiments/runs/a.json +4 -4
- package/knowledge/ai-assisted-solo/experiments/runs/b.json +2 -2
- package/knowledge/ai-assisted-solo/experiments/runs/c.json +2 -2
- package/knowledge/ai-assisted-solo/experiments/runs/d13.json +16 -16
- package/knowledge/ai-assisted-solo/experiments/runs/d26.json +30 -30
- package/knowledge/ai-assisted-solo/experiments/runs/e-d13.json +19 -19
- package/knowledge/ai-assisted-solo/experiments/runs/e-d26.json +33 -33
- package/knowledge/ai-assisted-solo/experiments/runs/h_ai_reference.json +34 -34
- package/knowledge/ai-assisted-solo/experiments/simulation-input.json +84 -84
- package/knowledge/ai-assisted-solo/experiments/simulation-manifest.json +19 -19
- package/knowledge/solo-test/masters/master_ackman/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_aschenbrenner/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_asness/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_bogle/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_buffett/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_burry/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_cathie_wood/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_dalio/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_damodaran/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_druckenmiller/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_duan_yongping/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_fisher/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_forensic_short/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_graham/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_jhunjhunwala/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_klarman/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_li_lu/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_lynch/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_marks/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_munger/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_natenberg/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_pabrai/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_simons/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_sinclair/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_soros/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_taleb/manifest.json +8 -8
- package/knowledge/solo-test/masters/master_thorp/manifest.json +8 -8
- package/mcp/lib/constants.mjs +82 -4
- package/mcp/lib/council-selection.mjs +79 -1
- package/mcp/lib/gates.mjs +42 -0
- package/mcp/lib/grounding.mjs +27 -1
- package/mcp/lib/industry.mjs +9 -1
- package/mcp/lib/markdown.mjs +25 -1
- package/mcp/lib/orchestrator.mjs +187 -24
- package/mcp/lib/personas/engine.mjs +57 -12
- package/mcp/lib/personas-v3/runtime.mjs +28 -0
- package/mcp/lib/prompts.mjs +72 -3
- package/mcp/lib/rpc.mjs +93 -7
- package/mcp/lib/run-store.mjs +3 -0
- package/mcp/lib/screen.mjs +46 -46
- package/mcp/lib/sec.mjs +25 -10
- package/mcp/lib/voice-from-decision.mjs +13 -5
- package/mcp/lib/weights.mjs +9 -2
- package/mcp/lib/xbrl-series.mjs +21 -2
- package/package.json +2 -1
- package/personas/analysts/insider_sec.md +38 -0
- package/scripts/lib/persona-v3-solo-test-packs.mjs +14 -8
- package/scripts/review-persona-v3-solo-formulas.mjs +5 -3
- package/skills/alphacouncil-agent/SKILL.md +80 -19
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,288 @@
|
|
|
2
2
|
|
|
3
3
|
Notable changes per release. Dates are UTC.
|
|
4
4
|
|
|
5
|
+
## [1.0.13] — 2026-07-30
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **Screen rules pair both series by fiscal period end, never by array position.** Every
|
|
10
|
+
two-series elimination rule (`roe_10y`, `gross_margin`, `interest_cover`, `fcf_5y`,
|
|
11
|
+
`ocf_over_ni`, `net_margin`) used to slice the last N entries of each series independently
|
|
12
|
+
and divide position-by-position. A gap in one series — a tag the filer stopped using, a
|
|
13
|
+
year reported under an out-of-catalog alias — shifted every later year onto the wrong
|
|
14
|
+
counterpart while the provenance block still showed a clean range: this year's EBIT divided
|
|
15
|
+
by a two-year-old interest figure read as a confident 2.5x cover, and an equity series
|
|
16
|
+
missing one middle year shifted a decade of ROE by one year. Rules now drop a year present
|
|
17
|
+
on only one side, report the pair count as their coverage, and `interest_cover` is
|
|
18
|
+
`skipped` when the latest EBIT year has no same-period interest figure — a stale
|
|
19
|
+
denominator is a gap, not a cover ratio. Four regression tests pin the misalignment
|
|
20
|
+
scenarios.
|
|
21
|
+
- **The SEC universe cache in peer matching expires after six hours** instead of living for
|
|
22
|
+
the whole MCP process. A resident server that never re-read the ticker file silently lost
|
|
23
|
+
every new listing and rename from `industry_peers`, with no gap recorded anywhere.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- **The three READMEs, CLAUDE.md and INSTALL.md now agree on the counts**: 27 selectable
|
|
28
|
+
lenses (the bench table had listed 26 — Bogle was missing), 31 keyless MCP tools, 54
|
|
29
|
+
solo-test proxy tools. INSTALL.md no longer pins its examples to 1.0.0.
|
|
30
|
+
- **README leads with the recorded demo and a 30-second zero-cost first run** (`/alpha AAPL
|
|
31
|
+
news`), links a complete real full-council report
|
|
32
|
+
(`docs/examples/final_report.SOX.zh.md`), states the Codex CLI prerequisite for headless
|
|
33
|
+
paths next to the install commands instead of below the fold, and compresses the
|
|
34
|
+
governance status into one honest sentence linking the release contract.
|
|
35
|
+
- **SECURITY.md discloses what was already true**: `preflight_permissions` reads host
|
|
36
|
+
configuration files read-only to detect silent web-search downgrades, workers run in a
|
|
37
|
+
read-only sandbox, and the supported-versions line no longer claims the project is
|
|
38
|
+
pre-1.0.
|
|
39
|
+
|
|
40
|
+
## [1.0.12] — 2026-07-30
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- **The depth tier is asked at the selection gate instead of typed as an argument, and the menu
|
|
45
|
+
publishes the predicted time.** `begin_council_selection` now returns `pace_options`: one row
|
|
46
|
+
per tier carrying `expected_minutes`, `hard_ceiling_minutes`, the per-seat evidence budget and
|
|
47
|
+
the per-round debate budget. Both numbers are published on purpose — a ceiling shown on its own
|
|
48
|
+
reads as the estimate, and then every `fast` run looks like it takes fifteen minutes when the
|
|
49
|
+
serial worst case is twelve.
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
本次分析要跑多深?(默认 2)
|
|
53
|
+
1. 快速 预计 ~12 分钟(上限 15) 每证据席 3.5 分钟,每轮辩论每侧 90 秒
|
|
54
|
+
2. 标准 预计 ~20 分钟(上限 30) 每证据席 6 分钟,每轮辩论每侧 150 秒 ← 默认
|
|
55
|
+
3. 深入 预计 ~44 分钟(上限 60) 每证据席 12 分钟,每轮辩论每侧 360 秒
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The tier is the gate's second decision, so it is taken in the same interaction as the seat
|
|
59
|
+
catalog and **binds into the receipt**. An execution call may repeat the confirmed tier but
|
|
60
|
+
never change it: a user who approved fifteen minutes cannot end up running an hour, and the
|
|
61
|
+
reverse cannot happen either. `status.json` records which tier produced the run.
|
|
62
|
+
|
|
63
|
+
A speed named in the request (`/alpha NOW slow`) is now a **prefill**, exactly like a named
|
|
64
|
+
master: it highlights the row, the menu is still shown, the answer is still taken. No answer
|
|
65
|
+
means `normal`. Quick returns an empty menu and rejects the field.
|
|
66
|
+
|
|
67
|
+
### Fixed
|
|
68
|
+
|
|
69
|
+
- **A tier confirmed at the gate was lost at consumption.** `council_pace` reached the receipt
|
|
70
|
+
but not the consumed selection, so a run approved as `slow` silently fell back to the
|
|
71
|
+
30-minute default with nothing in the record showing the switch — and the execution-time
|
|
72
|
+
mismatch guard could not fire because it had nothing to compare against.
|
|
73
|
+
|
|
74
|
+
## [1.0.11] — 2026-07-30
|
|
75
|
+
|
|
76
|
+
### Fixed
|
|
77
|
+
|
|
78
|
+
- **A depth tier was a timeout with no plan behind it, so `fast` bought unfinished work rather
|
|
79
|
+
than faster work.** 1.0.10 shipped three tiers that all sent the identical prompt: `fast` asked
|
|
80
|
+
every worker for exactly the same output with 40% less time, which does not produce a faster
|
|
81
|
+
good packet — it produces one the worker could not finish, arriving `degraded` or not at all.
|
|
82
|
+
There was no pace awareness anywhere in the prompt layer.
|
|
83
|
+
|
|
84
|
+
A tier now shapes the worker's output as well as capping its clock. Because an LLM call's wall
|
|
85
|
+
clock is dominated by the tokens it generates, running faster without losing information means
|
|
86
|
+
asking for the same information in less prose:
|
|
87
|
+
|
|
88
|
+
- `fast` — at most six arguments, one to two sentences each, cite a source ID instead of
|
|
89
|
+
re-quoting the evidence, no opponent recap, no methodology preamble. Every figure, every
|
|
90
|
+
scoped source ID and every required report section stays mandatory; price levels and
|
|
91
|
+
invalidation conditions may not be compressed, because they are the only actionable part of
|
|
92
|
+
the report. Dropping an argument is acceptable; dropping a source ID or filling a number from
|
|
93
|
+
memory never is. A short packet that names its gap beats a complete-looking one built from
|
|
94
|
+
memory.
|
|
95
|
+
- `slow` — write the derivation out step by step with its basis, assumptions and sensitivity;
|
|
96
|
+
handle the opponent's arguments one at a time; state your own falsification conditions.
|
|
97
|
+
Longer is not better, so repetition still gets cut.
|
|
98
|
+
- `normal` — adds nothing at all, so its prompts stay byte-identical to the reviewed golden.
|
|
99
|
+
- Quick keeps its own existing shaping and receives no tier, so no prompt ever carries two
|
|
100
|
+
different length budgets.
|
|
101
|
+
|
|
102
|
+
The shaping reaches the evidence seats, both debaters, the PM and the method voice workers, in
|
|
103
|
+
the run's language.
|
|
104
|
+
|
|
105
|
+
## [1.0.10] — 2026-07-30
|
|
106
|
+
|
|
107
|
+
### Added
|
|
108
|
+
|
|
109
|
+
- **Three full-council depth tiers, selected with `council_pace`: `fast` 15 minutes, `normal`
|
|
110
|
+
(default) 30, `slow` 60.** All three are the same `full_v2` contract — eight evidence seats,
|
|
111
|
+
every selected method, three debate rounds, the PM — so a tier changes how long each seat may
|
|
112
|
+
think, never which seats run. Quick rejects the field: it is a smaller contract, not a slower
|
|
113
|
+
one. The tier is recorded in `status.json`, because two runs of one symbol at different paces
|
|
114
|
+
are not the same analysis.
|
|
115
|
+
|
|
116
|
+
A tier moves every per-stage cap together with the total, which is the part that actually buys
|
|
117
|
+
depth. Raising only the total would leave a 60-minute run finishing in twenty minutes with
|
|
118
|
+
forty idle, because what bounds each worker is its per-stage cap; lowering only the total would
|
|
119
|
+
starve the later stages and terminate `incomplete` with the debate missing.
|
|
120
|
+
|
|
121
|
+
| `council_pace` | total | evidence / seat | method / seat | debate / round | PM |
|
|
122
|
+
| --- | --- | --- | --- | --- | --- |
|
|
123
|
+
| `fast` | 15 min | 3.5 min | 1 min | 90 s | 2 min |
|
|
124
|
+
| `normal` | 30 min | 6 min | 2 min | 150 s | 3 min |
|
|
125
|
+
| `slow` | 60 min | 12 min | 4 min | 6 min | 8 min |
|
|
126
|
+
|
|
127
|
+
`/alpha <TICKER> fast` and `/alpha <TICKER> slow` reach it from the command surface. A test
|
|
128
|
+
pins the property that makes a tier coherent: every tier's stages fit inside its own budget
|
|
129
|
+
with headroom, and no stage cap is allowed to stay flat as the tier widens.
|
|
130
|
+
|
|
131
|
+
### Changed
|
|
132
|
+
|
|
133
|
+
- **The full-council ceiling is now the selected tier's total rather than a single 30-minute
|
|
134
|
+
maximum.** A caller or environment may still only lower the applicable budget; a
|
|
135
|
+
`total_timeout_ms` above the tier's total is rejected and names the tier that would allow it.
|
|
136
|
+
`ALPHACOUNCIL_FULL_TOTAL_MS` becomes an operator cap that only ever lowers a tier, instead of
|
|
137
|
+
doubling as the default budget — as the default it silently held the 60-minute tier to 30.
|
|
138
|
+
|
|
139
|
+
## [1.0.9] — 2026-07-30
|
|
140
|
+
|
|
141
|
+
Seven fixes found by auditing one real 148-minute visible NOW council against its own
|
|
142
|
+
artifacts. Every one of them was quiet: the run produced a complete report each time.
|
|
143
|
+
|
|
144
|
+
### Fixed
|
|
145
|
+
|
|
146
|
+
- **A hashed hard veto made two seats guess, in writing, which condition had vetoed them.**
|
|
147
|
+
Condition ids are hashed before a policy runs so the decision layer cannot recognise the seat.
|
|
148
|
+
The voice layer reversed that for scoring conditions but not for vetoes, tool output ids or
|
|
149
|
+
`common_projection.veto_ids`, so a seat published `anon_e41f54d07b56b0ff5` where it meant
|
|
150
|
+
`master_marks.euphoria`. Both vetoed seats on NOW speculated their veto came from a
|
|
151
|
+
424.67% dilution figure that was a stock-split artefact; the actual veto was a market-level
|
|
152
|
+
reading. Past the freeze the seat is named in the report and in its own worker prompt, so the
|
|
153
|
+
hash protected nothing. Also fixes a latent mis-mapping: the positional fallback assumed the
|
|
154
|
+
executor returns hits, misses and uncomputable rules in declaration order, and would have
|
|
155
|
+
published two condition names swapped for any seat with a mixed split.
|
|
156
|
+
- **`plan_visible_run` returned 311,007 characters and the host rejected the whole plan.**
|
|
157
|
+
Prompts now always land in `<run>/prompts/` with `prompt_file` on every agent spec, and
|
|
158
|
+
`prompts_inline: false` says the bodies were left out on purpose. What drives the size is the
|
|
159
|
+
grounding each prompt embeds, not the seat count.
|
|
160
|
+
- **A portfolio-manager packet with no `report_markdown` was accepted, then failed the report
|
|
161
|
+
gate with 21 missing sections.** The gate could only run after assembly, so the whole PM turn
|
|
162
|
+
was spent first. Submission now rejects a body that cannot pass, before the idempotency lock,
|
|
163
|
+
and names each owed section with the heading to use. System-appended sections are never asked
|
|
164
|
+
of an author. The revision path stays for defects only the assembled report can see.
|
|
165
|
+
- **One absent XBRL alias killed three facts on a company whose debt is on the face of its
|
|
166
|
+
balance sheet.** ServiceNow's FY2020 and FY2025 balance sheets carry no straight debt tag: the
|
|
167
|
+
only debt instant either year is `ConvertibleLongTermNotesPayable`. Total debt therefore read
|
|
168
|
+
as unknown, and because unknown debt is correctly refused rather than treated as zero,
|
|
169
|
+
leverage, downside asset value and incremental return on capital all died — which is why a
|
|
170
|
+
seat requiring incremental return on capital abstained. The convertible aliases are appended
|
|
171
|
+
last, where an earlier alias still wins a year outright, so coverage is strictly additive: a
|
|
172
|
+
filer that resolves its debt today resolves to the identical number. On real ServiceNow
|
|
173
|
+
Company Facts this turns four recorded gaps into one.
|
|
174
|
+
- **A rate-limited filing document was lost where a rate-limited JSON call was retried.** Every
|
|
175
|
+
SEC JSON endpoint backed off on 429/503; `fetchFilingDocument` threw on the first one, so the
|
|
176
|
+
documents carrying the actual disclosure were the easiest evidence in a run to lose, on the
|
|
177
|
+
path SEC throttles hardest.
|
|
178
|
+
|
|
179
|
+
### Changed
|
|
180
|
+
|
|
181
|
+
- **A seat's statement reaches the handoff instead of its metadata.** The per-seat line led with
|
|
182
|
+
the first 520 characters of background and put the frozen-record tag in the same sentence, so
|
|
183
|
+
the part always cut was the seat's conclusion — seven seats that all spoke read as seven seats
|
|
184
|
+
that had not. Each seat now leads with the reading that decided it and the action it implies,
|
|
185
|
+
quotes its statement at a budget that survives a paragraph, and carries provenance on its own
|
|
186
|
+
line.
|
|
187
|
+
- **A frozen abstention no longer spends a model worker to restate itself.** A seat whose gate
|
|
188
|
+
never opened has no reading to explain, and its deterministic statement now names the
|
|
189
|
+
condition that closed the gate and states that an abstention is not a bearish vote — all an
|
|
190
|
+
`out_of_scope` seat is asked to say. Four such seats took most of the method phase on NOW.
|
|
191
|
+
`ALPHACOUNCIL_VOICE_ABSTAINING_SEATS=1` restores a worker for every seat.
|
|
192
|
+
- `insider_sec` carries an explicit EDGAR retrieval order, a same-URL backoff rule, and a
|
|
193
|
+
mandatory degradation rule. On NOW it tried eight different URLs in a row, was rate-limited on
|
|
194
|
+
all of them, and read no original filing.
|
|
195
|
+
|
|
196
|
+
## [1.0.8] — 2026-07-30
|
|
197
|
+
|
|
198
|
+
### Changed
|
|
199
|
+
|
|
200
|
+
- **The catalog stops repeating a review-status warning next to every seat.** The owner
|
|
201
|
+
reviewed and accepted the method attributions, so `operator_label` is now just the method's
|
|
202
|
+
name and the selection identity says what a seat IS — "a method model, not the person's own
|
|
203
|
+
words" — instead of "project-derived and not human reviewed" twenty-seven times. The
|
|
204
|
+
impersonation guard stays; the machine-verified `admission_level` and every fail-closed
|
|
205
|
+
release gate are unchanged. All 27 solo-test packs regenerated; machine simulations re-run
|
|
206
|
+
against the new pack hashes.
|
|
207
|
+
|
|
208
|
+
## [1.0.7] — 2026-07-29
|
|
209
|
+
|
|
210
|
+
### Fixed
|
|
211
|
+
|
|
212
|
+
- **A historical cutoff silently discarded the market yardstick and a fund's entire evidence
|
|
213
|
+
base.** Two sibling blocks in grounding skipped their fetch when the cutoff was historical and
|
|
214
|
+
wrote nothing to `unavailable`: the US-subject market-valuation block (so Marks and Damodaran
|
|
215
|
+
declined with `unmet: index.aggregate_earnings_yield` and the reader was never told why) and
|
|
216
|
+
the fund/index holdings block (worse — holdings, look-through aggregates and basket news ARE a
|
|
217
|
+
fund's evidence, so a historical fund run kept only a price). Both now record the gap the way
|
|
218
|
+
their sibling blocks always did. Three network-free regression tests pin the contract,
|
|
219
|
+
including one that walks the market earnings yield through the typed-fact lineage gate to a
|
|
220
|
+
`ready` Damodaran seat.
|
|
221
|
+
|
|
222
|
+
### Clarified
|
|
223
|
+
|
|
224
|
+
- The LITE council run that motivated 1.0.5 was executed by a cached 1.0.2 server, not by
|
|
225
|
+
current code: on HEAD, `index.aggregate_earnings_yield` resolves from the WSJ keyless
|
|
226
|
+
trailing-P/E source (verified live: 0.0397, dated, https lineage) and Marks, Damodaran and
|
|
227
|
+
Asness are all `ready` on a US equity. The seats were never method-blocked — the host was
|
|
228
|
+
running last week's build. If a seat declines on a fact the catalog says it should have,
|
|
229
|
+
check the plugin cache version before the method.
|
|
230
|
+
|
|
231
|
+
## [1.0.6] — 2026-07-29
|
|
232
|
+
|
|
233
|
+
First release on which `npm run check` and the full test suite pass together: 995/995.
|
|
234
|
+
|
|
235
|
+
### Fixed
|
|
236
|
+
|
|
237
|
+
- **The formula-review gate demanded exactly 156 roles after the bench grew to 162.** The
|
|
238
|
+
literal (26 seats × 2 tools × 3 roles) survived the twenty-seventh seat, so
|
|
239
|
+
`review-persona-v3-solo-formulas --check` failed a review tree whose own output line printed
|
|
240
|
+
`roles=162/162`. The gate now derives the count from the planned-tool inventory.
|
|
241
|
+
|
|
242
|
+
### Repaired (local staging, not shipped in the package)
|
|
243
|
+
|
|
244
|
+
- The private PersonaPack staging tree had been left behind by the v1.0.x sessions, which
|
|
245
|
+
worked in a scratch worktree and never synced back: `staging-index.json` was missing
|
|
246
|
+
`master_bogle` (39 test failures from one integrity error), and all 27 seats' formula
|
|
247
|
+
prototypes still carried pre-rename tool ids. Synced from the authoring worktree; the
|
|
248
|
+
packaged `knowledge/solo-test` tree was already correct and is unchanged.
|
|
249
|
+
|
|
250
|
+
## [1.0.5] — 2026-07-29
|
|
251
|
+
|
|
252
|
+
Five defects found by running one full visible council end to end on a US operating company.
|
|
253
|
+
Every one of them was silent: the run produced a report and none of these said anything was wrong.
|
|
254
|
+
|
|
255
|
+
### Fixed
|
|
256
|
+
|
|
257
|
+
- **A plan response could exceed the host's tool-result limit.** `plan_visible_run` echoed the
|
|
258
|
+
entire grounding object, whose macro history and typed-fact lineage are unbounded — 2.33 MB of a
|
|
259
|
+
2.54 MB payload on a single US equity — so the host truncated the plan to a scratch file and the
|
|
260
|
+
agent could not read the seat specs it had just asked for. Both fields are already in every seat
|
|
261
|
+
prompt and in `evidence.json`; the response now carries the rest of the grounding plus a pointer
|
|
262
|
+
and an entry count. Nothing else about the shape changed.
|
|
263
|
+
- **An English source title failed a Chinese packet's language gate.** `sources[].title` counted
|
|
264
|
+
toward the reader-language ratio, so packets whose every authored sentence was Chinese were
|
|
265
|
+
rejected at ratio 0.49. The only way to pass was to translate the citation, which falsifies the
|
|
266
|
+
source. `title` now joins `url` as machine text.
|
|
267
|
+
- **A portfolio-manager report that failed the structure gate could not be repaired.** The
|
|
268
|
+
idempotency lock was taken before the gate ran, so a thin report left the run permanently at
|
|
269
|
+
`needs_revision`: the corrected submission came back as a conflicting replay and there was no
|
|
270
|
+
other way in. A PM whose `report_quality` is not `passed` is now revisable; one that passed stays
|
|
271
|
+
frozen.
|
|
272
|
+
- **A failed verification down-weighted nothing when the seat was an analyst.** The contract
|
|
273
|
+
promises that a `contradicted` verdict reduces the weight of the seat that made the claim, but
|
|
274
|
+
the seat enumeration covered only debate and master seats. Verdicts against evidence roles were
|
|
275
|
+
recorded and then ignored, and the tool still answered with `verification_factor: 1`.
|
|
276
|
+
- **A missing market yardstick looked like an abstention.** When the broad-market valuation fetch
|
|
277
|
+
succeeded but yielded no market-level fact, it was dropped without a trace; downstream, Marks and
|
|
278
|
+
Damodaran declined with `unmet: index.aggregate_earnings_yield` and the report never said why the
|
|
279
|
+
fact was absent. An unexplained abstention reads as a verdict. It is now recorded as a data gap.
|
|
280
|
+
|
|
281
|
+
### Changed
|
|
282
|
+
|
|
283
|
+
- `MASTER_SELECTION_INTENT_MISMATCH` now returns the expected and submitted intent hashes, the
|
|
284
|
+
fields the receipt binds, and the remedy. The receipt binds the prompt verbatim by design, but
|
|
285
|
+
the error gave the caller no way to tell a retyped prompt from a wrong symbol.
|
|
286
|
+
|
|
5
287
|
## [1.0.4] — 2026-07-29
|
|
6
288
|
|
|
7
289
|
### Fixed
|
package/CLAUDE.md
CHANGED
|
@@ -15,7 +15,7 @@ The plugin turns `@alphacouncil-agent <ticker/request>` into one of two explicit
|
|
|
15
15
|
bounded parse-only repair, persist the failure package, skip method/debate/PM model calls,
|
|
16
16
|
and terminate `incomplete` before downstream synthesis.
|
|
17
17
|
- `quick_v1` runs only when explicitly requested and only through plugin-managed headless
|
|
18
|
-
`analyze_symbol`: display all
|
|
18
|
+
`analyze_symbol`: display all 27 methods, confirm 1-4, run four fixed evidence roles and the
|
|
19
19
|
selected methods in parallel waves, one parallel Bull/Bear statement round, then a short
|
|
20
20
|
PM inside a hard ten-minute ceiling.
|
|
21
21
|
|
|
@@ -25,13 +25,14 @@ non-investment test output.
|
|
|
25
25
|
|
|
26
26
|
## Current Build Profile
|
|
27
27
|
|
|
28
|
-
The declared package/plugin version is `1.0.
|
|
28
|
+
The declared package/plugin version is `1.0.12`, published to npm as the default install.
|
|
29
29
|
The packaged tree contains 27 physical v3 packs and 54 executable tools.
|
|
30
30
|
Every seat carries the `operator_lens` admission level: `method_model` = 0,
|
|
31
31
|
human source approvals = 0, human formula approvals = 0, human approval signatures = 0.
|
|
32
32
|
Human review of the authored formulas and the live four-host end-to-end run are the
|
|
33
33
|
outstanding work, so the production assembly path stays fail-closed until both are done.
|
|
34
|
-
See `docs/releases/v1.0.0.md
|
|
34
|
+
See `docs/releases/v1.0.0.md`, `CHANGELOG.md` for everything since, and
|
|
35
|
+
`docs/report-contract.md`.
|
|
35
36
|
|
|
36
37
|
## Agent-Skills Governance
|
|
37
38
|
|
|
@@ -58,10 +59,36 @@ No research, run directory or worker may start before that receipt exists. Data-
|
|
|
58
59
|
|
|
59
60
|
## Full v2 Runtime Contract
|
|
60
61
|
|
|
61
|
-
- Plugin-managed headless `analyze_symbol(council_mode="full")`
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
- Plugin-managed headless `analyze_symbol(council_mode="full")` runs at one of three depth
|
|
63
|
+
tiers, selected by `council_pace`: `fast` = 900000 ms, `normal` (default) = 1800000 ms,
|
|
64
|
+
`slow` = 3600000 ms, queue-to-terminal-persistence. Queueing, grounding, bounded repair, all
|
|
65
|
+
workers, synthesis and artifact persistence share that clock. A caller or environment may
|
|
66
|
+
lower the selected tier's budget, never raise it; `total_timeout_ms` above the tier's total is
|
|
67
|
+
rejected and names the tier that would allow it.
|
|
68
|
+
- A tier sets the total AND every per-stage cap together, because the per-stage caps are what
|
|
69
|
+
bound each worker. `slow` gives each evidence seat 12 minutes instead of 6 and each debate
|
|
70
|
+
round 6 minutes per side instead of 150 seconds; `fast` gives 3.5 minutes and 90 seconds. That
|
|
71
|
+
is where the depth difference lives — raising `total_timeout_ms` alone buys idle time, and
|
|
72
|
+
lowering it alone starves the later stages into `incomplete`. Every tier's stages are proven
|
|
73
|
+
to fit inside its own budget with headroom.
|
|
74
|
+
- A tier also shapes the worker's OUTPUT, because a cap alone is a timeout and a timeout is not
|
|
75
|
+
a plan: the same prompt with a shorter fuse buys a packet the worker could not finish, not a
|
|
76
|
+
faster good one. For an LLM call the wall clock is dominated by generated tokens, so `fast`
|
|
77
|
+
asks for the same information in less prose — claims, figures, scoped source IDs, required
|
|
78
|
+
report sections and the decision are never what gets cut; restatement is. `slow` buys room to
|
|
79
|
+
write a derivation out in full. `normal` adds nothing, so its prompts stay byte-identical to
|
|
80
|
+
the reviewed golden. Quick keeps its own shaping and receives no tier.
|
|
81
|
+
- `council_pace` changes depth, never the contract: all three tiers are `full_v2` with eight
|
|
82
|
+
evidence seats, every selected method, three debate rounds and the PM. Quick rejects the field
|
|
83
|
+
— it is a smaller contract, not a slower one. The tier is recorded in `status.json`.
|
|
84
|
+
- The tier is ASKED at the selection gate, not typed as an argument.
|
|
85
|
+
`begin_council_selection` returns `pace_options`, one row per tier carrying both
|
|
86
|
+
`expected_minutes` and `hard_ceiling_minutes` plus what the extra time buys; a ceiling
|
|
87
|
+
published alone reads as the estimate. The answer goes to `confirm_master_selection` as
|
|
88
|
+
`council_pace` and binds into the receipt, so an execution call may repeat the confirmed tier
|
|
89
|
+
but never change it — a user who approved 15 minutes cannot end up running an hour. A speed
|
|
90
|
+
named in the request is a prefill exactly like a named master: it highlights the row, the menu
|
|
91
|
+
is still shown, the answer is still taken. No answer means `normal`.
|
|
65
92
|
- Start the eight mandatory evidence workers in one parallel wave. A failed mandatory role
|
|
66
93
|
after its single bounded parse-only repair closes the evidence barrier and terminates
|
|
67
94
|
`incomplete`; never refill the result from memory.
|
|
@@ -78,8 +105,23 @@ No research, run directory or worker may start before that receipt exists. Data-
|
|
|
78
105
|
artifact, not that external search/model/data services will let all seats succeed.
|
|
79
106
|
- The plugin cannot enforce this deadline on `plan_visible_run` host subagents. Visible full
|
|
80
107
|
runs retain the same evidence/report gates but must not be described as 30-minute bounded.
|
|
81
|
-
Run every returned post-evidence v3 explanation worker
|
|
82
|
-
`out_of_scope`
|
|
108
|
+
Run every returned post-evidence v3 explanation worker and record its `acknowledged_stance`
|
|
109
|
+
before debate. A seat frozen `out_of_scope` is returned as already settled and gets no
|
|
110
|
+
worker: its deterministic statement names the condition that closed the gate and states that
|
|
111
|
+
an abstention is not a bearish vote, which is the whole of what an out_of_scope seat is asked
|
|
112
|
+
to say, so a worker there buys prose rather than information. Set
|
|
113
|
+
`ALPHACOUNCIL_VOICE_ABSTAINING_SEATS=1` to give every seat a worker again. Every selected
|
|
114
|
+
seat still needs a readable statement in the report either way.
|
|
115
|
+
- `plan_visible_run` always writes each planned prompt to `<run>/prompts/` and returns
|
|
116
|
+
`prompt_file` beside every agent. It also returns `prompts_inline`: false means the prompt
|
|
117
|
+
bodies were left out of the result because returning them together would exceed what a host
|
|
118
|
+
accepts, and the host must read them from `prompt_file`. What drives that size is the
|
|
119
|
+
grounding each prompt embeds, not the seat count.
|
|
120
|
+
- `record_visible_decision(role: 'portfolio_manager')` rejects a packet whose
|
|
121
|
+
`report_markdown` does not carry every authored report-contract section, before the packet
|
|
122
|
+
takes the idempotency lock. The rejection lists the missing sections and the heading to use
|
|
123
|
+
for each. The master bench and instrument-structure sections are system-appended and are
|
|
124
|
+
never asked of an author.
|
|
83
125
|
|
|
84
126
|
## Quick v1 Fixed Contract
|
|
85
127
|
|
|
@@ -139,8 +181,8 @@ Optional analysts, on the `full` roster rather than the default:
|
|
|
139
181
|
Quick evidence roles are the fixed four-seat subset listed above and always launch in one
|
|
140
182
|
parallel wave.
|
|
141
183
|
|
|
142
|
-
Master Bench: the complete generated catalog has
|
|
143
|
-
all
|
|
184
|
+
Master Bench: the complete generated catalog has 27 selectable lenses. Both modes display
|
|
185
|
+
all 27. Full accepts any non-empty selection or `all`; quick accepts only 1-4. Selected
|
|
144
186
|
methods run between evidence and debate. In plugin-managed headless mode, each selected v3
|
|
145
187
|
seat is a frozen deterministic stance plus its own isolated voice worker; this is a
|
|
146
188
|
process-isolated worker, not a persistent sidebar agent and not the real person. Quick runs
|
|
@@ -148,8 +190,8 @@ its 1-4 seats in one parallel wave. Full/deep
|
|
|
148
190
|
verifiers are `source_fidelity`, `rederivation`, and `refuter`; quick does not run this
|
|
149
191
|
adversarial fan-out. See `skills/alphacouncil-agent/SKILL.md` and `docs/personas.md`.
|
|
150
192
|
|
|
151
|
-
Do not call the
|
|
152
|
-
exposes
|
|
193
|
+
Do not call the 27 solo-test packs approved method models. The explicit solo-test loader
|
|
194
|
+
exposes 27 provisional `operator_lens` packs and 54 executable derived-proxy tools; none is
|
|
153
195
|
operational or `method_model`, and none has human source/formula approval or signature.
|
|
154
196
|
|
|
155
197
|
Debate roles:
|
package/README.ja.md
CHANGED
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
|
|
36
36
|
<div align="center">
|
|
37
37
|
|
|
38
|
-
<img src="assets/
|
|
38
|
+
<img src="assets/demo.gif" alt="AlphaCouncil のライブ実行:アナリスト評議会が調査・討論して評決に至る様子" width="100%" />
|
|
39
39
|
|
|
40
|
-
<sub><i
|
|
40
|
+
<sub><i>実際の実行の録画。静止画版:<a href="assets/run-example.png">6つのレンズが異なる理由で同じ結論へ</a> · <a href="docs/examples/final_report.SOX.zh.md">完全な実レポート</a>(SOX、full council、中国語)</i></sub>
|
|
41
41
|
|
|
42
42
|
</div>
|
|
43
43
|
|
|
@@ -47,9 +47,9 @@ AlphaCouncil Agent は、**上場株式のリサーチ委員会**向けの Codex
|
|
|
47
47
|
|
|
48
48
|
| | |
|
|
49
49
|
|---|---|
|
|
50
|
-
| 🏛️ **一人の意見ではなく、委員会** | フルは既定 8 根拠席(最大 11)、quick は固定 4 根拠席を並列実行。どちらも調査前に
|
|
50
|
+
| 🏛️ **一人の意見ではなく、委員会** | フルは既定 8 根拠席(最大 11)、quick は固定 4 根拠席を並列実行。どちらも調査前に 27 メソッド席をすべて表示。 |
|
|
51
51
|
| 🐂🐻 **設計からして対立的** | フルは 3 ラウンドの強気/弱気クロス審問。quick は強気・弱気を 1 回だけ並列実行して短い PM に渡し、敵対的 verifier を実行したとは主張しません。 |
|
|
52
|
-
| ⏱️
|
|
52
|
+
| ⏱️ **深さは 15 / 30 / 60 分から選択** | 実行前に尋ね、各段階の想定所要時間とハード上限を併記します。速度キーワードの入力は不要です。3 段階はいずれも同一のフル契約(8 アナリスト・3 ラウンド討論・PM)で、変わるのは各席が考えてよい時間です。同じプロンプトに短い導火線を付けても書き終わらない packet しか得られないため、段階は出力の形も調整します。プラグイン管理の full は 8 アナリストを同時に開始し、各ラウンドの Bull/Bear も並列実行して、選択した段階内に終端状態を保存。外部障害は明示的な `incomplete` となり、席を黙って省略しません。 |
|
|
53
53
|
| 🔍 **監査可能、幻覚なし** | すべての主張が source ID に紐づく。欠落データは「データ欠落」セクションに明示し、決して隠さない。 |
|
|
54
54
|
| ⏱️ **マルチ期間の判定** | 買い/中立/売りに加え、1〜4週・3〜6か月・12か月の見通しを個別に提示。 |
|
|
55
55
|
| 🔑 **データベンダー不要・APIキー不要** | 金融データ API・マーケットデータフィード・証券口座ログインは一切不要。アナリストはエージェント自身のウェブ検索(**Codex のウェブ検索** / **Claude Code の WebSearch + WebFetch**)で根拠をリアルタイムに収集 —— 課金は既存の Codex / Claude Code サブスクのみ。MIT ライセンス。 |
|
|
@@ -97,6 +97,18 @@ codex plugin marketplace add Zhao73/alphacouncil-agent
|
|
|
97
97
|
/reload-plugins
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
+
**まず 30 秒・コストゼロで動作確認** —— フル評議会を回す前に、データ層の疎通を確認します:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
/alpha AAPL news
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
これはキー不要のデータツールのみを呼び、サブエージェントを一切起動しません。日付付きの
|
|
107
|
+
ニュースと開示が返ればインストール成功です。その後 `/alpha AAPL` でフル評議会をどうぞ。
|
|
108
|
+
なお headless のフル/クイック経路には認証済みの **Codex CLI** が別途必要です
|
|
109
|
+
(各アナリストワーカーは `codex exec` として動作)。Claude Code のみの場合は可視
|
|
110
|
+
サブエージェント経路になります。詳細は [docs/INSTALL.md](docs/INSTALL.md)。
|
|
111
|
+
|
|
100
112
|
## 🚀 使い方
|
|
101
113
|
|
|
102
114
|
エージェントにそのまま話しかけるだけ。@ でエージェントを呼び、ティッカーや質問を添えます:
|
|
@@ -133,7 +145,7 @@ codex plugin marketplace add Zhao73/alphacouncil-agent
|
|
|
133
145
|
| 入力 | 実行内容 | モデル消費 |
|
|
134
146
|
|---|---|---|
|
|
135
147
|
| `/alpha <ticker>` | 全マスターを個別表示して full を実行;プラグイン管理 headless は ≤30分 | 選択した v3 席ごとに決定論的 stance + 独立 voice worker 1つ |
|
|
136
|
-
| `/alpha <ticker> quick` | 全
|
|
148
|
+
| `/alpha <ticker> quick` | 全 27 席を表示し、1-4 席を確認(`all` 禁止)後、プラグイン管理の `quick_v1`(≤10分)を実行 | 選択数により変動 |
|
|
137
149
|
| `/alpha <ticker> screen` | 機械的スクリーニングのみ | **なし** |
|
|
138
150
|
| `/alpha <ticker> options` | IV ターム構造、スキュー、建玉分布 | **なし** |
|
|
139
151
|
| `/alpha <ticker> news` | 日付付きの提出書類とニュース | **なし** |
|
|
@@ -145,11 +157,25 @@ codex plugin marketplace add Zhao73/alphacouncil-agent
|
|
|
145
157
|
上場銘柄なら何でも:`/alpha AAPL` · `/alpha 0700.HK quick` · `/alpha 7203.T news` · `/alpha market rates`。
|
|
146
158
|
提出書類ベースのモードは米国登録企業が必要です。他市場は黙って空を返すのではなく `market_coverage` で対応状況を示します。
|
|
147
159
|
|
|
148
|
-
### Full v2 —
|
|
160
|
+
### Full v2 — 3 段階の深さ、開始時の質問で選択
|
|
161
|
+
|
|
162
|
+
実行はまず「どの深さで走らせるか」を尋ね、その後にどのメソッド席を置くかを尋ねます。速度キーワードを入力する必要はありません。`begin_council_selection` がメニューを返し、各段階の想定所要時間とハード上限を併記します。
|
|
163
|
+
|
|
164
|
+
| 段階 | 想定 | 上限 | 根拠席あたり | 討論 1 ラウンド片側あたり |
|
|
165
|
+
| --- | --- | --- | --- | --- |
|
|
166
|
+
| `fast` | 約 12 分 | 15 分 | 3.5 分 | 90 秒 |
|
|
167
|
+
| `normal`(既定) | 約 20 分 | 30 分 | 6 分 | 150 秒 |
|
|
168
|
+
| `slow` | 約 44 分 | 60 分 | 12 分 | 6 分 |
|
|
169
|
+
|
|
170
|
+
**3 段階はいずれも同一の `full_v2` 契約**です。根拠席 8 件、選択した全メソッド、3 ラウンドの討論、PM のすべてが同じで、変わるのは各席が考えてよい時間だけです。両方の数字を公開するのは、上限だけを示すとそれが想定値として読まれ、fast が常に 15 分かかるように見えてしまうためです。
|
|
171
|
+
|
|
172
|
+
段階は総額と**各ステージ上限**を同時に引き上げ、さらに worker への出力要求も調整します。後半が重要です。上限だけではそれは単なる timeout であり、同じプロンプトに短い導火線を付けても得られるのは**書き終わらなかった packet** で、速くて良い packet ではありません。LLM 呼び出しの実時間は生成トークン数に支配されるため、`fast` は**同じ情報をより少ない散文で**求めます。主張・数値・スコープ付き source ID・必須レポート章・結論自体は決して削られず、削られるのは言い直しです。`slow` が買うのは、導出を段階的に書き切る余地です。
|
|
173
|
+
|
|
174
|
+
選択した段階は一度限りの `selection_receipt` に束縛されます。実行呼び出しは同じ段階を繰り返せますが**変更はできません**。15 分として承認された実行が 1 時間になることはなく、どの段階で走ったかは `status.json` に記録されます。quick に段階はありません。より小さい契約であり、遅い契約ではないからです。
|
|
149
175
|
|
|
150
|
-
|
|
176
|
+
必須 8 根拠席を 1 波で並列開始します。根拠 barrier 通過後、選択した各物理 v3 メソッドは決定論的 policy で stance を凍結します。**stance に到達した席**はその stable ID 専用の独立 voice worker を 1 つ起動し(説明のみで、stance の変更や typed fact の捏造はできません)、**棄権として凍結された席**は決定論的な記録からそのまま公開され、worker を消費しません。3 ラウンドの各ラウンドで Bull/Bear を並列開始し、両方が終了してから次へ進み、最後に PM を実行します。
|
|
151
177
|
|
|
152
|
-
期限に達した場合は `incomplete` の終端状態を保存し、timeout・失敗・skip
|
|
178
|
+
期限に達した場合は `incomplete` の終端状態を保存し、timeout・失敗・skip の全席を明示します。段階の上限が保証するのは監査可能な終端保存であり、検索・モデル transport・データ提供元の悪化時にも全席成功するという意味ではありません。visible-host の `plan_visible_run` は外部ホストが管理するため、プラグインはそのサブエージェントを強制停止できず、**時間の保証を一切持ちません**。
|
|
153
179
|
|
|
154
180
|
full の引き渡しは、選択した stable master ID 全件、必須 8 アナリスト全件、システム価格スナップショットまたは明示的な取得不能を列挙します。メソッド席の voice は provisional lens の記録された説明であり、**本人の発言・支持・現在の見解ではありません**。システム文言は中国語 (`zh-CN`)・英語・日本語・韓国語に対応し、各 worker に実行言語を渡します。
|
|
155
181
|
|
|
@@ -157,7 +183,7 @@ full の引き渡しは、選択した stable master ID 全件、必須 8 アナ
|
|
|
157
183
|
|
|
158
184
|
ユーザーが急いでいることやフル実行の失敗を理由に、quick へ自動切替はしません。Quick は
|
|
159
185
|
プラグイン管理の headless `analyze_symbol(council_mode="quick")` だけで実行され、
|
|
160
|
-
`plan_visible_run` は quick を拒否します。
|
|
186
|
+
`plan_visible_run` は quick を拒否します。27 席を完全表示して 1-4 席を確認した後の実行図は固定です:
|
|
161
187
|
|
|
162
188
|
1. `market_data`、`earnings_deep_dive`、`valuation_long_short`、
|
|
163
189
|
`news_industry_management` の 4 席を 1 波で並列実行;
|
|
@@ -194,7 +220,7 @@ Claude Code、OpenCode、Grok Build ではインストール後すぐ使えま
|
|
|
194
220
|
- ニュース、業界動向、サプライチェーン、経営陣の発言と行動の照合
|
|
195
221
|
- SEC提出書類、Form 4 インサイダー取引、自社株買い、希薄化、負債と資本配分
|
|
196
222
|
- M&A、エクイティ/デット・ファイナンス、自社株買いなどのイベント分析
|
|
197
|
-
- 個別選択可能な
|
|
223
|
+
- 個別選択可能な 27 の投資手法レンズが同じ事実を読む
|
|
198
224
|
- ブル、ベア、ポートフォリオマネージャーの裁定
|
|
199
225
|
|
|
200
226
|
フルは mandatory evidence barrier で fail-fast します。必須根拠席が 1 回の制限付き
|
|
@@ -227,7 +253,7 @@ parse-only 修復後も失敗した場合、失敗と診断の成果物を保存
|
|
|
227
253
|
- **解析可能なタイムスタンプを持たないニュースは除外**され、「最新」として表示されません。
|
|
228
254
|
- **`iv = 0` の建玉は除外。** CBOEは満期到来済みやディープITMで0を返しますが、0が平均に混入すると欠損値ではなく「落ち着いた銘柄」に見えてしまいます。
|
|
229
255
|
|
|
230
|
-
## 🏛️ マスター陣 ——
|
|
256
|
+
## 🏛️ マスター陣 —— 27の投資手法レンズ
|
|
231
257
|
|
|
232
258
|
公開された方法論の再構成であり、**本人の発言では一切ありません**。各レンズは自らの思考順序、最初に見るもの、典型的な問いかけ、そして**自身の失敗モード**を明示します —— 自分がどう間違うか言えない席は、間違ったときに手を挙げません。
|
|
233
259
|
|
|
@@ -239,11 +265,11 @@ parse-only 修復後も失敗した場合、失敗と診断の成果物を保存
|
|
|
239
265
|
| クオンツ | サイモンズ · アスネス · ソープ |
|
|
240
266
|
| オプション | タレブ · ナタンバーグ · シンクレア |
|
|
241
267
|
| 現代 | アッシェンブレナー |
|
|
242
|
-
| v3 拡張 | ダモダラン · アックマン · キャシー・ウッド · パブライ · ジュンジュンワラ |
|
|
268
|
+
| v3 拡張 | ダモダラン · アックマン · キャシー・ウッド · パブライ · ボーグル · ジュンジュンワラ |
|
|
243
269
|
|
|
244
270
|
1.0.0 `solo_test` カタログには 27 個の選択可能な物理 v3 パックがありますが、
|
|
245
|
-
**
|
|
246
|
-
`operator_lens` のままです。
|
|
271
|
+
**27 パックは 27 個の承認済みメソッドモデルを意味しません**。全 27 席は provisional
|
|
272
|
+
`operator_lens` のままです。54 個のツールは実行可能な
|
|
247
273
|
`provisional_derived_proxy` テスト代理であり、人間が承認した数式帰属ではありません。
|
|
248
274
|
`operational` と `method_model` はともに 0 で、正式な production GA は fail-closed の
|
|
249
275
|
ままです。
|
|
@@ -259,7 +285,7 @@ parse-only 修復後も失敗した場合、失敗と診断の成果物を保存
|
|
|
259
285
|
flowchart TD
|
|
260
286
|
U["@alphacouncil-agent"] --> G[("Established facts<br/>filings · quotes · macro · options")]
|
|
261
287
|
G --> AG{{"Analyst council"}}
|
|
262
|
-
G --> MS{{"Master bench<br/>
|
|
288
|
+
G --> MS{{"Master bench<br/>27 lenses"}}
|
|
263
289
|
AG --> A1["Market data"]
|
|
264
290
|
AG --> A2["Earnings"]
|
|
265
291
|
AG --> A3["Valuation"]
|
|
@@ -284,7 +310,7 @@ flowchart TD
|
|
|
284
310
|
PM --> R[["final_report.md"]]
|
|
285
311
|
```
|
|
286
312
|
|
|
287
|
-
マスターは事実から分岐し、アナリストのパケットからは分岐しません。
|
|
313
|
+
マスターは事実から分岐し、アナリストのパケットからは分岐しません。27のレンズに一人のアナリストの取捨選択を与えれば、全員が同じ盲点を共有します —— 大きく、かつ完全に相関した誤差であり、陣容を持つ理由そのものが失われます。
|
|
288
314
|
|
|
289
315
|
主要ファイル:
|
|
290
316
|
|