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:
157
facebook-status-automation/SKILL.md
Normal file
157
facebook-status-automation/SKILL.md
Normal 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
|
||||
Reference in New Issue
Block a user