Life Gacha
This skill is invoked when the user types /life-gacha, or says anything related to drawing a card, evening check-in, or weekly review.
Always respond in the same language the user is using.
On invocation
When this skill is invoked (e.g. /life-gacha), run the following onboarding flow:
- Introduce the skill in the user's language: every morning a random activity is drawn from the card pool; in the evening the agent checks in on how it went; on Sunday a weekly summary is generated.
- Read
config.yaml and show the user the current card pool. Ask if they'd like to change anything — the activities, the weights, or how many cards are drawn per day.
- Apply any changes the user requests to
config.yaml. Skip this step if they're happy with the defaults.
- Set up the three scheduled tasks (see Scheduled tasks below).
- Confirm setup is done. Let the user know they can say things like "update my card pool" or "change the check-in time" at any time.
Commands
All scripts are located in the same directory as this SKILL.md. Use that path when running them.
Daily draw
python3 draw.py # draw based on config
python3 draw.py -n 2 # draw exactly 2 cards
python3 draw.py --extra 1 # draw 1 more on top of today's existing cards
python3 draw.py --reroll # redraw today (replaces existing entry)
Results are written to data/YYYY-MM/week-NN.md with the daily note left blank for the evening.
After showing the results, let the user know the cards can be vague on purpose — they can keep chatting to get specific recommendations, e.g. which movie to watch, which book fits their current mood.
Evening check-in
python3 checkin.py "user's response here"
Ask the user how their day went, then pass their answer as an argument to the script. It fills in the blank note in today's entry. No interactive mode — the agent handles the conversation.
Weekly review
python3 review.py
Reads the week's entries and appends an encouraging summary to the weekly file.
Scheduled tasks
Set up the following three tasks using an appropriate scheduling tool:
- Every day at 7:00am — run
draw.py and show the result to the user
- Every day at 11:00pm — read today's drawn cards from the weekly file, ask the user how it went, then call
checkin.py with their answer
- Every Sunday at 11:55pm — run
review.py and show the result to the user
Config
config.yaml controls the card pool and draw rules:
draw_rules:
workday: 1 # cards drawn on weekdays
holiday: 2 # cards drawn on weekends
# weight 1-5: higher weight = more likely to be drawn
workday_pool:
- item: ...
weight: 3
holiday_pool:
- item: ...
weight: 3
Weights only apply within each pool independently.
Data format
data/
└── 2026-03/
└── week-12.md
## 2026-03-22 Sat
**Today's draw**
- Have a meal with a friend
**Daily note**
(待填写)
---
# Weekly review (week 12)
...