AIã®èªå·±æ¹åã¡ã¢ãWikiã«åºãåã«æ¢ãã â secretã¹ãã£ã³ä»ãåæã²ãŒã
ååãç£èŠã¹ã¯ãªããã«rootã1ã³ãã³ãã ãæž¡ãè©±ãæžããŸãããä»åã¯åããç¡äººèªååã«äœãæž¡ãããã®è©±ã§ããã察象ãå€ãããŸã ââ Claude Codeèªèº«ãæžãæºããç£æ»ã»æ¹åãã©ã³ãã人éçšã®Obsidian Wikiã«æµã蟌ãé 管ã§ãã
å°ãããšïŒAIãæžããç£æ»ã¡ã¢ã¯ãäŒè©±ãã°ãšã¯å¥ã®å±éºãæã£ãŠãã
~/.claude/improvements/ ã«ã¯ãClaude CodeãèªåŸéçšã®äžã§æžããç£æ»ã¬ããŒããæ¹åãã©ã³ãæºãŸã£ãŠããŸããäžèº«ãèŠããšãããããèšè¿°ããããŸãïŒaudit-2026-05-29.md ããæç²ïŒã
| project | ç¶æ
| æšå¥šã¢ã¯ã·ã§ã³ |
|---|---|---|
| **seo-affiliate-site** ðŽ | 63 files æªã³ãããïŒLike / ã³ã¡ã³ã / AdSense çã®ããã¿ã€ãºå®è£
ãå®åãïŒ | æ©èœåäœã§åå²ã³ããã |
| closet-os ð¢ | clean / çŽè¿æŽ»çº | `.env.production.local` 1.9KB 㯠gitignore æžã ãããã¯ã¢ããéçšæ³šæ |
ããã¯å人ãããžã§ã¯ãåã»å®è£
ã®é²æã».envãã¡ã€ã«ã®ååšãŸã§å
·äœçã«æžããŠãããŸããäŒè©±ãã°ãé·æèšæ¶ã«å€ãããã€ãã©ã€ã³ãšã¯å¥ã«ãAIèªèº«ãçæããææžãã®ãã®ã«ç§å¯ãå人æ
å ±ãæ··å
¥ããããšãããªã¹ã¯ãããã«ã¯ãããŸãããããã°äžã«è²Œã£ãAPIããŒã®æçãç£æ»ã¡ã¢ã«åŒçšããããŸãŸæ®ãããšããã®ã¯ååããããäºæ
ã§ãã
ãã®ã¡ã¢ããã®ãŸãŸWikiã«æµã蟌ãåã«ãæ©æ¢°çã«æ¢ããä»çµã¿ãèŠããŸãããããã wiki-sync-improvements.sh ã§ãã
èšèšïŒå¯Ÿè±¡ãçµããsecretã§å šåæ¢ããæ¢å®ã¯dry
ã¹ã¯ãªããã®åé ã®ã³ã¡ã³ãã«ãèšèšã®å šäœåãèŠçŽãããŠããŸãã
# wiki-sync-improvements.sh
# ~/.claude/improvements/ ã®åå¥ plan/audit/curation docs ã
# ~/Documents/claude-obsidian/wiki/meta/improvements/ ã«åæããã
#
# 察象: audit-*.md / *-plan-*.md / *-curation-*.md
# é€å€: log.md (巚倧), README.md, next-session-todo.md ãªã©
# ç§å¯ã¹ãã£ã³: sk-* / ghp_* ãå«ãŸããŠããã° sync äžæ¢
#
# äœ¿ãæ¹:
# wiki-sync-improvements.sh dry # 倿Žãã¬ãã¥ãŒã®ã¿
# wiki-sync-improvements.sh apply # å®éã«æžã蟌ã
log.md ãé€å€ããŠããçç±ã¯æ°åã§ç¢ºèªã§ããŸããæå
ã§èŠããš2316è¡ã»çŽ228KBãããããã¯æç³»åãã°ã§ãã£ãŠWikiã®ããŒãåäœã«ã¯åããŸããã
察象ãã¡ã€ã«ã®çµã蟌ã¿ã¯ã·ã§ã«ã® case ãã¿ãŒã³ã§ãã
for f in "$SRC"/*.md; do
base="$(basename "$f")"
case "$base" in
audit-*.md|*-plan-*.md|*-curation-*.md)
candidates+=("$f")
;;
esac
done
secretã¹ãã£ã³ã¯ãåè£å šéšãå ã«äžæ¬ã§èŠãŠããæ¢ãããã©ãããæ±ºããŸãã
SECRET_RE='(sk-[A-Za-z0-9_-]{16,}|ghp_[A-Za-z0-9]{20,})'
secret_hits=()
for f in "${candidates[@]}"; do
if grep -E -q "$SECRET_RE" "$f"; then
secret_hits+=("$f")
fi
done
if [[ ${#secret_hits[@]} -gt 0 ]]; then
echo "[abort] secrets detected â sync stopped" >&2
for h in "${secret_hits[@]}"; do echo " - $h" >&2; done
exit 2
fi
ããã¯ãç§å¯ãèŠã€ãã£ããã¡ã€ã«ã ã匟ããã®ã§ã¯ãªãã1ä»¶ã§ãåŒã£ããã£ããåè£å šéšãæ¢ããèšèšã§ããéšååæãèš±ããšãsecretãå«ã1ä»¶ã ãã¹ãããããŠæ®ãã¯éããã倿ãã¹ã¯ãªããåŽã§ããªããã°ãªããããã®å€å®ãã¹ãäžçªæããã ããéŸå€ã¯ãå šéšæ¢ãããã®äžæã«ããŠããŸãã
æžã蟌ã¿ã®æ¢å®ã¯dryã§ããMODE="${1:-dry}" ã«ãªã£ãŠããŠãåŒæ°ãªãã§å®è¡ãããšäœãæžããããã¬ãã¥ãŒã ããåºãŸããapplyæã¯ãåºåå
ã«ååãã¡ã€ã«ãæ¢ã«ããã°å
容ãããã·ã¥çžåœïŒcmp -sïŒã§æ¯èŒããäžèŽããã°skipãå·®åãããã°ã¿ã€ã ã¹ã¿ã³ãä»ãã®å¥ãã¡ã€ã«ãšããŠæžãåºã ââ äžæžãã§ã¯ãªã䜵åã§ãã
if cmp -s "$tmp" "$out"; then
rm -f "$tmp"
skipped=$((skipped+1))
continue
fi
stamped="$DST/${base%.md}.$(ts_suffix).md"
mv "$tmp" "$stamped"
å®éã«åãããŠã¿ã
æå
ã§ dry ãå©ããšãããåºãŸããã
$ ~/.claude/scripts/wiki-sync-improvements.sh dry
[dry] would write timestamped: audit-2026-05-29.md -> meta/improvements/audit-2026-05-29.<ts>.md
[dry] would write timestamped: plugin-curation-2026-05-30.md -> meta/improvements/plugin-curation-2026-05-30.<ts>.md
[dry] would write timestamped: seo-affiliate-commit-plan-2026-05-30.md -> meta/improvements/seo-affiliate-commit-plan-2026-05-30.<ts>.md
[dry] would write timestamped: wiki-cleanup-plan-2026-05-29.md -> meta/improvements/wiki-cleanup-plan-2026-05-29.<ts>.md
---
[done] planned=4 total_candidates=4 (dry run; no writes)
~/.claude/improvements/ ã«ã¯å®éã«ã¯12åã®.mdããããŸãããã£ã«ã¿ãéã£ãã®ã¯ãã®4ä»¶ã ãã§ãæ®ã8ä»¶ïŒlog.md / README.md / next-session-todo.md / commands-consolidation-plan.md ãªã©ïŒã¯å¯Ÿè±¡å€ã§ãã
ããã§æ°ã¥ããã®ã commands-consolidation-plan.md ã®æ±ãã§ãããã¡ã€ã«åãèŠããšãplanããå«ãã®ã§å¯Ÿè±¡ã«å
¥ãããã§ãããå®éã¯åè£ã«åºãŠããŸãããçç±ã¯ãã¿ãŒã³ã§ãã
*-plan-*.md
ããã¯ã-plan- ã®åŸã«ãã1æå以äžãã£ãŠãã .mdããšããæå³ãªã®ã§ãxxx-plan.mdïŒplan ã®çŽåŸããããïŒã¯äžèŽããŸãããxxx-plan-2026-05-30.md ã®ããã«æ¥ä»ãµãã£ãã¯ã¹ãä»ããŠããã°æŸãããŸããããµãã£ãã¯ã¹ãä»ãå¿ããæ¹åãã©ã³ã¯éãã«å¯Ÿè±¡ããæŒããŸãããšã©ãŒãèŠåãåºãŸããã
éçšã®çã ããçŸåšå°ïŒå®å ãæ€èšŒããããšãããè©°ãŸã£ã
ãã®ã¹ãã«ã®frontmatterã«ã¯ status: stale ãšæžãããŠããŸãã
status: stale
Curatorã®åºæºïŒ30æ¥æªäœ¿çšã§staleã«éæ ŒïŒã«ç
§ãããšããã°ããå®éçšã§åã£ãŠããªããšããããšã§ãããããªãå®å
ãã£ã¬ã¯ããªã®äžèº«ãèŠãŠãapply ãå®éã©ããŸã§é²ãã§ããããã確èªããããšããã®ã§ãããããã§ã€ãŸãããŸããã
$ ls ~/Documents/claude-obsidian/wiki/meta/improvements/
ls: .../meta/improvements/: Interrupted system call
total 0
ls ã find ãGlobããŒã«ããåã Interrupted system callïŒEINTRïŒãè¿ãç¶ããŠäžèº«ãåæã§ããŸãããäžæ®µäžã® meta/ ãã£ã¬ã¯ããªã§ãåãçç¶ãåºãŸãããäžæ¹ã§ãåå¥ãã¡ã€ã«ã®ååšãã§ãã¯ã ãã¯éããŸãã
$ [ -e .../meta/improvements/audit-2026-05-29.md ] && echo exists
exists
ãšããããã®åããã¡ã€ã«ã cat ãããšãå¿çããªããŸãŸ600ç§ã§ã¿ã€ã ã¢ãŠãããŸãããiCloudåæäžã®ãã£ã¬ã¯ããªã§ããã¡ã€ã«ã®ã¡ã¿ããŒã¿ã ãååšãå®äœãæªããŠã³ããŒãïŒplaceholderïŒã®ãŸãŸæ¢ãŸã£ãŠããç¶æ
ã«è¿ãæåã§ããæå®ã¯ã§ããŸããããäºå®ãšããŠã4ä»¶ãååšããæ±ãã«ã¯ãªã£ãŠããããå
容ãèªã¿åºãçµè·¯ããã®ã»ãã·ã§ã³ããã¯æ©èœããŠããªãããšããã®ãä»ã®çŸåšå°ã§ãã
ã€ãŸããsecretã¹ãã£ã³ãšå šåæ¢ããžãã¯ãã®ãã®ã¯èªãã°å¥å šã«èŠããäžæ¹ã§ããæ¬åœã«Wikiã«æ£ããå±ããŠãããããåŸããæ€èšŒããçµè·¯ã现ããå£ãããšæ°ã¥ãã«ãããšããã®ããåãããŠã¿ãŠåãã£ãçŸå®ã§ããå®å šã²ãŒããæžãããšãšããã®ã²ãŒãã®åºåãç¶ç¶çã«æ€èšŒã§ããããšã¯å¥åé¡ã§ããã
èžãã èœãšã穎
log.mdïŒ2316è¡/çŽ228KBïŒã¯ãã®ãŸãŸå¯Ÿè±¡ã«å ¥ãããšWikiã®ããŒãåäœãå£ã â ãã¡ã€ã«åãã¿ãŒã³ã§æç€ºé€å€- secretã1ä»¶ã§ãèŠã€ãã£ããåè£å šéšãæ¢ãã â éšååæã®å€æãã¹ã¯ãªããã«æãããªãèšèš
*-plan-*.mdãã¿ãŒã³ã¯xxx-plan.mdïŒãµãã£ãã¯ã¹ãªãïŒãäžèŽãããªã â æ¥ä»ãµãã£ãã¯ã¹ãä»ãå¿ããæ¹åãã©ã³ãèŠåãªãã§å¯Ÿè±¡ããæŒãã- dry modeã¯ãå®å
ã«ååãã¡ã€ã«ãããããããèŠããäžèº«ã®å·®åã¯èŠãªã â
[dry] would write timestampedã¯ãå·®åããããã§ã¯ãªããååãã¡ã€ã«ã®æç¡ãã®å€å® - å®å ãã£ã¬ã¯ããªã®å®äœæ€èšŒãiCloudåæã®åœ±é¿ã§EINTRã«è©°ãŸã â ã²ãŒãèªäœãšã¯å¥ã«ãåºåã®å°é確èªãç¬ç«ããçµè·¯ïŒããã·ã¥å°åž³ãªã©ïŒã§æã€å¿ èŠããã
ãŸãšã
- AIãèªåã§æžãç£æ»ã»æ¹åã¡ã¢ã«ã¯ãäŒè©±ãã°ãšã¯å¥ã®çµè·¯ã§ç§å¯ãå人æ å ±ãæ··ãããã
- secretã¹ãã£ã³ã¯ãåŒã£ããã£ããã¡ã€ã«ã ã匟ããããã1ä»¶ã§ãåºããå šåæ¢ãã®æ¹ã倿ãã¹ãæžããã
- 察象ãã¡ã€ã«ã®ãã£ã«ã¿ã¯ã·ã§ã«ãã¿ãŒã³é Œã¿ã ãšéãã«æŒããåºããåœåèŠåã®æºãã¯äºæ ã®æž©åº
- æ¢å®dryã»applyæã¯ããã·ã¥æ¯èŒã§skipãå·®åã¯äžæžãããã¿ã€ã ã¹ã¿ã³ã䜵åãšããå®å šåŽã®èšèšã¯ä¿ãŠãŠãã
- ãã ããã²ãŒããéã£ããã®ãæ¬åœã«å±ãããããæ€èšŒããçµè·¯ã¯å¥ã«èŠããä»åã¯ããããŸã å£ãããŸãŸã ã£ã
次åã¯ããã®å®å å°éãã²ãŒãã®å€åŽããããã·ã¥å°åž³ã§æ€èšŒã§ããããã«ãã話ãäºå®ããŠããŸãã
LilyïŒ@bokuwalilyïŒâ å人éçºè ãClaude Code ã§èªåååºç€ãçµã¿ãªãããiOSã¢ããªãWebãµãŒãã¹ãéç£ããŠããŸã
- AIã§ãå¯ãŠãŠãåãä»çµã¿ããäœã£ãŠæ120äžã«ãã話㯠noteã®ææèšäº ã«ð°
- OSS: github.com/bokuwalily ð
- ææ°æ å ±ã»ãåãåãã㯠X @bokuwalily ãžð
- AIå°å ¥ã»èªååã®çžè«ãšå®è£ ãã³ãã¬7æ¬ã®é åžã¯ å ¬åŒLINE ããð¬
çããã® â€ïž ãã·ã§ã¢ãå±ã¿ã«ãªããŸãïŒ