After a /prime, Sondra flagged that users "don't know what they're spending" β she wanted each action to show whether it's free or how many credits it costs, an obvious "buy more credits" path, and to over-communicate cost + the refund policy. She explicitly disliked the faint "Costs 5 credits Β· you have 5" line, disliked colored emojis (a small monochrome credit mark is fine), and wanted the cost note italic/parenthetical. All work is on the LIVE money app (pain2profitengine.com; Supabase kgxwuhkvoyvrnifvlnqz; Cloudflare Pages pain2profit-engine; app repo c:\Users\srver\AIOS-Workspace\aios-starter-kit\PROJECTS\Pain-2-Profit Engine\app\, git main, NO remote). Change is label/layout only β zero changes to credit math or the money path.
c:\Users\srver\AIOS-Workspace\aios-starter-kit\PROJECTS\Pain-2-Profit Engine\app\src\components\CreditGuide.jsx exports COSTS = {research:5, ideas:3, gameplan:10, retool:3} and three UI pieces: <Cost n> (chip), <CostLine n> (chip + italic refund note), and default <CreditGuide> (the panel). Every page imports these so a page and its edge function can't drift.β (U+25C6), never a colored emoji. Rendered by .credit-cost .cmark (gold). Free actions render a green .credit-cost.free "Free" chip.<CostLine n> = β N credits + italic (refunded automatically if the run doesnβt finish). Applied on NewIdea (5), Discover topic+tool (3), Gameplan retool (3), ResearchResults Profit Plan (10). Balance removed from those lines (it now lives in topbar + sidebar).src/pages/Chat.jsx shows a green Free chip + italic "Chatting never uses credits."src/components/Shell.jsx: replaced the plain "Buy Credits" nav link with a .credits-box (label + big gold balance numerals + "Buy more credits" button β /pricing)..credits-chip wraps to <Link to="/pricing"> showing "N credits Β· Buy more".<CreditGuide> rendered on src/pages/Dashboard.jsx (below page-sub) and src/pages/Pricing.jsx (above the buy packs, added a "Buy credits" h2). One card per tool: name, plain-English description, cost chip, and a button to go there; footer reminds refund + never-expire + Chat free.src/index.css after the .cost-note rule: .credit-cost, .cost-line, .refund-note, .credit-guide/.cg-, .sidebar .credits-box/.cb-, .topbar .credits-chip link styles.npm run build clean; wrangler pages deploy dist --project-name=pain2profit-engine --branch=main β deployment 141f82ae (env=production, holds the pain2profitengine.com + www aliases). Confirmed prod serves the new bundle (index-vKryhQT2.css / index-BV9WtZ62.js) and the new classes + copy strings are present. NOTE: after deploy the custom domain took ~1 min to propagate the alias from the previous deployment β normal, not a bug.c:\Users\srver\AIOS-Workspace\aios-starter-kit\PROJECTS\Pain-2-Profit Engine\app\src\components\CreditGuide.jsx β NEW, the single source of truth (COSTS + Cost/CostLine/CreditGuide). Read first.c:\Users\srver\AIOS-Workspace\aios-starter-kit\PROJECTS\Pain-2-Profit Engine\app\src\components\Shell.jsx β sidebar credits box + topbar chip link.c:\Users\srver\AIOS-Workspace\aios-starter-kit\PROJECTS\Pain-2-Profit Engine\app\src\index.css β credit-clarity styles (search Credit clarity).src\pages\NewIdea.jsx, Discover.jsx, Gameplan.jsx, ResearchResults.jsx, Chat.jsx, Dashboard.jsx, Pricing.jsx.c:\Users\srver\AIOS-Workspace\aios-starter-kit\PROJECTS\Pain-2-Profit Engine\handoffs\ (P2P email/star-gate handoff pasted at session start).main, no remote, work UNCOMMITTED (this session's edits stack on top of the prior session's still-uncommitted StarGate.jsx + migration 0012_trial_credits_5_intentional.sql + scripts\p2p_stars_sync.py User-Agent fix).curl -s -o /dev/null -w "%{http_code}" https://pain2profitengine.com β 200curl -s https://pain2profitengine.com | grep -oE "index-[A-Za-z0-9]+\.(css|js)" β should reference index-vKryhQT2.css + index-BV9WtZ62.js (or newer if redeployed).curl -s https://pain2profitengine.com/assets/index-vKryhQT2.css | grep -o "credit-guide" β matches (new CSS live).β N credits chip + italic refund note; Chat shows a green Free chip....\PROJECTS\Pain-2-Profit Engine\app\ β npm run build then export CLOUDFLARE_API_TOKEN=$(python ../../../scripts/get_env.py CLOUDFLARE_API_TOKEN) CLOUDFLARE_ACCOUNT_ID=$(python ../../../scripts/get_env.py CLOUDFLARE_ACCOUNT_ID); npx wrangler pages deploy dist --project-name=pain2profit-engine --branch=main --commit-dirty=true (wait ~1 min for the custom-domain alias to propagate).CreditGuide.jsx are uncommitted, stacked on the prior session's uncommitted StarGate/migration/p2p_stars_sync changes. No commit requested yet. (App repo has no git remote β GitHub backup also still open from the prior handoff.)Sondra Brain\wiki\memory\open-questions.md (top section) β webhook-triggered buyer-email round-trip still blocked by live Stripe; "become a STARS member" link target (community front page vs /plans) unanswered.If Sondra says commit: git add -A && git commit the app repo (credit-clarity UI + prior session's StarGate/migration/p2p_stars_sync) with a clear message; otherwise leave uncommitted and let her eyeball the live pages on pain2profitengine.com.
Generated for the CEO Dashboard · source: PROJECTS/Pain-2-Profit Engine/handoffs/credit-clarity-ui-2026-07-09.md π€