harness-review
npx skills add https://github.com/chachamaru127/claude-code-harness --skill harness-review
Agent 安装分布
Skill 文档
Review Skills
ã³ã¼ãã¬ãã¥ã¼ãè¨ç»ã¬ãã¥ã¼ãã¹ã³ã¼ãåæãæ å½ããã¹ãã«ç¾¤ã§ãã ã³ã³ããã¹ãããã¬ãã¥ã¼ã¿ã¤ããèªåå¤å®ãã¾ãã
ã¬ãã¥ã¼ã¿ã¤ãï¼Context-Awareï¼
ã¬ãã¥ã¼ã¿ã¤ãã¯ã³ã³ããã¹ãããèªåå¤å®ããã¾ãï¼
| Recent Activity | Review Type | 4 Experts |
|---|---|---|
/plan-with-agent å¾ |
Plan Review | Clarity, Feasibility, Dependencies, Acceptance |
/work å¾ |
Code Review | Security, Performance, Quality, Accessibility |
| ã¿ã¹ã¯è¿½å å¾ | Scope Review | Scope-creep, Priority, Feasibility, Impact |
æåæå®
/harness-review # èªåå¤å®
/harness-review code # ã³ã¼ãã¬ãã¥ã¼å¼·å¶
/harness-review plan # è¨ç»ã¬ãã¥ã¼å¼·å¶
/harness-review scope # ã¹ã³ã¼ãåæå¼·å¶
æ©è½è©³ç´°ï¼Code Reviewï¼
| æ©è½ | 詳細 |
|---|---|
| 夿´ã¬ãã¥ã¼ | See references/changes-review.md |
| å質ãã§ã㯠| See references/quality-review.md |
| ã»ãã¥ãªã㣠| See references/security-review.md |
| ããã©ã¼ãã³ã¹ | See references/performance-review.md |
| ã¢ã¯ã»ã·ããªã㣠| See references/accessibility-review.md |
| SEO/OGP | See references/seo-review.md |
| Codex çµ±å | See references/codex-integration.md |
| ã³ãããå¤å® | See references/commit-judgment-logic.md |
æ©è½è©³ç´°ï¼Plan/Scope Reviewï¼
Plan Review 㨠Scope Review 㯠Codex ã¨ãã¹ãã¼ãã使ç¨ãã¾ãï¼
| ã¬ãã¥ã¼ã¿ã¤ã | ã¨ãã¹ãã¼ã | åç § |
|---|---|---|
| Plan Review | Clarity, Feasibility, Dependencies, Acceptance | ../codex-review/references/experts/clarity-expert.md ç |
| Scope Review | Scope-creep, Priority, Feasibility, Impact | ../codex-review/references/experts/scope-creep-expert.md ç |
詳細: ../codex-review/references/codex-parallel-review.md
å®è¡æé
- å質å¤å®ã²ã¼ãï¼Step 0ï¼
- æ®ã³ã³ããã¹ã確èªï¼Codex ã¢ã¼ãæï¼ï¼Step 1ï¼
- ã¦ã¼ã¶ã¼ã®ãªã¯ã¨ã¹ããåé¡
- ï¼Claude-mem æå¹æï¼éå»ã®ã¬ãã¥ã¼ææãæ¤ç´¢
- 並åå®è¡ã®å¤å®ï¼ä¸è¨åç §ï¼
- ä¸è¨ã®ãæ©è½è©³ç´°ãããé©åãªåç §ãã¡ã¤ã«ãèªããã¾ãã¯ä¸¦åãµãã¨ã¼ã¸ã§ã³ãèµ·å
- çµæãçµ±åãã¦ã¬ãã¥ã¼å®äº
å ¥åã®åªå é ä½
filesãæ¸¡ããã¦ããå ´å㯠ãã®ãã¡ã¤ã«ã®ã¿ ã対象ã«ã¬ãã¥ã¼ããfilesãæ¸¡ããã¦ããªãå ´åã¯git_diffãã夿´ç®æãæ¨å®ããcontext_from: code_contentãæ¸¡ããã¦ããå ´å㯠ãã®å 容ãåªå ãã¦ã¬ãã¥ã¼ãã
Step 0: å質å¤å®ã²ã¼ãï¼ã¬ãã¥ã¼éç¹é åã®ç¹å®ï¼
ã¬ãã¥ã¼éå§åã«å¤æ´å 容ãåæããéç¹é åãç¹å®:
夿´ãã¡ã¤ã«åæ
â
âââââââââââââââââââââââââââââââââââââââââââ
â å質å¤å®ã²ã¼ã â
âââââââââââââââââââââââââââââââââââââââââââ¤
â å¤å®é
ç®: â
â âââ ã«ãã¬ãã¸ä¸è¶³ï¼ï¼ãã¹ããªãï¼ â
â âââ ã»ãã¥ãªãã£æ³¨æï¼ï¼auth/api/ï¼ â
â âââ a11y 注æï¼ï¼UI ã³ã³ãã¼ãã³ãï¼ â
â âââ ããã©ã¼ãã³ã¹æ³¨æï¼ï¼DB/ã«ã¼ãï¼ â
âââââââââââââââââââââââââââââââââââââââââââ
â
éç¹ã¬ãã¥ã¼é åãæ±ºå®
ã«ãã¬ãã¸å¤å®
| ç¶æ³ | ææå 容 |
|---|---|
| æ°è¦ãã¡ã¤ã«ã«ãã¹ããªã | ããã¹ããä¸è¶³ãã¦ãã¾ãã |
| 夿´ãã¡ã¤ã«ã®ãã¹ããå¤ã | ããã¹ãã®æ´æ°ãæ¤è¨ãã¦ãã ããã |
| ã«ãã¬ã㸠< 60% | ãã«ãã¬ãã¸åä¸ãæ¨å¥¨ã |
ã»ãã¥ãªãã£éç¹ã¬ãã¥ã¼
| ãã¹ | 追å ãã§ãã¯é ç® |
|---|---|
| auth/, api/ | OWASP Top 10 ãã§ãã¯ãªã¹ã |
| å ¥åå¦ç | ãµãã¿ã¤ãºãããªãã¼ã·ã§ã³ |
| DB ã¯ã¨ãª | ãã©ã¡ã¼ã¿åç¢ºèª |
a11y éç¹ã¬ãã¥ã¼
| ãã¹ | ãã§ãã¯é ç® |
|---|---|
| src/components/ | alt, aria, ãã¼ãã¼ãæä½ |
| src/pages/ | è¦åºãæ§é , ãã©ã¼ã«ã¹ç®¡ç |
ããã©ã¼ãã³ã¹éç¹ã¬ãã¥ã¼
| ãã¿ã¼ã³ | è¦åå 容 |
|---|---|
| ã«ã¼ãå DB ã¯ã¨ãª | N+1 ã¯ã¨ãªã®å¯è½æ§ |
| å¤§è¦æ¨¡ãã¼ã¿å¦ç | ãã¼ã¸ãã¼ã·ã§ã³æ¤è¨ |
| useEffect ä¹±ç¨ | ã¬ã³ããªã³ã°æé©å |
SEO/OGP éç¹ã¬ãã¥ã¼
| ãã¹ | ãã§ãã¯é ç® |
|---|---|
| src/pages/, app/ | title, description, canonical |
| public/ | robots.txt, sitemap.xml, OGP ç»å |
| layout.tsx, _document.tsx | viewport, OGP ã¿ã°, Twitter Card |
ã¯ãã¹ãã©ãããã©ã¼ã éç¹ã¬ãã¥ã¼
| ãã¹ | ãã§ãã¯é ç® |
|---|---|
| src/components/, app/ | ã¬ã¹ãã³ã·ãï¼åºå®å¹ ãã§ãã¯ï¼ |
| *.css, *.scss, tailwind | 100vw 使ç¨ãoverflow è¨å® |
| public/ | favicon, apple-touch-icon |
éç¹ã¬ãã¥ã¼çµ±ååºå
ð å質å¤å®çµæ â éç¹ã¬ãã¥ã¼é å
| å¤å® | è©²å½ | 対象ãã¡ã¤ã« |
|------|------|-------------|
| ã»ãã¥ãªã㣠| â ï¸ | src/api/auth.ts |
| ã«ãã¬ã㸠| â ï¸ | src/utils/helpers.ts (ãã¹ããªã) |
| a11y | â
| - |
| ããã©ã¼ãã³ã¹ | â
| - |
| SEO/OGP | â ï¸ | app/layout.tsx (OGP æªè¨å®) |
| ã¯ãã¹ãã©ãããã©ã¼ã | â
| - |
â ã»ãã¥ãªãã£ã»ã«ãã¬ãã¸ã»SEO ãéç¹çã«ã¬ãã¥ã¼
LSP ãã¼ã¹ã®å½±é¿åæï¼æ¨å¥¨ï¼
夿´ã¬ãã¥ã¼æã« LSP ãã¼ã«ã§å½±é¿ç¯å²ã確èª:
| 夿´ã¿ã¤ã | LSP æä½ | 確èªå 容 |
|---|---|---|
| 颿°ã·ã°ããã£å¤æ´ | findReferences | å ¨å¼ã³åºãå ãå¯¾å¿æ¸ã¿ã |
| åå®ç¾©å¤æ´ | findReferences | 使ç¨ç®æã§ã®åäºææ§ |
| API 夿´ | incomingCalls | å½±é¿ãåããã¨ã³ããã¤ã³ã |
ã¬ãã¥ã¼ããã¼:
- 夿´ãã¡ã¤ã«ãç¹å®
LSP.findReferencesã§å½±é¿ç¯å²ãåæ- å½±é¿ãåãããã¡ã¤ã«ãå«ãã¦ã¬ãã¥ã¼
使ç¨ä¾:
# 1. 夿´ããã颿°ã®åç
§ç®æã確èª
LSP operation=findReferences filePath="src/api/user.ts" line=42 character=15
# 2. 颿°ã®å¼ã³åºãé層ã確èª
LSP operation=incomingCalls filePath="src/api/user.ts" line=42 character=15
# 3. åå®ç¾©ã®ä½¿ç¨ç®æã確èª
LSP operation=findReferences filePath="src/types/api.ts" line=10 character=12
åºåä¾:
ð LSP å½±é¿åæçµæ
夿´: updateUserProfile() ã®ã·ã°ããã£å¤æ´
å½±é¿ãåããç®æ:
âââ src/pages/profile.tsx:89 â ï¸ å¼æ°æ´æ°å¿
è¦
âââ src/pages/settings.tsx:145 â ï¸ å¼æ°æ´æ°å¿
è¦
âââ tests/user.test.ts:67 â
æ´æ°æ¸ã¿
âââ src/api/admin.ts:23 â ï¸ å¼æ°æ´æ°å¿
è¦
â 3ç®æã§å¼æ°ã®æ´æ°ãå¿
è¦
注: LSP ãµã¼ãã¼ãè¨å®ããã¦ããè¨èªã§ã®ã¿åä½ãã¾ãã
Step 1: æ®ã³ã³ããã¹ã確èªï¼Codex ã¢ã¼ãæï¼
Codex ã¢ã¼ãï¼review.mode: codexï¼ã®å ´åã¯ãæ®ã³ã³ããã¹ãã 30%以ä¸ãªã /compact ãå
ã«å®è¡ãã¦ãã ããã
注æ: /compact å¾ãä½è£ãå°ãªãå ´åã¯ç¸®éããç¶è¡ãã¾ãã
Git log æ¡å¼µãã©ã°ã®æ´»ç¨ï¼CC 2.1.49+ï¼
ã¬ãã¥ã¼æã®ã³ãããåæã§æ§é åããããã°ãæ´»ç¨ãã¾ãã
夿´å±¥æ´ã®æ§é ååæ
# æ§é åãã©ã¼ãããã§ã³ãããå±¥æ´åå¾
git log --format="%h|%s|%an|%ad" --date=short -10
# ãã¼ã¸ã³ããããé¤å¤ãã¦ã¬ãã¥ã¼
git log --cherry-pick --no-merges main..HEAD
# 夿´ãã¡ã¤ã«ä¸è¦§ä»ã
git log --raw -5
ä¸»ãªæ´»ç¨å ´é¢
| ç¨é | ãã©ã° | 广 |
|---|---|---|
| ã³ãããä¸è¦§åå¾ | `–format=”%h | %s”` |
| ã¬ãã¥ã¼å¯¾è±¡ã®æç¢ºå | --cherry-pick --no-merges |
ãã¼ã¸ã³ãããé¤å¤ |
| 夿´å½±é¿åæ | --raw |
ãã¡ã¤ã«å¤æ´ã®è©³ç´°è¡¨ç¤º |
| æç³»åã§ã®åå 追跡 | --topo-order |
ãããã¸ã«ã«ã½ã¼ã |
åºåä¾
ð ã³ãããå±¥æ´åæï¼æ§é åï¼
| Hash | Subject | Author | Date |
|------|---------|--------|------|
| a1b2c3d | feat: add auth | Alice | 2026-02-04 |
| e4f5g6h | fix: cors error | Bob | 2026-02-03 |
夿´ãã¡ã¤ã«ï¼--rawï¼:
âââ src/auth.ts (Modified)
âââ src/api/middleware.ts (Added)
âââ tests/auth.test.ts (Modified)
â èªè¨¼å¨ãã®å¤æ´ãéç¹çã«ã¬ãã¥ã¼
Step 2: éå»ã®ã¬ãã¥ã¼æææ¤ç´¢ï¼Memory-Enhancedï¼
Claude-mem ãæå¹ãªå ´åãã¬ãã¥ã¼éå§åã«éå»ã®é¡ä¼¼ææãæ¤ç´¢:
# mem-search ã§éå»ã®ã¬ãã¥ã¼ææãæ¤ç´¢
mem-search: type:review "{夿´ãã¡ã¤ã«ã®ãã¿ã¼ã³}"
mem-search: concepts:security "{ã»ãã¥ãªãã£é¢é£ã®ãã¼ã¯ã¼ã}"
mem-search: concepts:gotcha "{夿´ç®æã«é¢é£ãããã¼ã¯ã¼ã}"
表示ä¾:
ð éå»ã®ã¬ãã¥ã¼ææï¼é¢é£ããï¼
| æ¥ä» | ææå
容 | ãã¡ã¤ã« |
|------|---------|---------|
| 2024-01-15 | XSSèå¼±æ§: innerHTML 使ç¨ç¦æ¢ | src/components/*.tsx |
| 2024-01-20 | N+1ã¯ã¨ãª: prefetch å¿
é | src/api/*.ts |
ð¡ ä»åã®ã¬ãã¥ã¼ã§ä¸è¨ãã¿ã¼ã³ãéç¹ãã§ãã¯
注: Claude-mem ãæªè¨å®ã®å ´åããã®ã¹ãããã¯ã¹ãããããã¾ãã
ã¬ãã¥ã¼ã¢ã¼ãã®é¸æ
ã¬ãã¥ã¼ã¹ãã«ã¯ 2 ã¤ã®ã¢ã¼ãã§åä½ãã¾ã:
è¨å®ç¢ºèª: .claude-code-harness.config.yaml
â
âââ review.mode: default â Claude åä½ã¬ãã¥ã¼
âââ review.mode: codex â Codex 並åã¬ãã¥ã¼ï¼ã¬ãã¥ã¼ã¿ã¤ããã¨ã«4ã¨ãã¹ãã¼ãï¼
Default ã¢ã¼ãï¼Claude åä½ï¼
Claude ãç´æ¥ã¬ãã¥ã¼ãå®è¡ãå°ãä¸è¦æ¨¡ã®å¤æ´ã«æé©ã
Codex ã¢ã¼ãï¼ä¸¦åã¨ãã¹ãã¼ãï¼
Codex CLI (codex exec) çµç±ã§ã¬ãã¥ã¼ã¿ã¤ãã«å¿ãã4ã¤ã®ã¨ãã¹ãã¼ãã åå¥ã«ä¸¦åå¼ã³åºã:
| Review Type | ã¨ãã¹ãã¼ã |
|---|---|
| Code Review | Security, Performance, Quality, Accessibility |
| Plan Review | Clarity, Feasibility, Dependencies, Acceptance |
| Scope Review | Scope-creep, Priority, Feasibility, Impact |
â ï¸ Codex ã¢ã¼ãå®è¡æã®å¿ é ã«ã¼ã«
絶対ã«1åã® codex exec å¼ã³åºãã§è¤æ°ã¨ãã¹ãã¼ããã¾ã¨ããªããã¨ã
â
æ£ãã: 4åã® `codex exec` å¼ã³åºãã1ã¤ã®ã¬ã¹ãã³ã¹å
ã§ä¸¦åå®è¡
â ééã: 1åã®å¼ã³åºãã§ãå
¨è¦³ç¹ãã¬ãã¥ã¼ãã¦ãã¨ä¾é ¼ï¼ã¾ã¨ãä¾é ¼ï¼
å®è¡æé :
- å¼ã³åºãã¨ãã¹ãã¼ããå¤å®ï¼å
¨é¨ã§ã¯ãªãå¿
è¦ãªãã®ã®ã¿ï¼:
- è¨å®ã§
enabled: falseâ é¤å¤ - CLI/ããã¯ã¨ã³ã â Accessibility, SEO é¤å¤
- ããã¥ã¡ã³ãã®ã¿å¤æ´ â Quality, Architect, Plan Reviewer, Scope Analyst ãåªå ï¼Security, Performance ã¯é¤å¤å¯ï¼
- è¨å®ã§
- æå¹ãªã¨ãã¹ãã¼ãã®
experts/*.mdããããã³ããã åå¥ã«èªã¿è¾¼ã - æå¹ãªã¨ãã¹ãã¼ãã®ã¿
codex execã Bash ããã¯ã°ã©ã¦ã³ãããã»ã¹ã§ä¸¦åå®è¡ - åçµæãçµ±åãã¦å¤å®
詳細: codex-review/references/codex-parallel-review.md
Codex ã¢ã¼ãæå¹å:
/codex-mode on
詳細: references/codex-integration.md
並åãµãã¨ã¼ã¸ã§ã³ãèµ·åï¼Default ã¢ã¼ãï¼
夿´ãã¡ã¤ã«æ°ã»ã¬ãã¥ã¼è¦³ç¹ã®ç®åºï¼å¿ é ï¼
files_count 㯠merge-base åºæºã§ç®åºãããã¨ï¼staged/unstaged ãå«ããï¼:
base=$(git merge-base HEAD origin/main 2>/dev/null \
|| git merge-base HEAD main 2>/dev/null \
|| git merge-base HEAD master 2>/dev/null \
|| git rev-parse HEAD~1 2>/dev/null \
|| git hash-object -t tree /dev/null)
committed=$(git diff --name-only --diff-filter=ACMRTUXB $base...HEAD)
staged=$(git diff --name-only --cached)
unstaged=$(git diff --name-only)
files=$(echo -e "$committed\n$staged\n$unstaged" | sort -u | grep -v '^$')
files_count=$(echo "$files" | wc -l)
review_aspects ã¯ãã¹ãã¼ã¹ã§æ¤åº:
function countReviewAspects(files) {
let aspects = 0;
if (files.some(f => /\/(auth|api|middleware|security)\//.test(f))) aspects++;
if (files.some(f => /\/(db|sql|repository|cache)\//.test(f))) aspects++;
if (files.some(f => /\/(components|pages|app)\/.*\.tsx$/.test(f))) aspects++;
if (files.some(f => /\/(pages|app)\/.*\.(metadata|head|seo)/.test(f))) aspects++;
return Math.max(aspects, 1);
}
以ä¸ã®æ¡ä»¶ãä¸¡æ¹æºããå ´åãTask tool ã§ code-reviewer ã並åèµ·å:
- ã¬ãã¥ã¼è¦³ç¹ >= 2ï¼ä¾: ã»ãã¥ãªã㣠+ ããã©ã¼ãã³ã¹ï¼
- 夿´ãã¡ã¤ã« >= 5
èµ·åãã¿ã¼ã³ï¼1ã¤ã®ã¬ã¹ãã³ã¹å ã§è¤æ°ã® Task tool ãåæå¼ã³åºãï¼:
Task tool 並åå¼ã³åºã:
#1: subagent_type="code-reviewer"
prompt="ã»ãã¥ãªãã£è¦³ç¹ã§ã¬ãã¥ã¼: {files}"
#2: subagent_type="code-reviewer"
prompt="ããã©ã¼ãã³ã¹è¦³ç¹ã§ã¬ãã¥ã¼: {files}"
#3: subagent_type="code-reviewer"
prompt="ã³ã¼ãå質観ç¹ã§ã¬ãã¥ã¼: {files}"
å°è¦æ¨¡ãªå ´åï¼æ¡ä»¶ãæºãããªãï¼:
- åã¹ãã«ï¼doc.mdï¼ãé æ¬¡èªã¿è¾¼ãã§ç´åå®è¡
ð§ MCP Code Intelligence ãã¼ã«ã®æ´»ç¨
ã¬ãã¥ã¼ã§ã¯ MCP ãã¼ã«ï¼AST-Grep, LSPï¼ãæ´»ç¨ãã¦ç²¾åº¦ãåä¸ãã¾ãã
éè¦:
/dev-tools-setupã§ MCP ãµã¼ãã¼ãè¨å®ããã¦ããå ´åãæ¨æºãã¼ã«ï¼Grep, Readï¼ã§ã¯ãªã MCP ãã¼ã«ãåªå 使ç¨ãã¦ãã ãããMCP ãã¼ã«ã¯æ§é çãªæ¤ç´¢ãå¯è½ã§ãããæ£ç¢ºãªçµæãå¾ããã¾ãã
AST-Grep MCP ãã¼ã«ï¼harness_ast_searchï¼
æ§é çãªã³ã¼ããã¿ã¼ã³æ¤ç´¢ã«ä½¿ç¨ãã¾ããæ£è¦è¡¨ç¾ãã¼ã¹ã® Grep ãã精度ãé«ããã³ã¼ãã¹ã¡ã«æ¤åºã«æé©ã§ãã
| æ¤åºãã¿ã¼ã³ | AST-Grep ãã¿ã¼ã³ | ç¨é |
|---|---|---|
| Debug logs | console.log($$$) |
ãªãªã¼ã¹åã®æ®çãã°æ¤åº |
| Empty catch | catch ($ERR) { } |
ã¨ã©ã¼æ¡ãã¤ã¶ãæ¤åº |
| Unused async | async function $NAME($$$) { $BODY } |
await ãªã async æ¤åº |
| Magic numbers | æ°å¤ãªãã©ã«æ¤ç´¢ | ãã¼ãã³ã¼ã宿°æ¤åº |
使ç¨ä¾:
harness_ast_search pattern="console.log($$$)" language="typescript" path="src/"
harness_ast_search pattern="catch ($ERR) { }" language="typescript" path="src/"
åºåä¾:
ð AST-Grep Code Smell Scan
Patterns checked:
- console.log($$$) â Debug logs
- catch ($ERR) { } â Empty catch blocks
Results:
âââ 3x console.log found (src/api/*.ts)
âââ 1x empty catch block (src/utils/error.ts:45)
âââ 0x unused async
注:
harness_ast_searchãå©ç¨ã§ããªãå ´åã¯ãsgã³ãã³ãï¼Bashï¼ã¾ã㯠Grep ã«ãã©ã¼ã«ããã¯ãã¾ãã
ð§ LSP æ©è½ã®æ´»ç¨
ã¬ãã¥ã¼ã§ã¯ LSPï¼Language Server Protocolï¼ãæ´»ç¨ãã¦ç²¾åº¦ãåä¸ãã¾ãã
MCP çåªå :
harness_lsp_*MCP ãã¼ã«ãå©ç¨å¯è½ãªå ´åã¯ãæ¨æº LSP ãã¼ã«ããåªå ãã¦ä½¿ç¨ãã¦ãã ããã
LSP ãã¬ãã¥ã¼ã«çµ±å
| ã¬ãã¥ã¼è¦³ç¹ | LSP æ´»ç¨æ¹æ³ |
|---|---|
| å質 | Diagnostics ã§åã¨ã©ã¼ã»æªä½¿ç¨å¤æ°ãèªåæ¤åº |
| ã»ãã¥ãªã㣠| Find-references ã§æ©å¯ãã¼ã¿ã®æµãã追跡 |
| ããã©ã¼ãã³ã¹ | Go-to-definition ã§éãå¦çã®å®è£ ãç¢ºèª |
LSP Diagnostics ã®åºåä¾
ð LSP 診æçµæ
| ãã¡ã¤ã« | ã¨ã©ã¼ | è¦å |
|---------|--------|------|
| src/components/Form.tsx | 0 | 2 |
| src/utils/api.ts | 1 | 0 |
â ï¸ 1ä»¶ã®ã¨ã©ã¼ãæ¤åº
â ã¬ãã¥ã¼ã§ææäºé
ã«è¿½å
Find-references ã«ããå½±é¿åæ
ð 夿´å½±é¿åæ
夿´: validateInput()
åç
§ç®æ:
âââ src/pages/signup.tsx:34
âââ src/pages/settings.tsx:56
âââ tests/validate.test.ts:12
â ãã¹ãã§ã«ãã¼æ¸ã¿ â
詳細: docs/LSP_INTEGRATION.md
ð§ PDF ãã¼ã¸ç¯å²èªã¿åãï¼Claude Code 2.1.49+ï¼
ããã¥ã¡ã³ãã¬ãã¥ã¼æã«å¤§å PDF ãå¹ççã«æ±ãããã®æ©è½ã§ãã
ãã¼ã¸ç¯å²æå®ã§èªã¿åã
// ãã¼ã¸ç¯å²æå®ã§èªã¿åã
Read({ file_path: "docs/architecture.pdf", pages: "1-15" })
// 夿´å±¥æ´ã»ã¯ã·ã§ã³ã®ã¿
Read({ file_path: "docs/changelog.pdf", pages: "5-12" })
// ã»ãã¥ãªãã£è¦ä»¶ã®ã¿
Read({ file_path: "docs/requirements.pdf", pages: "45-60" })
ããã¥ã¡ã³ãã¬ãã¥ã¼æã®æ¨å¥¨ã¢ããã¼ã
| ã¬ãã¥ã¼å¯¾è±¡ | æ¨å¥¨èªã¿åãæ¹æ³ | çç± |
|---|---|---|
| 大å仿§æ¸ | ç®æ¬¡ + 夿´ç®æã®ã¿ | é¢é£ã»ã¯ã·ã§ã³ã«éä¸ |
| APIè¨è¨æ¸ | ã¨ã³ããã¤ã³ãä¸è¦§ + ã»ãã¥ãªãã£ç« | éè¦ãªè¦³ç¹ãåªå |
| ã¢ã¼ããã¯ãã£ææ¸ | ã·ã¹ãã æ§æå³ + éæ©è½è¦ä»¶ | ã¬ãã¥ã¼å¯¾è±¡ãçµã込㿠|
| ã¦ã¼ã¶ã¼ããã¥ã¢ã« | ç®æ¬¡ + ã¢ã¯ã»ã·ããªãã£é | 使ãããããç¢ºèª |
| ãªãªã¼ã¹ãã¼ã | ææ°ãã¼ã¸ã§ã³ã®å¤æ´ç¹ã®ã¿ | é¢é£ãã夿´ãç¹å® |
ã¬ãã¥ã¼è¦³ç¹å¥ã®æ´»ç¨ä¾
ã»ãã¥ãªãã£ã¬ãã¥ã¼
大åã»ãã¥ãªãã£ä»æ§æ¸ï¼200ãã¼ã¸ï¼ã®ã¬ãã¥ã¼:
1. **ç®æ¬¡ã§æ§é ãææ¡**ï¼1-3ãã¼ã¸ï¼
Read({ file_path: "security-spec.pdf", pages: "1-3" })
2. **èªè¨¼ã»èªå¯ã®ç« ãç²¾èª**ï¼25-45ãã¼ã¸ï¼
Read({ file_path: "security-spec.pdf", pages: "25-45" })
3. **èå¼±æ§å¯¾çã®ç« ãç²¾èª**ï¼78-92ãã¼ã¸ï¼
Read({ file_path: "security-spec.pdf", pages: "78-92" })
ãã®æ¹æ³ã§ãã»ãã¥ãªãã£ã¬ãã¥ã¼ã«å¿
è¦ãªé¨åã ããå¹ççã«ç¢ºèªã§ãã¾ãã
ããã©ã¼ãã³ã¹ã¬ãã¥ã¼
ããã©ã¼ãã³ã¹è¦ä»¶æ¸ï¼150ãã¼ã¸ï¼ã®ã¬ãã¥ã¼:
1. **ç®æ¬¡ã¨ãµããªã¼**ï¼1-5ãã¼ã¸ï¼
Read({ file_path: "performance-spec.pdf", pages: "1-5" })
2. **ã¬ã¹ãã³ã¹ã¿ã¤ã è¦ä»¶**ï¼34-50ãã¼ã¸ï¼
Read({ file_path: "performance-spec.pdf", pages: "34-50" })
3. **è² è·ãã¹ãçµæ**ï¼120-135ãã¼ã¸ï¼
Read({ file_path: "performance-spec.pdf", pages: "120-135" })
ã¬ãã¥ã¼ã¯ã¼ã¯ããã¼çµ±å
Step 0: å質å¤å®ã²ã¼ãï¼ããã¥ã¡ã³ãåæï¼
ããã¥ã¡ã³ãã¬ãã¥ã¼æã«ãã¾ããã¼ã¸ç¯å²æå®ã§æ¦è¦ãææ¡:
1. ç®æ¬¡ãèªãã§æ§é ãçè§£
Read({ file_path: "spec.pdf", pages: "1-3" })
2. 夿´ç®æãç¹å®
ç®æ¬¡ãã夿´ã»ã¯ã·ã§ã³ã®ãã¼ã¸çªå·ãåå¾
3. é¢é£ã»ã¯ã·ã§ã³ã®ã¿ç²¾èª
Read({ file_path: "spec.pdf", pages: "{夿´ç¯å²}" })
4è¦ç¹ã¬ãã¥ã¼ã§ã®æ´»ç¨
| è¦³ç¹ | èªãã¹ããã¼ã¸ç¯å² | ä¾ |
|---|---|---|
| ã»ãã¥ãªã㣠| èªè¨¼ã»èªå¯ãæå·åãèå¼±æ§å¯¾ç | pages: “25-45,78-92” |
| ããã©ã¼ãã³ã¹ | éæ©è½è¦ä»¶ãè² è·ãã¹ãçµæ | pages: “34-50,120-135” |
| å質 | ã³ã¼ãã£ã³ã°è¦ç´ããã¹ãæ¦ç¥ | pages: “60-75” |
| ã¢ã¯ã»ã·ããªã㣠| UI/UXè¦ä»¶ãWCAGæºæ | pages: “95-110” |
ãã¹ããã©ã¯ãã£ã¹
| åå | 説æ |
|---|---|
| ç®æ¬¡åªå | 常ã«ç®æ¬¡ã§æ§é ãææ¡ãã¦ãã詳細㸠|
| 観ç¹å¥ãã¼ã¸ç¯å² | ã¬ãã¥ã¼è¦³ç¹ãã¨ã«å¿ è¦ãªãã¼ã¸ãç¹å® |
| 夿´å·®åã«éä¸ | æ¢åããã¥ã¡ã³ãã¯å¤æ´ç®æã®ã¿ã¬ãã¥ã¼ |
| éè¦åº¦é | Critical â Major â Minor ã®é ã«èªã |
ãã¼ã¯ã³æ¶è²»ã®æ¯è¼
| ã¬ãã¥ã¼æ¹æ³ | ããã¥ã¡ã³ãè¦æ¨¡ | ãã¼ã¯ã³æ¶è²» | ã¬ãã¥ã¼ç²¾åº¦ |
|---|---|---|---|
| å ¨ãã¼ã¸èªã¿è¾¼ã¿ | 200ãã¼ã¸ | ~100,000 | é« |
| ãã¼ã¸ç¯å²æå® | å¿ è¦ãª30ãã¼ã¸ | ~15,000 | é« |
â 85%ã®ãã¼ã¯ã³åæ¸ã¨ã¬ãã¥ã¼æéç縮ãå¯è½
注æäºé
- ãã¼ã¸ç¯å²ã¯1-indexedï¼1ãã¼ã¸ç®ã¯
pages: "1"ï¼ - è¤æ°ç¯å²ã¯æªãµãã¼ãï¼å°æ¥ã®æ¡å¼µã§å¯¾å¿äºå®ï¼
- ç¾æç¹ã§ã¯é£ç¶ãããã¼ã¸ç¯å²ã®ã¿æå®å¯è½
VibeCoder åã
ð ã³ã¼ããã§ãã¯ãä¾é ¼ããã¨ãã®è¨ãæ¹
1. **ããã§ãã¯ãã¦ã**
- å
¨ä½çã«åé¡ããªããè¦ã¦ããã
2. **ãã»ãã¥ãªãã£å¤§ä¸å¤«ï¼ã**
- æªæããæ»æã«èããããããã§ãã¯
3. **ãé
ããªãï¼ã**
- é度ã«åé¡ããªãããã§ãã¯
4. **ã誰ã§ã使ããï¼ã**
- é害ã®ããæ¹ã§ã使ããããã§ãã¯
ð¡ ãã³ã: ãå
¨é¨ãã§ãã¯ãã¦ãã¨è¨ãã°ã
4ã¤ã®è¦³ç¹ãã¹ã¦ãèªåã§ç¢ºèªãã¾ã