Codify latest IPO report refresh

Request:
- Make each scheduled analyst run refresh the latest IPO universe and all report-relevant online facts, especially subscription/margin multiples.
- Mirror the latest dated IPO candidate report to reports/README.md.
- Add this latest-report behavior to the hk-ipo-analyst skill instructions.

Changes:
- Expanded the scheduled analyst runner prompt to require online candidate refresh, market-heat/subscription-multiple refresh, official T1 updates when available, complete latest report regeneration, and reports/README.md mirroring.
- Added a Latest Candidate Report Refresh section to hk-ipo-analyst documenting the refresh flow, stage-safe market-heat handling, official T1 boundaries, and README mirror contract.
- Added reports/README.md as a copy of the current latest dated candidate report.

Verification:
- Ran bash -n scripts/run_hk_ipo_analyst_once.sh.
- Ran git diff --check and git diff --cached --check.
- Confirmed reports/README.md matches reports/2026-06-22_latest_ipo_candidates_analysis.md with cmp.
- Confirmed hk-ipo-analyst.timer still points to 2026-06-22 23:00:00 UTC as the next run.

Next useful context:
- reports/README.md is intentionally overwriteable on each latest candidate refresh; dated reports remain the historical copies.
- Unofficial subscription multiples should stay in ipo_market_heat and not be copied into official T1 demand fields.
This commit is contained in:
2026-06-22 15:40:57 +00:00
parent af6f8ed721
commit 907aeeee9b
3 changed files with 172 additions and 4 deletions
+16
View File
@@ -40,6 +40,7 @@ Use repo-relative paths everywhere:
- Memos: `memos/{ticker}_{stage}_{date}.md`
- Reports: `reports/{date}_{topic}.md` or another repo-relative report path requested by the user.
- Latest candidate report mirror: `reports/README.md`
- Rules: `rules/ipo_score_v*.yaml` and `rules/rule_change_log.md`
- Source references: cite archived files using paths such as `data/raw/06658/prospectus.pdf`
@@ -85,6 +86,21 @@ For broad/latest candidate reports whose purpose is deciding what can be subscri
Do not lead broad candidate reports with post-listing reviews; keep those after the live decision layers so the reader sees the actionable ranking first.
## Latest Candidate Report Refresh
For scheduled runs, latest IPO list refreshes, and broad candidate reports, first use `hk-ipo-archivist` to refresh the latest internet-sourced IPO universe and archive updates before making analyst judgments. This includes the HKEX current new-listing page, newly available prospectuses, allotment-result announcements, listing-calendar changes, recent price-performance rows for review, and subscription-period market heat such as broker-aggregated margin subscription multiples.
Refresh the report content as a complete current snapshot, not as a partial patch. The dated report should be written to `reports/{date}_latest_ipo_candidates_analysis.md` and should update all relevant sections: actionable ranking, fundamentals, break-probability/risk-reward, capital efficiency, per-IPO notes, closed/waiting names, recent 30-day listed-IPO review, data gaps, and sources.
Market heat and subscription multiples must remain stage-safe:
- Unofficial live subscription or margin multiples belong in archived `ipo_market_heat` rows with provider, `observed_at`, stage, and source path.
- Do not copy T0.5/T0.95 market heat into official T1 public-oversubscription fields.
- Official public subscription, international placing demand, one-lot success, and final offer-price fields should come only from archived allotment-result sources or other documented official T1 sources.
- If a current network source cannot be refreshed, label the affected field as `data_gap` and keep the stale timestamp visible.
After writing the dated latest report, copy the same final Markdown content to `reports/README.md`. This README is an overwriteable mirror of the latest broad candidate report so opening the `reports/` directory surfaces the current report first; the dated report remains the durable historical copy.
## Single-Ticker Markdown Report
When the user gives a single IPO ticker and asks for an analyst report, use the report generator after archived facts and the analysis dataset are current: