Skip to main content

Pending work checklist — 2026-05-18 snapshot

Authored: 2026-05-18. Purpose: Single-page inventory of every open work item across Plans 0-7, follow-ups (FU-1..FU-53), and engineering hardening for scale. Used to drive priority + ensure nothing falls through.

How to use:

  • Hard blockers at the top — track these to dated deadlines.
  • Per-plan sections below — pick up the next-actionable item per plan.
  • Cross off (or change status) as items close; commit each closure with the evidence file in compliance/audit/.
  • This doc is a snapshot — when the situation changes meaningfully, re-snapshot under a new dated filename rather than mutating this one. Lets us see history.

🔴 HARD BLOCKERS (dated deadlines)​

IDItemDeadlineOwnerEvidence/Runbook
FU-51Provision real SendGrid prod live key via AWS SSM /hmp/prod/sendgrid/api-key + apply hmp-third-party-secrets ExternalSecretBefore first-property onboarding (~2026-06-15)Operatorhmp-infrastructure/compliance/follow-ups.md#fu-51
Plan 6 Q4On-call rotation set up with 3 named approvers (2-of-N gate needs ≥3 humans; today have 1)2026-06-15VP Eng + SRE Leadhmp-docs/docs/platform-registry/plan-6-decision-log.md#q4
Plan 6 Q5Backup retention recommendation sign-off (current 30d prod / 7y CloudTrail satisfies SOC 2 + DPDPA)2026-06-15Legal/DPO + CISO + SRE Lead…plan-6-decision-log.md#q5
Reloader prod validationForce-rotate test cluster to validate end-to-end, then monitor prod natural rotation2026-05-24 (next prod RDS rotation)Operatorhmp-infrastructure/monitoring/runbooks/fu-52-reloader-rollout.md
FU-46RS256 JWT keys for staging+prod; remove ALLOW_HS256 opt-out (security gap)Before first-property onboardingOperator + Enghmp-infrastructure/compliance/follow-ups.md#fu-46

🟡 Plan 4 — Demo tenant on prod​

TaskStatusAction
Task 24 prod demo-tenant seedJob YAML authored at hmp-infrastructure/kubernetes/jobs/seed-runner/prod-demo/Operator: get 2-of-N approval per hmp-infrastructure/monitoring/runbooks/plan-4-seed-prod-demo.md → apply via kubectl

🟡 Plan 5 — Cutover (in flight)​

ItemStatusAction
api.keynova.ai + live.keynova.ai✅ Live on prod EKS ALB (verified 2026-05-17 with ResAvenue handler 400-on-bad-XML)—
7-day prod burn-in observability🟢 In flight (day 2 of 7)Daily check via hmp-infrastructure/monitoring/runbooks/resavenue-cert-reissuance.md "7-day burn-in observability" section
ResAvenue first hotel onboarding🟡 Waiting on first hotel's dataOperator: replace placeholders in hmp-infrastructure/seeds/seed-resavenue-prod-connection.sql + apply
FU-6 ResAvenue cert v3 closure🟡 Closes after burn-in completes~2026-05-24

🟡 Plan 6 — Prod-launch baseline​

IDItemStatusAction
Baseline re-run🔴 Operator must re-run YAML after AWS profiles + flags fixed → expect 17-22 PASS (was 1 PASS / 7 FAIL / 13 NOCREDS / 2 AUTOMODE on first run)Operator
B-17Renovate.json propagation to 25 repos🟡 Template + script authoredOperator runs hmp-infrastructure/scripts/propagate-renovate-config.sh
B-18First quarterly access review🟡 Runbook + 2026-Q2 schedule shippedFirst review due 2026-06-30 — hmp-infrastructure/monitoring/runbooks/quarterly-access-review.md
B-19DR drill execution (failover ap-south-1 → ap-south-2)🔴 Not executedOperator (SRE) — author DR drill script next
B-20Backup-restore drill against keynova-prod-vault🔴 Not executedOperator (SRE)
B-21Pentest report🔴 Vendor not engagedExternal — 2-4 week procurement lead time
B-23CIC-1..5 sign-offs (all currently signed=0)🔴 OpenProduct / Security / SRE / CS / Payments stakeholders
B-24Spec §14 5 decisions (see Plan 6 decision log)🟡 Recommendations draftedSign-offs pending (Q4+Q5 are hard blockers per top of doc)

🟡 Plan 7 — Legacy retirement (in progress)​

PhaseStatusAction
Phase 1 inventory + 2-of-N approval✅ Authored—
Phase 2 data-snapshotSkipped per operator confirmation (seed-only data)—
Phase 3 destroy🟢 Operator manually deleting legacy account 730335256638 via AWS Console (in progress)Continue Console deletions until all resources gone
Phase 4 code cleanup (git rm legacy Terraform stacks + compose files + deploy scripts)🟡 Pending Phase 3 completionAuthor single cleanup commit when Phase 3 done
Phase 5 cost verification (T+7d post-destroy)🟡 PendingOperator pulls AWS Cost Explorer 7 days after final destroy
FU-3 legacy module dedup✅ Closes when Phase 4 commits—

🔵 Engineering hardening for scale (preparing for 100s of hotels)​

Discussed 2026-05-18 in response to "what happens during RDS rotation when 100s of hotels are using it?"

LevelItemWhyEffortStatus
L1Add preStop hook (sleep 10) to 20 base DeploymentsEliminates ALB target-deregistration race → ~95% of rolling-restart 502s gone30 min🔴 Not started
L1Bump terminationGracePeriodSeconds to 60s on all DeploymentsCleaner pod shutdown alignment with ALB drain15 min (same commit)🔴 Not started
L2Tune ALB deregistration_delay.timeout_seconds=30 (currently default 300)Faster target removal; tighter rolling-restart window30 min (per-Ingress annotation)🔴 Not started
L2Bump prod HPA minReplicas from 2 to 3 on critical servicesRotation window only affects 1/3 not 1/230 min🔴 Not started
L3Migrate to RDS IAM authEliminates password-rotation impact entirely (15-min auto-renewing tokens via IRSA) — Plan 2 already enabled enabled_iam_authentication = true on prod RDS; app needs to use it~2 days engineering🔴 Not started
L4AWS RDS Proxy (optional, transparent rotation + pool)Cleanest credential-rotation isolation; +~$15/mo per proxy~1 day🔴 Not started
OpSchedule prod RDS rotation for off-peak (02:00 IST)Operator-controlled timing instead of AWS automatic1h ops setup🔴 Not started

Recommendation: L1 + L2 land BEFORE first-property onboarding. L3 lands before scaling beyond 10 hotels. L4 + Op are optional polish.


🟡 Other open follow-ups (compliance/follow-ups.md)​

IDItemOwner
FU-2Tooling installation runbook (tflint / tfsec / checkov local install guide)Plan 0 carry-over
FU-5AWS Config delivery channel + S3 Object Lock incompatibility (needs separate bucket)Plan 6
FU-11IDC OIDC ArgoCD app — operator console registrationOperator
FU-12ArgoCD per-env PAT population in Secrets ManagerOperator
FU-13/14Windows DNS poisoning + TCP parallelism (workaround documented; CI runners on Linux unaffected)Workaround in place
FU-18Kustomize v5 namespace transformer ID conflict (whole-tree builds fail; per-overlay works)Architecture follow-up
FU-25Migrate deploy notifications Slack → TeamsQ3 sign-off + operator config
FU-26ArgoCD ci-bot tokens are non-expiring + no revocation runbookPlan 6 hardening
FU-27ArgoCD helm_release timeout false-negative on ConfigMap-only changesWorkaround documented
FU-28Self-approval allowed on staging/prod during pilot (closes when Q4 lands)—
FU-43Per-env auth-service-runtime-env propagation to qa/staging/prodOperator runtime secret rotation
FU-45Service runtime secret rotation policy + LambdaPlan 6 hardening
FU-46RS256 JWT keys for staging+prod; remove ALLOW_HS256Security gap — should be before first-property (also listed in hard blockers above)
FU-48Asset-service migration history resetOperator playbook at hmp-infrastructure/monitoring/runbooks/fu-48-asset-migration-reset.md
FU-49Notification-service device_tokens orphan migrationSame playbook as FU-48 with substitutions
FU-53metrics-server install on test + qa (staging + prod already have it)Engineering authoring (~30 min) — mirror FU-52 pattern

🟡 Sales & Marketing sign-offs (per 2026-05-16 playbook)​

ItemOwner
VP Sales + CFO sign-off on pricing tiersStakeholder
CMO + CEO sign-off on marketing planStakeholder
Board sign-off on KPIs + org/comp planStakeholder

Reference: hmp-docs/docs/sales-and-marketing/ (25 files, 10 sections).


🔴 Property #1 Readiness Audit (2026-04-28 verdict: NO-GO)​

SeverityCountStatus
P047🔴 Closure rate not currently tracked in this snapshot
P141🔴
P239🔴

Mandatory reading per project CLAUDE.md before any PR on audited code paths:

  • hmp-docs/docs/platform-registry/property-1-readiness-audit-2026-04-28.md
  • hmp-docs/docs/platform-registry/property-1-gold-standard-fix-plan-2026-04-28.md

Recommended: schedule a dedicated session to triage current closure rate + prioritize remaining items relative to first-property timing.


✅ Recently completed (for context)​

ItemDateNotes
Plan 3 D.2 (CI/CD pipelines, 24/24)2026-05-17All envs deploying via Azure Pipelines
Plan 5 PROD DNS cutover (api.keynova.ai, live.keynova.ai)2026-05-17Verified end-to-end with ResAvenue handler
FU-52 Reloader deployed all 4 envs2026-05-17 18:06-18:13 ISTcompliance/audit/2026-05-17-fu-52-reloader-shipped-*.txt
FU-50 promote-image.sh rebase-retry2026-05-17Permanent fix shipped + self-tested live
FU-7 Kyverno disallow-aws-credentials-env2026-05-11forEach + AnyIn rewrite; cluster-wide enforcement restored
Plan 6 baseline checklist execution (1 PASS / 7 FAIL / 13 NOCREDS / 2 AUTOMODE)2026-05-17Operator must re-run after AWS profile + flag fixes
Plan 4 Tasks 17/19/20/212026-05-13Foundation + 5 cross-service guards
Schema/Seed Audit Phases A/B/C/D2026-05-159 migrations + 3 CI gates + 13 demo-data generators
Sales & Marketing playbook folder2026-05-1625 files / 10 sections / ~5k lines

  1. Force-rotate test cluster to validate Reloader works end-to-end (10 min, zero customer risk)
  2. Ship Level 1 hardening — preStop hooks + grace period on all 20 Deployments (1h authoring)
  3. FU-51 SendGrid prod key provisioning (operator AWS Console step — blocks first-property)
  4. Q4 on-call rotation setup + Q5 Legal sign-off (stakeholder asks — blocks first-property by 2026-06-15)
  5. FU-53 metrics-server install for test + qa (small authoring task; closes the HPA-failing-metrics warnings)

Re-snapshot triggers​

Re-author this checklist (as a new dated file, don't mutate this one) when any of these happen:

  • Any hard blocker closes — recalibrate priorities
  • Plan 7 Phase 3 destroy completes — reflect Plan 7 progress + close FU-3
  • 2026-05-24 prod RDS rotation event — validates or invalidates FU-52 fix
  • Property #1 Readiness Audit re-run completes — new P0/P1/P2 numbers
  • Plan 4 Task 24 prod demo seed executes — closes Plan 4
  • Plan 5 7-day burn-in completes — closes Plan 5 + opens Plan 7 code cleanup