Files
hk-ipo/scripts/run_hk_ipo_analyst_once.sh
T
geometrybase 40d748cda8 Keep unconfirmed D1 IPOs in risk tables
Request:
Ensure the break-probability, risk/reward, and capital-efficiency section includes IPOs without confirmed D1 break/non-break outcomes, even after subscription closes.

Changes:
- Update the hk-ipo-analyst skill so broad reports keep all current or recently closed unresolved D1 names in the probability/risk section.
- Update the scheduled analyst prompt to preserve this coverage during automated refreshes.
- Refresh the latest report and README with a D1-unconfirmed risk table covering current actionable names plus closed/waiting names.

Verification:
- python3 /root/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hk-ipo-analyst
- bash -n scripts/run_hk_ipo_analyst_once.sh
- git diff --check
- Python check that reports/README.md matches the dated latest report and includes the closed/waiting D1-unconfirmed tickers
2026-06-23 11:30:36 +00:00

48 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
mkdir -p /run/hk-ipo
exec 9>/run/hk-ipo/analyst.lock
if ! flock -n 9; then
echo "$(date -Is) hk-ipo-analyst already running; skip"
exit 0
fi
cd "${REPO_ROOT}"
AS_OF="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
PROMPT_TEMPLATE="$(cat <<'EOF'
Use the `hk-ipo-analyst` skill from `.agents/skills/hk-ipo-analyst/SKILL.md`.
Run one scheduled HK IPO analyst refresh as of __AS_OF__.
Goals:
- Inspect the current worktree and recent git history first.
- Refresh the latest IPO candidate universe from online sources through `hk-ipo-archivist` before analysis.
- Update all relevant fresh network facts for the latest candidate report, especially live subscription-period market heat / margin subscription multiples, official T1 allotment demand when published, prospectus documents, listing calendars, and recent D1 review data.
- Keep unofficial subscription multiples in `ipo_market_heat` with their provider and `observed_at`; do not copy them into official T1 public oversubscription fields.
- Rebuild the analysis dataset after any archive refresh.
- Produce a complete latest broad IPO candidate report for actionable subscriptions, including ranking, fundamentals, break-risk/risk-reward, per-IPO notes, closed/waiting names, recent 30-day review, guardrails, and sources.
- In the break-risk/risk-reward/capital-efficiency section, include every current or recently closed ticker without confirmed D1 break/non-break information, even when its subscription has already closed and it is only waiting for T1/T2/D1.
- Write the dated report as `reports/YYYY-MM-DD_latest_ipo_candidates_analysis.md`, then copy the same final content to `reports/README.md` so the reports directory opens on the latest report.
- Keep stage discipline: no later facts leaking into earlier-stage conclusions.
- Write analyst output in Simplified Chinese.
- Commit only related project changes, including the dated report and `reports/README.md`, and push the current branch if upstream exists.
- If data is missing or stale, state the `data_gap` clearly instead of guessing.
- Do not ask interactive questions during this scheduled run.
- Do not change the systemd units or this wrapper script during this scheduled run.
EOF
)"
PROMPT="${PROMPT_TEMPLATE//__AS_OF__/${AS_OF}}"
codex --search \
-s danger-full-access \
-a never \
exec \
-C "${REPO_ROOT}" \
"${PROMPT}"