Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
573 commits
Select commit Hold shift + click to select a range
9cdd8be
Add workspace authorization trust boundary
YuzeJ21 Jul 26, 2026
867556c
Clarify authorization audit field plan
YuzeJ21 Jul 26, 2026
b6108a3
Enforce fail-closed workspace authorization
YuzeJ21 Jul 26, 2026
3c5a2bc
Document workspace authorization boundary
YuzeJ21 Jul 26, 2026
90b441d
Harden workspace authorization boundary
YuzeJ21 Jul 26, 2026
369da3a
Reconcile authorization hardening lineage
YuzeJ21 Jul 26, 2026
d99e081
Align product stage and evidence-first positioning
YuzeJ21 Jul 27, 2026
d2d58f9
Separate active roadmap from universe review history
YuzeJ21 Jul 27, 2026
125127f
Keep workflow skip navigation in page
YuzeJ21 Jul 27, 2026
09d6734
Increase framework control target sizes
YuzeJ21 Jul 27, 2026
15c5270
Target actual framework controls
YuzeJ21 Jul 27, 2026
6aef0f8
Record direct keyboard workflow findings
YuzeJ21 Jul 27, 2026
1a87277
Record reflow and phone target evidence
YuzeJ21 Jul 27, 2026
b1dd457
Record Monitor accessibility evidence
YuzeJ21 Jul 27, 2026
c748b19
Record keyboard authoring validation evidence
YuzeJ21 Jul 27, 2026
f50ec95
Record phone navigation accessibility evidence
YuzeJ21 Jul 27, 2026
88d7a9c
Harden independent beta validation protocol
YuzeJ21 Jul 27, 2026
4e79854
Reconcile active roadmap truth
YuzeJ21 Jul 27, 2026
e263dd1
Record approved reliability repair designs
YuzeJ21 Jul 27, 2026
70f37ae
Plan approved reliability repairs
YuzeJ21 Jul 27, 2026
9466baf
Add independent observation recency evaluator
YuzeJ21 Jul 28, 2026
e43be1d
Show truthful market observation recency
YuzeJ21 Jul 28, 2026
9103abc
Integrate observation recency across research routes
YuzeJ21 Jul 28, 2026
dcdb694
Test observation recency route integration
YuzeJ21 Jul 28, 2026
0170c8d
Fix observation recency final review findings
YuzeJ21 Jul 28, 2026
d8af361
Improve research workflow accessibility
YuzeJ21 Jul 28, 2026
bb5f248
Scope research workflow navigation
YuzeJ21 Jul 28, 2026
b89debc
Test research workflow navigation rendering
YuzeJ21 Jul 28, 2026
8e9a2e2
Place skip link before application controls
YuzeJ21 Jul 28, 2026
6b91256
Refresh skip link helper contracts
YuzeJ21 Jul 28, 2026
ee84c30
Associate authoring errors with fields
YuzeJ21 Jul 28, 2026
61ff37b
Make skip link first in browser focus order
YuzeJ21 Jul 28, 2026
3be9a6c
Preserve public skip focus without sidebar chrome
YuzeJ21 Jul 28, 2026
94e469b
Keep focused skip link in viewport
YuzeJ21 Jul 28, 2026
746604c
Verify narrow accessibility remediations
YuzeJ21 Jul 28, 2026
dba2dd4
Strengthen accessibility browser evidence
YuzeJ21 Jul 28, 2026
0000c97
Harden accessibility evidence integrity
YuzeJ21 Jul 28, 2026
c45076d
Record exact accessibility gate evidence
YuzeJ21 Jul 28, 2026
bfeff4b
Add idempotent semantic main bridge
YuzeJ21 Jul 28, 2026
f51cdc2
Fix semantic main bridge state transitions
YuzeJ21 Jul 28, 2026
9c38eab
Fix semantic main observer conflicts
YuzeJ21 Jul 28, 2026
a5c4400
Preserve latest semantic main metadata
YuzeJ21 Jul 28, 2026
8396faf
Apply semantic main landmark once
YuzeJ21 Jul 28, 2026
a09750e
Extend semantic main browser gate
YuzeJ21 Jul 28, 2026
284be77
Harden semantic main route verification
YuzeJ21 Jul 28, 2026
5a6110a
Record semantic main browser evidence
YuzeJ21 Jul 28, 2026
73cc231
Verify semantic main on Streamlit rerun
YuzeJ21 Jul 28, 2026
729b0b1
Verify semantic main through Streamlit run cycle
YuzeJ21 Jul 28, 2026
4363ea9
Prove semantic main observer liveness
YuzeJ21 Jul 28, 2026
14f5b29
Correct semantic main rerun evidence
YuzeJ21 Jul 28, 2026
d1328ea
Retain semantic main across route transitions
YuzeJ21 Jul 28, 2026
dcad75b
Record semantic main route transition evidence
YuzeJ21 Jul 28, 2026
5788d80
Reconcile commercial beta execution routing
YuzeJ21 Jul 28, 2026
9313c29
Clarify market observation recency
YuzeJ21 Jul 28, 2026
8f20ab8
Reject invalid valuation numeric evidence
YuzeJ21 Jul 28, 2026
0c0f45c
Define next research maturity contracts
YuzeJ21 Jul 29, 2026
9dbe95b
Plan next research maturity implementations
YuzeJ21 Jul 29, 2026
adbf394
Add quant interpretation eligibility contract
YuzeJ21 Jul 29, 2026
119f771
Adapt quant results to evidence eligibility
YuzeJ21 Jul 29, 2026
2da8e3d
Fail closed on invalid benchmark observations
YuzeJ21 Jul 29, 2026
19a59f1
Expose quant interpretation boundaries
YuzeJ21 Jul 29, 2026
195ea18
Reuse exact price snapshots for quant evidence
YuzeJ21 Jul 29, 2026
8707d2d
Document quant interpretation eligibility
YuzeJ21 Jul 29, 2026
aabe539
Record quant eligibility verification status
YuzeJ21 Jul 29, 2026
b643db4
Require Streamlit same-document HTML support
YuzeJ21 Jul 29, 2026
1e5afa5
Migrate accessibility bridges to st html
YuzeJ21 Jul 29, 2026
e808409
Fix same-document accessibility behavior
YuzeJ21 Jul 29, 2026
d68ab27
Verify same-document accessibility transport
YuzeJ21 Jul 29, 2026
dc567f5
Record same-document transport evidence
YuzeJ21 Jul 30, 2026
d353ed6
Improve accessible research workflow states
YuzeJ21 Jul 30, 2026
bb63d6d
Record accessibility closeout status
YuzeJ21 Jul 30, 2026
879f153
Fix browser gate text normalization
YuzeJ21 Jul 30, 2026
918b7ba
Design daily research candidate queue
YuzeJ21 Jul 31, 2026
e53c717
Plan daily research candidate queue
YuzeJ21 Jul 31, 2026
058c256
Add fail-closed daily research queue
YuzeJ21 Jul 31, 2026
8c5b2d5
Build daily queue from reviewed evidence
YuzeJ21 Jul 31, 2026
d36e007
Show daily research queue in Discover
YuzeJ21 Jul 31, 2026
581bacb
Document daily research queue boundaries
YuzeJ21 Jul 31, 2026
1b73f12
Isolate provider setup freshness test
YuzeJ21 Jul 31, 2026
6328c8c
Fix performance sampling classification
YuzeJ21 Jul 31, 2026
02073fe
Document verified performance release evidence
YuzeJ21 Jul 31, 2026
9d58257
Document clean accessibility state matrix
YuzeJ21 Jul 31, 2026
e15a79b
Separate readiness freshness from release evidence
YuzeJ21 Jul 31, 2026
b753424
Specify accessibility media preferences
YuzeJ21 Jul 31, 2026
bcb943d
Plan accessibility media preferences
YuzeJ21 Jul 31, 2026
208b6f9
Add research media preference styles
YuzeJ21 Jul 31, 2026
e22a447
Add accessibility media evaluators
YuzeJ21 Jul 31, 2026
a97a096
Verify accessibility media preferences
YuzeJ21 Jul 31, 2026
90bfac9
Document accessibility media evidence
YuzeJ21 Jul 31, 2026
a43d262
Harden accessibility media preference evidence
YuzeJ21 Aug 1, 2026
67f7616
Design Workbench HTML research brief
YuzeJ21 Aug 1, 2026
57fb87c
Clarify offline HTML security boundary
YuzeJ21 Aug 1, 2026
f248693
Clarify HTML share basis labeling
YuzeJ21 Aug 1, 2026
04b521f
Plan Workbench HTML research brief
YuzeJ21 Aug 1, 2026
58aaabf
Add HTML research brief snapshot contract
YuzeJ21 Aug 1, 2026
7d4a119
Harden HTML research brief snapshot gates
YuzeJ21 Aug 1, 2026
d5a876a
Tighten HTML brief scope sanitation
YuzeJ21 Aug 1, 2026
6efcfb7
Require valid HTML brief profile scope
YuzeJ21 Aug 1, 2026
ecbb86d
Cover HTML brief acceptance boundaries
YuzeJ21 Aug 1, 2026
124baa1
Render secure offline research briefs
YuzeJ21 Aug 1, 2026
6395e57
Prepare current Workbench scenario state
YuzeJ21 Aug 1, 2026
d9a43d6
Add Workbench HTML research brief
YuzeJ21 Aug 1, 2026
e11531b
Guard HTML brief wording and hygiene
YuzeJ21 Aug 1, 2026
e3eea9a
Keep demo HTML under manual review
YuzeJ21 Aug 1, 2026
4e1b29e
Verify offline HTML research briefs
YuzeJ21 Aug 1, 2026
6006ec8
Harden HTML brief browser evidence
YuzeJ21 Aug 1, 2026
40a34d3
Require focus-specific browser cues
YuzeJ21 Aug 1, 2026
d0f24a5
Respect directional focus shadow clipping
YuzeJ21 Aug 1, 2026
6ad7f34
Match focus shadow occurrences
YuzeJ21 Aug 1, 2026
dfe3cc4
Document HTML research brief evidence
YuzeJ21 Aug 1, 2026
8a14abf
Clarify HTML brief evidence boundaries
YuzeJ21 Aug 1, 2026
f8877c1
Settle HTML brief media state
YuzeJ21 Aug 1, 2026
8716291
Reconcile HTML research brief contracts
YuzeJ21 Aug 1, 2026
18fc00b
Close HTML brief final-review gaps
YuzeJ21 Aug 1, 2026
71c6d45
Harden HTML brief action language policy
YuzeJ21 Aug 1, 2026
1572268
Bound HTML brief action language grammar
YuzeJ21 Aug 1, 2026
d192d20
Replace HTML action qualifier whitelist
YuzeJ21 Aug 1, 2026
d4ea444
Use token semantics for HTML action sanitation
YuzeJ21 Aug 1, 2026
ed96cdb
Specify portable HTML action policy repair
YuzeJ21 Aug 1, 2026
7302d43
Plan portable HTML action policy repair
YuzeJ21 Aug 1, 2026
b10ebcf
Extract portable research action policy
YuzeJ21 Aug 1, 2026
923fa85
Withhold modal passive HTML action language
YuzeJ21 Aug 1, 2026
9ce1a6c
Tighten passive HTML action policy
YuzeJ21 Aug 1, 2026
84562a7
Bound passive HTML exemptions
YuzeJ21 Aug 1, 2026
8218af4
Close passive exemption suffix escapes
YuzeJ21 Aug 1, 2026
ef8f85f
Reconcile portable HTML repair release truth
YuzeJ21 Aug 1, 2026
fb08675
Align next-stage portable HTML routing
YuzeJ21 Aug 1, 2026
c8c313b
Record verified portable HTML action policy
YuzeJ21 Aug 1, 2026
b69badf
Close broad review research safety gaps
YuzeJ21 Aug 1, 2026
1fad963
Reconcile exact-head release routing
YuzeJ21 Aug 2, 2026
8d0f2b3
Keep peer valuation readiness independent
YuzeJ21 Aug 2, 2026
da757f4
Specify mobile stop-rule first viewport repair
YuzeJ21 Aug 2, 2026
af43090
Plan mobile stop-rule first viewport repair
YuzeJ21 Aug 2, 2026
34b08ea
Keep mobile stop rule in first viewport
YuzeJ21 Aug 2, 2026
60492ff
Record mobile stop-rule viewport evidence
YuzeJ21 Aug 2, 2026
5460535
Reconcile mobile stop-rule implementation evidence
YuzeJ21 Aug 2, 2026
20a3f82
Specify calibration evidence bundle preview
YuzeJ21 Aug 2, 2026
dd29457
Plan calibration evidence bundle preview
YuzeJ21 Aug 2, 2026
ff4aa15
Add strict calibration bundle loader
YuzeJ21 Aug 2, 2026
73e9839
Validate calibration evidence bundles
YuzeJ21 Aug 2, 2026
6471d1e
Expose read-only calibration bundle preview
YuzeJ21 Aug 2, 2026
2ea0bbb
Document calibration bundle review boundary
YuzeJ21 Aug 2, 2026
9ab0d9b
Specify app-only research storage
YuzeJ21 Aug 2, 2026
d87136b
Plan no-write readiness boundary
YuzeJ21 Aug 2, 2026
7427f74
Make readiness composition no-write by default
YuzeJ21 Aug 3, 2026
fdece7d
Add explicit local readiness materializer
YuzeJ21 Aug 3, 2026
bc5800c
Harden readiness materialization boundaries
YuzeJ21 Aug 3, 2026
df8a848
Guard legacy readiness writer commands
YuzeJ21 Aug 3, 2026
85915b8
Correct readiness CLI help boundaries
YuzeJ21 Aug 3, 2026
cf8f09e
Compare reviewed-batch readiness in memory
YuzeJ21 Aug 3, 2026
76db2ba
Harden profile-bound readiness proof
YuzeJ21 Aug 3, 2026
338801b
Finish peer-proof command migration
YuzeJ21 Aug 3, 2026
d061486
Compute legacy pipeline views in memory
YuzeJ21 Aug 3, 2026
5ef451c
Make explicit dashboard refresh in memory
YuzeJ21 Aug 3, 2026
f51669e
Guard default workflows against artifact churn
YuzeJ21 Aug 3, 2026
0c1653c
Harden artifact guard failure paths
YuzeJ21 Aug 3, 2026
f92651f
Route readiness inspection to no-write preview
YuzeJ21 Aug 3, 2026
2eaa940
Make readiness inspection profile aware
YuzeJ21 Aug 3, 2026
d33afbd
Route readiness proof to in-memory comparison
YuzeJ21 Aug 3, 2026
f45b9ba
Enforce concrete profile-bound proof
YuzeJ21 Aug 3, 2026
e368b83
Close profile-bound proof gaps
YuzeJ21 Aug 3, 2026
6948fbf
Fix proof ordering and profile CTAs
YuzeJ21 Aug 3, 2026
4dd5ffe
Narrow no-write closure to primary workflow
YuzeJ21 Aug 4, 2026
b606689
Plan minimal no-write primary closure
YuzeJ21 Aug 4, 2026
1660495
Harden primary proof command boundary
YuzeJ21 Aug 4, 2026
265a71a
Harden primary proof command boundary
YuzeJ21 Aug 4, 2026
cc20a32
Bind primary research actions to no-write proof
YuzeJ21 Aug 4, 2026
7ce0eed
Preserve primary proof lane and ingress boundaries
YuzeJ21 Aug 4, 2026
f177378
Test same-profile primary proof steps
YuzeJ21 Aug 4, 2026
d08cad3
Enforce primary no-write command copy
YuzeJ21 Aug 4, 2026
650c63b
Harden readiness command copy guards
YuzeJ21 Aug 4, 2026
07086a7
Close final no-write boundary gaps
YuzeJ21 Aug 4, 2026
2359df6
Fix selected-profile readiness test
YuzeJ21 Aug 4, 2026
fd381e9
Keep CI tests artifact-free
YuzeJ21 Aug 4, 2026
c2a9599
Design evidence monitor brief
YuzeJ21 Aug 4, 2026
946aae7
Plan evidence monitor brief implementation
YuzeJ21 Aug 4, 2026
4ef4bb6
Add evidence monitor brief contract
YuzeJ21 Aug 4, 2026
909a1b6
Recompose Monitor evidence brief
YuzeJ21 Aug 4, 2026
9ba9848
Verify evidence monitor workflow
YuzeJ21 Aug 4, 2026
428e2be
Harden evidence monitor evaluators
YuzeJ21 Aug 4, 2026
78c5ff9
Reject non-finite monitor geometry
YuzeJ21 Aug 4, 2026
18f0bd4
Document evidence monitor brief
YuzeJ21 Aug 4, 2026
53515a4
Stabilize CI browser test paths
YuzeJ21 Aug 4, 2026
5242c8e
Close evidence monitor review gaps
YuzeJ21 Aug 4, 2026
0dd9a56
Document answer-first research workflow simplification
YuzeJ21 Aug 5, 2026
ea92d2c
Plan and build readiness-only Discover browsing
YuzeJ21 Aug 5, 2026
df6e72b
Clarify saved-company evidence answers
YuzeJ21 Aug 5, 2026
c084cc2
Separate Discover eligibility from browsing
YuzeJ21 Aug 5, 2026
38e0cef
Align Discover accessibility contract
YuzeJ21 Aug 5, 2026
0e718d1
Close answer-first Discover release contracts
YuzeJ21 Aug 5, 2026
6f260ca
Plan Company Workbench primary brief
YuzeJ21 Aug 5, 2026
92a676a
Compose Company Workbench primary brief
YuzeJ21 Aug 5, 2026
fc40b3b
Render answer-first Company Brief
YuzeJ21 Aug 5, 2026
4565226
Gate secondary Workbench modules
YuzeJ21 Aug 5, 2026
c40f7e1
Close Company Workbench answer-first release contracts
YuzeJ21 Aug 5, 2026
8fe1815
Harden Company Brief browser targets
YuzeJ21 Aug 5, 2026
19bcf9c
Fix Company Brief browser verification
YuzeJ21 Aug 5, 2026
ad431ea
Stabilize Workbench browser activation
YuzeJ21 Aug 5, 2026
35b355a
Record Company Brief browser evidence
YuzeJ21 Aug 5, 2026
3cd76f6
Close Company Brief local release evidence
YuzeJ21 Aug 5, 2026
1b93f6b
Plan Monitor follow-up queue
YuzeJ21 Aug 5, 2026
045f206
Compose Monitor follow-up queue
YuzeJ21 Aug 5, 2026
adc6149
Consolidate Monitor follow-up workflow
YuzeJ21 Aug 5, 2026
d24d5d2
Verify Monitor follow-up queue in browser
YuzeJ21 Aug 5, 2026
199fa94
Allow freshness-only Monitor browser state
YuzeJ21 Aug 5, 2026
05173ab
Reconcile Monitor release contracts
YuzeJ21 Aug 5, 2026
dff3039
Record Monitor release verification
YuzeJ21 Aug 5, 2026
7d7cc0c
Expose browser timeout diagnostics
YuzeJ21 Aug 5, 2026
fc092d1
Capture Streamlit server failure logs
YuzeJ21 Aug 5, 2026
9351218
Constrain Streamlit Starlette compatibility
YuzeJ21 Aug 5, 2026
96c5032
Plan Research Desk today brief
YuzeJ21 Aug 5, 2026
595681a
Compose Research Desk today brief
YuzeJ21 Aug 5, 2026
3849d5e
Simplify Research Desk to one brief
YuzeJ21 Aug 5, 2026
4cc503f
Reconcile Research Desk browser contracts
YuzeJ21 Aug 5, 2026
5a2aaf2
Use stable Research Desk browser marker
YuzeJ21 Aug 5, 2026
bf0e84b
Document Research Desk today brief
YuzeJ21 Aug 5, 2026
0e41811
Test nested Research Desk evidence
YuzeJ21 Aug 5, 2026
be5827d
Record Research Desk release verification
YuzeJ21 Aug 5, 2026
a32a9c4
Plan Personal Research shell cleanup
YuzeJ21 Aug 5, 2026
686f00d
Remove duplicate Research sidebar routes
YuzeJ21 Aug 5, 2026
8abcc1f
Simplify Personal Research main shell
YuzeJ21 Aug 5, 2026
3212a5d
Verify compact Research profile identity
YuzeJ21 Aug 5, 2026
2bc374a
Use route-owned accessibility markers
YuzeJ21 Aug 5, 2026
1dda5ff
Document simplified research shell
YuzeJ21 Aug 5, 2026
9cec5c5
Close research shell release checklist
YuzeJ21 Aug 5, 2026
2e58e00
Reconcile completed commercial beta milestones
YuzeJ21 Aug 8, 2026
d3b3964
Correct mobile viewport evidence
YuzeJ21 Aug 8, 2026
6d08d9a
Specify zero-scroll mobile stop rules
YuzeJ21 Aug 8, 2026
ddec79b
Plan public mobile zero-scroll repair
YuzeJ21 Aug 8, 2026
9156a27
Fix public Home mobile stop order
YuzeJ21 Aug 8, 2026
a4fc20c
Compact public Single Stock mobile answer
YuzeJ21 Aug 8, 2026
18417d9
Refine public Home phone stop fit
YuzeJ21 Aug 8, 2026
b17040f
Record public mobile zero-scroll evidence
YuzeJ21 Aug 8, 2026
f712a3e
Preserve source ladder provenance summaries
YuzeJ21 Aug 9, 2026
2731ac0
Preserve DCF source review ticker scope
YuzeJ21 Aug 9, 2026
b9d49b3
Separate readiness freshness from release evidence
YuzeJ21 Aug 9, 2026
238294d
Clarify readiness continuation gate labels
YuzeJ21 Aug 9, 2026
d111ead
Align readiness gate documentation
YuzeJ21 Aug 9, 2026
62e0d97
Stabilize pilot readiness packet generation
YuzeJ21 Aug 9, 2026
dceab92
Preserve excluded company-analysis reconciliation lanes
YuzeJ21 Aug 9, 2026
9e3ef60
Design readiness release evidence contract
YuzeJ21 Aug 9, 2026
4da9c24
Plan readiness release evidence implementation
YuzeJ21 Aug 9, 2026
4ec75d0
Add deterministic readiness release review core
YuzeJ21 Aug 9, 2026
c31fe3d
Review readiness release evidence axes
YuzeJ21 Aug 9, 2026
c6d9c57
Record exact readiness release reviews
YuzeJ21 Aug 9, 2026
a96ed33
Expose readiness release review workflow
YuzeJ21 Aug 9, 2026
218042d
Document readiness release evidence workflow
YuzeJ21 Aug 9, 2026
937e788
Harden readiness release review lifecycle
YuzeJ21 Aug 9, 2026
3abef73
Make readiness launcher test checkout independent
YuzeJ21 Aug 9, 2026
a9ee655
Repair Workbench performance route contract
YuzeJ21 Aug 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
52 changes: 52 additions & 0 deletions .github/workflows/commercial-research-beta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Commercial Research Beta

on:
pull_request:
branches: [main]

permissions:
contents: read

jobs:
local-engineering-gate:
runs-on: ubuntu-latest
timeout-minutes: 30
env:
PYTHONDONTWRITEBYTECODE: "1"
PR_BASE_SHA: ${{ github.event.pull_request.base.sha }}
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
steps:
- name: Check out pull request revision
uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"

- name: Install dependencies
run: python3 -m pip install -e '.[dev]'

- name: Install Playwright Chromium
run: python3 -m playwright install --with-deps chromium

- name: Run full test suite
run: make test

- name: Smoke-test dashboard startup
run: make dashboard-smoke

- name: Render Personal Research routes
run: make research-dashboard-render-smoke

- name: Check public wording
run: make public-wording-check

- name: Check generated-artifact hygiene
run: make pr-range-hygiene-check BASE_SHA="$PR_BASE_SHA" HEAD_SHA="$PR_HEAD_SHA"

- name: Check whitespace
run: git diff --check "$PR_BASE_SHA...$PR_HEAD_SHA"
442 changes: 368 additions & 74 deletions Makefile

Large diffs are not rendered by default.

26 changes: 24 additions & 2 deletions PRODUCT_SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,31 @@ This project is a local, CSV-first stock research command center. It helps a use

The product is not a trading bot. It does not place orders, connect to brokers, recommend options trades, or fabricate missing market, fundamentals, earnings, or analyst-estimate data.

The supported workflow is `Research Desk -> Discover -> Company Workbench -> Monitor`. Operator-only legacy compatibility utilities are retained for deterministic regression and historical file contracts, not as current investing capability.

## In-App Reviewed Research Records

Thesis, evidence, catalyst, and outcome records are all available in the collapsed Company Workbench composer.
A valid record requires an exact preview and explicit confirmation before save.
Final integrity commit `e3a090dba` ensures confirmation appends only the receipt-matched recomputed record and enforces one readable active thesis lineage: revisions must supersede the exact active entry and preserve its thesis ID. The Company Workbench locks and explains that relationship, with temporary-ledger create -> revise -> reload coverage.
Confirmation-integrity commit `5a6c55921` binds every displayed preview field, preview time, and destination label to the exact receipt. If an append raises after it may have written, confirmation returns one-shot `save_pending_reload` with the exact record ID unless the locked ledger is provably unchanged; it never invites a blind duplicate retry.
Drafts are untrusted and preview receipts are session-only.
Production tests never append repository ledgers; persistence tests use temporary ledgers.
A saved record cannot change readiness, forecasts, probabilities, recommendations, or any other ledger.

Priority 4's local validator is frozen; its permitted real-data exit gate remains externally incomplete.
Priority 6's provider-neutral authorization contract is complete locally; hosted implementation remains environment-dependent.
If the current branch head lacks direct local matrix, branch synchronization, draft-PR update, or exact-head CI evidence, complete those release steps first; otherwise select the first incomplete safe roadmap priority. Modal modifiers and active exposure fail closed. Broad-review repairs must be evaluated only through direct current-head local and exact-head CI evidence; their presence alone establishes neither gate.

## Target User

The target user is an individual investor or research reviewer who wants a deterministic local workflow for:

- maintaining a broad market universe;
- narrowing that universe into an active research list;
- reviewing portfolio holdings;
- reviewing one company and its source-backed research record;
- tracking readiness by analysis feature;
- generating watchlists only when the needed data exists;
- monitoring a focused cohort without ranking companies for action;
- seeing exact data blockers and next import actions.

## Non-Goals
Expand Down Expand Up @@ -99,6 +115,12 @@ The product is now organized around a few research-facing surfaces:

The primary public path is: Home workflow start -> Stock Selector -> Single-Stock Report -> Data Health lane answer -> Proof History evidence.

## Legacy Compatibility Boundary

`Monthly Picks`, `Momentum Leaders`, `Portfolio Review`, `Value / Re-rating`, and `Final Watchlist` are Operator-only compatibility utilities. Every retained page is labeled **Legacy research utility — not part of Personal Research Mode**, and its detailed output is hidden behind an explicit collapsed compatibility control.

These utilities preserve historical algorithms, regression checks, and output filenames only. They cannot feed Research Decision Lab, cannot change readiness, and cannot produce recommendations, sizing, or transaction behavior. Public and Personal Research routes cannot open them. Retained position, cost-basis, disposition, ranked-candidate, or action-like fields are not supported product claims.

These surfaces must show supported, blocked, partial, and excluded states before showing detailed tables. Broad-universe tables, command blocks, route maps, and proof ledgers should stay filtered, row-limited, collapsed, or operator-scoped by default.

## MVP Definition
Expand Down
2 changes: 2 additions & 0 deletions READINESS_MODEL.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ The feature does not apply to this ticker or asset type.
| `portfolio_ready` | holdings, prices, purpose metadata | holding row plus enough relevant data for review component | holding ticker parseable, position fields numeric when present | `portfolio_review.csv` | show review state | show missing components | mark holding blocked | not applicable |
| `final_decision_ready` | central readiness report plus analysis outputs | enough data for the chosen decision bucket | blocked features reduce confidence | `research_decisions.csv`, `final_watchlist.csv` | show decision bucket and confidence | show reduced confidence | classify as Blocked by Data | classify as Excluded |

`momentum_ready`, `portfolio_ready`, and `final_decision_ready` remain compatibility-only readiness rows for historical pipelines. Their retained pages are labeled **Legacy research utility — not part of Personal Research Mode** and are available only in Operator mode behind a collapsed compatibility control. They cannot feed Research Decision Lab, cannot change readiness outside their own historical calculation contracts, and cannot produce recommendations, sizing, or transaction behavior. Personal Research and Public routes do not expose these rows as current product capability.

## General Dashboard Rules

- Show readiness before conclusions.
Expand Down
Loading