07d7a0064a
Request: - Include the concrete T0, T1, T2, and D1 dates in every analyst report. Changes: - Add a Stage Calendar section to the single-IPO report generator. - Require analyst reports to include ticker-specific T0 subscription window, T1 allotment-result date, T2 grey-market date/window, and D1 listing date. - Update the 06106 T0 report with its concrete stage dates. - Document the requirement in the analyst skill, README, and rule change log. Verification: - Ran py_compile for scripts/generate_ipo_report.py. - Generated a 06106 dry-run report and checked the stage calendar. - Ran git diff --check. Next useful context: - For 06106, T0 is 2026-06-15 to 2026-06-18, T1/T2 is 2026-06-23, and D1 is 2026-06-24.
98 lines
4.3 KiB
Markdown
98 lines
4.3 KiB
Markdown
# Rule Change Log
|
|
|
|
## 2026-06-15 - Add concrete stage dates to reports
|
|
|
|
Request:
|
|
|
|
- Every analyst report should note the specific dates behind T0, T1, T2, and D1 for the covered IPO.
|
|
|
|
Change:
|
|
|
|
- Added a `Stage Calendar` section to the single-ticker report generator.
|
|
- Required analyst reports to show the ticker-specific T0 subscription window, T1 allotment-result date, T2 grey-market date/window, and D1 listing date.
|
|
- Updated the 06106 T0 report to include its concrete stage dates.
|
|
|
|
Rationale:
|
|
|
|
- The T0/T1/T2/D1 labels are project analysis stages, so reports should always bind them to actual calendar dates for the IPO under review.
|
|
|
|
Verification:
|
|
|
|
- Generated a 06106 dry-run report and checked the stage calendar.
|
|
- Ran py_compile for the report generator.
|
|
- Ran git diff --check.
|
|
|
|
## 2026-06-15 - Clarify short-exit IPO strategy horizon
|
|
|
|
Request:
|
|
|
|
- Emphasize that the analyst model is focused on selling allocated IPO shares in T2 grey market or on D1, not long-term holding.
|
|
|
|
Change:
|
|
|
|
- Added an explicit T2/D1 sell horizon to the analyst skill.
|
|
- Updated `ipo_score_v0` targets and holding policy to make D1 sell return the primary modeled label and T2 the intended extension when reliable grey-market data exists.
|
|
- Clarified that D5/D20/D60 are review labels only, not holding-period targets.
|
|
- Updated single-ticker reports and the report generator to show T2/D1 exit discipline.
|
|
|
|
Rationale:
|
|
|
|
- The subscription decision should optimize for immediate IPO exit execution, not a long-term equity thesis.
|
|
- This preserves stage safety while aligning report language, model targets, and review labels with the actual trading process.
|
|
|
|
Verification:
|
|
|
|
- Generated dry-run single-ticker reports after the template update.
|
|
- Rebuilt the analysis model report with the same dataset timestamp to refresh language without changing model rows.
|
|
- Ran py_compile for the modified scripts and checked Markdown/report text for the new T2/D1 discipline.
|
|
|
|
## 2026-06-15 - Refresh `ipo_score_v0` after T1 demand backfill
|
|
|
|
Request:
|
|
|
|
- Re-analyze the model using the known historical archive after T1 demand text backfill.
|
|
|
|
Change:
|
|
|
|
- Regenerated `data/snapshots/analysis_model_v0_dataset.csv` from the current SQLite archive.
|
|
- Refreshed `reports/2026-06-15_analysis_model_v0.md` with the expanded T1 demand coverage and new empirical calibration.
|
|
- Kept the `ipo_score_v0` score formula unchanged because the expanded sample still shows non-monotonic middle and low score buckets.
|
|
- Updated model limitations to reflect that T1 is structurally complete for listed rows, while field-level NULLs remain when source documents do not explicitly state a field.
|
|
|
|
Rationale:
|
|
|
|
- T1 structured coverage increased from 154 to 291 rows after archivist backfilled demand facts from extracted PDF text.
|
|
- The high-conviction bucket remains clearly differentiated, but the rest of the calibration is not strong enough to justify a v1 rule change.
|
|
- Avoiding a threshold rewrite here preserves the feedback loop: future rule changes should be tied to reviewed predictions and named error cases.
|
|
|
|
Verification:
|
|
|
|
- Rebuilt the analysis dataset and model report from `data/hk_ipo.sqlite`.
|
|
- Confirmed post-listing returns remain labels only and are not score inputs.
|
|
- Confirmed durable source paths remain repo-relative.
|
|
|
|
## 2026-06-15 - Introduce `ipo_score_v0`
|
|
|
|
Request:
|
|
|
|
- Start digesting the downloaded IPO archive and build the first analyst model.
|
|
|
|
Change:
|
|
|
|
- Added `rules/ipo_score_v0.yaml` as the initial transparent scoring baseline.
|
|
- Added `scripts/build_analysis_dataset.py` to generate a feature dataset and calibration report from `data/hk_ipo.sqlite`.
|
|
- Added `data/snapshots/analysis_model_v0_dataset.csv` as the first model-ready snapshot.
|
|
- Added `reports/2026-06-15_analysis_model_v0.md` to document coverage, calibration, and known gaps.
|
|
|
|
Rationale:
|
|
|
|
- The archive now has enough T0 facts and D1/D5/D20/D60 labels to support a repeatable baseline.
|
|
- T1 demand data is partially structured and highly informative where available.
|
|
- T2 grey-market data remains blocked until a reliable source exists, so it is excluded from v0.
|
|
|
|
Verification:
|
|
|
|
- Generated the dataset from the current SQLite archive.
|
|
- Confirmed the model keeps post-listing returns as labels only.
|
|
- Recorded non-monotonic middle buckets as a limitation rather than overfitting them away.
|