| name | kyosei |
| description | Code review for PRs or local changes. Covers code quality, dependency updates, performance, test coverage, documentation accuracy, and security. Use when reviewing PRs, checking code quality, or running comprehensive code reviews. |
| argument-hint | [pr-url] |
| allowed-tools | Bash(node:*), Glob, Grep, Read, Task, mcp__github |
| effort | medium |
get-review-infoã§ã®æ
å ±ã®ååŸ
以äžã®ã³ãã³ãã§ã¬ãã¥ãŒã«å¿
èŠãªæ
å ±ãäžæ¬ååŸããŸãã
node ${CLAUDE_PLUGIN_ROOT}/dist/bin/get-review-info.js $ARGUMENTS
çµæã¯JSONã§è¿ãããã®ã§ã
以äžã®ã¬ã€ãã«åŸã£ãŠè§£éããŠãã ããã
JSONã®è§£é
context ãã£ãŒã«ã
context.outputãã£ãŒã«ãã§åºåå
ãå€å¥ããŸãã
"github"
GitHubåºåã
çµæã¯GitHub PRã«ã€ã³ã©ã€ã³ã³ã¡ã³ããšããŠæçš¿ãããŸãã
hostãšpr(owner, repo, prNumber)ãå«ãŸããŸãã
"local"
ããŒã«ã«åºåã
çµæã¯ã¿ãŒããã«ã«çŽæ¥åºåãããŸãã
ãã©ã³ãã«çŽä»ãPRãç¹å®ã§ããå Žåã¯prãå«ãŸããŸãã
changeset ãã£ãŒã«ã
diff: å·®å(diffãã©ãŒããã)
log: ã³ããããã°
headCommitId: PRã®headã³ãããSHA(GitHubåºåæã®ã¿)
conversation ãã£ãŒã«ã(PRãç¹å®ã§ããå Žåã®ã¿)
PRã®æ¢åã³ã¡ã³ãã»ã¬ãã¥ãŒæ
å ±ã§ãã
GitHubåºåã¢ãŒãã§ã¯åžžã«å«ãŸããŸãã
ããŒã«ã«åºåã¢ãŒãã§ããã©ã³ãã«çŽä»ãPRãããã°å«ãŸããŸãã
PRãç¹å®ã§ããªãå Žåã¯ãã£ãŒã«ãèªäœãçç¥ãããŸãã
ãããã¬ãã«ã«PRèªäœã®æ
å ±(title, body, author, urlãªã©)ãããã
以äžã®3ã€ã®ãµããã£ãŒã«ãããããŸãã
comments: PRå
šäœãžã®ã³ã¡ã³ãäžèЧã以äžã®ãã£ãŒã«ããæã¡ãŸãã
id
author
body
createdAt
updatedAt
url
reviews: ã¬ãã¥ãŒäžèЧã以äžã®ãã£ãŒã«ããæã¡ãŸãã
id
author
state: APPROVED, CHANGES_REQUESTEDç
body
submittedAt
url
reviewThreads: ã€ã³ã©ã€ã³ã¬ãã¥ãŒã¹ã¬ããäžèЧã以äžã«æç²ãããã£ãŒã«ããªã©ãæã¡ãŸãã
isResolved
isOutdated
path
line
diffSide
comments: ã¹ã¬ããå
é
å
previousReview ãã£ãŒã«ã(ååkyoseiã¬ãã¥ãŒã埩å
ã§ããå Žåã®ã¿)
éå»ã®ã¬ãã¥ãŒæ¬ææ«å°Ÿã®ã¡ã¿ããŒã¿ããã¿ãŒãã埩å
ã§ããææ°ã®kyoseiã¬ãã¥ãŒãå«ãŸããŸãã
埩å
ã§ããªããã°ãã£ãŒã«ãèªäœãçç¥ãããŸãã
reviewId: GitHubã®review ID
event: ååã®review state(APPROVED, CHANGES_REQUESTED, COMMENTEDç)
submittedAt: æçš¿æå»(ISO 8601 UTC)
metadata: ããã¿ãŒãã埩å
ããã¡ã¿ããŒã¿å
šäœ
commit: ç¹ã«ããã«ååã¬ãã¥ãŒå¯Ÿè±¡ã³ãããSHAãå
¥ããŸã
incrementalChangeset ãã£ãŒã«ã(previousReviewãããheadCommitIdãåããå Žåã®ã¿)
ååã¬ãã¥ãŒå¯Ÿè±¡ã³ãããããçŸheadãžã®å¢åå€å®ã§ãã
statusã®å€ã§åãæ±ããåå²ããŸãã
status: 以äžã®ãããã
"tree-identical": ååãšçŸheadã®Git treeãåäžãdependabot/renovateã®å
žåæåã
- rebaseããŠå·®åããªã
- 眲åãçŽã
- force pushã§åäžã«æ»ã£ã
"diff-empty":
tree SHAã¯ç°ãªããcompareCommits.filesã®å®éã®å·®åã®è¡ã§ããadditions+deletionsã®åèšã0ã
masterããŒãžã®ã¿ãªã©ã
"diff-present": å®ã³ãŒã倿Žè¡ãååšãããéåžžã¬ãã¥ãŒã«åããŸãã
"lookup-failed": APIååŸå€±æ(SHAãGCã§æ¶ããç)ããã§ã€ã«ã»ãŒãã§éåžžã¬ãã¥ãŒã«åããŸãã
baseSha, headSha: æ¯èŒå¯Ÿè±¡ã³ããã
- 以äžã¯åèæ
å ±ã
lookup-failedæã¯çç¥ãããŸãã
baseTreeSha
headTreeSha
aheadBy
behindBy
changedFileCount
changedLineCount
ååã¬ãã¥ãŒã«ããåäœã®åå²
ç°¡æã¬ãã¥ãŒã®å®è¡
incrementalChangeset.statusã"tree-identical"ãŸãã¯"diff-empty"ã®å Žåã¯ã
ãµããšãŒãžã§ã³ããäžåèµ·åããã
ååã¬ãã¥ãŒã®å€å®ãåŒãç¶ãã ç°¡æã¬ãã¥ãŒãçµã¿ç«ãŠãŠæçš¿ããŠãã ããã
Claudeã®äœ¿çšéãç¯çŽããããã®åå²ã§ãã
æçš¿JSONã¯ä»¥äžã®ããã«çµã¿ç«ãŠãŠãã ããã
bodyã¯statusã«å¿ããäžæãäžå¿ã«çµã¿ç«ãŠãŸãã
"tree-identical": äŸ
- ååã¬ãã¥ãŒã®commit (ã³ãããçªå·) ããããªãŒå
容ã«å€æŽã¯ãããŸããã
rebaseã«ããæŽæ°ã®ã¿ã
ååå€å®ãç¶æããŸãã
"diff-empty": äŸ
- ååã¬ãã¥ãŒã®commit (ã³ãããçªå·) 以éã¯å®ã³ãŒã倿ŽããªãããŒãžã®ã¿ã§ãã
ååå€å®ãç¶æããŸãã
commentsã¯ç©ºé
åã
eventã¯previousReview.eventãåŒãç¶ãã
previousReview.eventãAPPROVEDãªã"APPROVE"ã
CHANGES_REQUESTEDãªã"REQUEST_CHANGES"ã
COMMENTEDçãã以å€ã¯"COMMENT"ã«ã
ãããããŠãã ããã
metadata.modelã¯éåžžéãæž¡ããŠãã ããã
headCommitIdã¯changeset.headCommitIdã䜿ããŸãã
ãã£ãŒãããã¯ã®åºåã»ã¯ã·ã§ã³ãŸã§ã¹ãããããŠãã ããã
éåžžã¬ãã¥ãŒã®å®è¡
statusã"diff-present"/"lookup-failed"ã
ãããã¯incrementalChangeset/previousReviewãã£ãŒã«ãèªäœãç¡ãå Žåã¯ã
éåžžãããŒãå®è¡ããŠãã ããã
ã³ãŒãã¬ãã¥ãŒã®å®è¡
äž»èŠé åã«ã€ããŠä»¥äžã®å°éã®ãµããšãŒãžã§ã³ãã䞊åã§äœ¿çšããŠå
æ¬çãªã³ãŒãã¬ãã¥ãŒãå®è¡ããŸãã
TaskããŒã«ã®subagent_typeã«ã¯ã
ãã©ã°ã€ã³åãå«ããå®å
šä¿®é£Ÿå(kyosei:<agent-name>)ãæå®ããŠãã ããã
ãã©ã°ã€ã³ããæäŸããããµããšãŒãžã§ã³ãã¯<plugin-name>:<agent-name>ã®åœ¢åŒã§ç»é²ãããŠããããã
prefixãçç¥ãããšAgent type 'code-quality-reviewer' not foundã®ãããªãšã©ãŒã«ãªããŸãã
ãµããšãŒãžã§ã³ãã¯äžåºŠã«å
šãŠäžŠåã«èµ·åããŠãã ããã
åã¬ãã¥ãŒãšãŒãžã§ã³ãã®ããã³ããã«ã¯get-review-infoã§ååŸæžã¿ã®æ
å ±ãå«ããŠãã ããã
ã¬ãã¥ãŒãšãŒãžã§ã³ãã¯å·®åãååŸããããã®ããŒã«ãååãšããŠæããªãããã
èªåã§å·®åãååŸããªãããã«ãªã£ãŠããŸãã
䞊åå®è¡çµæã®ããŒãž
åãµããšãŒãžã§ã³ãã¯JSONé
åã§çµæãè¿ããŸãã
å
šãšãŒãžã§ã³ãã®é
åãçµåããäžã§ã
éè€ããææã¯1ã€ã«ãŸãšããŠãã ããã
以äžã®3æ¡ä»¶ãå
šãŠæºããææã¯åäžãšã¿ãªãã
1ã€ã«ãŸãšããŠãã ãã:
- åããã¡ã€ã«ã§ãã
- æŠãåãè¡ã§ãã(æ°è¡çšåºŠã®ããã¯åäžãšã¿ãªã)
- åãè«ç¹ã§ãã
ç°ãªããã¡ã€ã«ã«å¯Ÿããåãè«ç¹ã®ææã¯å¥ã
ã®åé¡ãšããŠæ®ããŠãã ããã
çµ±åæã®ã«ãŒã«:
levelãç°ãªãå Žå: 以äžã®é ã§ããé«ãéå€§åºŠãæ¡çšãã
CAUTION > WARNING > IMPORTANT > TIP > NOTE
tagsãç°ãªãå Žå: äž¡æ¹ã®ã¿ã°ãéè€ãªãå«ãã
bodyãç°ãªãå Žå: äž¡æ¹ã®åºæã®æ
å ±ãå«ããŠããŒãžãã
lineããããŠããå Žå: ããæ£ç¢ºãªè¡ãæ¡çšãã
éè€ã³ã¡ã³ãã®é€å€
conversationãã£ãŒã«ããååšããå Žåã
ã¬ãã¥ãŒãã£ãŒãããã¯ãšç
§åãã
以äžã«è©²åœãããã®ã¯é€å€ããŸã:
- æ¢ã«åãææãæ¢åã³ã¡ã³ãã«å«ãŸããŠãã
- ææã«å¯ŸããŠã察å¿ããªãããæå³çãã仿§ãçã®è¿çããã
- æ¢ã«resolvedãããã¬ãã¥ãŒã³ã¡ã³ããšåãå
容
é€å€åŸã«æ®ã£ãç¹çãã¹ããã£ãŒãããã¯ã®ã¿ãåºåããŸãã
cross-referenceæ©èœã®æ³šæ
ãµããªãŒã§ãã€ã³ã©ã€ã³ã³ã¡ã³ãã§ãã
ããããå Žæã®ããã¹ãã«èšããããšã§ããã
issueãPRãåç
§ããæã«ã¯åžžã«UsernameãšRepositoryãå«ããŠãã ããã
å€éšã®ãªããžããªã®issueãPRã«èšåããã€ããã§ã
å
éšã®ãªããžããªãžã®èª€ã£ãåç
§ãããŠããŸãã®ãé²ãããã§ãã
以äžã®ãããªèšæ³ã¯é¿ããŠãã ããã
see #26
代ããã«ä»¥äžã®ãããªèšæ³ã䜿ã£ãŠãã ããã
see jlord/sheetsee.js#26
ãã£ãŒãããã¯ã®åºå
GitHubåºåã®å Žå
æçš¿ããã¬ãã¥ãŒæ
å ±ãšãªãJSONæååãçµã¿ç«ãŠãŸãã
JSONã¹ããŒã
owner: ãªããžããªãªãŒããŒ(context.pr.owner)
repo: ãªããžããªå(context.pr.repo)
prNumber: PRçªå·(context.pr.prNumber)
headCommitId: headã³ãããSHA(changeset.headCommitId)ã
å¿
é ãã€SHA圢åŒ(7ã40æ¡ã®16é²)ã§ããå¿
èŠããããŸãã
event: ã¬ãã¥ãŒã€ãã³ãã以äžã®ããããã
"APPROVE"
"COMMENT"
"REQUEST_CHANGES"
body: ã¬ãã¥ãŒå
šäœã®ãµããªãŒãå¿
é ã§ãã空æååã¯äžå¯ã
comments: ã€ã³ã©ã€ã³ã³ã¡ã³ãã®é
å(çç¥å¯)
path: ãã¡ã€ã«ã®çžå¯Ÿãã¹
body: ã³ã¡ã³ãæ¬æ
line: ã³ã¡ã³ããä»ããè¡çªå·(è€æ°è¡ã®å Žåã¯çµäºè¡)
startLine: è€æ°è¡ã³ã¡ã³ãã®éå§è¡(çç¥å¯èœã§çç¥ãããšãã¯single line)
side: "LEFT"(åé€è¡)ãŸãã¯"RIGHT"(远å è¡)ãããã©ã«ã"RIGHT"
tags: ææã®ã¿ã°é
åã
以äžã®æååãå¿
èŠãªã ãæå®ããŠãã ããã
該åœã¿ã°ããªãå Žåã¯ç©ºé
åã«ããŠãã ããã
"code-quality"
"dependency"
"documentation"
"performance"
"security"
"test"
level: ææã®é倧床ã以äžã®ããããã
"CAUTION"
"WARNING"
"IMPORTANT"
"TIP"
"NOTE"
metadata: LLM èªèº«ãã確å®ã«ã¯ç¥ããªãã¡ã¿ããŒã¿(çç¥å¯)
model: çŸåšäœ¿ã£ãŠãã Claude ã¢ãã«ã®èå¥åã
äŸ: "claude-opus-4-7"ã
çç¥æã¯unknownãšè¡šç€ºãããŸãã
internalErrors: ã¬ãã¥ãŒå®è¡äžã«çºçããæ³å®å€ã®å
éšãšã©ãŒã®é
å(çç¥å¯)ã
詳现ã¯åŸè¿°ãå
éšãšã©ãŒã®å ±åããåç
§ããŠãã ããã
以äžã®åèŠçŽ ãæã¡ãŸãã
subject: ãšã©ãŒã®èŠçŽ(1è¡)ã### {subject}ãšããŠã¬ãã¥ãŒæ¬æäžã«å±éãããŸãã
body:
ãšã©ãŒã®è©³çް(èªç±èšè¿°)ã
MarkdownãšããŠãã®ãŸãŸå±éãããŸãã
ã¹ã¿ãã¯ãã¬ãŒã¹çã®çãã°ãèŒããå Žåã¯èªåã§ã³ãŒããããã¯ã§å²ãã§ãã ããã
ã¬ãã¥ãŒæ¬æãšã€ã³ã©ã€ã³ã³ã¡ã³ãã¯1åã®ããã°ã©ã åŒã³åºãã§äžæ¬æçš¿ãããŸãã
ã€ã³ã©ã€ã³ã³ã¡ã³ãã®æ¬æã«ã¯levelã«å¯Ÿå¿ããGitHub Alertãšã
tagsã«å¯Ÿå¿ããçµµæåä»ãã©ãã«ãããã°ã©ã ã«ãã£ãŠèªåä»äžãããŸãã
bodyã®æ«å°Ÿã«ã¯ã¬ãã¥ãŒã¡ã¿ããŒã¿ãšããŠã
<details>æãããã¿ã®åœ¢åŒã§ä»¥äžã®æ
å ±ãèªåä»äžãããŸãã
- ã¬ãã¥ãŒå¯Ÿè±¡ã³ããã
- PRçªå·
- kyoseiããŒãžã§ã³
- kyosei-actionããŒãžã§ã³
- Claude CodeããŒãžã§ã³
- ã¢ãã«
- å®è¡ç°å¢
- Run URL
ããã°ã©ã åŽã§èªåä»äžãããŸãã
ãããã®é
ç®ã¯bodyã«æžããªãã§ãã ããã
å
éšãšã©ãŒã®å ±å
ã¬ãã¥ãŒã¯ãŒã¯ãããŒå®è¡äžã«æ³å®å€ã®ãšã©ãŒãçºçããå Žåã
internalErrorsã«{ subject, body }ã®åœ¢ã§è©°ããŠãã ããã
ã¬ãã¥ãŒæ¬æã®çŽäžã«## Internal errorsã»ã¯ã·ã§ã³ãçæããã
åŸããããªã¢ãŒãžã§ããããã«ãªããŸãã
å ±åãã¹ãäŸ(æ³å®å€ã§å®è¡ãä¹±ãããšã©ãŒ):
- 䞊åèµ·åãããµããšãŒãžã§ã³ãã®äžéšãæ³å®å€ã«å€±æããæ¬ ãããŸãŸç¶è¡ãã
get-review-infoã®ååŸã§éšåçãªå€±æããããconversationçãæ¬ ããç¶æ
ã§ã¬ãã¥ãŒãçµã¿ç«ãŠã
submit-reviewã®JSONçµã¿ç«ãŠãåŒæ°æž¡ãã§è©Šè¡é¯èª€ãçºçãã
- ã¬ãã¥ãŒå¯Ÿè±¡ãšã¯å¥ã®è£å©ã³ãã³ããæ³å®å€ã®ãšã©ãŒã§äœ¿ããªãã£ã
å ±åããªããŠããäŸ(æ£åžžåäœã®äžéš):
- ããã±ãŒãžæ
å ±ååŸæã®404(ç»é²ãããŠããªãã ã)
- ä»»æã®ãã£ãã·ã¥ãã¹
- æ¢ç¥ã®æš©éäžè¶³ã§èªããªãã£ããã©ã€ããŒããªãœãŒã¹
subjectã¯1è¡ã®èŠçŽã
bodyã¯èªç±èšè¿°ã®Markdownã§ãã
çã説æã ããªãããã¹ãã®ã¿ã§ååã§ããã
ã¹ã¿ãã¯ãã¬ãŒã¹ãã³ãã³ãåºåããã®ãŸãŸè²Œãå Žåã¯ã³ãŒããããã¯(```)ã§å²ãã§ãã ããã
説ææãšçãã°ã䜵èšããããšãã§ããŸãã
eventã®æ±ºå®
eventã¯ã¬ãã¥ãŒå
šäœã®å€å®ã衚ããŸãã
ä»åã®ã¬ãã¥ãŒã§æ°ãã«æçš¿ããã³ã¡ã³ãã ãã§ãªãã
conversationãã£ãŒã«ãã®æ¢åã¬ãã¥ãŒç¶æ
ãèæ
®ããŠç·åçã«å€å®ããŠãã ããã
察å¿ãä¿®æ£ããããŠãããã©ããã¯ã
å·®åãã³ããããã°ãconversationãã£ãŒã«ãã®è¿ä¿¡ãã倿ããŠãã ããã
å€å®åºæºã¯ä»¥äžã®éãã§ãã
é çªã«å€å®ããŠãã ããã
REQUEST_CHANGES
以äžã®ããããã«è©²åœããå Žåã
- ä»åã®ã³ã¡ã³ãã«
CAUTIONã¬ãã«ã®ææãããã
- ååã®ã¬ãã¥ãŒã®
stateãCHANGES_REQUESTEDã§ããã®ææã«å¯Ÿå¿ããä¿®æ£ã確èªã§ããªãã
APPROVE
以äžã®å
šãŠãæºããå Žåã
- ä»åã®ã³ã¡ã³ãã
TIPãŸãã¯NOTEã®ã¿ããããã¯ã³ã¡ã³ããªãã
- ååã®ã¬ãã¥ãŒã§ã®
TIPãŸãã¯NOTE以å€ã®ææãå
šãŠå¯Ÿå¿æžã¿ã§ããããšã
COMMENT
äžèšã®ãããã«ã該åœããªãå Žåã
äŸãšããŠWARNINGãIMPORTANTã®ææãããã ãã®å Žåã
WARNINGã§ãREQUEST_CHANGESã§ã¯ãªãã®ã¯çŽæã«åãããããããŸãããã
ããŸãæ©æ¢°ã«ããã¬ãã¥ãŒãå³ããããªãããã«ããããã®æªçœ®ã§ãã
æçš¿
泚æäºé
submit-reviewã³ãã³ãã¯GitHub APIãçŽæ¥åŒã³åºãã
PRã«å¯ŸããŠã¬ãã¥ãŒãå³åº§ã«æçš¿ããç Žå£çã¢ã¯ã·ã§ã³ã§ãã
æçš¿ãããç¬éã«PRèè
ãwatcherã«éç¥ãé£ã³ãŸãã
æçš¿åŸã«ãæçš¿ããªãã£ãããšã«ãããæäœã¯ã§ããŸããã
æš©éãããå Žåã«éãç·šéãåé€ã¯å¯èœã§ãããéç¥ãç£æ»ãã°ã«ã¯çè·¡ãæ®ããŸãã
"test", "ãã¹ã", "åäœç¢ºèª"ã®ãããªäžèº«ã®ãªãæååãbodyã«ããŠæçš¿ããŠã¯ãããŸããã
ã¬ãã¥ãŒãå®æçš¿ããåæã§çµã¿ç«ãŠãJSONã®ã¿ãæž¡ããŠãã ããã
ã³ãã³ããæ£ããåããäžå®ã ã£ããã
JSONãã¹ããŒããéãã確èªãããã ãã®å Žåã¯ã
åŸè¿°ã®--dry-runã䜿ã£ãŠãã ããã
å®æçš¿ã§è©Šãæã¡ããã®ã¯çŠæ¢ã§ãã
å®éã®ã³ãã³ã
以äžã®ã³ãã³ãã§ã¬ãã¥ãŒãäžæ¬æçš¿ããŸãã
åŒæ°ã«JSONæååãæž¡ããŠãã ããã
node ${CLAUDE_PLUGIN_ROOT}/dist/bin/submit-review.js 'JSON_STRING'
ææããããšããªãå Žå
ææããããšããªãå®ç§ãªPRã®å Žåã§ãã
ã¬ãã¥ãŒã®ã¯ãŒã¯ãããŒãæ£åžžã«å®äºããããšãäŒããããã
ã¬ãã¥ãŒãæçš¿ããŠãã ããã
å®ç§ãªPRã®å Žåãªã®ã§eventã¯APPROVEã§ã
ã€ã³ã©ã€ã³ã³ã¡ã³ãã¯ç©ºã§æ§ããŸããã
æ¬æã¯ç©ºã«ã§ããªãããã
ç°¡æœãªç·è©ãèšè¿°ããŠãã ããã
åäœç¢ºèª(--dry-run)
çµã¿ç«ãŠãJSONãã¹ããŒããã¡ã¿ããŒã¿çæãéããã ãæ€èšŒãããå Žåã¯ã
--dry-runãã©ã°ãä»ããŠå®è¡ããŸãã
node ${CLAUDE_PLUGIN_ROOT}/dist/bin/submit-review.js --dry-run 'JSON_STRING'
GitHub APIãžã®æçš¿ã¯è¡ãããã
{"dryRun": true, "params": {...}}ã®åœ¢åŒã§ã
createReviewã«æž¡ãããäºå®ã®ãã©ã¡ãŒã¿ãJSONåºåãããŸãã
éåžžã®ã¬ãã¥ãŒã¯ãŒã¯ãããŒã§ã¯äœ¿ããŸããã
ã³ãã³ãã®æåã確ããããå Žåãã
JSONã®çµã¿ç«ãŠãæ€èšŒãããå Žåã«éã£ãŠãã¡ãã䜿ã£ãŠãã ããã
æ¬çªã®ã¬ãã¥ãŒæçš¿åã«è©Šãæã¡ããããšã¯ããŸãæ³å®ããŠããŸããã
ã¹ããŒããäžæ£ãªå Žåã¯æ¬çªã¬ãã¥ãŒã¢ãŒãã§ãããªããŒã·ã§ã³ã§ãšã©ãŒã«ãªãã®ã§ã
æ¬åœã«æçš¿ããäºå®ã®ããŒã¿ãªãã
ãšã©ãŒãã°ã確èªããã°ååãªã¯ãã ããã§ãã
ããŒã«ã«åºåã®å Žå
åãã£ãŒãããã¯ã¯ä»¥äžã®åœ¢åŒã§åºåããŸã:
- ãã¡ã€ã«ãã¹
- 該åœç®æã®å·®å(diffãã©ãŒããã)
- ã³ã¡ã³ã