å¢ããã«ã¹ã¿ã ãšãŒãžã§ã³ãã frontmatter ããèªåã§äžèЧåãã â é±1å launchd ã§ INDEX.md ãæŽæ°ãã
ååãäŒè©±ãã°ãé·æèšæ¶ã«å€ããè©±ãæžããŸãããä»åã¯åããç©ã¿äžãã£ããã®ãå¯èŠåãããç³»ã®ããå®è£
ã§ã~/.claude/agents/ ã«å¢ããã«ã¹ã¿ã ãšãŒãžã§ã³ãå®çŸ©ããfrontmatterããèªåã§äžèЧåãã話ã§ãã
å°ãããšïŒäœãããŠãäœãã§ãããåãããªã
~/.claude/agents/*.md ã«ã«ã¹ã¿ã ãšãŒãžã§ã³ãå®çŸ©ãæžãè¶³ããŠãããšããã®ãã¡ããã®ãšãŒãžã§ã³ããmodelã¯äœã ã£ãããtoolsäœãèš±å¯ããŠãã£ãããèªåã§ãåãããªããªããŸãããã¡ã€ã«ãéããŠfrontmatterãèªãã°åãããŸãããæ°ãå¢ãããšããèªäœãé¢åã«ãªãã
ããã§ agents-index.sh ãšãã80è¡åŒ±ã®ã¹ã¯ãªãããæžããŸãããagents/*.md ã®frontmatterãéçŽã㊠INDEX.md ã«äžèЧãåãã ãã®ãå°å³ãªããŒã«ã§ãã
å®è£ ïŒPyYAMLéäŸåã®ç°¡æããŒãµ
æ¬äœã¯ python3 ã®ãã¢ããã¥ã¡ã³ãã§ããYAMLããŒãµã«äŸåãããšç°å¢å·®åã§å£ããã®ã§ãkey: value ã®1éå±€ã ããèªãç°¡æããŒãµã«ããŠããŸãã
def load_frontmatter(path: pathlib.Path):
text = path.read_text(encoding="utf-8", errors="replace")
m = re.match(r"^---\n(.*?)\n---\n", text, flags=re.DOTALL)
if not m:
return None, "missing frontmatter"
body = m.group(1)
out = {}
# YAML 颚ã ã PyYAML äŸåé¿ããããç°¡æããŒãµïŒ1éå±€ key: value ã®ã¿ã»list ã¯ãªãã©ã«æååã§æ±ãïŒ
for line in body.split("\n"):
if not line.strip() or line.startswith("#"):
continue
if ":" not in line:
continue
k, _, v = line.partition(":")
k = k.strip()
v = v.strip()
if (v.startswith('"') and v.endswith('"')) or (v.startswith("'") and v.endswith("'")):
v = v[1:-1]
out[k] = v
return out, None
tools: ["Read", "Grep", "Glob"] ã®ãããªãªã¹ããããã¹ããã1è¡ã§æžãããŠããåæãªã®ã§ãããŒã¹ããæååã®ãŸãŸä¿æããŠè¡šã«åºåããã ãã«ããŠããŸããå®éã®agentå®çŸ©ããã®åœ¢ã§ãã
---
name: architect
description: Software architecture specialist for system design, scalability, and technical decision-making. Use PROACTIVELY when planning new features, refactoring large systems, or making architectural decisions.
tools: ["Read", "Grep", "Glob"]
model: opus
---
éããã¬ã³ãŒããã Markdown ããŒãã«ãçµã¿ãname / description ãæ¬ ããŠãããã¡ã€ã«ã¯ warnings ã«ç©ãã§æ«å°Ÿã«èŠåã»ã¯ã·ã§ã³ãšããŠåºåããŸãã
if not name:
warnings.append(f"{p.name}: missing 'name'")
if not desc:
warnings.append(f"{p.name}: missing 'description'")
--json ãªãã·ã§ã³ãä»ãããš .index.json ã«ãåãå
å®¹ãæžãåºããŸããä»ã®ã¹ã¯ãªããããåå©çšããæçšã®çªå£ã§ãã
å®éã®åºå
ã㟠~/.claude/agents/ ã¯7åã®ãšãŒãžã§ã³ãå®çŸ©ïŒ+ INDEX.md èªèº«ïŒããããçæããã INDEX.md ã¯ãããªããŸãã
# Agents Index (7 agents · 2026-08-04 23:00)
| Name | Model | Description | Tools |
|------|-------|-------------|-------|
| `architect` ([architect.md](./architect.md)) | opus | Software architecture specialist for system design... | ["Read", "Grep", "Glob"] |
| `code-reviewer` ([code-reviewer.md](./code-reviewer.md)) | sonnet | Expert code review specialist. Proactively reviews code... | ["Read", "Grep", "Glob", "Bash"] |
åé ã« DO NOT EDIT MANUALLY ãå
¥ããŠããã®ã¯ãæã§çŽæ¥ç·šéãããŠæ¬¡åå®è¡æã«äžæžãæ¶å€±ããäºæ
ãé²ãããã§ããçæç©ã¯çæå
ïŒagents/*.mdïŒãçŽãã®ãå¯äžã®æ£ããçŽãæ¹ããšããåæãæžããŠããã
launchdïŒæ¥æ6:30ã«èµ·å
com.shun.agents-index.plist ã¯StartCalendarIntervalã§æ¥ææã«åºå®ããŠããŸãã
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>6</integer>
<key>Minute</key>
<integer>30</integer>
<key>Weekday</key>
<integer>0</integer>
</dict>
ProgramArguments 㯠--json ä»ãã§ã¹ã¯ãªãããåŒã³ãæšæºåºåããã°ã«è¿œèšããã ãã®1è¡ã³ãã³ãã§ãã
<key>ProgramArguments</key>
<array>
<string>/bin/zsh</string>
<string>-c</string>
<string>~/.claude/scripts/agents-index.sh --json >> ~/.claude/logs/agents-index.log 2>&1 # weekly agents index</string>
</array>
LowPriorityIO ãš Nice 10 ãä»ããŠãä»ã®äœæ¥ãéªéããªãåªå
床ã«èœãšããŠããŸãã鱿¬¡ã®æ£åžããªã®ã§ã峿æ§ãããä»ã®åŠçãéªéããªãããåªå
ã§ãã
PATHãEnvironmentVariablesã§æç€ºããŠããã®ããã€ã³ãã§ããlaunchdã¯æå°éã®PATHããæž¡ããªãã®ã§ãnvmé äžã®nodeãhomebrewã®binãçŽ ã®ç¶æ ã§ã¯èŠã€ããããŸãããããã§ããŒãã³ãŒãããªããšãã¹ã¯ãªããèªäœã¯æ£ãããŠããžã§ãããµã€ã¬ã³ãã«å€±æããŸãã
宿ž¬ïŒãã°ãèšé²ããŠãããèŠããŠããªãã£ã墿žã
agents-index.log ã¯æ¯å远èšãªã®ã§ããã®ãŸãŸå®è¡æ°ã®æšç§»ãæ®ã£ãŠããŸããã
[2026-06-14 06:38] agents=146 warnings=0
[2026-06-21 06:30] agents=146 warnings=0
[2026-06-28 06:30] agents=146 warnings=0
[2026-07-02 18:10] agents=57 warnings=0
[2026-07-05 06:30] agents=47 warnings=0
[2026-07-12 06:30] agents=47 warnings=0
[2026-07-19 06:30] agents=47 warnings=0
[2026-07-26 06:30] agents=37 warnings=0
[2026-07-28 02:02] agents=27 warnings=0
[2026-08-02 06:30] agents=17 warnings=0
çŽè¿ã§ã¯7åãŸã§æžã£ãŠããŸããããŒã¯ã®146åãã7åãžãçŽ95%æžã§ãããã®ä»çµã¿ãå
¥ããåã¯ããã®æšç§»ã誰ãèŠãŠããŸããã§ãããå®çŸ©ãå¢ããŠããã®ãæžã£ãŠããã®ãããåãããªããŸãŸããã agents/ãã£ã¬ã¯ããªã倪ã£ãŠããã®ãæŸçœ®ããŠãããšããããšã§ãã
INDEX.mdãæ¯é±èŠãããã«ãªã£ãŠãã¯ãããŠãéè€ããreviewerç³»ãšãŒãžã§ã³ããå€ããããã©ã°ã€ã³æäŸã®ãšãŒãžã§ã³ããšåœ¹å²ã被ã£ãŠãããã«æ°ã¥ããæåã§æŽçãé²ããŸãããå¯èŠåããæç¹ã§ãã§ã«çä»ãã®æææ±ºå®ãå§ãŸããšããã®ã¯ãããããå°å³ãªããŒã«ã§ãå€ãããŸããã
warnings=0 ãç¶ããŠããã®ãå®ã¯å°å³ã«å¹ããŠããŠãfrontmatterèšå
¥æŒãã7ã146åã®ã©ã®ã¿ã€ãã³ã°ã§ãäžåºŠãåºãŠããŸãããããã¯èŠåä»ãã®INDEXçæãææ¢åã«ãªã£ããšããããããããã name ãš description ãæžããªããšåããªãagentå®çŸ©ãã©ãŒãããèªäœã®å¹æã倧ããã§ãã
èžãã èœãšã穎
- YAMLããŒãµã«é Œããšãªã¹ãå€ããã¹ãã§ç°å¢å·®åãåºã â 1éå±€
key: valueã ããèªãèªäœããŒãµã«å²ãåã - launchdã®æå°PATHã§python3/nodeãèŠã€ãããªãå¯èœæ§ â
EnvironmentVariablesã«PATHããã«ã§æžã - çæç©ãæã§ç·šéãããäºæ
â ãããã«
DO NOT EDIT MANUALLYãæèšããçŽãå Žæã¯çæå ã ãšåãããã - ãã°ãèŠãªããã°å¢æžã¯èª°ãæ°ã¥ããªã â
>> log 2>&1ã®è¿œèšã ãã§ãåŸããæšç§»ãèªããè³ç£ã«ãªã
ãŸãšã
agents/*.mdã®frontmatterãPyYAMLéäŸåã®ç°¡æããŒãµã§èªã¿ãINDEX.mdãš.index.jsonãçæ- æ¬ èœãã£ãŒã«ãïŒ
name/descriptionïŒã¯èŠåãšããŠåºåããã ãã§ãå®è¡ã¯æ¢ããªã - launchdã¯æ¥æ6:30ã»
LowPriorityIOã»Nice 10ã§ä»äœæ¥ãéªéããªã鱿¬¡ãããã«ãã - 远èšåŒãã°ãçµæçã«æšç§»ã®èšé²ã«ãªãã146åâ7åã»çŽ95%æžãšãããèŠããŠããªãã£ã墿žããå¯èŠåã§ãã
次åã¯ããã®æã®é±æ¬¡ãããã»èªå·±å¢æ®ã¹ãã«ã»èªåŸã«ãŒããå¢ããããŠlaunchdèªäœã®ç®¡çãç ©éã«ãªã£ãè©±ãæžãäºå®ã§ãã
LilyïŒ@bokuwalilyïŒâ å人éçºè ãClaude Code ã§èªåååºç€ãçµã¿ãªãããiOSã¢ããªãWebãµãŒãã¹ãéç£ããŠããŸã
- AIã§ãå¯ãŠãŠãåãä»çµã¿ããäœã£ãŠæ120äžã«ãã話㯠noteã®ææèšäº ã«ð°
- OSS: github.com/bokuwalily ð
- ææ°æ å ±ã»ãåãåãã㯠X @bokuwalily ãžð
çããã® â€ïž ãã·ã§ã¢ãå±ã¿ã«ãªããŸãïŒ