[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ADKMPS0HVMDTZBNBKZ1RF5":3,"skill-same:01M6ADKMPS0HVMDTZBNBKZ1RF5":73},{"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":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":42,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6ADKMPS0HVMDTZBNBKZ1RF5","readonly-research",null,"Research the codebase to answer a question without making any changes. Use when exploring code, understanding architecture, or investigating how something works.","davila7\u002Fclaude-with-skills","davila7","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6216945?v=4","01M6ADEWWFPS191NFM0Y1EX1JH","Daniel Avila","01M6ADJHY7XW1NT6J5EJ61Q42B",13,"MIT","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-with-skills\u002Fblob\u002Fmain\u002Fsrc\u002Fcontent\u002Fdocs\u002F02-intermediate\u002Flesson-03-allowed-tools\u002Fexamples\u002Freadonly-research\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[24,25,26,27,28],"research","readonly research","architecture","code","git","2026-11-10 10:12:30",false,"---\ntitle: \"readonly-research\"\nname: readonly-research\ndescription: Research the codebase to answer a question without making any changes. Use when exploring code, understanding architecture, or investigating how something works.\nallowed-tools: Read Grep Glob Bash(find *) Bash(git log *) Bash(git show *)\nuser-invocable: false\n---\n\n## Codebase research\n\nResearch the codebase to answer the question or complete the investigation. Do not modify any files. Do not create files. Do not run tests or build commands.\n\n### Step 1: Clarify the question\n\nIf `$ARGUMENTS` is empty or ambiguous, state the research question you are answering before proceeding. If the question is clear, proceed directly.\n\n### Step 2: Search for relevant files\n\nStart broad, then narrow. Use a combination of approaches:\n\n- `grep -r \"\u003Cterm>\" --include=\"*.ts\" --include=\"*.js\" -l` to find files containing a keyword\n- `glob(\"src\u002F**\u002F*.ts\")` or similar to list files in a known area\n- `find . -name \"\u003Cfilename>\" -not -path \"*\u002Fnode_modules\u002F*\"` for specific filenames\n\nSearch for the primary concept, then for related symbols, then for tests that exercise the relevant code.\n\n### Step 3: Read the most relevant files\n\nRead the files that are most likely to answer the question. Prioritize:\n1. The module or function directly named in the question\n2. Its callers and dependents (to understand how it is used)\n3. Its tests (to understand expected behavior)\n4. Any relevant configuration or type definitions\n\nAvoid reading files speculatively. Only read a file if there is a specific reason it could answer the question.\n\n### Step 4: Check git history if relevant\n\nIf the question is about why something is the way it is, or when a change was made, use:\n```\ngit log --oneline --follow -20 \u003Cfile>\ngit show \u003Ccommit-hash>\n```\n\n### Step 5: Synthesize findings\n\nPresent a clear answer to the research question with:\n- The specific answer (yes\u002Fno, the function name, the file path, etc.)\n- Supporting evidence with file:line references for every specific claim\n- Areas of uncertainty: files you could not access, code paths you could not trace, or ambiguities in the implementation\n\nFormat the response for the user's question, not as a generic research report. If the user asked \"where is the auth logic?\", answer that directly, then provide supporting detail.\n","## Codebase research\n\nResearch the codebase to answer the question or complete the investigation. Do not modify any files. Do not create files. Do not run tests or build commands.\n\n### Step 1: Clarify the question\n\nIf `$ARGUMENTS` is empty or ambiguous, state the research question you are answering before proceeding. If the question is clear, proceed directly.\n\n### Step 2: Search for relevant files\n\nStart broad, then narrow. Use a combination of approaches:\n\n- `grep -r \"\u003Cterm>\" --include=\"*.ts\" --include=\"*.js\" -l` to find files containing a keyword\n- `glob(\"src\u002F**\u002F*.ts\")` or similar to list files in a known area\n- `find . -name \"\u003Cfilename>\" -not -path \"*\u002Fnode_modules\u002F*\"` for specific filenames\n\nSearch for the primary concept, then for related symbols, then for tests that exercise the relevant code.\n\n### Step 3: Read the most relevant files\n\nRead the files that are most likely to answer the question. Prioritize:\n1. The module or function directly named in the question\n2. Its callers and dependents (to understand how it is used)\n3. Its tests (to understand expected behavior)\n4. Any relevant configuration or type definitions\n\nAvoid reading files speculatively. Only read a file if there is a specific reason it could answer the question.\n\n### Step 4: Check git history if relevant\n\nIf the question is about why something is the way it is, or when a change was made, use:\n```\ngit log --oneline --follow -20 \u003Cfile>\ngit show \u003Ccommit-hash>\n```\n\n### Step 5: Synthesize findings\n\nPresent a clear answer to the research question with:\n- The specific answer (yes\u002Fno, the function name, the file path, etc.)\n- Supporting evidence with file:line references for every specific claim\n- Areas of uncertainty: files you could not access, code paths you could not trace, or ambiguities in the implementation\n\nFormat the response for the user's question, not as a generic research report. If the user asked \"where is the auth logic?\", answer that directly, then provide supporting detail.\n",{"name":5,"title":5,"description":7,"allowed-tools":34,"user-invocable":30},"Read Grep Glob Bash(find *) Bash(git log *) Bash(git show *)","main","55e6468ba43345d07c8a68de983e58403db57c25","src\u002Fcontent\u002Fdocs\u002F02-intermediate\u002Flesson-03-allowed-tools\u002Fexamples\u002Freadonly-research",1,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-with-skills","https:\u002F\u002Fclaude-with-skills.vercel.app","https:\u002F\u002Fgithub.com\u002Fdavila7","https:\u002F\u002Fdanielavila.me","Building AI dev tools with LLMs","2026-05-15 21:54:25",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add davila7\u002Fclaude-with-skills --skill readonly-research",{"tool":51,"command":52},"bunx","bunx skills add davila7\u002Fclaude-with-skills --skill readonly-research",{"tool":54,"command":55},"pnpm","pnpm dlx skills add davila7\u002Fclaude-with-skills --skill readonly-research","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-with-skills\u002Fblob\u002Fmain\u002Fsrc\u002Fcontent\u002Fdocs\u002F02-intermediate\u002Flesson-03-allowed-tools\u002Fexamples\u002Freadonly-research\u002FSKILL.md",true,[59,65,69],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"ADR-FORMAT.md","REFERENCE","参考文档",2733,"https:\u002F\u002Fgithub.com\u002FHasarAli\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot-agents\u002Fskills\u002Fdomain-modeling\u002FADR-FORMAT.md",{"path":66,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":67,"sourceHtmlUrl":68},"agents\u002Fopenai.yaml",101,"https:\u002F\u002Fgithub.com\u002FHasarAli\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot-agents\u002Fskills\u002Fdomain-modeling\u002Fagents\u002Fopenai.yaml",{"path":70,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":71,"sourceHtmlUrl":72},"GLOSSARY-FORMAT.md",2300,"https:\u002F\u002Fgithub.com\u002FHasarAli\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot-agents\u002Fskills\u002Fdomain-modeling\u002FGLOSSARY-FORMAT.md",[74,89,100,106,114,123],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":29},"01M6ADNEC991ZW0GD2D4MY6NEP","tag-version","Bump the package version and create an annotated git tag. Accepts a semantic version number (1.2.0) or a bump type (patch, minor, major). Does not push — use the publish skill to push. Use as part of a release workflow.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-with-skills\u002Fblob\u002Fmain\u002Fsrc\u002Fcontent\u002Fdocs\u002F03-advanced\u002Flesson-08-plugins-and-distribution\u002Fexamples\u002Frelease-plugin\u002Fskills\u002Ftag-version\u002FSKILL.md",[],[81,82,83,84,28,85,86,87,88],"tag version","workflow","create","release","push","npm","package","publish",{"skillNo":90,"name":84,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":29},"01M6ADNCNHCXNHVAW43ZV43ZC8","Run the complete release workflow: changelog entry, version bump, git tag, and GitHub release. Invokes changelog-entry, tag-version, and publish in sequence. Use when releasing a new version of the project.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-with-skills\u002Fblob\u002Fmain\u002Fsrc\u002Fcontent\u002Fdocs\u002F03-advanced\u002Flesson-08-plugins-and-distribution\u002Fexamples\u002Frelease-plugin\u002Fskills\u002Frelease\u002FSKILL.md",[],[84,28,95,86,96,97,88,98,99,82],"changelog","changelog entry","run","status","github",{"skillNo":101,"name":88,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":29},"01M6ADNAWDDDDX4CS69E1D496X","Push the current branch and all tags to origin, then create a GitHub release using the latest tag and its CHANGELOG.md entry. Use after tag-version to complete a release.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-with-skills\u002Fblob\u002Fmain\u002Fsrc\u002Fcontent\u002Fdocs\u002F03-advanced\u002Flesson-08-plugins-and-distribution\u002Fexamples\u002Frelease-plugin\u002Fskills\u002Fpublish\u002FSKILL.md",[],[88,85,99,83,84,28,95],{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":29},"01M6ADN9MP0ASQ6SX14NEPP5XE","changelog-entry","Draft the changelog entry for all unreleased commits in Keep a Changelog format. Groups commits into Added, Changed, Fixed, Removed, and Security. Use before releasing a new version or when updating CHANGELOG.md.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-with-skills\u002Fblob\u002Fmain\u002Fsrc\u002Fcontent\u002Fdocs\u002F03-advanced\u002Flesson-08-plugins-and-distribution\u002Fexamples\u002Frelease-plugin\u002Fskills\u002Fchangelog-entry\u002FSKILL.md",[],[96,95,113,28],"security",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":29},"01M6ADN8243TD9X8FH7FCQ608R","auto-format-on-edit","Automatically format code files after every edit using Prettier and ESLint. Active in the background whenever Claude edits a file. Formatting is silent — no prompts, no output unless a formatter fails. Use when you want consistent formatting enforced automatically during a coding session.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-with-skills\u002Fblob\u002Fmain\u002Fsrc\u002Fcontent\u002Fdocs\u002F03-advanced\u002Flesson-07-hooks-in-skills\u002Fexamples\u002Fauto-format-on-edit\u002FSKILL.md",[],[121,27,122],"auto format on edit","file",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":134,"publishedAt":29},"01M6ADN5VVNV7Y2WPYQA13M4ZQ","code-quality-audit","Run a comprehensive code quality audit covering security, performance, and maintainability. Use for quarterly audits, pre-release reviews, or when onboarding to a large codebase.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-with-skills\u002Fblob\u002Fmain\u002Fsrc\u002Fcontent\u002Fdocs\u002F03-advanced\u002Flesson-06-context-window-mastery\u002Fexamples\u002Flightweight-orchestrator\u002FSKILL.md",[129],{"categoryNo":130,"categoryName":131,"taxonomyType":132,"taxonomyTypeDesc":133},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[135,136,27,137,138,97,84,139,113],"code quality audit","audit","code quality","performance","onboarding"]