[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71J44HDTTY0SH9FDMD130TW":3,"skill-same:01M71J44HDTTY0SH9FDMD130TW":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":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":6,"updatedAt":58,"install":59,"resources":71},"01M71J44HDTTY0SH9FDMD130TW","research-first",null,"Look-before-build — search registries, repo, existing skills, and web for prior art before implementing. Appends Prior Art to the spec. Use after survey-context and before elaborate-spec, when adding dependencies, or when the task may already be solved.","danielvm-git\u002Fbigpowers","danielvm-git","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1020864?v=4","01M71H1N1CTQ529S0KN7KETVG6","Daniel V M","01M71H1N218Y3S8WHCJ58NPRSW",289,"MIT","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002F.gemini\u002Fextensions\u002Fbigpowers\u002Fskills\u002Fresearch-first\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"research","first","research first","dependencies","build","web","task","prior art","Existing","use","true","repo","for","context","sonnet","when","survey","implementing","Art","search","2026-11-10 10:12:30",false,"---\nname: research-first\nmodel: sonnet\ndescription: \"Look-before-build — search registries, repo, existing skills, and web for prior art before implementing. Appends Prior Art to the spec. Use after survey-context and before elaborate-spec, when adding dependencies, or when the task may already be solved.\"\ndisable-model-invocation: true\n---\n\n\u003C!-- story: e03s01 -->\n\u003C!-- story: e21s02 -->\n\n# Research First\n\n> **HARD GATE** — Do NOT implement until prior art is searched. Minimum outcome: adopt, extend, compose, or build — with evidence.\n\n## Process\n\n1. Read `specs\u002Fproduct\u002FSCOPE_LATEST.yaml`, `specs\u002Frelease-plan.yaml + epic shards`, and the current task statement.\n2. Search in order: this repo → bigpowers skills (`search-skills`) → package registries → web docs.\n3. **Check opensrc cache** — if the task integrates an external library, run `bash scripts\u002Fbp-opensrc-check.sh` (or `npx opensrc search \u003Cpkg>`) to find locally-cached source. Read the `src\u002F` directory for API shapes before writing any integration code.\n4. For each candidate: note name, URL\u002Fpath, fit (adopt | extend | compose | build).\n5. Append `## Prior Art` to `requirements\u002FSCOPE_LATEST.yaml` notes or the active epic story.\n\n## opensrc Integration\n\n`opensrc` is a local cache of 200+ open-source repos and npm\u002FPyPI packages. Query it before building any external integration to avoid re-inventing documented API shapes.\n\n```bash\n# Check if a package is cached\nnpx opensrc search \u003Cpackage-name>\n\n# Or use the bundled helper (checks all deps from package.json or requirements.txt)\nbash scripts\u002Fbp-opensrc-check.sh [package.json|requirements.txt]\n```\n\nIf opensrc finds a match, read its `src\u002F` or source directory and append findings to the **Prior Art** section:\n\n```\nopensrc: found \u003Cpkg> v\u003Cversion> — exports \u003Ckey classes\u002Ffunctions>\n```\n\nIf opensrc is not installed or the package is not cached, fall through to web docs normally.\n\n## Outcome matrix\n\n| Verdict | Action |\n|---------|--------|\n| **adopt** | Use as-is; link in plan; no new code |\n| **extend** | Wrap or configure existing solution |\n| **compose** | Chain existing skills\u002Fmodules |\n| **build** | New implementation — justify why others failed |\n\n## Verify\n\n→ verify: `grep -rq 'Prior Art' specs\u002Fproduct specs\u002Frelease-plan.yaml specs\u002Fepics 2>\u002Fdev\u002Fnull`\n\nSee [REFERENCE.md](REFERENCE.md) for search commands and registry checklist.\n\n---\n\n# Research First — Reference\n\n## Search commands\n\n```bash\n# Repo prior art\nrg -l \"\u003Ckeyword>\" --glob '!node_modules' .\nfind . -maxdepth 3 -name \"SKILL.md\" | xargs grep -l \"\u003Cintent>\"\n\n# Installed packages (if package.json exists)\ncat package.json | jq '.dependencies,.devDependencies' 2>\u002Fdev\u002Fnull\n```\n\n## Registry checklist\n\n- [ ] npm \u002F PyPI \u002F crates.io (if applicable)\n- [ ] Existing bigpowers skill (`bash scripts\u002Fbuild-skill-index.sh && rg \"\u003Cintent>\" specs\u002FSKILL-SEARCH-INDEX_LATEST.md`)\n- [ ] Project `docs\u002F` and `specs\u002Fadr\u002F`\n- [ ] Official library documentation (quote one API detail)\n\n## Prior Art template\n\n```markdown\n## Prior Art\n\n| Candidate | Source | Verdict | Notes |\n|-----------|--------|---------|-------|\n| ... | ... | adopt\u002Fextend\u002Fcompose\u002Fbuild | ... |\n```\n","\u003C!-- story: e03s01 -->\n\u003C!-- story: e21s02 -->\n\n# Research First\n\n> **HARD GATE** — Do NOT implement until prior art is searched. Minimum outcome: adopt, extend, compose, or build — with evidence.\n\n## Process\n\n1. Read `specs\u002Fproduct\u002FSCOPE_LATEST.yaml`, `specs\u002Frelease-plan.yaml + epic shards`, and the current task statement.\n2. Search in order: this repo → bigpowers skills (`search-skills`) → package registries → web docs.\n3. **Check opensrc cache** — if the task integrates an external library, run `bash scripts\u002Fbp-opensrc-check.sh` (or `npx opensrc search \u003Cpkg>`) to find locally-cached source. Read the `src\u002F` directory for API shapes before writing any integration code.\n4. For each candidate: note name, URL\u002Fpath, fit (adopt | extend | compose | build).\n5. Append `## Prior Art` to `requirements\u002FSCOPE_LATEST.yaml` notes or the active epic story.\n\n## opensrc Integration\n\n`opensrc` is a local cache of 200+ open-source repos and npm\u002FPyPI packages. Query it before building any external integration to avoid re-inventing documented API shapes.\n\n```bash\n# Check if a package is cached\nnpx opensrc search \u003Cpackage-name>\n\n# Or use the bundled helper (checks all deps from package.json or requirements.txt)\nbash scripts\u002Fbp-opensrc-check.sh [package.json|requirements.txt]\n```\n\nIf opensrc finds a match, read its `src\u002F` or source directory and append findings to the **Prior Art** section:\n\n```\nopensrc: found \u003Cpkg> v\u003Cversion> — exports \u003Ckey classes\u002Ffunctions>\n```\n\nIf opensrc is not installed or the package is not cached, fall through to web docs normally.\n\n## Outcome matrix\n\n| Verdict | Action |\n|---------|--------|\n| **adopt** | Use as-is; link in plan; no new code |\n| **extend** | Wrap or configure existing solution |\n| **compose** | Chain existing skills\u002Fmodules |\n| **build** | New implementation — justify why others failed |\n\n## Verify\n\n→ verify: `grep -rq 'Prior Art' specs\u002Fproduct specs\u002Frelease-plan.yaml specs\u002Fepics 2>\u002Fdev\u002Fnull`\n\nSee [REFERENCE.md](REFERENCE.md) for search commands and registry checklist.\n\n---\n\n# Research First — Reference\n\n## Search commands\n\n```bash\n# Repo prior art\nrg -l \"\u003Ckeyword>\" --glob '!node_modules' .\nfind . -maxdepth 3 -name \"SKILL.md\" | xargs grep -l \"\u003Cintent>\"\n\n# Installed packages (if package.json exists)\ncat package.json | jq '.dependencies,.devDependencies' 2>\u002Fdev\u002Fnull\n```\n\n## Registry checklist\n\n- [ ] npm \u002F PyPI \u002F crates.io (if applicable)\n- [ ] Existing bigpowers skill (`bash scripts\u002Fbuild-skill-index.sh && rg \"\u003Cintent>\" specs\u002FSKILL-SEARCH-INDEX_LATEST.md`)\n- [ ] Project `docs\u002F` and `specs\u002Fadr\u002F`\n- [ ] Official library documentation (quote one API detail)\n\n## Prior Art template\n\n```markdown\n## Prior Art\n\n| Candidate | Source | Verdict | Notes |\n|-----------|--------|---------|-------|\n| ... | ... | adopt\u002Fextend\u002Fcompose\u002Fbuild | ... |\n```\n",{"name":5,"model":38,"description":7,"disable-model-invocation":49},true,"main","72f5e4c8b43f60cf86b37078ad8cd7e22daf67aa",".gemini\u002Fextensions\u002Fbigpowers\u002Fskills\u002Fresearch-first",24,"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":60,"prompt":70,"zipAvailable":49},[61,64,67],{"tool":62,"command":63},"npx","npx skills add danielvm-git\u002Fbigpowers --skill research-first",{"tool":65,"command":66},"bunx","bunx skills add danielvm-git\u002Fbigpowers --skill research-first",{"tool":68,"command":69},"pnpm","pnpm dlx skills add danielvm-git\u002Fbigpowers --skill research-first","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002F.gemini\u002Fextensions\u002Fbigpowers\u002Fskills\u002Fresearch-first\u002FSKILL.md",[],[73,91,98,125,148,169],{"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":82,"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":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[83,84,85,86,87,88,89,36,90],"fixture","open","verify","skill verify fail open fixture","skill verify","path","run","never",{"skillNo":92,"name":93,"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":94,"categories":95,"keywords":96,"publishedAt":44},"01M71KBE3BKEMKNE0C5DGVDWZH","negative-path","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fspecs\u002Fverifications\u002Ffixtures\u002Fnegative-path\u002FSKILL.md",[],[97,88],"negative path",{"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":107,"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",[104],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[108,109,110,111,112,113,114,115,116,117,33,39,118,119,38,120,121,122,123,124],"write","write document","document","documents","actionable","technical","methodology","high","bmad","standard","minimal","bold","integrity","organize","sync","directory","guides",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"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",[],[132,133,134,117,135,33,136,137,138,139,38,140,141,142,143,144,145,39,146,147],"observability","wire observability","readiness","commands","development","as","logging","add","instrumentation","at","structured logging","production-readiness","idempotent","phase","project","scripts",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"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",[],[155,156,157,158,159,160,161,162,163,164,165,117,166,36,132,38,167,168],"wire ci","ci","remote","local","pipeline","forge","validation","setup","templates","REST","with","ci pipeline setup","git","workflows",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":186,"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",[175,178,183],{"categoryNo":176,"categoryName":177,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":179,"categoryName":180,"taxonomyType":181,"taxonomyTypeDesc":182},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":184,"categoryName":185,"taxonomyType":181,"taxonomyTypeDesc":182},"01JBSEEDCAT000000000000033","数据分析师",[187,188,189,190,191,192,193,194,195,38,196,197,198,199,200,201,202,146,203,204],"dashboard","visual","visual dashboard","status","artifacts","http","plans","planning","panel","start","release","opencode","plan","browser","api","architecture","project status","http api"]