[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NJ47VE6DPR4Y8E8YQPE376":3,"skill-same:01M6NJ47VE6DPR4Y8E8YQPE376":97},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":52,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6NJ47VE6DPR4Y8E8YQPE376","think",null,"Reason hard before building: attack premises, run named thinking lenses, compare real alternatives, give one verdict. Use for design choices, is-it-worth-it, triaging asks. Not for bugs.","tinhtute\u002Fmonoharness","tinhtute","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F51282340?v=4","01M6NHYENXPR3K033S3YDA62FW","TINHTUTE","01M6NHYETDANVFY82EPKRC4JFS",5,"MIT","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Freason\u002Fthink\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"thinking","evaluate","alternatives","bugs","for","it","lens","compare","verdict","name","design","use","question","before building","decide","file","code","run","triage","2026-11-10 10:12:30",false,"---\nname: think\nversion: \"1.1.0\"\nmodel: opus\ndescription: \"Reason hard before building: attack premises, run named thinking lenses, compare real alternatives, give one verdict. Use for design choices, is-it-worth-it, triaging asks. Not for bugs.\"\nargument-hint: \"[decide|evaluate|triage|twice|lens \u003Cname>] [question, idea, @file refs]\"\ncompatibility: Designed for Claude Code\n---\n\n# Think: Reason Before You Build\n\n## Outcome Contract\n\n- Outcome: a rough question becomes one defensible recommendation whose weakest assumption is named.\n- Done when: the goal, constraints, chosen direction, the rejected alternative and why, the most fragile assumption, and the next step are stated; nothing load-bearing is silently assumed.\n- Evidence: repo state, docs and ADRs under `docs\u002Fdecisions\u002F`, live config values, primary-source docs, and explicit user preferences. Memory is a lead to re-verify, never evidence.\n- Writes: **none** — no code, plan, or report. Keep a result via `brainstorm lock`; an approved build goes to `to-plan` or `work`.\n\n## Modes\n\nResolve from a leading subcommand, else the request.\n\n| Mode | Activate when | Do |\n|---|---|---|\n| `decide` (default) | \"how should I\", \"which approach\", design choice | The Process below |\n| `evaluate` | \"is it worth it\", \"keep\u002Fremove X\", \"có nên làm không\", commercial or pivot judgment | `references\u002Fmode-evaluation.md`: one Kill\u002FKeep\u002FPivot verdict |\n| `triage` | 3+ independent unbuilt asks or screenshots | `references\u002Fmode-triage.md`: per-item bucket table |\n| `twice` | Interface, module, or data-model shape | `references\u002Fdesign-it-twice.md`: 3+ radically different designs |\n| `lens \u003Cname>` | A named pattern (\"pre-mortem this\") | That lens only, from `references\u002Flenses.md` |\n\nAn error, crash, failing test, or \"why is this broken\" → one line: it belongs to `hunt`; route there. Fuzzy intent → `grill`.\n\n## Process (`decide`)\n\n1. **Frame.** The decision in one sentence and what \"good\" means (success signal, constraints, who pays the cost). Sources conflict, or two readings cost differently → name the conflict and ask which wins; never silently pick.\n2. **Ground before opining.** Read `AGENTS.md`\u002F`CLAUDE.md` and only the matching rule or ADR. Open the real config for any default, env var, or setting the answer depends on; never quote one from memory. Separate facts from decisions: find facts yourself (repo, docs, sub-agents for wide searches); put only decisions to the user.\n3. **Official and proven first.** Check built-ins and ecosystem standards in live primary docs; the official solution wins unless you can say why it falls short. For a hard or repeatedly-tuned problem, study 2–3 mature projects and name what you take from each.\n4. **Generate real alternatives.** Genuinely different, not variations, beside the brute-force option (simplicity-gate). Interface shape is the crux → switch to `twice`.\n5. **Run the lenses.** Pick 3–5 that fit from `references\u002Flenses.md`; its Core four almost always apply (e.g. **attack angles** for external dependencies, scale, data migration; **deletion test**, **depth\u002Fseam** for module design; **entity delta** when the plan adds settings, flags, commands, or services). One sentence per lens finding; nothing found → one line.\n6. **Deform or discard.** A lens finds a hole → change the design to survive it; it shatters the approach → drop it and say why. Never hide a failed lens.\n7. **Recommend.** One direction: effort, risk, and the existing code it builds on. Name one alternative only if the call is close (>40% the user would prefer it).\n\nA question only running something can settle (does this state model feel right?) → recommend a throwaway prototype answering exactly that; building it needs the user's go-ahead. A reversible call inside the approved scope is decided and reported, not asked.\n\n## Grill-lite\n\nDecisions only the user can make → `references\u002Fgrill-lite.md`.\n\n## Hard Rules\n\n- **No placeholders.** \"To be decided\", \"details later\", \"similar to step N\" mean the thinking is unfinished.\n- **Zero-setup default.** Anything every user must install or configure (hook, MCP server, config key, new runtime or language) first says why a built-in or fixed default cannot do the job. A second language or runtime in a single-stack project needs explicit approval.\n- **Phases stand alone.** After phase N ships, the system works even if N+1 never lands; \"Phase 0: investigate\" belongs in this thinking, not the plan.\n\n## Gotchas\n\n- Design rejected → ask what specifically failed; re-enter with narrowed constraints, never from scratch.\n- A rework that would remove the product's differentiator → check docs for a deliberate choice; deliberate → Keep.\n\n## Output\n\n```\nVerdict:        [one recommended direction, one sentence]\nWhy:            [2–3 reasons tied to this user's constraints, not generic trade-offs]\nRejected:       [the closest alternative and why it lost]  (omit if none was close)\nAssumes:        [most fragile assumption → what happens if it fails]\nLenses:         [lens → finding, one line each]\nOpen:           [decisions only the user can make, as a frontier]  or  [none]\nNext:           [the one concrete step: brainstorm lock \u002F to-plan \u002F work bounded \u002F prototype \u002F hunt]\n```\n\n`evaluate` and `triage` use their reference's format instead. Keep prose short; the block is the answer.\n\nDefer to: `grill` (fuzzy intent), `brainstorm` (lock), `to-plan` (locked plan), `hunt` (errors, regressions), `check` (built code).\n","# Think: Reason Before You Build\n\n## Outcome Contract\n\n- Outcome: a rough question becomes one defensible recommendation whose weakest assumption is named.\n- Done when: the goal, constraints, chosen direction, the rejected alternative and why, the most fragile assumption, and the next step are stated; nothing load-bearing is silently assumed.\n- Evidence: repo state, docs and ADRs under `docs\u002Fdecisions\u002F`, live config values, primary-source docs, and explicit user preferences. Memory is a lead to re-verify, never evidence.\n- Writes: **none** — no code, plan, or report. Keep a result via `brainstorm lock`; an approved build goes to `to-plan` or `work`.\n\n## Modes\n\nResolve from a leading subcommand, else the request.\n\n| Mode | Activate when | Do |\n|---|---|---|\n| `decide` (default) | \"how should I\", \"which approach\", design choice | The Process below |\n| `evaluate` | \"is it worth it\", \"keep\u002Fremove X\", \"có nên làm không\", commercial or pivot judgment | `references\u002Fmode-evaluation.md`: one Kill\u002FKeep\u002FPivot verdict |\n| `triage` | 3+ independent unbuilt asks or screenshots | `references\u002Fmode-triage.md`: per-item bucket table |\n| `twice` | Interface, module, or data-model shape | `references\u002Fdesign-it-twice.md`: 3+ radically different designs |\n| `lens \u003Cname>` | A named pattern (\"pre-mortem this\") | That lens only, from `references\u002Flenses.md` |\n\nAn error, crash, failing test, or \"why is this broken\" → one line: it belongs to `hunt`; route there. Fuzzy intent → `grill`.\n\n## Process (`decide`)\n\n1. **Frame.** The decision in one sentence and what \"good\" means (success signal, constraints, who pays the cost). Sources conflict, or two readings cost differently → name the conflict and ask which wins; never silently pick.\n2. **Ground before opining.** Read `AGENTS.md`\u002F`CLAUDE.md` and only the matching rule or ADR. Open the real config for any default, env var, or setting the answer depends on; never quote one from memory. Separate facts from decisions: find facts yourself (repo, docs, sub-agents for wide searches); put only decisions to the user.\n3. **Official and proven first.** Check built-ins and ecosystem standards in live primary docs; the official solution wins unless you can say why it falls short. For a hard or repeatedly-tuned problem, study 2–3 mature projects and name what you take from each.\n4. **Generate real alternatives.** Genuinely different, not variations, beside the brute-force option (simplicity-gate). Interface shape is the crux → switch to `twice`.\n5. **Run the lenses.** Pick 3–5 that fit from `references\u002Flenses.md`; its Core four almost always apply (e.g. **attack angles** for external dependencies, scale, data migration; **deletion test**, **depth\u002Fseam** for module design; **entity delta** when the plan adds settings, flags, commands, or services). One sentence per lens finding; nothing found → one line.\n6. **Deform or discard.** A lens finds a hole → change the design to survive it; it shatters the approach → drop it and say why. Never hide a failed lens.\n7. **Recommend.** One direction: effort, risk, and the existing code it builds on. Name one alternative only if the call is close (>40% the user would prefer it).\n\nA question only running something can settle (does this state model feel right?) → recommend a throwaway prototype answering exactly that; building it needs the user's go-ahead. A reversible call inside the approved scope is decided and reported, not asked.\n\n## Grill-lite\n\nDecisions only the user can make → `references\u002Fgrill-lite.md`.\n\n## Hard Rules\n\n- **No placeholders.** \"To be decided\", \"details later\", \"similar to step N\" mean the thinking is unfinished.\n- **Zero-setup default.** Anything every user must install or configure (hook, MCP server, config key, new runtime or language) first says why a built-in or fixed default cannot do the job. A second language or runtime in a single-stack project needs explicit approval.\n- **Phases stand alone.** After phase N ships, the system works even if N+1 never lands; \"Phase 0: investigate\" belongs in this thinking, not the plan.\n\n## Gotchas\n\n- Design rejected → ask what specifically failed; re-enter with narrowed constraints, never from scratch.\n- A rework that would remove the product's differentiator → check docs for a deliberate choice; deliberate → Keep.\n\n## Output\n\n```\nVerdict:        [one recommended direction, one sentence]\nWhy:            [2–3 reasons tied to this user's constraints, not generic trade-offs]\nRejected:       [the closest alternative and why it lost]  (omit if none was close)\nAssumes:        [most fragile assumption → what happens if it fails]\nLenses:         [lens → finding, one line each]\nOpen:           [decisions only the user can make, as a frontier]  or  [none]\nNext:           [the one concrete step: brainstorm lock \u002F to-plan \u002F work bounded \u002F prototype \u002F hunt]\n```\n\n`evaluate` and `triage` use their reference's format instead. Keep prose short; the block is the answer.\n\nDefer to: `grill` (fuzzy intent), `brainstorm` (lock), `to-plan` (locked plan), `hunt` (errors, regressions), `check` (built code).\n",{"name":5,"model":43,"version":44,"description":7,"argument-hint":45,"compatibility":46},"opus","1.1.0","[decide|evaluate|triage|twice|lens \u003Cname>] [question, idea, @file refs]","Designed for Claude Code","master","5210571300e069a2baedcdab79d98782253ed67a","skills\u002Freason\u002Fthink",0,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness","https:\u002F\u002Fharness.tinhtute.me","https:\u002F\u002Fgithub.com\u002Ftinhtute","tinhtute.me","𝙻 𝙾 𝚂 𝙴 𝚁 ✨🚀","2026-11-13 00:22:18",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add tinhtute\u002Fmonoharness --skill think",{"tool":63,"command":64},"bunx","bunx skills add tinhtute\u002Fmonoharness --skill think",{"tool":66,"command":67},"pnpm","pnpm dlx skills add tinhtute\u002Fmonoharness --skill think","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Freason\u002Fthink\u002FSKILL.md",true,[71,77,81,85,89,93],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"NOTICE.md","REFERENCE","参考文档",239,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Freason\u002Fthink\u002FNOTICE.md",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fdesign-it-twice.md",2057,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Freason\u002Fthink\u002Freferences\u002Fdesign-it-twice.md",{"path":82,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fgrill-lite.md",484,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Freason\u002Fthink\u002Freferences\u002Fgrill-lite.md",{"path":86,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Flenses.md",4959,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Freason\u002Fthink\u002Freferences\u002Flenses.md",{"path":90,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fmode-evaluation.md",2820,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Freason\u002Fthink\u002Freferences\u002Fmode-evaluation.md",{"path":94,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fmode-triage.md",2039,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Freason\u002Fthink\u002Freferences\u002Fmode-triage.md",[98,127,153,183,205,226],{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":109,"publishedAt":38},"01M6NJ7YY1Q5V2JYZ401YHKJVK","read","Search the web and fetch URLs or PDFs as clean Markdown via a privacy-first cascade (local, gh, TinyFish\u002FFirecrawl\u002FExa, opt-in proxy). Use to read, cite or save a URL. Not for repo files.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Fread\u002FSKILL.md",[104],{"categoryNo":105,"categoryName":106,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[100,110,111,112,113,23,114,115,116,117,118,119,120,30,121,122,123,35,124,125,126],"as","fetch","PDF","proxy","repo","search","local","clean","tinyfish","gh","files","URL","exa","query","first","web","opt",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":38},"01M6WWM7Y4Q4C1NN9DRC33J6F8","mono-write","Polish a research or learn draft (EN\u002FVI) so it reads naturally, and write CHANGELOG entries and release notes from a commit list. Not for UI copy, marketing or tone changes.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Fmono-write\u002FSKILL.md",[],[134,135,136,23,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152],"mono write","mono","write","en","entries","release notes","learn","commit","write changelog","tone","draft","notes","changelog","research","changes","release","polish","list","marketing",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":167,"publishedAt":38},"01M6NJ76P0AMQBPZSZQB38P0TT","librarian","GitHub code research via gh CLI, no cloning. Use to investigate external repos, find where a symbol is defined, or gather cited evidence and usage examples from GitHub.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Flibrarian\u002FSKILL.md",[159,162],{"categoryNo":160,"categoryName":161,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":163,"categoryName":164,"taxonomyType":165,"taxonomyTypeDesc":166},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[155,168,169,23,114,115,170,171,119,30,123,172,35,173,174,175,147,176,177,178,179,100,180,181,182],"usage","evidence","gh-cli","github code","Bash","examples","investigate","haiku","cli","code research","github","cloning","repos","gh cli","gather",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":38},"01M6NJ72XJYEV4VDYBZVT69E5T","git","Git operations with conventional commits. Use for staging, committing, pushing, PRs, merges. Auto-splits commits by type\u002Fscope. Security scans for secrets.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Fgit\u002FSKILL.md",[],[185,190,191,192,23,193,194,195,196,30,197,198,35,199,200,175,201,202,203,204],"pr","scope","commits","cm","git operations","prs","auto","conventional commits","splits","type","with","cp","operations","merge","secrets",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":211,"publishedAt":38},"01M6NJ6BBWY0ZTGKE4TNA6W3KF","work","Execution orchestrator after `brainstorm` (and `to-plan` for high-risk). Runs phases wave-by-wave from locked artifacts, verifies each task, and hands off to `check`, `git`, or `handoff`.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Fstages\u002Fwork\u002FSKILL.md",[],[207,212,23,213,214,215,196,216,35,217,218,145,219,220,221,222,28,185,223,224,225],"risk","mode","brainstorm","execution","artifacts","task","check","plan","simple","high","orchestrator","full","handoff","phase",{"skillNo":227,"name":228,"nameZh":6,"description":229,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":230,"categories":231,"keywords":232,"publishedAt":38},"01M6WWM38JH25Y72M733S1WT9G","wayfinder","Chart a Goal too fogged for one session as a decision map in the active plan, settle one decision per session, then hand it to brainstorm lock. Use when grilling shows the work spans sessions.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Fstages\u002Fwayfinder\u002FSKILL.md",[],[228,110,23,233,214,234,235,236,237,30,238,239,34,35,240,241,242,207,219,243],"session","decision","sessions","map","settle","chart","when","hand","lock","resume","decision map"]