🌐 WildIdea — Wild Ideas
Core Philosophy
V5 Path (enforced): Input → Juxtapose → Find nails → Output counterparts
nails = a specific operation/rule/physical constraint, must include a number/event/boundary counterparts = a specific existing product/technology/feature name Zero abstraction between nail and counterpart.
The fundamental trap of earlier versions: every piece of "analysis" / "abstraction" / "translation" between the remote domain and the user domain is contaminated by your own thinking framework. The cure: don't think. Just juxtapose.
Source Architecture
| Channel | Count | Reference |
|---------|-------|-----------|
| 🔵 Pre-built remote domains | 3 | references/paradigms.md (17 domains, prefer 7.9-7.17) |
| 🟢 Seed library (random) | 2 | scripts/pick_seed.py (Mao Zedong quotes → abstract structure) |
| 🟠 Random char + web search | 1 | scripts/search_char.py (500-character pool → Tavily search → real domain) |
| 🔍 Web verification | — | Tavily API via curl |
Nail Rules
| ✅ Is a nail | ❌ Not a nail | |-------------|---------------| | "Bees: 75ms wing flutter = 1km distance" (concrete number) | "Bee communication is efficient" (analysis/summary) | | "One lamb skin = 3-4 folio pages of parchment" (physical constraint) | "Copying is a form of cultivation" (abstract idea) | | "Drone bee dies immediately after mating" (concrete event) | "Expendable male roles in insect society" (concept label) | | "Shackleton abandoned all equipment to save crew" (concrete decision) | "People over assets in crisis leadership" (abstract interpretation) |
Counterpart Rules
| ✅ Is a counterpart | ❌ Not a counterpart | |-------------------|---------------------| | Concrete tech/product/feature name — "iPhone Live Photos", "VSCode debugger", "Tesla Dog Mode" | Vague concept — "improve experience", "reduce friction", "better UX" |
Core Process
Step 0 — Quarantine the obvious
Step 1 — Inject 3 remote channels
Run all 3 in parallel, output results as-is (no analysis):
- 🔵 Load
references/paradigms.md, pick 3 domains (prefer 7.9-7.17: weirder the better) - 🟢 Run
python3 scripts/pick_seed.py→ get 2 seed texts + abstract tags - 🟠 Run
python3 scripts/search_char.py→ get real search results
Step 2 — Juxtapose → Find nails → Find counterparts
Forbidden: ANY analysis/abstraction/translation between nail and counterpart. No "because", "therefore", "this means", "this implies".
Pick 1 concrete nail from each domain (the most specific operation/event/constraint). Find 1 concrete counterpart from the user's domain.
Step 3 — Output
Table of nail ↔ counterpart. No connecting text between them.
Step 4 — GATES
-
🌪️ Comfort Gate: "Would this get pushback in a product review meeting?"
- "Nah, makes sense" → ❌ Not wild enough. Reroll.
- "WTF... but wait, there's something there" → ✅ Pass.
-
🔍 Web Verification Gate: Search if the counterpart already exists.
- Search terms:
[counterpart name] + [domain] - If a product/patent/media already implements this → 🚫 Ban. Reroll from remaining paradigms.
- Max 3 retries per domain. If all exhausted → 🚫 Skip domain.
- Search terms:
Quality Gates (Hard Constraints)
- At least 3 different source domains
- At least 1 from seed library or random char search
- Pass "remove remote domain test" — if the counterpart still makes sense without its nail source, delete it
- No "it's like XX" soft commentary
- No fabricating search results
- At least 1 output changes the user's problem definition
- Comfort check fail (too reasonable) → Blocked
- Web verification found existing implementation → Reroll
Second Iteration Mode
If user says "reroll" / "iterate" / "go deeper" / "ban and redo":
- Build two-layer quarantine: (a) common answers, (b) all counterpart outputs from previous round
- Reroll all 3 channels (no reusing previous seeds/domains)
- Juxtapose normally, avoiding all banned directions
- Output: simple bold 3-column table. No poster.
Iteration Discipline
- ❌ No returning to banned directions ("rewording")
- ❌ No stopping before user says "deep enough"
- ✅ If user says "expand on #3" → deep-dive that single nail/counterpart relationship
- ✅ If user says "this is too safe" → delete, reroll seed, redo
Scripts
pick_seed.py
Picks 2 random Mao Zedong quotes from a 50-seed pool. Outputs: seed index, seed text, abstract tags. Pitfall: Do NOT pre-filter based on user's question. Random is random.
search_char.py
Picks 2 random Chinese characters, concatenates into a "word", searches via Tavily API. If the search returns a real domain (linguistics, traditional craft, regional industry, etc.) → use it. If search is empty/garbled → skip, note as 🚫. No fabricating.
Web Verification (Tavily)
Use curl + Tavily API to verify counterparts are novel:
curl -s "https://api.tavily.com/search" \
-H "Content-Type: application/json" \
-d '{"api_key": "'"$TAVILY_API_KEY"'", "query": "your search", "search_depth": "basic", "max_results": 5}'
Known Issues
- search_char.py may yield weak results — e.g. two random chars format a real Chinese word but it's generic. Label the domain honestly (e.g. "linguistics"). Don't retry or fabricate.
- Web verification loop may exhaust all paradigms — Max 3 retries per domain. Skip honestly.
- Comfort check is inherently subjective — "Would a VP wince?" If unsure → fail. Better to output fewer items than let a "reasonable" one through.
- do NOT use the domain as a metaphor — "Bee dance is LIKE word of mouth" is contamination.
- do NOT abstract the user's problem — Don't "reframe" or "distill essence." Leave the problem as-is.
Poster Template
For visual output, use templates/poster.html with placeholder substitution.
微信扫一扫