[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71JCF7Q674FCGN23WM814E2":3,"skill-same:01M71JCF7Q674FCGN23WM814E2":72},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M71JCF7Q674FCGN23WM814E2","spike-prototype",null,"Throw-away prototype for unknown problem spaces. Output is learning notes in specs\u002Farchive\u002Fspikes\u002FSPIKE-\u003Cname>.md, not production code. Use when the domain or technology is unexplored, when estimates are impossible without experimentation, or when user says \"spike\", \"prototype\", or \"proof of concept\".","danielvm-git\u002Fbigpowers","danielvm-git","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1020864?v=4","01M71H1N1CTQ529S0KN7KETVG6","Daniel V M","01M71H1N218Y3S8WHCJ58NPRSW",292,"MIT","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fspike-prototype\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"spike","prototype","spike prototype","name","output","use","technology","learning","archive","for","learning notes","domain","concept","sonnet","experimentation","notes","code","unknown","when","problem","2026-11-10 10:12:30",false,"---\nname: spike-prototype\nmodel: sonnet\ndescription: \"Throw-away prototype for unknown problem spaces. Output is learning notes in specs\u002Farchive\u002Fspikes\u002FSPIKE-\u003Cname>.md, not production code. Use when the domain or technology is unexplored, when estimates are impossible without experimentation, or when user says \\\"spike\\\", \\\"prototype\\\", or \\\"proof of concept\\\".\"\n---\n\n# Spike Prototype\n> **HARD GATE** — **HARD GATE** — Spikes are time-boxed experiments, not shipping code. Results must be throwaway or clearly isolated. Do NOT merge a spike without a plan to integrate it or replace it with a proper implementation.\n\n\nA spike is a time-boxed experiment to answer a specific question. The code is thrown away. The learning is kept in `specs\u002Farchive\u002Fspikes\u002FSPIKE-\u003Cname>.md`.\n\n**The spike produces learning, not code to ship.** If you find yourself cleaning up spike code for production, stop — run `plan-work` and `develop-tdd` instead with the insights you gained.\n\n## When to spike\n\n- The technology is unfamiliar (new library, API, infrastructure)\n- The approach is uncertain (multiple solutions exist; none has been tried)\n- Estimates are impossible without seeing how the thing actually behaves\n- A key assumption needs to be validated before committing to a design\n\n## Process\n\n### 1. Define the question\n\nBefore writing a single line, state the question the spike must answer:\n\n> \"Can we [specific thing] using [specific approach] within [constraint]?\"\n\nExamples:\n- \"Can we stream large files from S3 to the client without buffering in memory?\"\n- \"Does the Stripe webhook SDK handle signature verification correctly in our edge runtime?\"\n- \"Can we achieve \u003C 100ms p99 response time for the search endpoint with a naive Postgres full-text search?\"\n\nA spike with no question is just unplanned coding. Refuse to start if the question isn't clear.\n\n### 2. Set a timebox\n\nAgree on a timebox with the user: 30 minutes, 1 hour, 2 hours. When time is up, stop — even if the question isn't fully answered. Partial learning is still learning.\n\n### 3. Experiment\n\nWrite the simplest code that could answer the question. Ignore:\n- Error handling\n- Test coverage\n- Code quality\n- Production concerns\n\nFocus entirely on answering the question.\n\n### 4. Write specs\u002Farchive\u002Fspikes\u002FSPIKE-\u003Cname>.md\n\nSave the learning to `specs\u002Farchive\u002Fspikes\u002FSPIKE-\u003Cname>.md`. Create the `specs\u002F` directory if it doesn't exist.\n\n\u003Cspike-template>\n\n# Spike: [name]\n\n## Question\n\n[The specific question this spike was answering]\n\n## Result\n\n[Answered \u002F Partially answered \u002F Not answered]\n\n## Findings\n\n[What you learned — concrete observations, not opinions]\n\n## Evidence\n\n[Code snippet, benchmark result, API response, or screenshot that proves the finding]\n\n## Implications for the plan\n\n[How this changes the approach, the design, or the estimate]\n\n## What was NOT explored\n\n[Known gaps — things the spike didn't validate]\n\n## Recommendation\n\n[Should we proceed with this approach? If yes, what does plan-work need to account for?]\n\n\u003C\u002Fspike-template>\n\n### 5. Delete the spike code\n\nAfter writing the findings, delete or discard the spike code. It is not meant to ship.\n\n### 6. Feed back into plan-work\n\nThe spike findings are the input to `plan-work`. Call `plan-work` next, informed by `specs\u002Farchive\u002Fspikes\u002FSPIKE-\u003Cname>.md`.\n","# Spike Prototype\n> **HARD GATE** — **HARD GATE** — Spikes are time-boxed experiments, not shipping code. Results must be throwaway or clearly isolated. Do NOT merge a spike without a plan to integrate it or replace it with a proper implementation.\n\n\nA spike is a time-boxed experiment to answer a specific question. The code is thrown away. The learning is kept in `specs\u002Farchive\u002Fspikes\u002FSPIKE-\u003Cname>.md`.\n\n**The spike produces learning, not code to ship.** If you find yourself cleaning up spike code for production, stop — run `plan-work` and `develop-tdd` instead with the insights you gained.\n\n## When to spike\n\n- The technology is unfamiliar (new library, API, infrastructure)\n- The approach is uncertain (multiple solutions exist; none has been tried)\n- Estimates are impossible without seeing how the thing actually behaves\n- A key assumption needs to be validated before committing to a design\n\n## Process\n\n### 1. Define the question\n\nBefore writing a single line, state the question the spike must answer:\n\n> \"Can we [specific thing] using [specific approach] within [constraint]?\"\n\nExamples:\n- \"Can we stream large files from S3 to the client without buffering in memory?\"\n- \"Does the Stripe webhook SDK handle signature verification correctly in our edge runtime?\"\n- \"Can we achieve \u003C 100ms p99 response time for the search endpoint with a naive Postgres full-text search?\"\n\nA spike with no question is just unplanned coding. Refuse to start if the question isn't clear.\n\n### 2. Set a timebox\n\nAgree on a timebox with the user: 30 minutes, 1 hour, 2 hours. When time is up, stop — even if the question isn't fully answered. Partial learning is still learning.\n\n### 3. Experiment\n\nWrite the simplest code that could answer the question. Ignore:\n- Error handling\n- Test coverage\n- Code quality\n- Production concerns\n\nFocus entirely on answering the question.\n\n### 4. Write specs\u002Farchive\u002Fspikes\u002FSPIKE-\u003Cname>.md\n\nSave the learning to `specs\u002Farchive\u002Fspikes\u002FSPIKE-\u003Cname>.md`. Create the `specs\u002F` directory if it doesn't exist.\n\n\u003Cspike-template>\n\n# Spike: [name]\n\n## Question\n\n[The specific question this spike was answering]\n\n## Result\n\n[Answered \u002F Partially answered \u002F Not answered]\n\n## Findings\n\n[What you learned — concrete observations, not opinions]\n\n## Evidence\n\n[Code snippet, benchmark result, API response, or screenshot that proves the finding]\n\n## Implications for the plan\n\n[How this changes the approach, the design, or the estimate]\n\n## What was NOT explored\n\n[Known gaps — things the spike didn't validate]\n\n## Recommendation\n\n[Should we proceed with this approach? If yes, what does plan-work need to account for?]\n\n\u003C\u002Fspike-template>\n\n### 5. Delete the spike code\n\nAfter writing the findings, delete or discard the spike code. It is not meant to ship.\n\n### 6. Feed back into plan-work\n\nThe spike findings are the input to `plan-work`. Call `plan-work` next, informed by `specs\u002Farchive\u002Fspikes\u002FSPIKE-\u003Cname>.md`.\n",{"name":5,"model":37,"description":7},"main","72f5e4c8b43f60cf86b37078ad8cd7e22daf67aa",".opencode\u002Fskills\u002Fspike-prototype",23,"https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers","https:\u002F\u002Fdanielvm-git.github.io\u002Fbigpowers\u002F","https:\u002F\u002Fgithub.com\u002Fdanielvm-git","danielvm.net","2026-11-10 01:18:54",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add danielvm-git\u002Fbigpowers --skill spike-prototype",{"tool":64,"command":65},"bunx","bunx skills add danielvm-git\u002Fbigpowers --skill spike-prototype",{"tool":67,"command":68},"pnpm","pnpm dlx skills add danielvm-git\u002Fbigpowers --skill spike-prototype","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fspike-prototype\u002FSKILL.md",true,[],[73,93,100,127,150,171],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":84,"publishedAt":44},"01M71KBG9F8X644MJB16H4V8M7","skill-verify-fail-open-fixture","Negative-path fixture for run-skill-verify.sh — must never PASS.","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fspecs\u002Fverifications\u002Ffixtures\u002Fskill-verify-fail-open\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[85,86,87,88,89,90,91,33,92],"fixture","open","verify","skill verify fail open fixture","skill verify","path","run","never",{"skillNo":94,"name":95,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":44},"01M71KBE3BKEMKNE0C5DGVDWZH","negative-path","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fspecs\u002Fverifications\u002Ffixtures\u002Fnegative-path\u002FSKILL.md",[],[99,90],"negative path",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":109,"publishedAt":44},"01M71KBBGF7Y4EB4AMHBZ8CJFC","write-document","Write, organize, and sync high-integrity technical documents using the BMAD methodology. Ensures every document is Bold, Minimal, Actionable, and Durable. Use when creating architectural docs, technical guides, or organizing the specs\u002F directory.","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-document\u002FSKILL.md",[106],{"categoryNo":107,"categoryName":108,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000002","文档处理",[110,111,112,113,114,115,116,117,118,119,29,42,120,121,37,122,123,124,125,126],"write","write document","document","documents","actionable","technical","methodology","high","bmad","standard","minimal","bold","integrity","organize","sync","directory","guides",{"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":44},"01M71KB8TM089JJD5AY5KAFSDM","wire-observability","Add structured JSON logging, observability commands, and idempotent setup scripts to a project. Use when a project needs production-readiness instrumentation, when user wants structured logging, or as a production-readiness gate at any phase of development.","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwire-observability\u002FSKILL.md",[],[134,135,136,119,137,29,138,139,140,141,37,142,143,144,145,146,147,42,148,149],"observability","wire observability","readiness","commands","development","as","logging","add","instrumentation","at","structured logging","production-readiness","idempotent","phase","project","scripts",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":44},"01M71KB6CNRANP449DQA3NJZ96","wire-ci","CI pipeline setup with bundled, forge-neutral templates and local validation. Detects the forge from the git remote, generates workflows for supported forges, and skips honestly for the rest. The CI equivalent of wire-observability.","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwire-ci\u002FSKILL.md",[],[157,158,159,160,161,162,163,164,165,166,167,119,168,33,134,37,169,170],"wire ci","ci","remote","local","pipeline","forge","validation","setup","templates","REST","with","ci pipeline setup","git","workflows",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":184,"publishedAt":44},"01M71KB2ZV98P03X88QR8MT9F1","visual-dashboard","Start a browser-based dashboard that visualizes architecture, implementation plans, and project status. Persists artifacts in .bigpowers\u002Fdashboard\u002F. Reads specs\u002Fstate.yaml, release-plan.yaml, epics, and planning-status via HTTP API or opencode panel.","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-dashboard\u002FSKILL.md",[177,180,181],{"categoryNo":178,"categoryName":179,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":182,"categoryName":183,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师",[185,186,187,188,189,190,191,192,193,37,194,195,196,197,198,199,200,148,201,202],"dashboard","visual","visual dashboard","status","artifacts","http","plans","planning","panel","start","release","opencode","plan","browser","api","architecture","project status","http api"]