feat: Facebook Status Automation

- สร้างระบบ automation สำหรับ Facebook status draft
- Two-pass system: sessions → filter → compare → draft
- Ban list สำหรับกิจกรรมซ้ำทุกวัน
- Compare กับ 10 โพสย้อนหลัง (ไม่โพสซ้ำ)
- Draft style: คนทั่วไปอ่านเข้าใจ ไม่ใช้ technical jargon
- Cron: รันทุกวัน 20:00 น.

Components:
- facebook-status-generator.py (script)
- SKILL.md (Hermes skill)
- README.md (docs)
This commit is contained in:
Kunthawat Greethong
2026-07-02 11:38:48 +07:00
commit db8097f795
5 changed files with 680 additions and 0 deletions

View File

@@ -0,0 +1,157 @@
---
name: facebook-status-automation
description: "Generate Facebook personal status drafts from recent Hermes sessions. Two-pass system: extract activities from 24h sessions → compare with last 10 posts → output copyable draft or skip if nothing new."
version: 1.0.0
author: Kunthawat
license: MIT
platforms: [macos, linux]
metadata:
hermes:
tags: [social-media, facebook, personal-brand, automation]
category: productivity
---
# Facebook Status Automation
สร้าง Facebook status draft จาก Hermes sessions ใน 24 ชม. ย้อนหลัง
มุ่งเป้า: **personal brand** สำหรับคนทั่วไปที่ไม่รู้เรื่อง IT
## When to use
- ผู้ใช้ขอให้สร้าง Facebook status จากสิ่งที่ทำวันนี้
- Cron job รันตอน 20:00 ทุกวัน
- ผู้ใช้ถามว่า "วันนี้มีอะไรน่าโพสไหม"
## Core Logic
```
1. session_search(limit=20, sort="newest") → ดึง sessions 24h ย้อนหลัง
2. อ่าน session content → สรุปกิจกรรม
3. Filter: กรอง ban list (กิจกรรมซ้ำทุกวัน)
4. Compare: เปรียบเทียบกับ 10 โพสย้อนหลัง (จาก .facebook-status-log.json)
5. Draft: สร้าง status ถ้ามีเรื่องใหม่ / skip ถ้าไม่มี
```
## Ban List
กิจกรรมที่ทำทุกวัน → ไม่ต้องโพส:
| Topic | เหตุผล |
|-------|--------|
| ai-news-reading / morning-news-briefing | cron รันทุกวัน |
| daily-planning / start-my-day | cron รันทุกวัน |
| end-my-day / evening-wrapup | cron รันทุกวัน |
| cron-model-update | internal config |
| cookie-renewal | internal maintenance |
เพิ่ม/ลบได้ใน `~/vault/.facebook-status-log.json``settings.ban_list`
## Comparison Rules
| เงื่อนไข | ผลลัพธ์ |
|---------|---------|
| อยู่ใน ban list | ❌ skip |
| เรื่องเดิม + โพสวันนี้แล้ว | ❌ skip |
| เรื่องเดิม + ไม่มี change ใหม่ (lookback_posts) | ❌ skip |
| เรื่องเดิม + มี change ใหม่ | ✅ โพส (ปรับ wording) |
| เรื่องใหม่ | ✅ โพส |
| ไม่มีเรื่องน่าสนใจ | 🔕 ไม่โพส → แจ้ง "วันนี้ไม่มีเรื่องน่าโพส" |
## Steps
### 1. ดึง Sessions
```
session_search(limit=20, sort="newest")
```
กรองเฉพาะ sessions ใน 24 ชม. ย้อนหลัง (ไม่ใช่ทุก session)
### 2. อ่าน + สรุปกิจกรรม
อ่าน content ของแต่ละ session → สรุปว่า:
- ทำอะไรไปบ้าง
- มี progress/achievement อะไรบ้าง
- มี blog article ไหม (ถ้ามี เก็บ link)
### 3. Filter Ban List
เปรียบเทียบ topic กับ ban_list ใน log file
ถ้า match → skip
### 4. Compare กับ 10 โพสย้อนหลัง
อ่าน `~/vault/.facebook-status-log.json`
- ดึง posts 10 ตัวล่าสุด
- เช็คว่า topic นี้เคยโพสหรือยัง
- ถ้าเคย → เช็คว่ามี change ใหม่ไหม
### 5. สร้าง Draft (ถ้าผ่าน)
เขียน Facebook status:
- ไม่ใช้ technical jargon
- เน้นผลลัพธ์/ประโยชน์สำหรับคนทั่วไป
- สั้น กระชับ
- ใส่ blog link ถ้ามี
### 6. อัพเดท Log
บันทึกลง `~/vault/.facebook-status-log.json`:
- เพิ่ม post entry ใหม่
- อัพเดท milestones
### 7. Output
ถ้ามี draft → แสดงให้ user copy
ถ้าไม่มี → แจ้ง "วันนี้ไม่มีเรื่องน่าโพส"
## Draft Style Guide
### ✅ เขียนแบบนี้
```
วันนี้ปรับระบบ AI ให้สรุปข่าวอัตโนมัติทุกเช้า — เขียน script ให้ทำงานเองตอน 7 โมง ไม่ต้องนั่งเปิดทีละเว็บ
```
### ❌ ไม่เขียนแบบนี้
```
Today I updated the cron job configuration to use the moreminimore-ai model
via custom LLM proxy endpoint for all scheduled tasks
```
### Rules
- เขียนเป็นไทย (หรือภาษาที่ user ต้องการ)
- ไม่ใช้คำ technical (cron, API, script → ใช้คำที่คนทั่วไปเข้าใจ)
- เน้น **สิ่งที่ได้** ไม่ใช่ **สิ่งที่ทำ** ("ประหยัดเวลา" ดีกว่า "ปรับ config")
- ไม่ต้องใส่ timestamp หรือเวลาที่ทำ
- ถ้ามี blog article → ใส่ link ท้ายโพส
## Files
| ไฟล์ | ที่อยู่ | หน้าที่ |
|-----|--------|--------|
| Log file | `~/vault/.facebook-status-log.json` | เก็บประวัติ + milestones |
| Script | `~/Gitea/moreminimore-personal-system/facebook-status-automation/facebook-status-generator.py` | Test run / debug |
| Skill | `~/.hermes/skills/productivity/facebook-status-automation/SKILL.md` | ไฟล์นี้ |
## Cron Setup
```bash
# รันทุกวัน 20:00 น.
hermes cron create \
--name "Facebook Status Draft" \
--schedule "0 20 * * *" \
--prompt "รัน facebook-status-automation skill" \
--skills facebook-status-automation \
--deliver telegram
```
## Pitfalls
1. **sessions 24h ≠ sessions ทั้งหมด** — ต้อง filter เวลาจริง ไม่ใช่ดึงทุก session
2. **ban list ต้องตรง topic ไม่ใช่ substring** — เช่น "morning-news-briefing" ต้องเช็คว่า topic match เต็ม ไม่ใช่แค่มี "morning" อยู่
3. **draft ต้อง human-readable** — ห้ามมี technical terms หลุดไป
4. **log file ต้อง update ทุกครั้งที่โพส** — ไม่งั้นจะโพสซ้ำ
5. **ถ้าไม่มีเรื่องน่าโพส → ไม่ต้องโพส** — ห้าม forced output