| name | today |
| description | Use when starting the workday. Conducts a scrum-style daily standup (Inspect prior day, Adapt today's plan against quarterly goals), gathering calendar / Gmail / Linear / Obsidian context and creating today's Obsidian daily note. |
| disable-model-invocation | true |
/today - Daily Standup Support
ã¹ã¯ã©ã ã®ãã€ãªãŒã¹ã¿ã³ãã¢ãããæ¯æŽãããååæãŽãŒã«ã«å¯Ÿããé²æã®æ€æ»ïŒInspectïŒãšã次ã®äœæ¥æ¥ã®èšç»ã®é©å¿ïŒAdaptïŒãè¡ãã
ã¿ã¹ã¯ç®¡ç㯠Things3 ããæé¢ããããŠããã/today ã§ã¯ Things3 ãèªã¿æžãããªãã代ããã« Linear ã® Issue ãã©ããã³ã°ãæ
å ±æºãšããã
Workflow
Step 1: Get Current Date and Time
Use the Google Calendar MCP to get the current time:
mcp__google-calendar__get-current-time
Step 2: Get Today's Calendar Events
Fetch today's calendar events:
mcp__google-calendar__list-events with calendarId: "primary", timeMin: today 00:00, timeMax: today 23:59
ååŸãã events é
åã JSON é
åãšã㊠/tmp/activities-calendar-events.json ã«æžãåºã (Step 5a ã§ activities ãªããžããªã«ã€ã³ããŒããããã)ãæžãåºã㯠Write ããŒã«ã§ä»¥äžã®ãã㪠JSON é
å圢åŒã«ãã:
[
{"id":"...", "summary":"...", "start":{"dateTime":"..."}, "end":{"dateTime":"..."}, "htmlLink":"...", "attendees":[...]},
...
]
Step 3: Read Quarterly Goals (main thread)
çŸåšã®ååæãŽãŒã«ãã¡ã€ã«ãèªãããã¡ã€ã«å㯠goals/YYYY-qN.md ã®åœ¢åŒã
ååæã®èªåç®åº:
Step 1ã§ååŸããçŸåšæ¥ä»ãã以äžã®ã«ãŒã«ã§ YYYY-qN ãå°åºãã:
- 1ã3æ â
YYYY-q1
- 4ã6æ â
YYYY-q2
- 7ã9æ â
YYYY-q3
- 10ã12æ â
YYYY-q4
äŸ: 2026-04-15 â goals/2026-q2.mdã2026-10-01 â goals/2026-q4.md
èªã¿åã㯠Read ããŒã«ã§çµ¶å¯Ÿãã¹ãçŽèªããïŒobsidian read 㯠Obsidian GUI ãéããŠãããšãã³ã°ãããã䜿ããªãã詳现㯠obsidian.instructions.mdïŒ:
Read: /Users/asonas/Documents/asonas/goals/2026-q3.md
ãã¡ã€ã«ãååšããªãå ŽåïŒæªäœæã®ååæïŒã¯ã¹ãããããŠãŠãŒã¶ãŒã«éç¥ããã
â ãŽãŒã«äžèЧãã¡ã¢ãªã«ä¿æããStep 7ã®Standup Hearingã§äœ¿ãã
Step 4: Parallel Information Gathering (Sonnet subagents)
ä»¥äž 2 ã€ã®æ
å ±åéã¿ã¹ã¯ã äžåºŠã®ã¡ãã»ãŒãžã§äžŠåã« Agent ãèµ·å ããSonnet ã¢ãã«ã«åŠçããããå subagent ã¯èª¿æ»çµæãæ§é åãããçãããã¹ãïŒ200ã400 åç®å®ïŒã§ã¡ã€ã³ã¹ã¬ããã«è¿ãããã¹ãŠã® subagent 㯠model: "sonnet"ãsubagent_type: "general-purpose" ã§èµ·åããã
䞊åèµ·åã®éå: 2 ã€ã® Agent tool åŒã³åºãã åäžã®ã¡ãã»ãŒãžå
ã«é
眮ããã1 ã€ãã€é ã«åŒã¶ãšäžŠåã«ãªããªãã
4a. prior-day-summary subagent
ã忥ïŒãŸãã¯çŽè¿å¶æ¥æ¥ïŒã®åŒãç¶ãææããçµã¿ç«ãŠã subagentã
ããã³ããèŠæš:
ããªã㯠asonas ã®åå¶æ¥æ¥ã®äœæ¥å
å®¹ãæŽçããä»»åãæã€ã
以äžãé ã«è¡ããæçµçã« Markdown ã®ãµããªãŒãè¿ããŠã»ããã
1. `~/.claude/scripts/find-recent-daily-notes.sh` ã Bash å®è¡ãã察象æ¥ä»ã®ãªã¹ããååŸãã
- ææå®è¡æã¯é/å/æ¥ã®3æ¥åãè¿ãå¯èœæ§ãããå
šéšåŠçãã
- 7æ¥é¡ã£ãŠäœããªããã°ã察象æ¥ãªãããšè¿ã
2. 忥ä»ã«ã€ããŠä»¥äžãå®è¡:
a. Read: /Users/asonas/Documents/asonas/daily/YYYY-MM-DD.md
b. cman:cm-search ã keyword="YYYY-MM-DD" ã§å®è¡ãããã®æ¥ã®Claude Codeã»ãã·ã§ã³å±¥æŽãååŸ
3. æœåºããæ
å ±:
- Uncompleted tasks: `- [ ]` è¡
- ãææ¥ããtomorrowããæ¬¡åããå«ãåŒãç¶ãé
ç®
- daily note ã®ããã£ãããšãã»ã¯ã·ã§ã³ + cm-search çµæãçªãåããããæšæ¥ãã£ãããšãã®ããŒã¹ç®æ¡æžã
4. åºåãã©ãŒããã:
## 忥ããã®åŒãç¶ã
- é
ç®1
- é
ç®2
## æšæ¥ãã£ãããšïŒããŒã¹ïŒ
- äœæ¥A
- äœæ¥B
## 察象æ¥ã¡ã¿
- target_date: YYYY-MM-DD
- heading_label: "æšæ¥ãã£ãããš" | "å
é±éææ¥ã«ãã£ãããš" | "MM/DD(æ)ã«ãã£ãããš"
ïŒå¯Ÿè±¡æ¥ãåå¶æ¥æ¥ãªã "æšæ¥"ãææå®è¡ãªã "å
é±éææ¥"ããã以å€ãªã "MM/DD(æ)"ïŒ
Wikiãªã³ã¯ã¯äœ¿ããªãããšïŒããŒã ã¡ã€ãåãæ
å ±ã®ããïŒã
æšæž¬ã¯çŠæ¢ããœãŒã¹ã«ç¡ãæ
å ±ãæé ããªãããšã
4b. linear-tracker subagent (æ§ 4c)
Linear MCP ãå©ããŠãèªåã«ã¢ãµã€ã³ãããã¢ã¯ãã£ã Issueããšãèªåãæå±ããããŒã ã®åæ» IssueããååŸãã subagentã
ããã³ããèŠæš:
ããªã㯠asonas ã® Linear Issue ãã©ããã³ã°ãæ
åœããã
1. mcp__claude_ai_Linear__get_user ã§èªåïŒviewerïŒã®æ
å ±ãååŸããuser_id ãšæå±ããŒã äžèЧã確å®ãã
- ãã viewer ã« teams ãã£ãŒã«ããç¡ããã°ãmcp__claude_ai_Linear__list_teams ã§èªåãæå±ããŠããããŒã ãååŸãã
2. èªåã«ã¢ãµã€ã³ãããã¢ã¯ãã£ã Issue:
- mcp__claude_ai_Linear__list_issues ã§ assignee=èªåãstate.type ã "started" ãŸã㯠"unstarted" (opençžåœ) ãªãã®ãååŸ
- æå€§ 50 ä»¶ãupdatedAt éé
3. æå±ããŒã ã®åæ» Issue:
- åããŒã ã«ã€ããŠãstate.type ã "started" ãŸã㯠"unstarted" ã§ updatedAt ã **7æ¥ä»¥äžå** ã® Issue ãååŸ
- èªåãã¢ãµã€ã³ãããŠããªããã®ãå«ãïŒããŒã ã®å¥å
šæ§ãã§ãã¯ã®ããïŒ
- åããŒã æå€§ 20 ä»¶
4. åºåãã©ãŒããã:
## èªåã®ã¢ã¯ãã£ãIssue
- [TEAM-123] ã¿ã€ãã« â status / updated YYYY-MM-DD
- ...
## ããŒã ã®åæ»IssueïŒ7æ¥ä»¥äž updatedAt æªæŽæ°ïŒ
### TEAM_KEY (ããŒã å)
- [TEAM-123] ã¿ã€ãã« â assignee: åå / status / updated YYYY-MM-DD (Næ¥å)
- ...
Linear MCP ãèªèšŒãããŠããªãå Žå㯠"LinearæªèªèšŒ" ãšè¿ããŠã¹ãããã
ååŸä»¶æ°ãå€ãå Žåã§ãèŠçŽãããä»¶æ°ãæãããªã updatedAt å€ãé ããæå®ä»¶æ°ã§æã¡åãã
æšæž¬ã¯çŠæ¢ãMCP ã®å¿çã«ç¡ããã£ãŒã«ããæé ããªãããšã
2 ã€ã® subagent èµ·åäŸ
ïŒåäžã¡ãã»ãŒãžå
ã«ä»¥äž 2 ã€ã® Agent tool åŒã³åºãã䞊åã§é
眮ããïŒ
Agent(
description="Prior day summary",
subagent_type="general-purpose",
model="sonnet",
prompt="<4a ã®ããã³ãã>"
)
Agent(
description="Linear tracker",
subagent_type="general-purpose",
model="sonnet",
prompt="<4b ã®ããã³ãã>"
)
2 ã€ã®çµæãã¡ã¢ãªã«ä¿æããåŸæ®µã® Step 6 / Step 7 ã§å©çšããã
Step 5: Update activities files (main thread)
5a: ã«ã¬ã³ããŒäºå® â activities ãã¡ã€ã«
Step 2 ã§ååŸãã GCal events ã activities ãªããžã㪠ã«ã€ã³ããŒãããactivities/YYYY-MM-DD.md ã®ã«ã¬ã³ããŒã»ã¯ã·ã§ã³ã«åæ ããã
cd /Users/asonas/ghq/github.com/asonas/activities
cat /tmp/activities-calendar-events.json | mise exec -- bundle exec bin/activities-calendar-import --date YYYY-MM-DD
mise exec -- bundle exec bin/activities-render --source calendar --date YYYY-MM-DD
activities-calendar-import 㯠responseStatus="declined" ã®èªåã®ã€ãã³ããèªåã§é€å€ãã
- activities/YYYY-MM-DD.md ã®
<!-- BEGIN: calendar --> ã <!-- END: calendar --> ã®äžèº«ã®ã¿ãæžãæããããä»ã®ã»ã¯ã·ã§ã³ (github, claude_code, browser ç) ã«ã¯è§Šããªã
- ãåã®éè¿ãäŒç€Ÿç§»åã®æéããéè¿ã§äžåšãã®ãããªç¹æ®äºå®ã activities ã»ã¯ã·ã§ã³ã«ã¯ 衚瀺ãã (掻åãã°ãšããŠäºå®ãæ®ãç®ç)
- äžæžãæ¹åŒãªã®ã§
/today ã1æ¥ã«è€æ°åå®è¡ããŠãéè€ããªã
5b: äžæ¬¡ããã¹ããœãŒã¹ (Bluesky / Scrapbox) â activities ãã¡ã€ã«
asonas ãèªåã§æžããããã¹ããœãŒã¹ (Bluesky æçš¿ãScrapbox ããŒãž) ãååŸããactivities/YYYY-MM-DD.md ã®åã»ã¯ã·ã§ã³ã«åæ ããã忥åã®æçš¿ã»ç·šéãåœæ¥æã«ç¢ºå®ããããšããããããyesterday ãš today ã®äž¡æ¹ã render ããã
cd /Users/asonas/ghq/github.com/asonas/activities
mise exec -- bundle exec bin/activities-snapshot --source bluesky --source scrapbox --date yesterday --date today || echo "Warning: snapshot failed, skipping"
ãªã --source ã§çµãã: github / browser / claude_code ã®3ãœãŒã¹ã¯ ~/Library/LaunchAgents/asonas.activities.{github,browser,claude}.plist ã® launchd ãžã§ãã 15ã60 åééã§åžžæããã¯ã°ã©ãŠã³ãåéããŠãããåœæ¥åã® activities ãã¡ã€ã«ã¯åžžã«ææ°åãããŠããã/today ããéè€ããŠèµ°ããããšåã state ãã¡ã€ã«ãäžŠè¡æžã蟌ã¿ãããªã¹ã¯ããããããlaunchd ã§ã«ããŒãããŠããªã bluesky ãš scrapbox ã ããæç€ºçã«æŸãã
倱ææã¯èŠåã®ã¿ã§ /today å
šäœã¯æ¢ããªããactivities-snapshot 㯠collect + render ã1ã³ãã³ãã§å®è¡ããèãã©ããã§ãåã¹ãã« (today / wrapup / tempest909-draft) ããå
±éå©çšãããã
Step 6: Create Today's Daily Note in Obsidian
IMPORTANT: Always create today's daily note.
仿¥ã®daily noteãäœæãããæ¢ã«ååšããå Žåã¯äžæžãããªãã
ãŸã Read ããŒã«ã§ååšç¢ºèªããïŒobsidian read 㯠GUI ãéããŠãããšãã³ã°ãããã䜿ããªãïŒ:
Read: /Users/asonas/Documents/asonas/daily/YYYY-MM-DD.md
ååšããªããã°äœæãããWrite ããŒã«ã§ /Users/asonas/Documents/asonas/daily/YYYY-MM-DD.md ã«çŽæ¥æžãåºãïŒObsidian ã¯ãã¡ã€ã«ã·ã¹ãã ã®å€æŽãèªåæ€ç¥ããïŒãobsidian create ã䜿ãå Žå㯠vault=asonas ãå¿
ãæå®ããã
Daily note format:
IMPORTANT: # YYYY-MM-DD ã®ãããªh1ãããã£ã³ã°ã¯çµ¶å¯Ÿã«å«ããªãããšã Obsidianã§ã¯ãã¡ã€ã«åãã¿ã€ãã«ã«ãªãããéè€ãããããŒã㯠[[IVRy]] ããçŽæ¥å§ããã
ã## 仿¥ã®äºå®ã㯠activities ãã¡ã€ã« (Step 5a ã§æŽæ°æžã¿) ããã® transclude ã«ããã
ã## 忥ããã®åŒãç¶ãããšã## æšæ¥ãã£ãããšïŒor å
é±éææ¥ã«ãã£ãããš çïŒã㯠Step 4a (prior-day-summary subagent) ã®åºåã䜿ããèŠåºãã®ã©ãã«ã¯ subagent è¿åŽã® heading_label ã«åŸãã
[[IVRy]]
## 仿¥ã®äºå®
![[activities/YYYY-MM-DD#ã«ã¬ã³ããŒ]]
## 忥ããã®åŒãç¶ã
- [Step 4a ã®ã忥ããã®åŒãç¶ããçµæ]
---
## æšæ¥ãã£ãããšïŒãŸãã¯å¯Ÿå¿ããã©ãã«ïŒ
- [Step 4a ã®ãæšæ¥ãã£ãããšïŒããŒã¹ïŒãçµæ]
## 仿¥ããããš
ïŒStep 7 ã®ãã¢ãªã³ã°åŸã«åããïŒ
## å°ãããšã»ãããã«ãŒ
ïŒStep 7 ã®ãã¢ãªã³ã°åŸã«åããïŒ
---
## ãã°
éèŠ:
## ãã£ãããš ã»ã¯ã·ã§ã³ã¯å»æ¢ãããæ¥äžãå€ã®äœæ¥ãã°ã¯ ## ãã° ã«éçŽãããïŒ/wrapup ããã³åçš® append ç³»ã¹ãã«ãæžã蟌ãïŒ
## æšæ¥ãã£ãããš / ## 仿¥ããããš / ## å°ãããšã»ãããã«ãŒ ã®3ã€ã¯ Slack ã®ã¹ã¿ã³ãã¢ããã¹ã¬ãããžã³ããããããã®ãããã¯ãååŸã® --- åºåãã¯ãããã¯ã³ããçšããèŠèŠçã«ç€ºãããã®ãã®
- Linear éç¥ãŸãšã / Datadog Daily Digest ã¯å»æ¢ããããããã¯
/today ããèªåçæããªã
Step 7: Standup HearingïŒæ€æ»ãšé©å¿ïŒ
daily noteã®äœæåŸããŠãŒã¶ãŒã«ä»¥äžããã¢ãªã³ã°ããŠdaily noteã®è©²åœã»ã¯ã·ã§ã³ã«èšå
¥ããã
ã¹ã¿ã³ãã¢ãã3é
ç®ã®ã»ã¯ã·ã§ã³ã¯ããŒã ã¡ã€ãåããWikiãªã³ã¯ã¯äœ¿ãããç®æ¡æžãã§æžãã
7a. æšæ¥ãã£ãããšïŒInspect: å®çžŸã®æ€æ»ïŒ
Step 4a ã§çææžã¿ã®ããŒã¹ç®æ¡æžãããŠãŒã¶ãŒã«æç€ºãã远å ã»ä¿®æ£ããªãã確èªããããŠãŒã¶ãŒã®ä¿®æ£ãããŒãžããŠã## æšæ¥ãã£ãããšãã»ã¯ã·ã§ã³ïŒãŸã㯠heading_label éãã®èŠåºãïŒã«æžã蟌ãã
7b. 仿¥ããããšïŒAdapt: èšç»ã®é©å¿ïŒ
AskUserQuestionã§ä»¥äžãã³ã³ããã¹ããšããŠè³ªåæã«å«ãããŠãŒã¶ãŒã«ã仿¥ããããšããèã:
- ååæãŽãŒã«: Step 3 ã§èªã¿èŸŒãã
goals/YYYY-qN.md ã®å
容ãç°¡æœã«åæ
- èªåã®ã¢ã¯ãã£ãLinear Issue: Step 4b ã®çµæããäžäœãæç€º
- ããŒã ã®åæ»Linear Issue: Step 4b ã®çµæããä»¶æ°ãšç¹ã«å€ããã®ãæç€ºïŒãã©ããŒã¢ãããå¿
èŠãªã仿¥ããããšã«å
¥ããåè£ãšããŠïŒ
- ã«ã¬ã³ããŒã®äºå®: ããŒãã£ã³ã°ãå€ãæ¥ã¯äœæ¥æéãéãããããšã瀺å
ãŠãŒã¶ãŒãåçããå
容ã®ã¿ãç®æ¡æžãã§ daily note ã®ã## 仿¥ããããšãã«èšå
¥ãããã«ã¬ã³ããŒã®äºå®ã¯èªåçã«ã¯æžããªãã
é©å¿ã®åããã:
ã仿¥ããããšãã®ãã¢ãªã³ã°æã«ãæšæ¥ã®çµæãèžãŸããŠä»¥äžã確èªãã:
- æšæ¥ãããã¯ãããã¿ã¹ã¯ãããã°ã仿¥ã®èšç»ãã©ãå€ããã
- ååæãŽãŒã«ã®éæã«åããŠã仿¥ã®äœæ¥ãè²¢ç®ããŠããã
- èšç»ã®å€æŽãå¿
èŠãªå
åïŒã¿ã¹ã¯ã®æ»çãæ°ããªãããã«ãŒã®çºççïŒããªãã
- Linear ã®ããŒã åæ» Issue ã§èªåããã©ããŒãã¹ããã®ã¯ãªãã
ãããã¯è³ªåã«ç¹ã蟌ã圢ã§èªç¶ã«èãïŒå
èŠãããã§ãã¯ãªã¹ãã«ããªãïŒã
7c. å°ãããšã»ãããã«ãŒïŒImpedimentsïŒ
äœãããã°èªç±ã«èšå
¥ããªããã°ãç¹ã«ãªããããããã«ãŒãããå Žåã¯ã誰ã«çžè«/ãšã¹ã«ã¬ãŒã·ã§ã³ããããŸã§å«ããŠèšé²ããã
泚æ:
- ãŠãŒã¶ãŒãäŒè©±ã®äžã§æ¢ã«åçããŠããå ŽåïŒäŸ:ãæšæ¥ã¯äŒã¿ã ã£ããã仿¥ã¯XXXããããïŒã¯ãæ¹ããŠèããã«ãã®ãŸãŸèšå
¥ãã
- ãã¢ãªã³ã°ãå¿
èŠãªå Žåã¯ããµããªãŒè¡šç€ºã®åã«ãŸãšããŠèã
Step 8: Present Summary
Present to the user:
## ãã¯ããããããŸã - YYYY幎MMæDDæ¥
### Q2 ãŽãŒã«
[ååæãŽãŒã«ã®äžèЧãç°¡æœã«è¡šç€º]
### 仿¥ã®äºå®
[Calendar events listed with times, chronologically sorted]
### 忥ããã®åŒãç¶ã
[Step 4a ã® uncompleted tasks äžèЧ]
### Linear ãã©ããã³ã°
- èªåã®ã¢ã¯ãã£ã: Nä»¶
- ããŒã ã®åæ» (7æ¥ä»¥äž updatedAt æªæŽæ°): Mä»¶
- ç¹ã«å€ããã®: [TEAM-XXX] ã¿ã€ãã« (Næ¥å)
- ...
---
Obsidianã®daily noteãäœæããŸãã: daily/YYYY-MM-DD.md
Step 9: Sync Raindrop Bookmarks and Update Obsidian Wiki
Daily note ã®çæã»ãµããªãŒè¡šç€ºãå®äºããããRaw Sources ãææ°åããããã§ wiki ãåingestãããé çªãéèŠïŒbookmarks ãå
ãwiki ingest ãåŸïŒ:
Skill(raindrop-sync)
Skill(wiki-update, args: "ingest yesterday")
ãŠãŒã¶ãžã®ç¢ºèªã¯äžèŠã§ãé»ã
ãšå®è¡ããŠçµæã 1ã2 è¡ã§å ±åãããåæ¥ã® daily note ãååšããªãå Žå㯠wiki-update ãã¹ãããããïŒraindrop-sync ã¯å®è¡ããŠããïŒã
Step 9b: Weekly Wiki Lint GateïŒé±æ¬¡ lint ã®èªååïŒ
wiki ingest ãçµãã£ãããåå lint ãã 7 æ¥ä»¥äžçµéããŠããã° /wiki-update lint ãèµ°ããããããã¯ã鱿¬¡ã®èªå lint ãã¹ãªãŒãã«åœ±é¿ãããªã圢ã§å®çŸãããããã®ä»çµã¿ã/today ã¯æ¬äººãèµ·ããŠäœæ¥ãå§ããæã«ããèµ°ããªããããlaunchd/cron ã®ããã«ã¹ãªãŒãäžã«åãããŒãããšããªãã
åå lint æ¥ã®å€å®ã¯ wiki/log.mdïŒãšããŒããŒã·ã§ã³æžã¿ã® wiki/log-*.mdïŒã® lint ãšã³ããªèŠåºãããåã:
last_lint=$(find /Users/asonas/Documents/asonas/wiki -maxdepth 1 \
\( -name 'log.md' -o -name 'log-*.md' \) 2>/dev/null \
| xargs grep -hoE '^## [0-9]{4}-[0-9]{2}-[0-9]{2}[^#]*lint' 2>/dev/null \
| grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}' | sort -r | head -1)
echo "last_lint=${last_lint:-none}"
å€å®ã«ãŒã«:
last_lint ã空ïŒlint å±¥æŽãªãïŒâ lint ãå®è¡ãã
- Step 1 ã§ååŸãã仿¥ã®æ¥ä»ãš
last_lint ã®å·®ã 7 æ¥ä»¥äž â lint ãå®è¡ãã
- ããæªæº â ã¹ãããããïŒãã®æšã 1 è¡å ±åã«å«ãããäŸ: ãWiki lint: åå 6/05ã7æ¥æªæºã®ããã¹ããããïŒ
å®è¡ããå Žå:
Skill(wiki-update, args: "lint")
lint ã¯æ€åºçµæã wiki/log.md ã«èšé²ããã®ã¿ã§èªåä¿®æ£ã¯ããªãïŒhuman-in-the-loop ãç¶æïŒãStep 8 ã®ãµããªãŒã« lint ãèµ°ãããäºå®ãšæ€åºä»¶æ°ã®æŠèŠã 1ã2 è¡ã§æ·»ãããlint ã clean ãªããWiki lint: cleanããšã ãå ±åããããŠãŒã¶ãžã®ç¢ºèªã¯äžèŠã
Step 9c: qmd åã€ã³ããã¯ã¹
Wiki ã®åŠçãçµãã£ãããAlfred ã® qmd æ€çŽ¢ïŒws/wsqã/Users/asonas/workspace/qmd-alfred/ïŒãææ°ã® vault ãåŒãããããqmd ã®ã€ã³ããã¯ã¹ãæŽæ°ãããå·®åã€ã³ããã¯ã¹ã®ããäœã³ã¹ãã倱æããŠãã¯ãŒã¯ãããŒå
šäœã¯æ¢ããªãïŒèŠåã®ã¿ïŒãcommand -v qmd ãç¡ãïŒcollection asonas æªç»é²ãªãã¹ãããããŠããã
qmd update && qmd embed 2>&1 | tail -3 || echo "Warning: qmd reindex failed, skipping"
Step 9d: cctop ãã©ã°ã€ã³é±æ¬¡æŽæ°ãã§ãã¯ïŒsubagentïŒ
cctop ã® menubar ã¢ããªïŒ/Applications/cctop.app ãš cctop-hook ãã€ããªïŒã¯ Sparkle ã§èªåæŽæ°ãããããClaude Code ãã©ã°ã€ã³åŽã¯èªåæŽæ°ãããªãïŒæåã® claude plugin update ã®ã¿ïŒãæŸçœ®ãããšãã©ã°ã€ã³ããã³çãããããŸãŸåãæ®ãããhook ãã€ããªãšã®ããŒãžã§ã³å·®ãåºããããããé²ããããååãã§ãã¯ãã 7 æ¥ä»¥äžçµéããŠããã° ãã©ã°ã€ã³ãæŽæ°ãããStep 9b ã®é±æ¬¡ lint ã²ãŒããšåãããã¹ãªãŒãã«åœ±é¿ãããªããèµ·åºããŠäœæ¥ãå§ããæã«èµ°ããåæã§ã¹ãããã«ããã
ã¹ãããã«å€å®ãšãã©ã°ã€ã³æŽæ°ã¯ subagent ã«ä»»ããïŒæŽæ°ã³ãã³ãã®åºåãã¡ã€ã³ã¹ã¬ããã«æµãããçµæã ã 1 è¡ã§åãåãããïŒãmodel: "sonnet"ãsubagent_type: "general-purpose" ã§ 1 ã€èµ·åããã
ããã³ããèŠæš:
ããªã㯠cctop ã® Claude Code ãã©ã°ã€ã³ãææ°ã«ä¿ã€ä»»åãæã€ã以äžãé ã«å®è¡ããæåŸã«çµæã1è¡ã§è¿ãã
1. ã¹ãããã«å€å®: ã¹ã¿ã³ããã¡ã€ã« ~/.cctop/.last-plugin-update-check ãèŠãã
ååšãããã€æçµæŽæ°ãã7æ¥æªæºãªããäœããã
"cctopæŽæ°: ååãã§ãã¯ãã7æ¥æªæºã®ããã¹ããã" ãšè¿ããŠçµäºããã
å€å®äŸïŒãã¬ãã¯çŠæ¢ãã¯ã³ã©ã€ããŒã§ïŒ:
stamp="$HOME/.cctop/.last-plugin-update-check"; if [ -f "$stamp" ] && [ $(( ($(date +%s) - $(stat -f %m "$stamp")) / 86400 )) -lt 7 ]; then echo skip; fi
2. 7æ¥ä»¥äžçµé or ã¹ã¿ã³ãç¡ã â `claude plugin update cctop@cctop` ãå®è¡ããã
3. æåã»å€±æã«ããããã `touch "$HOME/.cctop/.last-plugin-update-check"` ã§ã¿ã€ã ã¹ã¿ã³ããæŽæ°ããã
4. çµæã1è¡ã§è¿ã:
- æŽæ°ãã: "cctopæŽæ°: X.Y.Z â A.B.C ã«æŽæ°ïŒæ¬¡åã»ãã·ã§ã³ããåæ ïŒ"
- å·®åãªã: "cctopæŽæ°: æ¢ã«ææ°"
- 倱æ: "cctopæŽæ°: 倱æïŒ<çç±>ïŒ"ïŒã¯ãŒã¯ãããŒå
šäœã¯æ¢ããªãïŒ
æšæž¬çŠæ¢ã`claude plugin update` ã®å®éã®åºåã«åºã¥ããŠå ±åããããšã
subagent ã®è¿ãã 1 è¡ã Step 8 ã®ãµããªãŒã«æ·»ããïŒã¹ãããæãå«ããŠç°¡æœã«ïŒããã©ã°ã€ã³æŽæ°ã¯åèµ·åïŒæ°ã»ãã·ã§ã³ïŒã§åæ ãããç¹ã«æ³šæã倱æããŠã /today å
šäœã¯æ¢ããªãã
Step 9e: ai-cost-management ããã·ã¥ããŒã鮮床ãã§ãã¯
ai-cost-management ã®ããã·ã¥ããŒã (Databricks Lakeview ai-cost-overview) ãæŽæ°ãããŠããããæ¥æ¬¡ã§ç¢ºèªãããå€å®ã¯ 2 軞: (1) AWS ãã€ãªãŒãã€ãã©ã€ã³åæ®µãæ¬æ¥å®è¡ãããã (CloudWatch Logs)ã(2) cost_events ã® source å¥ããŒã¿é®®åºŠ (SLA è¶
鿀ç¥)ã詳现ãšä¿å®ã¯ ãããžã§ã¯ãã¹ãã« projects/ai-cost-management/.claude/skills/dashboard-freshness/SKILL.md ãæ£ãšãã (ãã®ã¹ãã«ã¯ã°ããŒãã«ãªã®ã§ãããžã§ã¯ãã¹ãã«ãçŽæ¥ Skill() èµ·åã§ãããäžèšã§çŽæ¥å©ã)ã
åæ: mairu login --server ivry ãæžãã§ããããšã æªãã°ã€ã³ãªãã¹ã¯ãªãã㯠exit 2 ã§å€±æããããã®å Žåã¯ãŠãŒã¶ãŒã«ãmairu login --server ivry ãå®è¡ããŠãã ããããšä¿ãããã®ãã§ãã¯ã¯ã¹ããããã (/today å
šäœã¯æ¢ããªã)ã
cd /Users/asonas/Documents/asonas/projects/ai-cost-management
set -a; source .env.local; set +a
mairu exec --server "$IVRY_MAIRU_SERVER" "$IVRY_DEV_ACCOUNT/$IVRY_MAIRU_ROLE" --no-login -- \
env AWS_REGION=ap-northeast-1 bash scripts/check_dashboard_freshness.sh
çµäºã³ãŒã: 0=å¥å
š / 1=æªå®è¡ã»åæ»ãã (èŠç¢ºèª) / 2=AWS èªèšŒãªã (ãã°ã€ã³ãä¿ããŠã¹ããã)ãmairu ãæªãã°ã€ã³ã --server is required ã§å³å€±æããå Žåãåæ§ã«ãã°ã€ã³ãä¿ããŠã¹ãããããã
çµæã¯æåŠã«ãããããæ¬æ¥ã® daily note ã® ## ãã° ã»ã¯ã·ã§ã³ã« 1 ãããã¯ã§è¿œèšãã (åžžã«èšé²)ãå¥å
šãªããai-cost ããã·ã¥ããŒã鮮床ãã§ãã¯: å
š 8 æ®µæ¬æ¥å®è¡æžã¿ã»å
š source SLA å
(OK)ããèŠç¢ºèªãªã該åœè¡ (NOT-TODAY / STALE) ã ããåæãããStep 8 ã®ãµããªãŒã«ã 1 è¡æ·»ããã
Step 10: Morning Coaching Question
ãã¹ãŠã®åŠçãçµãã£ãããcoach-daily-question ã¹ãã«ã morning åŒæ°ã§åŒã³åºãã
Skill(coach-daily-question, args: "morning")
ãã®ã¹ãã«å
ã§ã¯ã³ãŒãã³ã°çžãïŒè§£æ±ºççŠæ¢ã芳å¯ãšåãã®ã¿ïŒã«åŸãã/today ã®å®è¡ã¢ãŒããäžæçã«åãæ¿ããã€ã¡ãŒãžã§æ§ããªããåçã coaching/log.md ã«è¿œèšãããã /today å
šäœãçµäºããã
ãŠãŒã¶ãŒãã仿¥ã¯ã³ãŒãã³ã°ã¯ã¹ãããã§ãçãäºåã«æèšããŠããå Žåã®ã¿ããã®ã¹ããããçç¥ããŠããã
Output Format
Always respond in Japanese. Present information in a clear, organized format that helps the user start their day efficiently.
Notes
- If yesterday's daily note doesn't exist, skip that section
- If no calendar events, mention "仿¥ã®äºå®ã¯ãããŸãã"
- Daily noteã®äœæã¯å¿
é - å¿
ãObsidianã«æžãåºãããš
- ã¿ã¹ã¯ç®¡ç㯠Things3 ããé¢è±ãããThings3 ãžã®èªã¿æžãã¯ãã®ã¹ãã«ã§ã¯è¡ããªãã代ããã« Linear Issue ãæ
å ±æºãšãã
- subagent ããè¿åŽãããæ
å ±ã daily note ã«æžã蟌ãåã«ãæããã«äºå®ãšç°ãªããã®ã»å¹»èŠãçŽã蟌ãã§ããªãã軜ãç®èŠç¢ºèªããããš