29ed22e476
Request: - Emphasize that the analyst model is for selling allocated IPO shares in T2 grey market or on D1, not for long-term holding. Changes: - Add explicit T2/D1 sell discipline to the analyst skill. - Update ipo_score_v0 targets and holding policy so D1 sell return is primary and T2 is the intended extension when reliable grey-market data exists. - Clarify that D5/D20/D60 are review labels only, not planned holding targets. - Update the model report, single-ticker report generator, README, and the 06106 report language to reflect the short-exit horizon. Verification: - Rebuilt the model report with the same dataset timestamp and confirmed the analysis dataset did not change. - Ran py_compile for build_analysis_dataset.py and generate_ipo_report.py. - Generated a 06106 dry-run report showing T2/D1 exit discipline. - Ran git diff --check. Next useful context: - T2 is still disabled in v0 until archivist approves a reliable grey-market data source; D1 remains the live modeled sell label.
3.5 KiB
3.5 KiB
Rule Change Log
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_v0targets 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.csvfrom the current SQLite archive. - Refreshed
reports/2026-06-15_analysis_model_v0.mdwith the expanded T1 demand coverage and new empirical calibration. - Kept the
ipo_score_v0score 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.yamlas the initial transparent scoring baseline. - Added
scripts/build_analysis_dataset.pyto generate a feature dataset and calibration report fromdata/hk_ipo.sqlite. - Added
data/snapshots/analysis_model_v0_dataset.csvas the first model-ready snapshot. - Added
reports/2026-06-15_analysis_model_v0.mdto 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.