{"id":"3d904cdc-d2f3-412e-b433-4d0eb1e886d2","shortId":"cwHjYQ","kind":"skill","title":"liangyi","tagline":"Full product development pipeline: expert role debates, single-blind review, document generation, and human decision logging. Orchestrates 4 modular skills into a complete idea-to-development flow. Use when starting a new product from scratch. Triggers on \"product workflow\", \"new","description":"# Liangyi — Adversarial Product Workflow v1.0\n\n> **Liangyi** (两仪) /lyahng-ee/ — \"The Two Polarities.\"\n> From the *I Ching* (易经·系辞): \"太极生两仪\" — *The Supreme Ultimate generates\n> the Two Polarities.* In Chinese cosmology, a single unified origin (Taiji)\n> gives rise to two opposing forces (yin and yang), whose productive tension\n> shapes all further complexity.\n>\n> This workflow is built on the same structure: a single product idea generates\n> two opposing expert views, whose structural disagreement you synthesize into\n> your final decision. The tension is the feature.\n\nFull orchestrator for the Liangyi workflow.\nCombines 4 modular skills into a complete flow.\n\n> This skill bundles all reference files in `references/`. No additional\n> configuration is needed to get started.\n\n> **Model compatibility:** This skill runs in Claude Code (Model A = Claude).\n> For the independent challenger (Model B), Gemini is recommended, but any\n> capable LLM works — GPT, Qwen, Doubao, DeepSeek, etc. The key is using a\n> **different provider** so training biases don't overlap. Throughout this\n> document, \"Gemini\" is used as shorthand for \"your chosen Model B.\"\n\n## Quick start\n\n```\n/liangyi\n```\n\nIndividual phases can also be run:\n```\n/liangyi phase0    # Idea refinement\n/liangyi phase1    # Expert brainstorm\n/liangyi phase2    # Cross-validation\n/liangyi phase3    # Document generation\n/liangyi phase4    # Development kickoff\n```\n\nFirst-time setup (optional):\n```\n/liangyi setup\n```\n\nFor standalone use of any module, install them individually:\n- `/expert-debate` — just the brainstorm\n- `/blind-review` — just the review\n- `/doc-generator` — just the documents\n- `/decision-log` — just decision tracking\n\n## Setup (first-time configuration)\n\nWhen invoked with `setup`, guide the user through:\n\n1. **Model B selection**: \"Which LLM will you use as Model B? (Gemini recommended,\n   GPT/Qwen/Doubao/DeepSeek also work)\"\n   - Save choice to `references/config.md`\n\n2. **Skills inventory**: Read `references/skills-registry.md` and ask:\n   - \"These are the default recommended Skills. Do you want to add, replace, or\n     remove any? (Enter to keep defaults)\"\n   - If user has changes, update `references/skills-registry.md`\n\n3. **Quick validation**: Confirm the setup by listing:\n   - Model A: Claude (fixed)\n   - Model B: [user's choice]\n   - Active Skills: [list from registry]\n   - \"Ready to go. Run `/liangyi` to start.\"\n\nSetup is optional — the workflow runs with defaults if skipped.\n\n## Phase 0: Idea capture\n\n1. Ask the user for their raw idea (voice transcript, rough notes, anything)\n2. Generate a Gemini prompt for language refinement:\n\n```\nYou are a prompt refinement specialist. I have a rough product idea description.\nPlease:\n1. Remove filler words, repetition, and verbal tics\n2. Only refine the language — do NOT change my intent or direction\n3. Preserve all specific details and constraints I mentioned\n4. Output a clean, structured description (under 200 words)\n\nMy raw idea: [paste raw idea]\n```\n\nAuto-copy to clipboard:\n```bash\ncat prompts/gemini-phase0.md | pbcopy 2>/dev/null || cat prompts/gemini-phase0.md | xclip -selection clipboard 2>/dev/null || echo \"Prompt saved — please copy manually\"\n```\n\n3. After user provides Gemini's refined version, review it together — confirm\n   nothing was lost in refinement\n4. Save to `idea-raw.md`\n\n## Phase 1: Adversarial expert brainstorm\n\n> Uses the same logic as the standalone `expert-debate` skill.\n\n### 1.0 Select expert role pair\n\nRead `references/expert-roles.md` for recommendations.\nHelp user pick two roles with structural tension. Log to `decision-log.md`:\n\n```markdown\n### [PROCESS] Decision: Expert role assignment\n**Role A (Claude):** [name + why]\n**Role B (Gemini):** [name + why]\n**Tension point:** [where they conflict]\n**What AI can't weigh:** [why this pair matters for *this specific* project]\n```\n\n### 1A: Generate proposal as Role A\n\nFull instructions in `expert-debate` skill. Key points:\n- Adopt persona completely, preserve professional biases\n- Mark conflicts with generic advice explicitly\n- Generate complete proposal with 5 components\n\n### 1B: Generate Gemini prompt for Role B\n\nCreate prompt for a **separate, clean Gemini session**. Auto-copy to clipboard:\n```bash\ncat prompts/gemini-phase1.md | pbcopy 2>/dev/null || cat prompts/gemini-phase1.md | xclip -selection clipboard 2>/dev/null || echo \"Prompt saved — please copy manually\"\n```\n\n**Tell the user:** \"Prompt copied. Open a new Gemini tab (label it 'Role B') and paste.\"\n\n### 1C: Human comparison + decision log\n\nCompare divergence points. Log each decision with the `[PRODUCT]` tag.\nEvery entry must answer: \"Why did I choose this? What couldn't AI weigh?\"\n\n## Phase 2: Cross-validation & fusion\n\n> Uses the same logic as the standalone `blind-review` skill.\n\n### 2A: Claude critique (investor role)\n\nDrop Role A persona. Adopt skeptical investor. Critique the merged proposal:\n- 3 weakest points + hardening suggestions\n- Most likely cause of death\n- Output improved version\n\n### 2B: Single-blind Gemini review\n\nGenerate prompt for a **brand new Gemini session** (label it \"Blind Review\").\nContains ONLY the improved proposal — no original idea, no background.\n\nAuto-copy to clipboard. Tell user which tab to use.\n\nAfter receiving Gemini's response:\n- Compare one-sentence summary vs original intent\n- Classify divergence: None / Minor / Major\n- Log as `[REVIEW]` type (AI-assisted finding, not human decision)\n\n### 2C: Informed re-review (optional)\n\nIf 2B found major divergence, after revision → prompt for the **original**\nGemini session (the one with context) to verify fix didn't drift.\n\n### 2D: Devil's advocate (conditional)\n\n**Trigger:** Claude + Gemini agree with no substantive disagreement.\n**Complexity gate:** Only for core architecture / strategic direction decisions.\nSkip for UI tweaks, copy changes, or well-scoped small features.\n\nIf triggered: hostile critic persona, find assumptions that will fail,\nidentify competitor attack vectors, specify minimum validation requirements.\n\n**Output:** `idea.md` (finalized)\n\n## Phase 3: Document generation\n\n> Uses the same logic as the standalone `doc-generator` skill.\n\nRead `references/doc-templates.md` for templates.\n\n### 3.1: PRD (prd.md)\n\nGenerate full PRD from idea.md.\n\n### 3.1.1: User perspective validation\n\nAI-simulated user reads the PRD. Results logged as `[REVIEW]` type —\nclearly labeled as AI simulation, not human decision.\n\nIf simulated user's understanding diverges from intent → flag before proceeding.\n\n### 3.2: Tech spec (tech-spec.md)\n\nIncluding Skills dispatch table referencing `references/skills-registry.md`.\n\n### 3.3: CLAUDE.md\n\nCode conventions, Git workflow, testing, agent boundaries.\n\n### 3.4: Dev guide (dev-guide.md)\n\nStep-by-step with Skill callouts and human decision point markers.\n\n## Phase 4: Development kickoff\n\n1. Load CLAUDE.md and tech-spec.md into Claude Code\n2. Follow dev-guide.md phase by phase\n3. Log significant decisions with `/decision-log`\n4. For technical dilemmas, use Best Minds instant summon:\n   \"Who in the world knows [domain] best? Answer as that person. Give me a\n   recommendation with conviction, not 'both have pros and cons.'\"\n\n## Output files\n\n| File | Purpose | Reader |\n|------|---------|--------|\n| `idea.md` | Final product concept | You |\n| `prd.md` | Product requirements | You + Claude Code |\n| `tech-spec.md` | Technical architecture | Claude Code |\n| `CLAUDE.md` | Dev conventions | Claude Code |\n| `dev-guide.md` | Operator manual | You |\n| `decision-log.md` | Decision + review record | You / portfolio |\n| `prompts/*.md` | Ready-to-paste Gemini prompts | You → Gemini |\n\n## Session management\n\nThis workflow uses multiple Gemini sessions. Label your browser tabs:\n\n| Tab | Contains | Used in |\n|-----|----------|---------|\n| \"Role B\" | Phase 1 Gemini (knows your idea) | Phase 1B, optionally 2C |\n| \"Blind Review\" | Phase 2 Gemini (no context) | Phase 2B only |\n\nNever paste into the wrong tab — it defeats the single-blind mechanism.\n\n## When to simplify\n\nNot every project needs the full pipeline:\n\n| Situation | What to skip |\n|-----------|-------------|\n| Small feature iteration | Skip Phase 1B. Run expert-debate solo in Claude. |\n| Already have an idea | Skip Phase 0-1. Start at Phase 2 or 3. |\n| Technical prototype | Skip Phase 0-2. Go straight to doc-generator. |\n| Urgent deadline | Only use decision-log throughout. Everything else by instinct. |\n| Quick brainstorm | Just install expert-debate. Skip everything else. |","tags":["liangyi","wenboxia","adversarial-review","agent-skills","claude-code","claude-skill","i-ching","multi-model","product-development","workflow"],"capabilities":["skill","source-wenboxia","skill-liangyi","topic-adversarial-review","topic-agent-skills","topic-claude-code","topic-claude-skill","topic-i-ching","topic-liangyi","topic-multi-model","topic-product-development","topic-workflow"],"categories":["liangyi"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/wenboxia/liangyi/liangyi","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add wenboxia/liangyi","source_repo":"https://github.com/wenboxia/liangyi","install_from":"skills.sh"}},"qualityScore":"0.458","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 16 github stars · SKILL.md body (8,520 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:06:14.497Z","embedding":null,"createdAt":"2026-04-30T01:02:45.337Z","updatedAt":"2026-05-18T19:06:14.497Z","lastSeenAt":"2026-05-18T19:06:14.497Z","tsv":"'-1':1174 '-2':1186 '/blind-review':260 '/decision-log':268,1010 '/dev/null':470,477,633,640 '/doc-generator':264 '/expert-debate':256 '/liangyi':212,219,223,227,232,236,245,364 '/lyahng-ee':51 '0':378,1173,1185 '1':285,381,416,506,991,1108 '1.0':521 '1a':575 '1b':608,1114,1159 '1c':663 '2':306,394,424,469,476,632,639,693,999,1120,1178 '200':452 '2a':709 '2b':738,813,1125 '2c':806,1116 '2d':835 '3':338,436,484,725,891,1005,1180 '3.1':909 '3.1.1':917 '3.2':952 '3.3':962 '3.4':971 '4':20,131,445,501,988,1011 '5':606 'activ':355 'add':323 'addit':147 'adopt':590,718 'adversari':45,507 'advic':600 'advoc':838 'agent':969 'agre':843 'ai':563,690,800,922,936 'ai-assist':799 'ai-simul':921 'alreadi':1167 'also':216,300 'answer':681,1027 'anyth':393 'architectur':853,1061 'ask':312,382 'assign':546 'assist':801 'assumpt':875 'attack':881 'auto':461,624,767 'auto-copi':460,623,766 'b':170,209,287,296,351,553,614,660,1106 'background':765 'bash':465,628 'best':1016,1026 'bias':193,595 'blind':11,706,741,754,1117,1138 'blind-review':705 'boundari':970 'brainstorm':226,259,509,1206 'brand':748 'browser':1099 'built':96 'bundl':140 'callout':981 'capabl':176 'captur':380 'cat':466,471,629,634 'caus':732 'challeng':168 'chang':335,431,862 'chines':70 'ching':58 'choic':303,354 'choos':685 'chosen':207 'classifi':790 'claud':160,164,348,549,710,841,997,1057,1062,1067,1166 'claude.md':963,993,1064 'clean':448,620 'clear':933 'clipboard':464,475,627,638,770 'code':161,964,998,1058,1063,1068 'combin':130 'compar':668,782 'comparison':665 'compat':155 'competitor':880 'complet':25,136,592,603 'complex':92,848 'compon':607 'con':1042 'concept':1051 'condit':839 'configur':148,276 'confirm':341,495 'conflict':561,597 'constraint':442 'contain':756,1102 'context':828,1123 'convent':965,1066 'convict':1036 'copi':462,482,625,645,651,768,861 'core':852 'cosmolog':71 'couldn':688 'creat':615 'critic':872 'critiqu':711,721 'cross':230,695 'cross-valid':229,694 'deadlin':1194 'death':734 'debat':8,519,586,1163,1211 'decis':17,118,270,543,666,673,805,856,940,984,1008,1074,1198 'decision-log':1197 'decision-log.md':540,1073 'deepseek':182 'default':316,331,374 'defeat':1134 'descript':414,450 'detail':440 'dev':972,1065 'dev-guide.md':974,1001,1069 'develop':4,29,238,989 'devil':836 'didn':832 'differ':189 'dilemma':1014 'direct':435,855 'disagr':112,847 'dispatch':958 'diverg':669,791,816,946 'doc':902,1191 'doc-gener':901,1190 'document':13,199,234,267,892 'domain':1025 'doubao':181 'drift':834 'drop':714 'echo':478,641 'els':1202,1214 'enter':328 'entri':679 'etc':183 'everi':678,1144 'everyth':1201,1213 'expert':6,108,225,508,518,523,544,585,1162,1210 'expert-deb':517,584,1161,1209 'explicit':601 'fail':878 'featur':123,868,1155 'file':143,1044,1045 'filler':418 'final':117,889,1049 'find':802,874 'first':241,274 'first-tim':240,273 'fix':349,831 'flag':949 'flow':30,137 'follow':1000 'forc':82 'found':814 'full':2,124,581,913,1148 'fusion':697 'gate':849 'gemini':171,200,297,397,488,554,610,621,655,742,750,779,823,842,1085,1088,1095,1109,1121 'generat':14,65,105,235,395,576,602,609,744,893,903,912,1192 'generic':599 'get':152 'git':966 'give':77,1031 'go':362,1187 'gpt':179 'gpt/qwen/doubao/deepseek':299 'guid':281,973 'harden':728 'help':530 'hostil':871 'human':16,664,804,939,983 'idea':27,104,221,379,388,413,456,459,763,1112,1170 'idea-raw.md':504 'idea-to-develop':26 'idea.md':888,916,1048 'identifi':879 'improv':736,759 'includ':956 'independ':167 'individu':213,255 'inform':807 'instal':253,1208 'instant':1018 'instinct':1204 'instruct':582 'intent':433,789,948 'inventori':308 'investor':712,720 'invok':278 'iter':1156 'keep':330 'key':185,588 'kickoff':239,990 'know':1024,1110 'label':657,752,934,1097 'languag':400,428 'liangyi':1,44,49,128 'like':731 'list':345,357 'llm':177,290 'load':992 'log':18,538,667,671,795,929,1006,1199 'logic':513,701,897 'lost':498 'major':794,815 'manag':1090 'manual':483,646,1071 'mark':596 'markdown':541 'marker':986 'matter':570 'md':1080 'mechan':1139 'mention':444 'merg':723 'mind':1017 'minimum':884 'minor':793 'model':154,162,169,208,286,295,346,350 'modul':252 'modular':21,132 'multipl':1094 'must':680 'name':550,555 'need':150,1146 'never':1127 'new':35,43,654,749 'none':792 'note':392 'noth':496 'one':784,826 'one-sent':783 'open':652 'oper':1070 'oppos':81,107 'option':244,369,811,1115 'orchestr':19,125 'origin':75,762,788,822 'output':446,735,887,1043 'overlap':196 'pair':525,569 'past':457,662,1084,1128 'pbcopi':468,631 'person':1030 'persona':591,717,873 'perspect':919 'phase':214,377,505,692,890,987,1002,1004,1107,1113,1119,1124,1158,1172,1177,1184 'phase0':220 'phase1':224 'phase2':228 'phase3':233 'phase4':237 'pick':532 'pipelin':5,1149 'pleas':415,481,644 'point':558,589,670,727,985 'polar':54,68 'portfolio':1078 'prd':910,914,927 'prd.md':911,1053 'preserv':437,593 'proceed':951 'process':542 'product':3,36,41,46,87,103,412,676,1050,1054 'profession':594 'project':574,1145 'prompt':398,405,479,611,616,642,650,745,819,1079,1086 'prompts/gemini-phase0.md':467,472 'prompts/gemini-phase1.md':630,635 'propos':577,604,724,760 'pros':1040 'prototyp':1182 'provid':190,487 'purpos':1046 'quick':210,339,1205 'qwen':180 'raw':387,455,458 're':809 're-review':808 'read':309,526,905,925 'reader':1047 'readi':360,1082 'ready-to-past':1081 'receiv':778 'recommend':173,298,317,529,1034 'record':1076 'refer':142,145 'referenc':960 'references/config.md':305 'references/doc-templates.md':906 'references/expert-roles.md':527 'references/skills-registry.md':310,337,961 'refin':222,401,406,426,490,500 'registri':359 'remov':326,417 'repetit':420 'replac':324 'requir':886,1055 'respons':781 'result':928 'review':12,263,492,707,743,755,797,810,931,1075,1118 'revis':818 'rise':78 'role':7,524,534,545,547,552,579,613,659,713,715,1105 'rough':391,411 'run':158,218,363,372,1160 'save':302,480,502,643 'scope':866 'scratch':38 'select':288,474,522,637 'sentenc':785 'separ':619 'session':622,751,824,1089,1096 'setup':243,246,272,280,343,367 'shape':89 'shorthand':204 'signific':1007 'simplifi':1142 'simul':923,937,942 'singl':10,73,102,740,1137 'single-blind':9,739,1136 'situat':1150 'skeptic':719 'skill':22,133,139,157,307,318,356,520,587,708,904,957,980 'skill-liangyi' 'skip':376,857,1153,1157,1171,1183,1212 'small':867,1154 'solo':1164 'source-wenboxia' 'spec':954 'specialist':407 'specif':439,573 'specifi':883 'standalon':248,516,704,900 'start':33,153,211,366,1175 'step':976,978 'step-by-step':975 'straight':1188 'strateg':854 'structur':100,111,449,536 'substant':846 'suggest':729 'summari':786 'summon':1019 'suprem':63 'synthes':114 'tab':656,774,1100,1101,1132 'tabl':959 'tag':677 'taiji':76 'tech':953 'tech-spec.md':955,995,1059 'technic':1013,1060,1181 'tell':647,771 'templat':908 'tension':88,120,537,557 'test':968 'throughout':197,1200 'tic':423 'time':242,275 'togeth':494 'topic-adversarial-review' 'topic-agent-skills' 'topic-claude-code' 'topic-claude-skill' 'topic-i-ching' 'topic-liangyi' 'topic-multi-model' 'topic-product-development' 'topic-workflow' 'track':271 'train':192 'transcript':390 'trigger':39,840,870 'tweak':860 'two':53,67,80,106,533 'type':798,932 'ui':859 'ultim':64 'understand':945 'unifi':74 'updat':336 'urgent':1193 'use':31,187,202,249,293,510,698,776,894,1015,1093,1103,1196 'user':283,333,352,384,486,531,649,772,918,924,943 'v1.0':48 'valid':231,340,696,885,920 'vector':882 'verbal':422 'verifi':830 'version':491,737 'view':109 'voic':389 'vs':787 'want':321 'weakest':726 'weigh':566,691 'well':865 'well-scop':864 'whose':86,110 'word':419,453 'work':178,301 'workflow':42,47,94,129,371,967,1092 'world':1023 'wrong':1131 'xclip':473,636 'yang':85 'yin':83 '两仪':50 '太极生两仪':61 '易经':59 '系辞':60","prices":[{"id":"206c05d4-380c-4af8-b036-c5d3d30e8ead","listingId":"3d904cdc-d2f3-412e-b433-4d0eb1e886d2","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"wenboxia","category":"liangyi","install_from":"skills.sh"},"createdAt":"2026-04-30T01:02:45.337Z"}],"sources":[{"listingId":"3d904cdc-d2f3-412e-b433-4d0eb1e886d2","source":"github","sourceId":"wenboxia/liangyi/liangyi","sourceUrl":"https://github.com/wenboxia/liangyi/tree/main/skills/liangyi","isPrimary":false,"firstSeenAt":"2026-04-30T01:02:45.337Z","lastSeenAt":"2026-05-18T19:06:14.497Z"}],"details":{"listingId":"3d904cdc-d2f3-412e-b433-4d0eb1e886d2","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"wenboxia","slug":"liangyi","github":{"repo":"wenboxia/liangyi","stars":16,"topics":["adversarial-review","agent-skills","claude-code","claude-skill","i-ching","liangyi","multi-model","product-development","workflow"],"license":"mit","html_url":"https://github.com/wenboxia/liangyi","pushed_at":"2026-04-23T23:49:08Z","description":"One idea, two opposing expert views, one synthesized decision. A Claude Code workflow for adversarial product development — inspired by the I Ching.","skill_md_sha":"456f6431584a98e8edb84a791403d437265f10aa","skill_md_path":"skills/liangyi/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/wenboxia/liangyi/tree/main/skills/liangyi"},"layout":"multi","source":"github","category":"liangyi","frontmatter":{"name":"liangyi","description":"Full product development pipeline: expert role debates, single-blind review, document generation, and human decision logging. Orchestrates 4 modular skills into a complete idea-to-development flow. Use when starting a new product from scratch. Triggers on \"product workflow\", \"new product\", \"full pipeline\", \"idea to development\"."},"skills_sh_url":"https://skills.sh/wenboxia/liangyi/liangyi"},"updatedAt":"2026-05-18T19:06:14.497Z"}}