SCOPEMAP
What is being carried, at what depth, and by whom — drawn from the live project files of two Ultima Markets projects. Every concept is named properly, then shown doing its actual job here. Nothing is inflated; thin is shown as thin.
承擔了什麼、深到哪裡、由誰負責——內容取自兩個進行中專案的實際檔案。每個概念先以正式名稱標出, 再展示它在專案裡的實際用途。不誇大:淺的地方如實標淺。
The 30-second read
三十秒導讀
For management給管理層One person is carrying two live projects at different stages. UM India is pre-launch: the work is strategy, platform compliance, account architecture and measurement design — spend is blocked only on legal sign-off and live URLs. Ultima Edu Center is built and running: product definition through design system, auth and both language editions are one pair of hands, with writers and designers on final touch. Grouped the way the market hires, the 20 fields below are twelve role surfaces — work a conventionally staffed team would split across roughly eight people. Eight of the twenty have no other person involved at all. Depth is rated honestly on a four-level scale; the short bars are the point, not a defect of the page.
兩個進行中的專案,階段不同,由一人承擔。 印度市場處於投放前:工作重心是策略、平台合規、帳戶架構與成效追蹤設計——開銷僅待法務審批與正式網址。 Ultima Edu Center 已建成並運行:從產品定義、設計系統、身分驗證到雙語版本皆出自一人之手, 寫手與設計師負責最後潤飾。按市場招聘方式歸類,下方 20 個欄位構成十二個崗位—— 標準編制下需約八人分擔的工作範圍。其中八個欄位完全無他人參與。 深度以四級量表如實標註;短的橫條正是本頁的價值所在,不是缺陷。
Depth profile掌握程度
click any field to open it點任一欄位即可展開UM India · 印度市場
Ultima Edu Center · 教育中心
How each field reads: the concept by its real name — so it can be studied properly — immediately followed by the specific thing it does in my project. A name alone is trivia; a use case alone teaches nothing transferable. The pairing is the whole point. 每個欄位的讀法:先給概念的正式名稱——方便深入研讀——緊接著是它在我專案裡的 具體用途。只有名稱是冷知識;只有用例學不到可遷移的東西。配對本身才是重點。
UM India印度市場
Both readers兩類讀者A paid-acquisition launch for a Mauritius-FSC-licensed broker into a market that does not permit it yet — the constraint is regulatory before it is creative. My manager buys accounts from vendors; everything after purchase is mine. 為一家持毛里裘斯 FSC 牌照的經紀商,向一個尚未開放的市場做付費獲客—— 約束首先是監管,其次才是創意。帳戶由主管向供應商採購;購入之後全部由我負責。
How Business Managers are structured so that losing one thing does not lose everything.如何架構企業管理平台(BM),使失去一件資產不至於失去全部。
Platforms punish at the level of the container. If irreplaceable assets (Page, verified domain, pixel history) share a business with the assets that draw enforcement (ad accounts, payment), one action takes both. The standard answer: split across two businesses, share assets between them, so the disposable tier can be lost and rebuilt without touching the durable one. 平台的處罰以「容器」為單位。若不可替代的資產(專頁、已驗證網域、像素歷史)與招致執法的資產 (廣告帳戶、付款方式)同在一個 BM,一次處罰就同時失去兩者。標準做法:拆成兩個 BM、以資產共享銜接—— 可棄置的一層即使被封,重建時不動耐久層。
Decided 4 Aug 2026. BM1 holds Page, Instagram, domain verification and portfolio, and never runs ads. BM2 (UK entity) holds ad accounts and payment. The vendor keeps the pixel and shares it into BM2 — my call, judging an established vendor BM more likely to survive review than a new BM with no history. I can state the cost: the single point of failure moved off our infrastructure onto a commercial relationship. 2026-08-04 定案。BM1 持有專頁、Instagram、網域驗證與資產組合,永不投放。 BM2(英國實體)持有廣告帳戶與付款。供應商保留像素並共享至 BM2——這是我的 決定:老牌供應商 BM 比毫無歷史的新 BM 更可能通過審查。代價我說得清楚:單點故障從我們的基礎設施, 轉移到了一段商業關係上。
Running purchased ad accounts through isolated browser profiles and proxies — practice solid, theory not yet.以隔離瀏覽器設定檔與代理運行購入的廣告帳戶——實務穩定,理論未足。
Platforms correlate accounts via device and network entropy: canvas/WebGL fingerprints, font and timezone sets, IP reputation and ASN class. Anti-detect browsers give each account a distinct, persistent fingerprint and its own proxy. The key insight to study: fingerprint isolation is only one linking surface — shared payment instruments, pixels, domains and people also join accounts, and no browser setting touches those. 平台以設備與網路熵關聯帳戶:canvas/WebGL 指紋、字體與時區組合、IP 信譽與 ASN 類型。 指紋瀏覽器讓每個帳戶擁有獨立且持久的指紋與專屬代理。需要深讀的關鍵:指紋隔離只是關聯面之一—— 共用的付款方式、像素、網域與人員同樣會把帳戶連起來,而這些是任何瀏覽器設定都碰不到的。
My manager buys Meta and Google accounts through vendors. From there it is mine: each account runs in its own AdsPower profile over my own VPNs — one identity per profile, sessions never cross. 主管透過供應商購入 Meta 與 Google 帳戶。之後全歸我管:每個帳戶在專屬的 AdsPower 設定檔內運行,走我自己的 VPN——一個身分一個設定檔,工作階段互不交叉。
What gets a broker banned — which is mostly not what the ad says.經紀商被封的原因——多數與廣告文案無關。
Regulated financial products are a restricted category: the advertiser must be licensed in the target jurisdiction and verified with the platform before delivery. The decisive point: platforms classify by the product actually sold — landing page, licence, business model — not by whether the copy uses the word. 受監管金融產品屬受限類別:廣告主須持有目標轄區牌照並通過平台驗證,廣告才能投放。 決定性的一點:平台按實際銷售的產品分類——看落地頁、牌照、商業模式——而不是看文案有沒有寫那個詞。
India is gated behind SEBI registration, which we lack — neither the UK nor Vietnam side unlocks it. That fact alone is why Adsterra leads the launch: it accepts forex/CFD where Meta and Google do not. I maintain the live flag list — Meta SEBI verification, restricted financial products, RBI/FEMA offshore-forex exposure, CFD ad rules, FCA-vs-Mauritius-FSC naming, Inter Milan co-branding. Six flags, all open, all blocking spend. 印度的門檻是 SEBI 註冊,我們沒有——英國或越南實體都解不開。單這一點就決定了 以 Adsterra 打頭陣:它接受外匯/差價合約廣告,Meta 與 Google 不接受。我維護著開放中的 合規合規風險清單——Meta SEBI 驗證、受限金融產品、RBI/FEMA 離岸外匯風險、CFD 廣告規則、FCA 與毛里裘斯 FSC 的 監管方名稱問題、國際米蘭聯名素材。六項合規風險,全部未解決,全部擋著開銷。
Structuring what is promised so it survives review — and using one offer as a diagnostic.設計承諾內容使其通過審查——並用其中一個優惠作為診斷工具。
Financial promotion rules treat inducements (bonuses, prizes) and outcome claims as the highest-risk copy classes. Separately: when an ad is rejected, two explanations are confounded — offer or advertiser. Standard practice is to construct a case that removes one variable so the other becomes readable. 金融推廣規則把誘因(贈金、獎品)與成果承諾視為最高風險的文案類別。另一件事:廣告被拒時, 「優惠有問題」與「廣告主有問題」兩種解釋混在一起。標準做法是構造一個去掉其中一個變因的案例,讓另一個變得可讀。
Three sets: 50% Deposit Bonus, Trading Bonanza (prize tiers), E-Book Resources. Set 3 carries no inducement at all — no bonus, no prize, no deposit ask — so it tests first on any platform that rejected the others: if it passes, the problem was the offer; if not, it's us. Conventions I enforce: rewards are earned via verified deposit + volume, never chance — "win / luck / prize draw" and casino visuals banned; the product type is never named in marketing copy. 三個組合:50% 入金贈金、Trading Bonanza(獎品階梯)、電子書資源。組合三完全沒有誘因—— 無贈金、無獎品、不要求入金——所以凡是拒過前兩者的平台,先測它:過了,問題在優惠;不過,問題在我們。 我執行的文案鐵律:獎勵是憑已驗證的入金與交易量賺得的,絕不以運氣包裝—— 「贏/好運/抽獎」與賭場視覺全面禁用;行銷文案永不點名產品類型。
One self-contained brief per campaign, and a QC pass that catches what the eye does not.每個活動一份獨立完整的設計簡報,加一道肉眼看不出的驗收。
Restate a requirement in several documents and the copies drift until nobody knows which is current. The structural fix: exactly one artefact is authoritative; everything else links to it. The second half is acceptance testing — checking delivered work against measurable spec, not against whether it looks right. 同一需求寫進多份文件,版本就會漂移到沒人知道哪份是現行的。結構性解法:只有一份文件具權威性, 其餘一律鏈接、不轉述。後半段是驗收測試——按可成效追蹤的規格核對交付物,而不是看「順不順眼」。
Project standard, set by me: every designer deliverable is one self-contained HTML — brief on top, full wireframe below, no external assets. The Creative Hub links to it so it cannot drift. My QC on the 26 delivered assets found: a push icon at 94×94 against a 192 minimum (filename claimed 192), both landscape creatives missing the risk warning, and a tagline reading "Instantly Doubled" — false at a 50% match. 由我定下的專案標準:每份設計交付物是一個獨立完整的 HTML 檔——簡報在上、 完整線框圖在下、零外部資源。Creative Hub 只鏈接、不轉述,杜絕漂移。我對 26 件交付素材的驗收查出: 推播圖標 94×94,低於 192 下限(檔名卻寫 192);兩張橫幅素材完全缺失風險警示; 一句「Instantly Doubled」的標語——在 50% 配比下是不實陳述。
Two independent measurement systems, deliberately not merged — I design and verify, dev implements.兩套刻意不合併的獨立追蹤數據系統——我設計並驗收,開發負責建置。
Two questions get conflated. Did this click convert? — answered by round-tripping an opaque click ID from network through landing page to backend, then firing a postback. Where did this customer come from? — answered by your own campaign tags in your own CRM. Separate systems that may share an ID. And separately: billing model and measurement are independent layers — paying per click does not prevent tracking conversions. 兩個問題常被混為一談。「這次點擊轉換了嗎?」——由一個不透明的點擊 ID 從廣告網路經落地頁到後端 走一圈、再回傳(postback)來回答。「這位客戶從哪來?」——由你自己的活動標籤在你自己的 CRM 裡回答。 兩套系統,可共用一個 ID 作對照。另外:計費模式與成效追蹤是獨立的兩層——按點擊付費不妨礙追蹤轉換。
Adsterra S2S is specified against ##SUB_ID_SHORT(action)## with placement
and banner tokens for per-placement/per-creative breakdown; our own lead_source/UTM scheme feeds the CRM
independently. On Meta, server-side CAPI into Ultima's backend is mandatory: our ads are
a control cell benchmarking the vendor, and the vendor's pixel cannot be the scoreboard for that. The CRM
arbitrates when numbers disagree.
Adsterra 的 S2S 以 ##SUB_ID_SHORT(action)## 定規格,配 placement 與 banner
代碼做分版位、分素材的拆解;我們自己的 lead_source/UTM 體系獨立餵入 CRM。在 Meta 側,
伺服器端 CAPI 回傳至 Ultima 自有後端是強制項:我們的廣告是評核供應商的對照組,
供應商的像素不能兼任計分板。數字不一致時,以 CRM 為仲裁。
One decision made against a long funnel, with the re-test trigger written down in advance.面對長漏斗做的一個決定,且預先寫明了重測條件。
Short conversion flows suit per-click/per-action pricing; long flows are usually bought on impressions, because the network cannot optimise toward an event it rarely observes. The discipline: commit in advance to the metric that judges the choice, and the condition that reverses it. 短轉換流程適合按點擊/按行動計費;長流程通常按曝光採買——因為廣告網路無法向一個它很少 觀測到的事件做優化。紀律在於:預先鎖定評判這個選擇的指標,以及推翻它的條件。
Adsterra advises CPM for long funnels; ours is long (KYC → deposit → trade). I kept CPC anyway, judged on cost per registration — with the trigger pre-committed: thin registrations after the 5–7 day test → re-test on CPM. Social Bar leads; Popunder runs CPM because it cannot run CPC at all. Adsterra 官方建議長漏斗用 CPM;我們的漏斗確實長(KYC → 入金 → 交易)。我仍選 CPC,以每註冊成本為評判——並預先寫明條件:5–7 天測試後若註冊量偏薄, 改測 CPM。Social Bar 打頭陣;Popunder 走 CPM,因為它根本不支援 CPC。
Keeping tests readable — and accepting, on the record, where they are not.讓測試結果可解讀——並把無法乾淨解讀之處記錄在案。
If two things change between variants, neither result attributes. Hold everything constant but the thing under test — and when a constraint makes that impossible, say so explicitly rather than read the result as clean. 兩個變體之間若同時改了兩件事,結果就無法歸因。除受測項外全部固定——當客觀限制做不到時, 明說,而不是把結果當乾淨數據來讀。
Within each set the platform CTA is held constant across taglines A/B/C — varying it would turn a tagline test into a tagline-and-CTA test. CTA gets its own experiment, tagline fixed. Where I could not keep it clean, it is documented: both sets run the same four Adsterra formats, so offer and format vary together — mitigated by attributing on ad name, and the trade-off is written down as accepted. 每個組合內,平台 CTA 在 A/B/C 三句標語間保持恆定——否則標語測試就變成 「標語+CTA」測試。CTA 另開實驗、標語固定。無法保持乾淨之處也已記錄:兩個組合跑同樣四種 Adsterra 格式, 優惠與格式因此一起變動——緩解方式是按廣告名稱歸因,且這個取捨白紙黑字寫明為「已接受」。
Getting unreleased, non-public-safe creative to an external designer without publishing it.把未發布、不宜公開的素材交給外部設計師,而不等於公開它。
Instead of trusting a secret URL, every request authenticates at the network edge before anything is served. The static-hosting trap: platforms keep every past deployment permanently reachable at its own hashed subdomain — gate only the main domain and every previous build stays wide open. 與其信任一條祕密網址,不如讓每個請求先在網路邊緣通過身分驗證。靜態託管的陷阱: 平台會讓每一次歷史部署永久可達,各有雜湊子網域——只鎖主網域,等於把所有舊版本敞開著。
The Creative Hub runs behind Cloudflare Access, policy covering the apex and the wildcard subdomain — the wildcard being the part that matters. A pre-deploy script refuses to publish if sensitive terms are present, and verifies the gate is actually responding first. The material earns the gating: regulator naming, the open flag list, partner co-branding, an unsigned withdrawal claim. Creative Hub 部署在 Cloudflare Access 之後,策略同時覆蓋主網域與 萬用字元子網域——後者才是關鍵。部署前腳本會在偵測到敏感詞時拒絕發布,並先確認閘門真的在響應。 這些素材值得上鎖:監管方名稱、未解決的合規風險清單、合作夥伴聯名、未審批的出金宣稱。
Deliberately not mine to build. Recorded so the division of labour is legible.刻意不由我來建。記錄在此,讓分工清晰可讀。
The page receiving paid traffic is where offer, compliance and measurement meet. Someone owns its content, claims and event definitions; someone else builds and hosts it. Confusing the two roles is how tracking ships broken. 承接付費流量的頁面,是優惠、合規與成效追蹤的交會點。內容、宣稱與事件定義須有人負責; 建置與託管由另一人負責。混淆這兩個角色,就是追蹤帶病上線的原因。
Mine: plan the content, write the designer brief, test the LP, specify and verify tracking. Dev's: build the page, install the CRM, wire the postback. Current honest constraint on everything: nothing is live — no public URLs, which blocks Adsterra submission and conversion tracking simultaneously. 我的:規劃內容、寫設計簡報、測試落地頁、定義並驗收追蹤。 開發的:建頁面、裝 CRM、接回傳。當前對一切的誠實約束:還沒有東西上線—— 沒有公開網址,Adsterra 送審與轉換追蹤因此同時被擋。
Ultima Edu Center · 教育中心
Both readers兩類讀者A trading-education platform and community, built and running. Closer to a one-man band: manager for feature direction, writers and designers for final touch, company tech for domains — the rest is mine: product definition, IA, design system, accessibility, auth model, build tooling and both language editions. 交易教育平台與社群,已建成並運行。接近一人樂隊:主管給功能方向,寫手與設計師做最後潤飾, 公司 IT負責網域——其餘皆由我負責:產品定義、資訊架構、設計系統、Accessibility、登入與身分驗證、 建置工具與雙語版本。
Two user types with opposite tolerances, sharing one system.兩種容忍度相反的用戶,共用一套系統。
When one platform serves audiences with genuinely different contexts, designing for their average fails both. The workable pattern: a shared design system with deliberately different density per surface — same components, tuned differently. 同一平台服務語境迥異的兩群人時,為「平均值」設計會兩頭落空。可行模式:共用一套設計系統, 但各介面刻意採用不同密度——同樣的元件,不同的調校。
Students — retail beginners, evenings on mobile, short sessions, zero tolerance for jargon. Partner admins (IBs) — at a desk, scanning tables, checking referral numbers. The rule I hold design to: the CRM may be dense; the student UX may not. Stated as a principle so it survives individual design arguments. 學員——散戶新手,晚間手機、短時段使用,對術語零容忍。 合作夥伴管理員(IB)——桌面環境,掃表格、查轉介數據。我為設計立的規矩: CRM 可以密,學員介面不可以。寫成原則,才扛得住一次次的設計爭論。
Education as lead nurture and partner retention, gated on a deposit event.教育作為培育潛在客戶、留住夥伴的工具,門檻設在入金。
Free content acquires and qualifies; a defined tier boundary converts. The design question is which capability sits on which side, and what event moves a user across. Done well, education is not a cost centre beside the business but an acquisition and retention surface for it. 免費內容負責獲客與篩選;明確的層級邊界負責轉換。設計問題在於:哪個能力放在邊界哪一側、 哪個事件讓用戶跨過去。做得好,教育不是主業旁邊的成本中心,而是它的獲客與留存介面。
Three tiers — Visitor, Registered, Active Client. Courses, webinars, community are open; advanced analyst material unlocks on deposit. The same platform doubles as partner retention: IBs get a CRM view of their referred members' progress — a reason to keep their clients engaged. 三個層級——訪客、已註冊、活躍客戶。課程、講座、社群開放; 專業分析師的進階內容以入金解鎖。同一平台兼作夥伴留存:IB 可在 CRM 中查看 所轉介成員的學習進度——這給了他們持續維繫客戶的理由。
An approved framework that outranks the site, and a phased rollout.一份效力高於網站本身的核准框架,並分階段上線。
In a regulated business, approved copy is a compliance artefact, not a preference. Holding it in a versioned framework outside the codebase means the site is checked against the framework — not the framework reverse-engineered from whatever shipped. Phasing limits how much must be right at once. 在受監管行業,核准文案是合規文件,不是偏好。把它放在程式碼庫之外、有版本的框架裡, 意味著網站要對照框架檢查——而不是從上線內容反推框架。分階段則限制了「一次必須全對」的範圍。
The Context Framework workbook (now V2) is the authority: site map, access tiers, per-section structure with edit permissions, approved copy, and a four-phase rollout — Webinars, Courses, Community + Reports, full site. Site changes must align; when a new version lands, the site follows. Context Framework 工作簿(現為 V2)是權威:站點地圖、存取層級、逐區塊結構與編輯權限、 核准文案,以及四階段上線——講座、課程、社群+報告、全站。網站改動必須對齊;框架出新版,網站跟進。
Tokens, two shipping themes, and a structural debt I have named myself.設計變數、兩個正式主題,以及一筆我自己記下的結構性技術債。
Naming every visual decision as a variable lets a whole theme swap by changing one root attribute. The detail people miss: theme must resolve from storage in a blocking script before first paint, or the page flashes the wrong theme. 把每個視覺決定命名為變數,整個主題就能靠改一個根屬性切換。常被忽略的細節: 必須在首次繪製之前,用阻塞式腳本從儲存讀回主題,否則頁面會先閃錯誤主題。
A full token set — surface/text/border ramps, the lime family, radius, easing, an 85px
nav, fluid padding clamp(20px, 7.8vw, 150px). Light and dark are both shipping
themes, persisted, anti-flash script in head. Everything holds in EN and ZH.
完整的變數組——表面/文字/邊框階梯、萊姆色系、圓角、緩動、85px 導航列、
流體邊距 clamp(20px, 7.8vw, 150px)。亮暗兩個主題皆為上線主題、可持久化、
head 內有防閃爍腳本。中英雙語下版式皆成立。
A measured standard — including one place the brand loses to it, and one place it does not.一個可成效追蹤的標準——包括品牌讓步的一處,與品牌不讓步的一處。
A measurable standard: 4.5:1 body text, keyboard reachability with visible focus, honouring reduced-motion. Measurable is the operative word — it settles arguments taste cannot. 可成效追蹤的標準:正文對比 4.5:1、鍵盤可達且焦點可見、尊重減少動態偏好。 「可成效追蹤」是關鍵——它能了結品味了結不了的爭論。
Ultima's lime fails on white, so it is never text on light backgrounds —
--lime-ink #5c7a00 carries display text, --lime-text #4a6800 small text on
tinted panels. A tertiary token measured 2.26:1 and was raised until it passed;
gradient-clipped text was removed as unmeasurable. One deliberate exception: the homepage hero accent
keeps raw lime in both themes — an owner decision, recorded as an exception, not an oversight.
Ultima 的萊姆色在白底上不合格,因此淺色主題絕不用它做文字——展示文字用
--lime-ink #5c7a00,色塊上的小字用 --lime-text #4a6800。一個三級文字變數量出
2.26:1,逐步調高至合格;漸層裁切文字因無法成效追蹤而全數移除。一個刻意的例外:
首頁主視覺強調色在兩個主題中保留原生萊姆——業主決定,記錄為例外,而非疏漏。
Knowing which stored value actually decides access — and why the other cannot.分清哪個儲存值真正決定存取權——以及另一個為何不能。
Anything in the browser is under the user's control, so nothing there can be an access decision. Authorisation is enforced where the data lives — row-level policies evaluating the caller's verified identity on every query. Client state is, at most, a cache of what to render. 瀏覽器裡的一切都在用戶掌控之下,因此那裡的任何東西都不能充當存取決策。授權必須在資料 所在之處強制執行——資料列層級權限在每次查詢時核驗呼叫者的已驗證身分。客戶端狀態至多是「該渲染什麼」的快取。
Two browser keys, one authoritative. ua_session holds real tokens and
decides. ua_auth is a display mirror — writing to it logs nobody in, because
RLS is enforced server-side and a forged mirror gets nothing back. Documented as a trap: the mirror
survived from the prototype era and still looks like the source of truth. Sign-out goes through the
client's call — deleting the mirror clears the display and leaves the real session alive.
瀏覽器裡兩把鑰匙,只有一把具權威性。ua_session 存真權杖、做決定。
ua_auth 是顯示用快取——往裡寫任何東西都登入不了誰,因為 RLS 在伺服器端強制執行,
偽造的鏡像從資料庫拿不回任何東西。已寫明這是陷阱:鏡像從原型時代留存至今,看起來仍像事實來源。
登出必須走客戶端的登出呼叫——只刪鏡像會清掉顯示,真正的 session 仍然活著。
Real accounts on managed infrastructure. Live, and early.託管服務上的真實帳戶。已上線,尚屬早期。
Managed platforms supply auth, database and row-level policies without a server to operate. The discipline keeping that honest: migrations — schema changes as numbered files in the repo, so any environment rebuilds by replaying them in order. 託管平台提供身分驗證、資料庫與資料列層級權限,無須自運維伺服器。讓這件事保持誠實的紀律是 遷移(migrations):結構變更是版本庫中按序編號的檔案,任何環境都能按序重放重建。
Supabase since 29 Jul 2026, real accounts — sign-up creates an actual user, no mock success state. Four migrations versioned in the repo. Keyed to the work account, deliberately not a personal one. 2026-07-29 起採用 Supabase,真實帳戶——註冊即建立真正的用戶,沒有假的成功畫面。 四個遷移檔在版本庫中管理。綁定工作帳號,刻意不用個人帳號。
A generator that keeps hand-written source separate from produced output.一個讓手寫原始檔與產出結果嚴格分開的產生器。
Editing generated output guarantees the edit is destroyed on the next build. The rule is absolute: one direction is authored, the other produced. A build that copies its own dependencies into the output makes it portable to any host without path rewriting. 直接改產出的檔案,等於保證下次建置時被覆蓋。規則是絕對的:一邊是手寫的,另一邊是產出的。 建置時把依賴一併複製進輸出,產物就能搬到任何主機而無須改路徑。
Edit site/, run the generator, never touch output. It injects the auth CSS,
patches the login modal to the real client, appends the auth script, builds the CRM page from scratch, and
copies assets in — the result deploys anywhere as-is.
改 site/,跑產生器,絕不碰輸出。它注入驗證樣式、把登入彈窗接到真實客戶端、
附加驗證腳本、從零生成 CRM 頁,並把資源一併複製——產物原樣即可部署到任何地方。
A regulatory requirement that reached into the domain and the product name.一個一路影響到網域與產品名稱的監管要求。
Educational content on the regulated entity's domain can be read as promotion by that entity. Separating the estates keeps the education product from inheriting the broker's promotional constraints — and the boundary must be real, at domain level, not merely a different page. 教育內容若放在受監管實體的網域上,可能被視為該實體的推廣行為。分離兩個資產域, 教育產品才不會繼承經紀商的推廣限制——而且邊界必須是真的,落在網域層級,不能只是另一個頁面。
The product moved to its own purchased domain and was renamed (30 Jul 2026) to match. The execution detail worth noting: three things deliberately keep the old name — repo, internal preview host, one reference PDF — because renaming them breaks a deploy target or a real filename for no gain. Every user-facing string changed; the logo raster still carries the old name, recorded as an open item. 產品遷至公司購入的獨立網域,並於 2026-07-30 隨之改名。值得一提的執行細節: 三處刻意保留舊名——版本庫、內部預覽主機、一份參考 PDF——因為改了只會弄壞部署目標或真實檔名,毫無收益。 所有用戶可見的字串都改了;標誌圖檔仍是舊名,已記錄為未結項。
A maintained ledger of what is real and what is a demo.一份持續維護的功能實現狀況對照表。
High-fidelity prototypes are designed to be believed — which is what makes them dangerous: stakeholders commit budget against behaviour that does not exist. A maintained ledger of real vs mock vs absent is what keeps a convincing demo from becoming an accidental promise. 高保真原型生來就是要讓人相信的——這正是它危險之處:利益相關者會為不存在的功能投入預算。 一份持續維護的「真實/模擬/未建」對照表,能防止一個有說服力的示範變成一個意外的承諾。
A standing table records it feature by feature. Functional: theme toggle, language switch, Supabase login, real registration, auth-gated transforms, community tabs, CRM search/filter/rows. Mock data: course progress. Not built: report downloads, webinar registration, forum posting, feed, KOL sessions, email — all popups or login prompts. 一張常設表逐項記錄。真功能:主題切換、語言切換、Supabase 登入、 真實註冊、登入後介面變換、社群分頁、CRM 搜尋/篩選/展開列。模擬數據:課程進度。 未建:報告下載、講座報名、論壇發文、動態、KOL 直播、郵件通知——皆為彈窗或登入提示。
Coverage vs headcount崗位覆蓋與人力對比
For management給管理層The 20 fields are not 20 jobs. Grouped by the way the market actually hires, they fall into twelve role surfaces. This tab counts them, and states what a conventionally staffed team would allocate to the same ground. 20 個欄位並不等於 20 份工作。按市場實際的招聘方式歸類,它們落入 十二個崗位。本頁清點這些崗位,並列出標準編制下同樣範圍會配置多少人力。
What this is and is not claiming本頁主張什麼、不主張什麼
The claim is coverage, not seniority. It says these twelve surfaces have no one else holding them — not that each is held at the depth a dedicated specialist would bring. The depth profile on the Overview tab is the honest counterweight: one field is marked Thin, one is a boundary I do not hold at all, and one I specify rather than build. 本頁主張的是「覆蓋」,不是「資歷」。它說的是這十二個崗位沒有其他人在承擔—— 不是說每一面都達到專職專家的深度。總覽頁的掌握程度是誠實的對照:一個欄位標為待補強,一個是我完全不承擔的界線, 還有一個由我定規格而非由我建置。
Support is real, and it is execution, not ownership. One manager gives direction, two to three writers do copy passes, three designers execute artwork and visual polish, company tech buys and verifies domains, the dev team builds the India landing pages. They work inside these surfaces; none of them holds one. That distinction is what makes the count above true rather than flattering. 協助是真實的,但那是執行,不是負責。一位主管給方向、2–3 名寫手做文字潤飾、 3 名設計師執行素材與視覺、公司 IT購買並驗證網域、開發團隊建置印度落地頁。他們在這些崗位之內工作—— 但沒有人「持有」其中任何一面。正是這個區別,讓上面的數字站得住腳,而不只是好聽。
The ≈8 FTE figure is my estimate, not an industry benchmark. It assumes each surface staffed the way a broker running paid acquisition alongside an education platform would conventionally separate them, with part-time allocations where the function is normally shared. Easiest way to test it: read the twelve role names against our own org chart and count how many are separate people there. 「約 8 名全職」是我的估算,不是行業基準。它假設每個崗位按常規方式分工—— 一家同時經營付費獲客與教育平台的經紀商通常會怎麼拆——並對通常共用的職能給予部分工時。最簡單的驗證方式: 拿這十二個職能名稱對照我們自己的組織圖,數一數其中有幾個在那裡是獨立的人。
The AI question — met head onAI 這個問題,正面回答
"It's 2026. AI means one person can cover more ground — this is just what we should expect now." 「現在是 2026 年,有了 AI,一個人本來就應該做得更多——這是應該的。」
Half of that is true, and this page shows exactly which half. The Edu Center build is the clearest case: twelve bilingual pages, a code generator, an auth layer, a partner CRM. Before AI that is a small team and a quarter. With it, one person and weeks. Those same fields are rated Working, not Practised, on the Overview tab — conceded in my own ratings before anyone asked. 這句話有一半是對的,而本頁正好顯示對的是哪一半。Edu Center 的建置最明顯: 12 個雙語頁面、一個產生器、一層登入驗證、一個夥伴 CRM。在 AI 之前,這是一個小團隊加一季的工作量; 有 AI 之後,是一個人加幾個星期。而總覽頁上,這幾個欄位我自己評的是上手,不是熟練—— 在有人質疑之前,我已經先承認了。
The other half is where the asymmetry sits. AI produces confident output whether or not it is correct. That a delivered push icon was 94×94 against a 192 minimum, that both landscape creatives shipped with no risk warning, that "Instantly Doubled" is a false claim at a 50% match — none of that surfaces unless the person driving already knows the spec. AI did not tell me India is gated behind SEBI, that letting the vendor hold the pixel creates a measurement conflict with the ads meant to benchmark that vendor, or that removing "CFD" from a risk line changes neither the disclosure obligation nor platform eligibility. Asked the wrong way, it will agree with you. 另一半,正是關鍵的不對稱。AI 無論對錯,給出的答案都同樣有信心。 交來的推播圖標是 94×94、低於 192 下限;兩張橫幅素材完全沒有風險警示;「Instantly Doubled」在 50% 配比下 是不實陳述——這些沒有一項會自己浮現,除非用的人本來就知道規格。AI 沒有告訴我印度卡在 SEBI 註冊、 沒有告訴我讓供應商持有像素會與「用來評核該供應商的廣告」產生數據衝突、也沒有告訴我把「CFD」從風險警示拿掉, 既不改變披露義務、也不改變平台分類。問法偏一點,它就會順著你說。
So the multiplier is conditional on the operator. For someone who can specify the work and audit the result, AI raises output. For someone who cannot, it raises the rate at which unverified work ships — which in a regulated business is the expensive failure, not the cheap one. "Everyone has AI" is true the way "everyone has Excel" is true; the distribution of outcomes was never flat. 所以這個倍數效果,取決於用的人。對於懂得定規格、也懂得驗收結果的人, AI 會放大產出;對於不懂的人,AI 放大的是「未經核實的東西上線的速度」——在受監管的行業, 這是昂貴的那種失誤,不是便宜的那種。「人人都有 AI」這句話,跟「人人都有 Excel」一樣真; 而結果的分佈,從來就不是平的。
What this page therefore claims. Not that AI is irrelevant — it is central, and using it well is itself a competency, one I would put in the Practised column. The claim is narrower and harder to dismiss: AI compressed the building. It did not compress the judgment — and the twelve surfaces above are made of judgment. 因此本頁主張的是:不是說 AI 不重要——它非常重要,而且「懂得用 AI」 本身就是一項能力,這一項我會放在「熟練」。本頁的主張更窄,也更難反駁:AI 壓縮的是建置,不是判斷—— 而上面那十二個崗位,本質上是由判斷組成的。
The gaps不足之處
For me給我自己The honest list, unsoftened — the section that makes the rest of the page worth trusting. 誠實清單,不加修飾——正是這一節,讓整頁其餘內容值得信任。
Account-linking mechanics帳戶關聯機制
I run isolated profiles daily but cannot rank which signals drive a correlation ban — so I cannot tell a working precaution from one that only feels safe. Highest-value read on this list. 隔離設定檔天天在用,卻排不出哪些訊號真正觸發關聯封號——因此分不清有效防範與心理安慰。 本清單裡最值得補的一課。
Nothing has spent一分錢未花
Every media-buying and experiment decision on UM India is pre-contact: reasoned, none tested against real delivery. 印度市場所有媒體採買與實驗設計的決定都未經實戰:推理成立,皆未接受真實投放檢驗。
BM1 has one adminBM1 僅一名管理員
A restriction on that single Vietnam profile orphans the Page and domain verification. Two-minute fix, open since the architecture was decided. 那個越南個人帳號一旦受限,專頁與網域驗證即成孤兒。兩分鐘能修好,自架構定案起懸置至今。
Design tokens duplicated設計變數重複散落
Copied into every page instead of extracted. Works today, drifts silently, gets costlier with each page added. 複製在每個頁面裡而非抽出共用。今天能用,靜默漂移,每加一頁成本更高。
Backend depth is shallow後端深度待補強
Four migrations, one cutover. No rollback, no schema change on live data, no incident — the parts I have not met are the parts that teach. 四個遷移、一次切換。沒回滾過、沒對線上資料改過結構、沒處理過事故——沒遇過的,才是教人的。