11 KiB
AI Jyotish consultation workbench alignment
Date: 2026-07-21
Commercial repo: /Users/wuyongnaren/Documents/Jyotisha-commercial
Research truth source: /Users/wuyongnaren/Documents/印度占星
Current commercial branch observed: codex/fix-chat-session-deletion
Product target
Upgrade the commercial Jyotish website from a form/report/chat surface into an AI astrology consultation workbench:
- guided topics when users do not know what to ask;
- strict workflow routing for career, marriage, wealth, timing, rectification and general readings;
- visible evidence chain, parameter freeze, confidence and claim boundary;
- follow-up prompts after every answer;
- privacy-safe commercial runtime without writing user birth data or private cases into public artifacts.
This is not a UI-only optimization. UI work is downstream of runtime identity, evidence gates and workflow routing.
Current architecture observed
Frontend
- Main page:
frontend/src/app/page.tsx - Global styles:
frontend/src/app/globals.css - Sidebar/session UI:
frontend/src/components/app-sidebar.tsxfrontend/src/components/sidebar-session-row.tsx
- Message rendering:
frontend/src/components/chat-message-row.tsxfrontend/src/components/chat-message-content.tsx
- Birth-time journey UI:
frontend/src/components/birth-time-intake.tsxfrontend/src/components/birth-time-guide-turn.tsxfrontend/src/components/birth-time-choice-question.tsxfrontend/src/components/birth-time-candidate-result.tsxfrontend/src/components/birth-time-evidence-draft-card.tsx
API routes
- Chat/consultation:
frontend/src/app/api/consult/route.ts - Health check:
frontend/src/app/api/health/route.ts - Daily star language:
frontend/src/app/api/daily-starlanguage/route.ts - Chart profiles:
frontend/src/app/api/chart-profiles/route.ts - Birth-time guide:
frontend/src/app/api/birth-time-guide/route.ts - Birth-time journey:
frontend/src/app/api/birth-time-journey/route.ts - Birth rectification:
frontend/src/app/api/birth-rectification/route.ts
Workflow and safety layer
- Workflow projection:
frontend/src/lib/consultation-workflow-request.ts - Entrypoint question resolver:
frontend/src/lib/consultation-entrypoint.ts - Safety guard:
frontend/src/lib/consult-safety.ts - Timing boundary guard:
frontend/src/lib/timing-output-guard.ts - Agent reply and streaming:
frontend/src/lib/agent-reply.tsfrontend/src/lib/stream-text-response.ts
Existing tests already relevant
frontend/tests/consultation-workflow-contract.test.tsfrontend/tests/consultation-workflow-request.test.tsfrontend/tests/starter-questions.test.tsfrontend/tests/chat-stream-layout.test.tsfrontend/tests/birth-time-mobile-scroll-contract.test.tsfrontend/tests/birth-time-journey-*.test.tsfrontend/tests/timing-output-guard.test.tsfrontend/tests/jyotish-api-reachability-contract.test.ts
Gap summary
| Layer | Current state | Gap |
|---|---|---|
| Truth source identity | /api/health reports web/env/model/Jyotish API status and git commit |
Does not expose research truth source path, research commit, evidence packet count, oracle summary or claim gate status |
| Guided topics | Starter questions and private entrypoints exist | Topics are not yet generated from profile completeness + question intent + strict workflow evidence requirements |
| Strict workflow routing | consultation-workflow-request.ts maps broad themes |
Timing currently maps to career; missing explicit route taxonomy for rectification, health, annual/monthly timing, Prashna, compatibility |
| Evidence display | Birth-time evidence components exist | No general consultation evidence panel/audit table for D1/D9/D10/Dasha/Narayana/Transit/Shadbala/AV/Jaimini/UL/DK/A10 |
| Parameter freeze | Some backend headers expose workflow status | UI does not consistently show Ayanamsa, node mode, timezone, coordinates, birth-time precision and calculation source |
| Claim boundary | Timing guard exists | Need runtime gate that prevents blocked/partial/oracle-missing claims from rendering as definitive predictions |
| Layout maturity | Chat shell exists | Composer can visually drift/overlay content; workbench should reserve bottom space and use stable scroll container |
| Privacy | Commercial repo has Supabase/business flow | Need explicit artifact filter and CI guard to prevent private birth data/events from entering public fixtures |
P0 implementation plan
P0-1 — Runtime identity and capability status
Goal: the site must show what capability source it is using.
Files:
- Add
frontend/src/lib/truth-source-runtime-identity.ts - Add or extend
frontend/src/app/api/health/route.ts - Add
frontend/tests/truth-source-runtime-identity.test.ts - Add
frontend/tests/health-deployment.test.tsassertions
Contract:
{
"truthSource": {
"path": "/Users/wuyongnaren/Documents/印度占星",
"commit": "...",
"skillVersion": "...",
"evidencePacketCount": 120,
"oracleSummary": {
"ready": [],
"partial": [],
"blocked": []
},
"claimGateStatus": "partial_or_blocked_present"
}
}
Rules:
- Do not read private user artifacts.
- Do not require the production container to mount the local research repo; if absent, report
not_mounted, notok. - Do not claim synced when git/packet metadata cannot be read.
P0-2 — Workbench shell layout fix
Goal: stop the composer from floating over forms/content and make the page feel like a stable consultation tool.
Files:
frontend/src/app/page.tsxfrontend/src/app/globals.cssfrontend/tests/chat-stream-layout.test.tsfrontend/tests/birth-time-mobile-scroll-contract.test.ts
Contract:
- One scroll container for conversation/workbench content.
- Composer pinned inside the main column, not viewport-floating across sidebar.
- Content bottom padding equals composer height.
- Onboarding/profile forms cannot appear underneath the composer.
P0-3 — Guided topic cards
Goal: when user lacks a question, show 3-5 useful consultation cards with evidence preview.
Files:
- Add
frontend/src/lib/guided-jyotish-topics.ts - Extend
frontend/src/lib/consultation-entrypoint.ts - Extend
frontend/src/app/page.tsx - Extend
frontend/tests/starter-questions.test.ts
Initial topics:
- Career phase and next leverage point
- Relationship pattern and partnership timing boundary
- Wealth structure and risk point
- Current year/month broad timing window
- Birth-time confidence check
Each topic must carry:
themevisibleQuestionstrictWorkflowRouteevidencePreviewconfidenceCapclaimBoundary
P0-4 — Strict workflow route contract
Goal: every user question must route to an explicit Jyotish workflow before the agent speaks.
Files:
- Extend
frontend/src/lib/consultation-workflow-request.ts - Extend
frontend/src/app/api/consult/route.ts - Extend
frontend/tests/consultation-workflow-contract.test.ts - Extend
frontend/tests/consultation-workflow-request.test.ts
Routes:
career: D1, D10, 10th house/lord, A10, AmK, Vimshottari, Narayana, transitmarriage: D1, D9, 7th house/lord, Venus/Jupiter, DK, UL, A7, Vimshottari, Narayana, transitwealth: D1, D2, D11, 2nd/11th/9th/5th, wealth yogas, AV, Dashatiming: Dasha + Narayana + transit + varga; day/month remains candidate unless holdout passesrectification: D1 boundary, D9/D10/D12/D60 sensitivity, event backtest, candidate not truthprashna: question time/place/timezone/ayanamsa/node mode; observation only until oracle packets closegeneral: broad multi-domain reading with clear missing layers
P0-5 — Claim gate display
Goal: users can still receive dates/windows, but the UI must not package exploratory candidates as verified prediction.
Files:
frontend/src/lib/timing-output-guard.tsfrontend/src/components/chat-message-content.tsx- Add
frontend/src/components/claim-boundary-badge.tsx - Tests:
frontend/tests/timing-output-guard.test.tsfrontend/tests/consultation-workflow-contract.test.ts
Statuses:
verified_windowcandidate_day_windowexploratory_unvalidatedobservation_onlyblocked_until_oracleblocked_until_human_labels
P1 implementation plan
P1-1 — Evidence panel / Technique Audit Table
Files:
- Add
frontend/src/components/evidence-audit-panel.tsx - Extend
frontend/src/components/chat-message-content.tsx - Add
frontend/tests/evidence-audit-panel.test.ts
Rows:
- D1
- D9 / D10 / D2 / D11 as applicable
- Vimshottari Dasha
- Narayana Dasha
- Transit / Gochara
- Shadbala
- Ashtakavarga
- Jaimini: DK, AmK, UL, A7, A10
- Functional Benefic/Malefic
- MEVG / Global Web Evidence
- Real Case Calibration
P1-2 — Report export
Files:
- Add
frontend/src/lib/consultation-report-export.ts - Add export button in message/report view
- Add
frontend/tests/consultation-report-export.test.ts
Export must include:
- frozen parameters;
- conclusion;
- evidence table;
- conflict points;
- claim boundary;
- follow-up questions.
P1-3 — Privacy artifact filter
Files:
- Add
scripts/commercial_privacy_artifact_scan.py - Add
tests/test_commercial_privacy_artifact_scan.py - Wire into commercial CI.
Rules:
- Reject real user names, exact birth data, private location/event text in fixtures.
- Allow public-person examples only with source tag.
- Mark imported research oracle packets as non-user artifacts.
P2 implementation plan
P2-1 — Visual polish after P0/P1
Files:
frontend/src/app/page.tsxfrontend/src/app/globals.cssfrontend/src/components/app-sidebar.tsx
Direction:
- Keep original warm color palette.
- Use commercial site layout language, but make the homepage cards smaller, lower, and easier to click.
- Do not put birth-time rectification as an oversized floating block.
P2-2 — Commercial sync discipline
Files:
- Add
docs/research_sync_contract.md - Add
frontend/tests/research-truth-source-contract.test.ts
Rules:
- Commercial repo consumes mature research contracts.
- Commercial repo does not copy private WorkBuddy fragments.
- WorkBuddy backups remain
historical_fragment_only.
First landing sequence
- Implement P0-1 runtime identity endpoint and test.
- Implement P0-2 layout contract to fix composer drift.
- Implement P0-3 guided topics as deterministic cards.
- Implement P0-4 strict workflow route taxonomy.
- Implement P0-5 claim boundary badge.
- Run focused frontend tests.
- Only then start P1 evidence panel.
Current blocker / caution
/private/tmp/jyotisha-optimize from the pasted request does not exist on this machine. The active commercial candidate is /Users/wuyongnaren/Documents/Jyotisha-commercial.
The commercial worktree currently has untracked hip_main.dat and hip_main.dat.download. They look like local ephemeris/runtime assets and should not be committed unless explicitly reviewed.