Work / Chitragupt / Wiki / Decisions
2026-06-01-ask-web-surface-lands
Decisioncanonicalverified 2026-06-26
DECISION.2026-06-01.ASK-WEB-SURFACE-LANDS/app/ask web surface lands (AI Q&A entry point)
Decision
Build the /app/ask web surface as the AI Q&A entry point, matching the four wireframe states (locked / empty / quota-exhausted / default chat). Distinct from /ca/ask/* which is the consultation marketplace history.
Why
.context/wiki/surfaces/* row /app/ask was mobile-future-twin (wireframe exists, no web build). Wireframes under .context/designs/web/ask/ (ask.html, ask-empty.html, ask-locked.html, ask-quota-exhausted.html) are now the spec the web build matches. Distinct from /ca/ask/* which is the consultation marketplace history (separate product despite the shared "ask" word).
Impact
- New route
apps/website/src/app/(app)/ask/page.tsxdispatches between locked / empty / quota-exhausted / default chat based onAI_PLANSmembership +canAccessAI(sub, AY)+ presence of aconfirmeddocument +aiQuotaRemaining. - Components under
src/components/ask/(AskChatView,AskSidebar,AskTranscriptDemo,AskComposer,AskQuotaChip,AskEmptyState,AskLockedState,AskQuotaExhaustedState). - Helpers:
src/utils/ist-day.ts(todayIstDay,msUntilIstMidnight,formatHmCountdown),src/utils/ask-quota.ts. - RoleNav grows a purple "Ask" nav item visible only to AI Self / Pro Family.
- Pricing strings sourced from
shared/config/plans.tsso .context/wiki/entities/* remains the single price truth. - Transcript itself is the wireframe demo content — wiring it to the AI callable (
apps/functions/src/ai/) is the next step. - Affects tier-ai-self, tier-pro-family, copy-strings.
Status
Active.
Sources
- .context/wiki/decisions/* § "2026-06-01 —
/app/askweb surface lands (AI Q&A entry point)"
Every project of mine is written down like this.
Read the résumé