Add single IPO analyst report generator

Request:
- Let the analyst skill generate a Markdown report directly when a new IPO ticker is provided.

Changes:
- Add scripts/generate_ipo_report.py for stage-safe single-ticker reports from the v0 analysis dataset.
- Auto-select T1 reports when structured allotment demand exists and otherwise use T0 prospectus-stage reporting.
- Keep post-listing D1/D5/D20/D60 outcomes out of prediction reports while using historical buckets for calibration.
- Document the workflow in the analyst skill and README.

Verification:
- Ran py_compile for scripts/generate_ipo_report.py.
- Generated stdout dry-run reports for 06106 and 06658.
- Wrote temporary Markdown reports under /tmp for output-path validation.
- Ran git diff --check.

Next useful context:
- Before generating a report for a ticker absent from the analysis dataset, run archivist updates and rebuild scripts/build_analysis_dataset.py.
This commit is contained in:
2026-06-15 14:11:18 +00:00
parent 58ad869f84
commit 1227f2c7c4
3 changed files with 471 additions and 0 deletions
+13
View File
@@ -155,6 +155,19 @@ The v0 model is documented in `rules/ipo_score_v0.yaml`. It writes `data/snapsho
The model separates T0 prospectus inputs from T1 allotment inputs. D1/D5/D20/D60 returns are labels for calibration and review, not prediction inputs.
## Single IPO Markdown Report
Use the analyst report generator after the archive and model dataset are current:
```bash
.venv/bin/python scripts/build_analysis_dataset.py --as-of 2026-06-15T15:00:00Z
.venv/bin/python scripts/generate_ipo_report.py 06106 --stage auto
```
The generator writes `reports/{date}_{ticker}_{stage}_analysis.md` by default. It auto-selects `T1_allotment` when structured allotment-demand facts exist; otherwise it generates a `T0_prospectus` report. Use `--stdout` for a dry run or `--output` to choose a specific Markdown path.
Prediction reports are stage-safe: T0 reports use only prospectus-stage facts and T0 calibration, while T1 reports add allotment demand and T1 calibration. Post-listing D1/D5/D20/D60 performance stays out of prediction reports and is reserved for review cards.
## Incremental Archive Sync
The archivist keeps a per-ticker sync ledger so repeated updates can focus on missing stages: