From a3fbd1b2a90cf9bde1b3d2dd164937e0ea46b6fd Mon Sep 17 00:00:00 2001 From: martbost Date: Wed, 19 Aug 2026 05:35:43 -0500 Subject: [PATCH] Teach-forward framing across all coaching surfaces (founders' doctrine) Every coaching output now ends by teaching the recipient how to teach: point them at the Coach Your Team panel on THEIR own dashboard and tell them to run the same play for their two. - Member dashboard dCoach footer: "you're not coaching two people - you're teaching two coaches"; easy-win rows add "show them how you spotted it" - Admin Coaching Radar: teach-forward rule footer - AI chat system prompt: COACHING DOCTRINE section so chat answers frame guidance teach-forward Co-Authored-By: Claude Fable 5 --- public/admin.js | 3 ++- public/my.js | 4 ++-- server.js | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/public/admin.js b/public/admin.js index 9dd9a46..e4c9657 100644 --- a/public/admin.js +++ b/public/admin.js @@ -106,7 +106,8 @@ async function loadCoaching(){ `

Tier 1 · Easy wins — one message each

${t1}`+ `

Tier 2 · Money at risk — coach the upgrade

${t2}`+ (unq?`

Tier 2b · Money forming, not yet qualified

${unq}`:'')+ - `

Tier 3 · One placement from qualified

${t3}`; + `

Tier 3 · One placement from qualified

${t3}`+ + `

Teach-forward rule: every nudge should end with "now open YOUR dashboard's Coach Your Team panel and run this same play for your two." You're not coaching members — you're training coaches.

`; }catch(x){out.innerHTML=`
${esc(x.message)}
`} } const cr=document.getElementById('coachRefresh');if(cr)cr.addEventListener('click',loadCoaching); diff --git a/public/my.js b/public/my.js index ae1985a..adc1970 100644 --- a/public/my.js +++ b/public/my.js @@ -167,12 +167,12 @@ if(!c||!c.ready||!c.scanned||((c.rollForward||[]).length+(c.atRisk||[]).length+(c.oneAway||[]).length)===0){card.style.display='none';return;} const link=id=>`#${id}`; const rows=[]; - (c.rollForward||[]).forEach(r=>rows.push(`
💬
${link(r.id)} is qualified but still Scintilla with ${fmt(r.earnedPol)} POL of entry rewards — their Ascensus upgrade (${fmt(r.ascensusCost)} POL) is already covered and catches their team's first payments. Tell them!
`)); + (c.rollForward||[]).forEach(r=>rows.push(`
💬
${link(r.id)} is qualified but still Scintilla with ${fmt(r.earnedPol)} POL of entry rewards — their Ascensus upgrade (${fmt(r.ascensusCost)} POL) is already covered and catches their team's first payments. Tell them — then show them how you spotted it, so they can spot it for their two.
`)); (c.atRisk||[]).filter(r=>r.qualified&&r.level>1).forEach(r=>rows.push(`
⚠️
${link(r.id)} (${esc(r.levelName)}) has ${fmt(r.atRiskPol)} POL forming below them but needs ${esc(r.neededLevelName)} to catch it — worth a heads-up before it passes them.
`)); (c.atRisk||[]).filter(r=>!r.qualified).forEach(r=>rows.push(`
⏰
${link(r.id)} has ${fmt(r.atRiskPol)} POL forming below but isn't qualified yet (${r.directCount}/2) — help them find their ${r.directCount===1?'last direct':'2 directs'}.
`)); (c.oneAway||[]).forEach(r=>rows.push(`
🎯
${link(r.id)} is one direct away from qualifying — introduce them to one good person and their whole position activates.
`)); if(!rows.length){card.style.display='none';return;} - el.innerHTML=rows.slice(0,8).join('')+`

Why this matters to YOU: every upgrade below you either pays your position directly or builds the depth that will. Helping them is not charity — it's your pipeline.

`; + el.innerHTML=rows.slice(0,8).join('')+`

The team rule: don't just tell them — teach them to coach. Everyone on this list has this same panel on their own dashboard. When you reach out, walk them through THEIR "Coach your team" card so they run this exact play for their two. You're not just coaching two people — you're teaching two coaches. That's what builds depth that pays. And remember: every upgrade below you either pays your position directly or builds the depth that will.

`; card.style.display=''; } // "My Next Step" — the single clearest action + the level ladder + a funded diff --git a/server.js b/server.js index 6681861..9efeff5 100644 --- a/server.js +++ b/server.js @@ -45,6 +45,7 @@ FACTS: - RESILIENCE ("what if the creators disappear / owner loses keys / it falls apart over time"): the contract is autonomous and immutable — NO admin action, heartbeat, or living operator is required for joins, upgrades, matrix placement, or payouts; there is no pause switch and no expiry. Verified on-chain that the founder, development, and fee-receiver wallets are ordinary wallets (EOAs), NOT smart contracts — an ordinary wallet always accepts incoming POL even if its key is lost forever, so a dead or abandoned admin wallet cannot block any member payment (only the project's OWN uncollected fee would sit idle). The contract stores no balance (every payment is delivered in the same transaction). If the owner's key were lost, only the four limited admin powers freeze in place; members are unaffected. Details in section 6 of https://rmcircle.team/contract. - Current team sponsor: ${a ? `ID ${a.id}${c.showSponsorName && a.name ? ` (${a.name})` : ''}, ${a.directs}/2 directs` : 'shown on the start page'}. ${waiting} placement(s) waiting. Placements rotate as positions qualify — always verify on https://rmcircle.team/start right before joining. - Site pages: https://rmcircle.team/ (strategy overview + roadmap + live team stats), https://rmcircle.team/start (current sponsor + join steps), https://rmcircle.team/training (6 videos — team overview, wallet setup, funding, the new connect-wallet join flow on the site, the dApp backup method, how payments work — + spillover article), https://rmcircle.team/how-pay-works (the two income streams shown as a pay-flow diagram + Premium/Standard tier comparison), https://rmcircle.team/contract (plain-language security review of the verified smart contract — code can't change, no pooled funds, locked rules, honest list of operator powers), https://rmcircle.team/my (member dashboard), https://rmcircle.team/tools (for existing team members who want to promote — share-ready promo videos, copy-paste social posts, short/long email swipes, and a downloadable banner kit in every standard size; to write promos in their own voice, mybrandedvoice.com), https://rmcircle.team/disclaimer (affiliate/earnings/risk disclosures). +- COACHING DOCTRINE (teach forward): whenever you give a member guidance about helping their team, frame it so they learn to run the same play for their own two — e.g. "do X, then show your two how to spot this on THEIR dashboard's Coach Your Team panel." The goal is never just fixing one member's next step; it is teaching people how to teach. Every member's dashboard has the same Coach Your Team panel, so the play duplicates at every depth. - Telegram group for live team help: ${c.telegramUrl || 'https://t.me/cryptoteambuild'} - OBJECTIONS (answer honestly, never with hype or promises): - "Is this a pyramid/Ponzi/scam?": a pyramid or Ponzi routes everyone's money to a central company that pays earlier joiners out of later joiners' deposits, with nothing verifiable. Here NO company holds funds — the smart contract pays person-to-person in the same transaction and the code plus every payout are public on-chain (verify at https://rmcircle.team/contract). Be plain that it is a team build with real effort and real crypto risk, not a passive investment.