Commit Graph

8 Commits

Author SHA1 Message Date
geometrybase 907e30d9da Use Chinese for analyst reports
Request:
- Make analyst reports Chinese by default and record the rule in the analyst skill.

Changes:
- Add a Simplified Chinese default-language rule to the analyst skill.
- Update the single-IPO report generator to emit Chinese Markdown sections, labels, actions, risks, triggers, and exit plans.
- Preserve ticker symbols, stage codes, rule ids, score buckets, and source paths as machine-readable identifiers.
- Regenerate the 06106 T0 report in Chinese.
- Document the Chinese report default in README and the rule change log.

Verification:
- Ran py_compile for scripts/generate_ipo_report.py.
- Generated a 06106 dry-run report and checked Chinese section headings.
- Regenerated reports/2026-06-15_06106_T0_prospectus_analysis.md.
- Ran git diff --check.

Next useful context:
- Future analyst prediction and review reports should be written in Simplified Chinese unless the user explicitly requests another language.
2026-06-15 14:37:46 +00:00
geometrybase 07d7a0064a Add concrete IPO stage dates to reports
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.
2026-06-15 14:24:06 +00:00
geometrybase 29ed22e476 Clarify IPO short-exit strategy horizon
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.
2026-06-15 14:20:56 +00:00
geometrybase bd5a06465d Add 06106 T0 analyst report
Request:
- Use the analyst skill to analyze upcoming IPO 06106 and generate a Markdown report.

Changes:
- Add a stage-safe T0_prospectus analyst report for 06106.
- Record the v0 score, calibrated historical probability, key T0 positives, risks, triggers, and source path.

Verification:
- Confirmed 06106 has no structured T1 demand yet, so the report is T0_prospectus.
- Reviewed the report for stage safety and repo-relative source paths.
- Ran git diff --check.

Next useful context:
- Re-run analyst after 06106 allotment results are archived around 2026-06-23 to generate a T1_allotment report.
2026-06-15 14:13:27 +00:00
geometrybase 58ad869f84 Refresh IPO analysis model calibration
Request:
- Re-analyze the IPO model using the updated historical archive after T1 demand backfill.

Changes:
- Regenerate the v0 analysis dataset from the current SQLite archive.
- Refresh the v0 calibration report with expanded T1 coverage and new empirical bucket rates.
- Update the report template to show pending T1 rows and field-level blanks.
- Clarify v0 limitations and record why the score formula stays unchanged for this refresh.

Verification:
- Ran scripts/build_analysis_dataset.py against data/hk_ipo.sqlite.
- Ran py_compile for scripts/build_analysis_dataset.py.
- Checked dataset row count, T1 demand coverage, source-only T1 gaps, and repo-relative paths.
- Ran git diff --check.

Next useful context:
- T1 structured coverage is now 291 rows, with 06106 and 06675 still pending_not_due.
- The high-conviction T1 bucket remains differentiated, but middle and low buckets are still not monotonic enough for a v1 rule change.
2026-06-15 14:05:34 +00:00
geometrybase 6d05056609 Backfill structured T1 demand from archived text
Request:
- Use archivist to close the 137 T1 ipo_demand source-only gaps using extracted PDF text.

Changes:
- Add an incremental T1 demand text backfill script.
- Parse existing allotment-result extracted text into ipo_demand.
- Archive linked Summary PDFs from old HKEX HTML allotment-result pages.
- Correct allotment-result selection to prefer primary result announcements over clarification or supplemental notices.
- Add robust line-aware allotment parsing and document the workflow in archivist and README.
- Record the backfill result in a report.

Execution:
- Selected 137 source-only T1 demand gaps.
- Wrote 137 ipo_demand rows, increasing ipo_demand from 154 to 291 rows.
- Archived 38 new HKEX allotment-result PDFs and extracted their text.
- Confirmed an incremental rerun selects 0 gaps and writes 0 rows.

Verification:
- Ran git diff --cached --check.
- Ran py_compile for archive_hkex_documents.py and backfill_t1_demand_from_text.py.
- Checked SQLite integrity and foreign keys.
- Confirmed DB row counts match CSV snapshots.
- Verified no T1 complete row is missing ipo_demand.
- Verified source_refs paths/files/hashes and PDF extracted-text manifest hashes.

Next useful context:
- T1 demand structure is complete for listed rows; 06106 and 06675 remain pending_not_due.
- T2 grey-market and due price-performance gaps remain separate archivist priorities.
- Analyst output should be regenerated before using the new T1 demand facts for scoring.
2026-06-15 13:59:06 +00:00
geometrybase 33d0bc056e Tighten historical data audit coverage
Request:
- Use the audit skill to check historical data completeness and self-correct the audit criteria after the missed PDF extracted-text gap.

Changes:
- Add a mandatory derived-evidence checklist to the audit skill.
- Require broad historical audits to reconcile PDF source_refs, extracted text files, manifest rows, and hashes.
- Add a historical data completeness audit report for the current archive.

Findings:
- Source integrity and PDF extracted-text completeness now pass.
- Full historical completeness still fails due to incomplete structured T1 demand, unresolved T2 grey-market data, open due price-performance tasks, and missing context fields.

Verification:
- Ran SQLite integrity, foreign-key, source hash, snapshot, PDF manifest, extracted-text hash, stage coverage, and analysis-dataset checks.
- Ran scripts/extract_pdf_text.py and confirmed 557 PDF sources were skipped unchanged with 557 manifest rows.
- Ran git diff --check.
2026-06-15 13:43:22 +00:00
geometrybase 48b89552fe Add IPO analysis model baseline
Request:
- Use the analyst skill to digest downloaded IPO archive data and start building an analysis model.

Changes:
- Add ipo_score_v0 as the first transparent stage-safe scoring rule set.
- Add build_analysis_dataset.py to derive model features, scores, decision bands, and empirical D1 calibration from SQLite.
- Generate analysis_model_v0_dataset.csv with 293 scored IPO rows and archived source paths.
- Add a model calibration report documenting coverage, T0/T1 bucket performance, usage, and known gaps.
- Record the initial model entry in the rule change log and document the command in README.

Verification:
- Ran py_compile for scripts/build_analysis_dataset.py.
- Regenerated the analysis dataset and report with as-of 2026-06-15T13:00:00Z.
- Checked CSV row count, source path coverage, and repo-relative path hygiene.
- Ran git diff --cached --check.

Next useful context:
- v0 should be treated as a transparent baseline, with T1 high-score calibration strongest and middle buckets still non-monotonic.
- T2 is excluded until a reliable grey-market source is approved.
2026-06-15 12:49:48 +00:00