Take the user from "I want to make money" to "has a clear profile and can start looking for opportunities," all in ≤ 5 minutes.
Cross-platform notes (one-time, not repeated below)
Below, ../../shared-references/、../../templates/ refers to the repo / Claude Code path;Under a Codex install, instead read the current skill directory's references/、templates/(install-codex.sh has been symlinked in).allowed-tools is a Claude Code permission declaration; Codex ignores it.
Design philosophy (must be agreed with first)
The difference of this toolset isn't "listing side gigs," it'santi-fraud + personalization + real-time verification. So the goal of init isn't to give opportunities, but first to establish the premise that "usable = usable for you": without a profile, any opportunity is empty talk.
Overview
[用户首次说"我想搞钱"]
↓
[Phase 0: 检测 .money-state.json 是否存在]
↓
[Phase 1: 首屏文案 —— 期望管理 + 反诈承诺]
↓
[Phase 2: 5 个画像问题(一次问完,允许"不知道")]
↓
[Phase 3: 写入 .money-state.json]
↓
[Phase 4: 给"下一步说什么"清单]
Phase 0 — Detect state
test -f .money-state.json && echo EXISTS || echo MISSING
- Already exists: tell the user it's already initialized, ask whether to update the profile (updates go through Edit), otherwise route to
money-status。 - Doesn't exist: continue.
Phase 1 — First-screen copy (convey these points as-is)
- This tool won't give you "get-rich-with-no-effort projects." Real money comes fromreal clients paying for output you produce with AI。
- I'll do three things others don't: ① match based on your situation, no generic lists ② check every opportunity online in real time and screen it against anti-fraud red lines ③ give you a path to "validate at low cost whether you can receive your first payment."
- Early on it's usually "trade time for small money + build a portfolio + build reputation," not immediate money. If you agree, let's continue.
Phase 2 — Profile 6 questions (asked all at once)
- What skills do you already have?(Writing/design/video/programming/foreign languages/sales/accounting/no obvious skills…) AI is an efficiency booster; your foundation determines what you can take on.
- About how many hours per week can you invest?
- Starting capital?(Strongly recommend starting with zero-cost opportunities — anything that "requires paying first" will be eliminated by anti-fraud screening)
- Your region / primary language?(Default is mainland China + Chinese; this affects platforms and whether to go overseas)
- Can/willing to show your face on camera?(Determines the feasible range of content-type opportunities)
- Goals + willing to learn new things?(Just want to earn a little extra / want to build it into a side-business career; willing to learn programming, do SEO, and other things requiring sustained investment) → used to determine tier.
Allow the user to answer "not sure," record it as null, and money-find will later use a broader range.
Phase 2.5 — Tier identification (new, key)
Read ../../shared-references/user-tiers.md, and based on "skills × resources × goals" classify the user into T0/T1/T2/T3 one tier:
- Has transferable expertise (medical/legal/financial, etc.) + can use AI → leans toward T3
- Can program or is willing to learn programming to build things → T2
- Skilled at using AI tools, has aesthetics/expression → T1
- No obvious skills, wants to earn a little extra → T0
When unsurego low, not high. After decidingClearly tell the user which tier they were judged into and why, and say "you know yourself better than I do, so you can change it." Put
tier+tier_reasoninto state.
Phase 3 — Write the state file
Read ../../templates/money-state.template.json, fill in the answers (including tier/tier_reason),created_at use today's date, write to the .money-state.jsonin the current working directory. Delete the example items in opportunities.
Phase 4 — Next-step checklist
Tell the user they can now say:
- "Help me find opportunities" → go to
money-find(real-time search based on your profile + anti-fraud screening) - "Check whether project XX is legit" → go to
money-verify(directly verify a specific opportunity) - "My current status" → go to
money-status