Prompt file imported from maingocanh1702/bestmintonclub-payment-check-bot (
.claude/commands/messenger-leave-numeric-pick.md). Copyright stays with the author.
Bạn đang chạy AUTOPILOT cho repo này (messenger-leave-numeric-pick — LEAF, song song được).
⚠️ GATE: chỉ chạy SAU smoke + SAU khi messenger-typed-pick-framework đã trên origin/main. Framework chưa merge → HALT DEP_MISSING.
Tiền đề #1 (codex): export AUTOPILOT_CODEX_BIN="/Users/maingocanh/Projects/Bestminton Club Payment check bot/scripts/codex-review-pin.sh" — chưa set → HALT CODEX_UNAVAILABLE. Verdict-first; rmcp/figma/linear = noise strip.
Tiền đề #2 (BASE/REF + DEP): git fetch origin → confirm framework leaf API có trên origin/main (đọc signatures từ code đã merge, KHÔNG đoán); không có → HALT DEP_MISSING. git worktree add .autopilot/worktrees/messenger-leave-numeric-pick -b feat/messenger-leave-numeric-pick origin/main → cd → source .env. Verify HEAD==origin/main. Test DB_PATH=:memory: (data/bot.db LIVE). Pre-flight scripts/autopilot-scope-gate register --manifest docs/autopilot-manifests/messenger-leave-numeric-pick.json (invariant transport-messenger-leave — disjoint -combo/-owner-money → CHẠY ĐỒNG THỜI ok).
Mở docs/autopilot/prompts/messenger-leave-numeric-pick.md, đọc block ```text, THỰC THI nguyên văn. SYNC-FIRST re-derive showLeaveList/handleSessionPick/PAYMENT:leave:(\d+). Step R codex 2× FULL clean → STOP_AT_READY.
P1 — manual_only. Reuse framework, KHÔNG mutate tiền. NEGATIVE: KHÔNG settle/refund/credit (disposition giữ qua handleSessionPick); KHÔNG đụng ngoài leave.ts + leave.test.ts; KHÔNG union kind (framework owns types.ts); KHÔNG player.ts/index.ts/registry.ts; KHÔNG package.json; KHÔNG git add -A. Parity: typed "N" == tap PAYMENT:leave: cùng DB_PATH test → scope-gate ready --manifest docs/autopilot-manifests/messenger-leave-numeric-pick.json.
