showme-studio 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/desktop.ini +0 -0
- package/package.json +3 -2
- package/skills/agent-blog/SKILL.md +31 -4
- package/skills/agent-check/SKILL.md +121 -0
- package/skills/agent-fbpost/SKILL.md +39 -10
- package/skills/agent-feedback/SKILL.md +80 -0
- package/skills/agent-image/SKILL.md +132 -33
- package/skills/agent-onboarding/SKILL.md +40 -3
- package/skills/agent-platform/SKILL.md +8 -1
- package/skills/agent-seo/SKILL.md +13 -3
- package/skills/agent-write/SKILL.md +71 -0
package/bin/desktop.ini
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "showme-studio",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Cai bo agent Showme Studio vao ~/.claude/skills/",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
"skills"
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
|
-
"sync": "node scripts/sync-skills.js"
|
|
14
|
+
"sync": "node scripts/sync-skills.js",
|
|
15
|
+
"prepublishOnly": "node scripts/sync-skills.js"
|
|
15
16
|
},
|
|
16
17
|
"license": "UNLICENSED"
|
|
17
18
|
}
|
|
@@ -44,7 +44,7 @@ bài học, sai lầm, góc nhìn khác biệt và điều người đọc có t
|
|
|
44
44
|
|
|
45
45
|
Nếu chưa có chất liệu sẵn, chạy subcommand `topic` — dùng Big 5 để tìm chủ đề đang có sức kéo thật (xem mục riêng bên dưới).
|
|
46
46
|
|
|
47
|
-
Nếu bài này đã có sẵn thư mục trong `noi-dung/1-ideas/{slug}/` (xem quy ước ở
|
|
47
|
+
Nếu bài này đã có sẵn thư mục trong `noi-dung/1-ideas/{slug}/` (xem quy ước ở mục "Quy ước thư mục Kanban" trong file này), dùng lại đúng thư mục đó. Nếu chưa có, tạo mới trong `1-ideas/`.
|
|
48
48
|
|
|
49
49
|
### Bước 2 — Làm rõ người đọc
|
|
50
50
|
|
|
@@ -118,7 +118,7 @@ Hãy biên tập theo 4 vòng:
|
|
|
118
118
|
4. Đề xuất phiên bản chỉnh sửa nhưng vẫn giữ giọng gần gũi, rõ ràng, không quảng cáo.
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
-
Sau khi chốt bản cuối, lưu vào `blog.md` — cùng thư mục với bài Facebook đi kèm (`agent-fbpost`) và ảnh (`agent-image`) nếu bài này có, rồi di chuyển cả thư mục bài viết từ `2-drafting/` sang `noi-dung/3-review/{slug}/`. Xem quy ước ở
|
|
121
|
+
Sau khi chốt bản cuối, lưu vào `blog.md` — cùng thư mục với bài Facebook đi kèm (`agent-fbpost`) và ảnh (`agent-image`) nếu bài này có, rồi di chuyển cả thư mục bài viết từ `2-drafting/` sang `noi-dung/3-review/{slug}/`. Xem quy ước ở mục "Quy ước thư mục Kanban" trong file này.
|
|
122
122
|
|
|
123
123
|
---
|
|
124
124
|
|
|
@@ -141,8 +141,16 @@ Với mỗi nhóm, gợi ý 2-3 chủ đề bài viết cụ thể.
|
|
|
141
141
|
|
|
142
142
|
Nguyên tắc: đây là những câu hỏi khách hàng thật đang né tránh trả lời công khai — trả lời thẳng, minh bạch sẽ kéo đúng người đọc có nhu cầu thật.
|
|
143
143
|
|
|
144
|
+
Nếu đã có `_context/performance-log.md` (do `agent-feedback` ghi), đọc trước để ưu tiên chủ đề/dạng bài đang chạy tốt thật, thay vì chỉ đoán theo Big 5.
|
|
145
|
+
|
|
144
146
|
---
|
|
145
147
|
|
|
148
|
+
## Lỗi AI cần tránh (đọc CLAUDE.md trước khi viết)
|
|
149
|
+
|
|
150
|
+
Trước khi viết và ở vòng biên tập (Bước 5), đọc mục **"Lỗi AI cần tránh"** trong `CLAUDE.md` cá nhân và rà bản nháp theo đúng danh sách đó. Mặc định danh sách gồm: không dùng dấu phẩy trước "và" (", và"), không chen gạch ngang "-" giữa câu, không dùng gạch ngang dài (—), không dùng khuôn "không phải X, mà là Y", không viết hoa sau dấu hai chấm.
|
|
151
|
+
|
|
152
|
+
**Học lỗi mới:** nếu ở Bước 5 user tự sửa một khuôn AI mà danh sách chưa có (hoặc phản hồi "câu này nghe vẫn giống AI"), hỏi user có muốn thêm lỗi đó vào mục "Lỗi AI cần tránh" trong `CLAUDE.md` không. Nếu đồng ý, thêm 1 dòng mô tả ngắn gọn lỗi đó — để bài sau không mắc lại. Không tự ghi khi chưa hỏi.
|
|
153
|
+
|
|
146
154
|
## Nguyên tắc giữ chất riêng
|
|
147
155
|
|
|
148
156
|
- Luôn đưa trải nghiệm thật vào trước khi nhờ AI viết
|
|
@@ -150,8 +158,7 @@ Nguyên tắc: đây là những câu hỏi khách hàng thật đang né tránh
|
|
|
150
158
|
- Ưu tiên câu ngắn, ý rõ, ví dụ cụ thể
|
|
151
159
|
- Xóa các câu quá bóng bẩy nhưng không có thông tin
|
|
152
160
|
- Giữ lại những quan sát riêng, kể cả khi chưa hoàn hảo
|
|
153
|
-
-
|
|
154
|
-
- Nếu đề cập công cụ/dịch vụ, ghi rõ giá — minh bạch chi phí
|
|
161
|
+
- Nếu đề cập công cụ/dịch vụ, ghi rõ giá, minh bạch chi phí
|
|
155
162
|
|
|
156
163
|
## Dấu hiệu bài viết bị AI hóa
|
|
157
164
|
|
|
@@ -161,6 +168,26 @@ Nguyên tắc: đây là những câu hỏi khách hàng thật đang né tránh
|
|
|
161
168
|
- Không có quan điểm hoặc lựa chọn rõ
|
|
162
169
|
- Đọc xong không thấy người viết đã thật sự trải qua điều đó
|
|
163
170
|
|
|
171
|
+
## Ví dụ before/after
|
|
172
|
+
|
|
173
|
+
Mở bài, chủ đề "vì sao chuyên gia nên có website riêng".
|
|
174
|
+
|
|
175
|
+
**Trước (giọng AI):**
|
|
176
|
+
> Trong thời đại số hiện nay, xây dựng thương hiệu cá nhân không chỉ quan trọng mà còn là yếu tố sống còn. Một website chuyên nghiệp sẽ giúp bạn khẳng định vị thế, và tạo dựng niềm tin với khách hàng.
|
|
177
|
+
|
|
178
|
+
**Sau (giọng thật):**
|
|
179
|
+
> Tôi từng nghĩ có Facebook là đủ. Đến khi một khách hỏi "anh có web không để em xem kỹ hơn", tôi mới thấy mình thiếu một chỗ để người ta đọc nghiêm túc về mình.
|
|
180
|
+
>
|
|
181
|
+
> Website không làm bạn nổi tiếng hơn. Nó cho người đang cân nhắc một lý do để tin.
|
|
182
|
+
|
|
183
|
+
Đã sửa gì: bỏ "trong thời đại số hiện nay", bỏ khuôn "không chỉ... mà còn...", bỏ dấu phẩy trước "và", thay câu chung chung bằng một tình huống thật và một quan điểm rõ.
|
|
184
|
+
|
|
185
|
+
## Quy ước thư mục Kanban
|
|
186
|
+
|
|
187
|
+
Mỗi bài viết (blog + fbpost + `images/`) là 1 thư mục `{slug}/` nằm trong 1 trong 5 stage của `noi-dung/`: `1-ideas → 2-drafting → 3-review → 4-approved → 5-published`. Chuyển stage = di chuyển cả thư mục sang stage kế, không cần thêm field trạng thái. `{slug}` viết thường, không dấu, nối bằng `-` (ví dụ `cach-dat-tieu-de-thu-hut`). Bài đơn giản chỉ 1 file để thẳng `.md` trong thư mục stage, không bắt buộc gói thư mục.
|
|
188
|
+
|
|
189
|
+
Hai file context dùng chung, đặt ngoài các stage: `_context/published-index.md` (mục lục bài đã đăng — `agent-platform` ghi, `agent-seo` đọc để internal link) và `_platforms/{nền tảng}.json` (cấu hình nền tảng, không chứa token thật).
|
|
190
|
+
|
|
164
191
|
## Files
|
|
165
192
|
|
|
166
193
|
```
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-check
|
|
3
|
+
description: "Kiểm tra sức khoẻ hệ thống content và context dự án trong thư mục làm việc: cấu trúc thư mục noi-dung/ đúng quy ước chưa, context dự án (CLAUDE.md + file mô tả sản phẩm/giá/ICP) có đầy đủ, nhất quán, còn cập nhật không, các file liên kết chặt chưa, bài có kẹt/thiếu file không, agent phối hợp có đứt mạch không. Chạy khi muốn soát lại trước khi bàn giao hoặc khi thấy mọi thứ đang ngổn ngang. Không rà chất lượng từng bài (việc đó ở agent-blog/fbpost/seo)."
|
|
4
|
+
argument-hint: "[(empty) chạy full check, hoặc subcommand: structure | context | flow | fix]"
|
|
5
|
+
version: "1.1.0"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /agent-check — Soát Sức Khoẻ Hệ Thống + Context Dự Án
|
|
9
|
+
|
|
10
|
+
Bộ agent Showme Studio chỉ chạy mượt khi các mảnh khớp nhau: thư mục `noi-dung/` đúng quy ước Kanban, `CLAUDE.md` đủ mục và có nội dung thật để các agent đọc, `published-index.md` phản ánh đúng bài đã đăng, `_platforms/` có cấu hình nền tảng. Khi làm nhiều bài, part-time, dễ có bài kẹt sai chỗ hoặc context lệch/lỗi thời mà không ai để ý. Agent này rà một lượt và báo cáo, **chỉ đọc, không tự sửa** (trừ subcommand `fix` khi user yêu cầu rõ).
|
|
11
|
+
|
|
12
|
+
Agent này không viết nội dung, không đăng bài, và không rà chất lượng từng bài (việc đó nằm ở agent-blog bước biên tập, agent-fbpost `check`, agent-seo `onpage`). Nó lo 3 việc: cấu trúc thư mục, context dự án, và mạch phối hợp giữa các agent.
|
|
13
|
+
|
|
14
|
+
## Routing
|
|
15
|
+
|
|
16
|
+
| Input | Hành động |
|
|
17
|
+
|---|---|
|
|
18
|
+
| _(empty)_ hoặc `help` | Chạy **Full Check** — cả 3 nhóm bên dưới rồi in báo cáo |
|
|
19
|
+
| `structure` | Chỉ kiểm tra cấu trúc thư mục `noi-dung/` |
|
|
20
|
+
| `context` | Chỉ kiểm tra context dự án — nội dung + liên kết file |
|
|
21
|
+
| `flow` | Chỉ kiểm tra mạch phối hợp giữa các agent theo từng bài |
|
|
22
|
+
| `fix [vấn đề]` | Đề xuất cách sửa 1 vấn đề đã tìm ra, làm sau khi user chọn |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Full Check — chạy tuần tự 3 nhóm
|
|
27
|
+
|
|
28
|
+
Đầu tiên, quét thư mục làm việc: liệt kê cây thư mục `noi-dung/` (5 stage + `_platforms/` + `_context/`), đọc `CLAUDE.md`, mọi file mô tả context dự án nếu có (ví dụ `CONTEXT/*.md`, file sản phẩm/giá/ICP/giọng văn), `_context/published-index.md`, các file `_platforms/*.json`. Sau đó chấm theo 3 nhóm dưới, mỗi phát hiện gắn mức độ: 🔴 chặn (phải sửa), 🟡 nên sửa, 🟢 ổn.
|
|
29
|
+
|
|
30
|
+
Quy ước thư mục Kanban dùng để đối chiếu: mỗi bài là 1 thư mục `{slug}/` (blog + fbpost + `images/`) nằm trong 1 trong 5 stage `1-ideas → 2-drafting → 3-review → 4-approved → 5-published`; chuyển stage = di chuyển cả thư mục; `{slug}` viết thường không dấu nối bằng `-`; bài đơn giản để 1 file `.md` lẻ được. Hai file dùng chung: `_context/published-index.md` và `_platforms/{nền tảng}.json` (không chứa token thật).
|
|
31
|
+
|
|
32
|
+
### Nhóm 1 — Cấu trúc thư mục (`structure`)
|
|
33
|
+
|
|
34
|
+
Đối chiếu với quy ước Kanban nêu ở trên:
|
|
35
|
+
|
|
36
|
+
1. Có đủ 5 thư mục stage (`1-ideas`, `2-drafting`, `3-review`, `4-approved`, `5-published`) không? Thiếu thư mục nào báo 🟡
|
|
37
|
+
2. Mỗi bài có phải là 1 thư mục `{slug}/` không, hay có file `.md` lẻ nằm thẳng trong stage? (bài đơn giản để lẻ được, nhưng bài có ảnh/fbpost mà không gói thư mục thì báo 🟡)
|
|
38
|
+
3. `{slug}` có đúng định dạng chữ thường, không dấu, nối bằng `-` không? Slug có dấu/có khoảng trắng báo 🟡
|
|
39
|
+
4. Bài ở `5-published/` có `featured.png` trong `images/` không, có dòng URL bài đã đăng trong `blog.md` không? Thiếu báo 🟡 (dấu hiệu đăng thủ công mà quên cập nhật)
|
|
40
|
+
5. Có thư mục `{slug}/` rỗng hoặc chỉ có `images/` mà không có `blog.md`/`fbpost.md` không? Báo 🔴 (bài mồ côi)
|
|
41
|
+
|
|
42
|
+
### Nhóm 2 — Context dự án (`context`)
|
|
43
|
+
|
|
44
|
+
Chia 2 phần: nội dung context có tốt không, và các file có khớp nhau không.
|
|
45
|
+
|
|
46
|
+
**2A — Nội dung context (đọc sâu, không chỉ đếm file):**
|
|
47
|
+
|
|
48
|
+
1. `CLAUDE.md` có tồn tại không? Nếu thiếu hẳn, báo 🔴 (mọi agent viết sẽ dùng giọng mặc định, không phải giọng người dùng).
|
|
49
|
+
2. Có đủ các mục agent cần đọc không: "Cách tôi thường nói", "Tone theo loại bài", "Điều tôi không muốn", "Lỗi AI cần tránh", "Style Token ảnh"? Thiếu mục nào báo 🟡 kèm agent bị ảnh hưởng.
|
|
50
|
+
3. Mỗi mục có nội dung thật hay còn để trống/placeholder (`[điền]`, `[Cần cập nhật]`, `[...]`, `[từ Bước ...]`)? Còn placeholder báo 🟡 — context chưa hoàn thiện, agent sẽ đoán bừa.
|
|
51
|
+
4. "Style Token ảnh" có mô tả cụ thể (phong cách, bảng màu, ánh sáng) hay còn chung chung? Chung chung báo 🟡 (ảnh sẽ mỗi lần một kiểu).
|
|
52
|
+
5. Mâu thuẫn nội bộ: "Điều tôi không muốn" có chọi với "Cách tôi thường nói" không; Tone khai báo có ngược với ví dụ giọng không? Có mâu thuẫn báo 🟡, chỉ rõ 2 chỗ chọi nhau.
|
|
53
|
+
6. Nếu có file mô tả sản phẩm/giá/ICP (CONTEXT/*.md hoặc tương tự): đối chiếu giá/tên sản phẩm nêu trong đó với giá/tên xuất hiện ở bài đã đăng trong `5-published/`. Lệch nhau báo 🟡 (dấu hiệu context cũ hoặc bài sai giá). Nếu file context có ghi ngày cập nhật và đã quá cũ so với hoạt động gần đây, nhắc 🟡 soát lại.
|
|
54
|
+
|
|
55
|
+
**2B — Liên kết file:**
|
|
56
|
+
|
|
57
|
+
7. `_context/published-index.md` có tồn tại không? Đối chiếu từng dòng với thư mục `5-published/`:
|
|
58
|
+
- Có bài trong `5-published/` mà thiếu dòng trong index không? Báo 🔴 (agent-seo sẽ không tìm được để internal link).
|
|
59
|
+
- Có dòng trong index mà không còn thư mục tương ứng không? Báo 🟡 (link gãy).
|
|
60
|
+
8. Mỗi nền tảng đang dùng có file `_platforms/{nền tảng}.json` không? File có lỡ chứa token/password thật không (chỉ được chứa cấu hình)? Có token thật báo 🔴 ngay.
|
|
61
|
+
|
|
62
|
+
### Nhóm 3 — Mạch phối hợp agent (`flow`)
|
|
63
|
+
|
|
64
|
+
Rà từng bài xem có đứt mạch bàn giao giữa các agent không:
|
|
65
|
+
|
|
66
|
+
1. Bài ở `2-drafting/` hoặc `3-review/` mà `blog.md` chỉ có dàn ý, đứng yên lâu → gợi ý chạy tiếp `agent-blog`/`agent-seo` bước biên tập
|
|
67
|
+
2. Bài ở `4-approved/` đã lâu chưa đăng → gợi ý chạy `agent-platform`
|
|
68
|
+
3. Bài có `blog.md` tham chiếu ảnh `` mà file ảnh không tồn tại trong `images/` → báo 🔴 (đăng lên sẽ vỡ ảnh), gợi ý `agent-image`
|
|
69
|
+
4. Bài SEO có nhắc Pillar/Cluster nhưng `published-index.md` chưa có bài liên quan để internal link → gợi ý bài cần viết trước
|
|
70
|
+
5. Bài ở `5-published/` nhưng `CLAUDE.md` chưa được cập nhật từ bài đó → gợi ý chạy `agent-onboarding update [slug]` để học văn phong
|
|
71
|
+
6. Bài đã đăng lâu nhưng chưa có dòng trong `_context/performance-log.md` → gợi ý chạy `agent-feedback log [slug]` để ghi kết quả thật
|
|
72
|
+
|
|
73
|
+
### Báo cáo cuối
|
|
74
|
+
|
|
75
|
+
In gọn theo format:
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
KIỂM TRA HỆ THỐNG CONTENT — [ngày]
|
|
79
|
+
|
|
80
|
+
🔴 Cần sửa ngay (n):
|
|
81
|
+
- [vấn đề] → [agent/cách xử lý gợi ý]
|
|
82
|
+
|
|
83
|
+
🟡 Nên sửa (n):
|
|
84
|
+
- [vấn đề] → [gợi ý]
|
|
85
|
+
|
|
86
|
+
🟢 Ổn:
|
|
87
|
+
- [các mục đã đạt]
|
|
88
|
+
|
|
89
|
+
Gợi ý bước tiếp theo: [1-2 việc ưu tiên nhất]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Không tự sửa gì ở bước này. Nếu user muốn xử lý 1 vấn đề, chạy `fix`.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Subcommand: `fix [vấn đề]` — Đề xuất và thực hiện sửa
|
|
97
|
+
|
|
98
|
+
Chỉ chạy sau khi user chọn vấn đề cụ thể từ báo cáo. Với mỗi vấn đề:
|
|
99
|
+
|
|
100
|
+
1. Nói rõ sẽ làm gì (di chuyển thư mục, thêm dòng vào index, tạo mục thiếu trong CLAUDE.md...) và hệ quả
|
|
101
|
+
2. Chờ user xác nhận
|
|
102
|
+
3. Thực hiện, rồi báo lại kết quả
|
|
103
|
+
|
|
104
|
+
Không tự đăng bài, không tự publish, không tự ghi token. Việc chuyển stage `3-review → 4-approved` luôn để user tự quyết (đó là bước người đọc lại và duyệt), agent-check không tự duyệt thay.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Nguyên tắc
|
|
109
|
+
|
|
110
|
+
- Mặc định chỉ đọc và báo cáo — không sửa khi chưa được yêu cầu rõ
|
|
111
|
+
- Báo cáo phải chỉ đúng file/thư mục cụ thể, không nói chung chung ("có vài bài chưa ổn" là vô dụng)
|
|
112
|
+
- Ưu tiên phát hiện làm gãy luồng thật (ảnh thiếu, index lệch, token lộ) hơn là bắt lỗi hình thức nhỏ
|
|
113
|
+
- Gợi ý bước tiếp theo luôn gắn với đúng agent phụ trách, để user biết gõ gì tiếp
|
|
114
|
+
- Tôn trọng ngoại lệ trong `CLAUDE.md` của dự án: nếu dự án có quy ước riêng (ví dụ đặt file lẻ thay vì gói thư mục), đọc quy ước đó trước khi báo lỗi
|
|
115
|
+
|
|
116
|
+
## Files
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
agent-check/
|
|
120
|
+
└── SKILL.md — router + full check (3 nhóm) + fix (file này)
|
|
121
|
+
```
|
|
@@ -90,30 +90,59 @@ Hãy kiểm tra từng rule sau và chỉ rõ câu nào vi phạm:
|
|
|
90
90
|
được có CTA)
|
|
91
91
|
4. Tên nền tảng/công cụ có viết đủ nghĩa không (ví dụ "website dùng Wix"
|
|
92
92
|
thay vì chỉ "Wix")?
|
|
93
|
-
5. Danh sách có dùng gạch ngang dài (—)
|
|
94
|
-
hai chấm hoặc xuống dòng
|
|
95
|
-
6. Có
|
|
96
|
-
7.
|
|
97
|
-
8. Có
|
|
98
|
-
9.
|
|
99
|
-
|
|
100
|
-
|
|
93
|
+
5. Danh sách có dùng gạch ngang dài (—) hoặc chen gạch ngang "-"
|
|
94
|
+
giữa câu không? Nếu có, đổi thành dấu phẩy, dấu hai chấm hoặc xuống dòng
|
|
95
|
+
6. Có dùng dấu phẩy trước "và" (", và") không? Bỏ dấu phẩy hoặc tách câu
|
|
96
|
+
7. Có dùng khuôn "không phải X, mà là Y" không? Viết lại cho tự nhiên
|
|
97
|
+
8. Có ai cần được cảm ơn/tag theo tên thật không mà đang thiếu?
|
|
98
|
+
9. Thông tin phụ thuộc bên thứ ba có disclaimer "có thể thay đổi" chưa?
|
|
99
|
+
10. Có header thừa cho phần chỉ 1-2 bullet không? (bỏ nếu thừa)
|
|
100
|
+
11. Bài kết bằng CTA ép hay bằng "big picture" đúng loại bài?
|
|
101
|
+
|
|
102
|
+
Đối chiếu thêm với mục "Lỗi AI cần tránh" trong CLAUDE.md — nếu có lỗi
|
|
103
|
+
nào đã ghi ở đó mà bản nháp còn mắc, sửa luôn. Chỉ sửa những câu vi
|
|
104
|
+
phạm, giữ nguyên phần đã ổn.
|
|
101
105
|
```
|
|
102
106
|
|
|
103
|
-
|
|
107
|
+
Nếu user tự sửa một khuôn AI mà checklist và `CLAUDE.md` chưa có, hỏi có muốn thêm vào mục "Lỗi AI cần tránh" trong `CLAUDE.md` không — đồng ý thì thêm 1 dòng, không tự ghi khi chưa hỏi.
|
|
108
|
+
|
|
109
|
+
Sau khi chốt bản cuối, lưu vào `fbpost.md` trong thư mục bài viết hiện tại. Nếu bài Facebook này đi kèm 1 bài blog, dùng chung thư mục `{slug}/` với `blog.md` — thư mục này đang nằm ở stage nào trong `noi-dung/1-ideas → 2-drafting → 3-review → 4-approved → 5-published` thì `fbpost.md` cũng di chuyển theo cùng lúc với cả thư mục (do `agent-blog`/`agent-seo` xử lý). Xem quy ước ở mục "Quy ước thư mục Kanban" trong file này.
|
|
104
110
|
|
|
105
111
|
---
|
|
106
112
|
|
|
107
113
|
## Nguyên tắc
|
|
108
114
|
|
|
109
115
|
- Không viết hoa sau dấu hai chấm
|
|
110
|
-
- Không dùng gạch ngang dài (—), thay bằng dấu phẩy, xuống dòng, hoặc viết lại câu
|
|
116
|
+
- Không dùng gạch ngang dài (—) hoặc chen gạch ngang "-" giữa câu, thay bằng dấu phẩy, xuống dòng, hoặc viết lại câu
|
|
117
|
+
- Không dùng dấu phẩy trước "và" (", và"), không dùng khuôn "không phải X, mà là Y"
|
|
111
118
|
- Không xuống dòng ngẫu nhiên, chỉ xuống dòng khi chuyển ý thật sự
|
|
112
119
|
- Không hook marketing ở đầu bài
|
|
113
120
|
- Không CTA ở cuối bài, trừ bài launch (thông tin đầy đủ, cần hành động cụ thể)
|
|
114
121
|
- Minh bạch chi phí — nếu đề cập công cụ/dịch vụ, ghi rõ giá
|
|
115
122
|
- Giữ nhịp câu ngắn, có thể để một dòng hơi gãy nếu đó là cách nói tự nhiên — không biên tập quá sạch đến mất chất cá nhân
|
|
116
123
|
|
|
124
|
+
## Ví dụ before/after
|
|
125
|
+
|
|
126
|
+
Bài buildinpublic, khoe vừa giúp một khách sửa website.
|
|
127
|
+
|
|
128
|
+
**Trước (hook giả + CTA ép):**
|
|
129
|
+
> 🔥 BẠN CÓ BIẾT? 90% chuyên gia đang bỏ lỡ cơ hội vàng vì chưa có website riêng! Đừng để mình tụt lại phía sau. Inbox ngay để được tư vấn miễn phí!
|
|
130
|
+
|
|
131
|
+
**Sau (giọng thật):**
|
|
132
|
+
> Tuần trước một chị coach nhắn: "website của chị lỗi rồi, khách vào không đọc được".
|
|
133
|
+
>
|
|
134
|
+
> Chị loay hoay 3 ngày không sửa nổi. Mình gỡ trong 20 phút, phần lớn thời gian là ngồi chỉ chị cách tự đổi sau này để lần sau không phải hỏi ai.
|
|
135
|
+
>
|
|
136
|
+
> Làm web không khó. Không có ai chỉ đường mới khó.
|
|
137
|
+
|
|
138
|
+
Đã sửa gì: bỏ emoji giật, bỏ số liệu bịa "90%", bỏ CTA "inbox ngay", mở bằng một chuyện thật, kết bằng một câu quan điểm thay vì lời mời mua.
|
|
139
|
+
|
|
140
|
+
## Quy ước thư mục Kanban
|
|
141
|
+
|
|
142
|
+
Mỗi bài viết (blog + fbpost + `images/`) là 1 thư mục `{slug}/` nằm trong 1 trong 5 stage của `noi-dung/`: `1-ideas → 2-drafting → 3-review → 4-approved → 5-published`. Chuyển stage = di chuyển cả thư mục sang stage kế, không cần thêm field trạng thái. `{slug}` viết thường, không dấu, nối bằng `-` (ví dụ `cach-dat-tieu-de-thu-hut`). Bài đơn giản chỉ 1 file để thẳng `.md` trong thư mục stage, không bắt buộc gói thư mục.
|
|
143
|
+
|
|
144
|
+
Hai file context dùng chung, đặt ngoài các stage: `_context/published-index.md` (mục lục bài đã đăng — `agent-platform` ghi, `agent-seo` đọc để internal link) và `_platforms/{nền tảng}.json` (cấu hình nền tảng, không chứa token thật).
|
|
145
|
+
|
|
117
146
|
## Files
|
|
118
147
|
|
|
119
148
|
```
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-feedback
|
|
3
|
+
description: "Ghi lại kết quả thật của bài đã đăng (reach, tương tác, inbox, đơn) rồi phân tích bài nào chạy tốt để gợi ý hướng viết tiếp. Nhập số liệu bằng tay nên chạy được cả trên Claude Code lẫn Codex, không cần kết nối API nền tảng."
|
|
4
|
+
argument-hint: "[log [slug] để ghi số liệu, review để phân tích, hoặc (empty) xem hướng dẫn]"
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /agent-feedback — Học Từ Kết Quả Thật
|
|
9
|
+
|
|
10
|
+
Bộ agent sản xuất nội dung, nhưng nếu không nhìn lại bài nào thật sự chạy, bạn viết mãi mà không biết đang đi đúng hướng không. Agent này đóng vòng lặp: bạn nhập số liệu thật của bài đã đăng, nó lưu lại và chỉ ra mẫu số chung của bài hiệu quả, để agent viết sau ưu tiên đúng hướng.
|
|
11
|
+
|
|
12
|
+
Nhập số liệu bằng tay (bạn tự đọc trên Facebook/web rồi gõ vào) — không kết nối API nền tảng, nên chạy y hệt trên Claude Code hay Codex.
|
|
13
|
+
|
|
14
|
+
## Routing
|
|
15
|
+
|
|
16
|
+
| Input | Hành động |
|
|
17
|
+
|---|---|
|
|
18
|
+
| _(empty)_ hoặc `help` | In hướng dẫn + ví dụ |
|
|
19
|
+
| `log [slug]` | Ghi số liệu 1 bài đã đăng vào `_context/performance-log.md` |
|
|
20
|
+
| `review` | Phân tích toàn bộ log, chỉ ra bài/chủ đề/dạng nào chạy tốt |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## `log [slug]` — Ghi số liệu một bài
|
|
25
|
+
|
|
26
|
+
Hỏi các số bạn có (bỏ trống được, không ép đủ hết):
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
Bài: [slug]
|
|
30
|
+
Kênh: web / Facebook / cả hai
|
|
31
|
+
- Reach/lượt xem:
|
|
32
|
+
- Like/reaction:
|
|
33
|
+
- Comment:
|
|
34
|
+
- Share:
|
|
35
|
+
- Inbox/tin nhắn về bài này:
|
|
36
|
+
- Đơn/đăng ký đến từ bài này (nếu lần được):
|
|
37
|
+
- Ghi chú: (đăng giờ nào, có chạy ads không, điều gì bất thường)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Ghi 1 dòng vào `_context/performance-log.md` (tạo file với header bảng nếu chưa có):
|
|
41
|
+
|
|
42
|
+
```markdown
|
|
43
|
+
| Ngày | Slug | Kênh | Reach | Like | Comment | Share | Inbox | Đơn | Ghi chú |
|
|
44
|
+
|---|---|---|---|---|---|---|---|---|---|
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Đối chiếu slug với `_context/published-index.md` để lấy đúng chủ đề/category/tags của bài — không bắt nhập lại.
|
|
48
|
+
|
|
49
|
+
## `review` — Phân tích để biết viết gì tiếp
|
|
50
|
+
|
|
51
|
+
Đọc `performance-log.md` ghép với `published-index.md`, rồi trả lời gọn:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
1. 3 bài chạy tốt nhất (theo inbox/đơn trước, reach sau) — điểm chung gì?
|
|
55
|
+
(chủ đề, dạng bài, kiểu tiêu đề, giờ đăng)
|
|
56
|
+
2. 3 bài yếu nhất — điểm chung gì?
|
|
57
|
+
3. Chủ đề/dạng bài nên viết thêm, chủ đề nên dừng.
|
|
58
|
+
4. 1-2 giả thuyết đáng thử ở bài sau (ví dụ: tiêu đề dạng câu hỏi kéo
|
|
59
|
+
inbox tốt hơn dạng how-to).
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Nguyên tắc phân tích: ưu tiên chỉ số gần tiền nhất (inbox, đơn) hơn chỉ số phù phiếm (reach, like). Chỉ kết luận khi có ít nhất 3-4 bài để so — dưới đó chỉ là quan sát, nói rõ là chưa đủ dữ liệu.
|
|
63
|
+
|
|
64
|
+
Kết quả `review` là chất liệu cho `agent-blog topic` và `agent-seo` chọn chủ đề: khi được hỏi viết gì tiếp, đọc `performance-log.md` để ưu tiên hướng đang hiệu quả thật thay vì đoán.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Nguyên tắc
|
|
69
|
+
|
|
70
|
+
- Chỉ nhập số thật, không bịa cho đủ bảng — bỏ trống ô nào không có
|
|
71
|
+
- Đo cái gần tiền nhất trước (inbox/đơn), reach/like chỉ để tham khảo
|
|
72
|
+
- Không kết luận vội khi mẫu còn ít, nói rõ khi dữ liệu chưa đủ
|
|
73
|
+
- Log là để quyết định viết gì tiếp, không phải để chấm điểm bản thân — giữ nhẹ nhàng
|
|
74
|
+
|
|
75
|
+
## Files
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
agent-feedback/
|
|
79
|
+
└── SKILL.md — router + log + review (file này)
|
|
80
|
+
```
|
|
@@ -1,25 +1,34 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-image
|
|
3
|
-
description: "Tạo ảnh
|
|
4
|
-
argument-hint: "[
|
|
5
|
-
version: "
|
|
3
|
+
description: "Tạo prompt ảnh AI nhất quán theo Style Token cho mọi dạng ảnh nội dung: ảnh đơn Facebook, album 3-4 ảnh, carousel, thumbnail website, ảnh quote, minh hoạ trong bài. Kèm tìm lại ảnh đã tạo để tái dùng và gợi ý ảnh stock. Agent sinh prompt hoàn chỉnh để dán vào tool tạo ảnh bất kỳ (ChatGPT, Gemini, Canva AI...), không cần API key."
|
|
4
|
+
argument-hint: "[dạng ảnh: fb1 | album | carousel | thumb | quote | minh-hoa, hoặc subcommand: setup-style | tim | stock]"
|
|
5
|
+
version: "2.0.0"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# /agent-image —
|
|
8
|
+
# /agent-image — Ảnh Nhất Quán Cho Mọi Dạng Nội Dung
|
|
9
9
|
|
|
10
10
|
Vấn đề phổ biến khi tự tạo ảnh bằng AI: mỗi ảnh một phong cách, không ai nhận ra đây là cùng một thương hiệu. Agent này giải quyết bằng **Style Token** — một đoạn mô tả phong cách cố định, dùng lặp lại y hệt trong mọi prompt, thay vì mô tả lại từ đầu mỗi lần (kỹ thuật đang là chuẩn phổ biến để giữ nhất quán ảnh AI theo thương hiệu/nhân vật).
|
|
11
11
|
|
|
12
12
|
Nguyên tắc quan trọng nhất: **dùng đúng từ ngữ, không đổi từ đồng nghĩa.** Nếu Style Token ghi "áo blazer be", lần sau vẫn phải ghi "áo blazer be", không đổi thành "áo khoác be" hay "áo vest be" — AI coi các từ đồng nghĩa là khái niệm khác nhau, đổi từ là mất nhất quán.
|
|
13
13
|
|
|
14
|
+
**Cách agent hoạt động:** agent không tự gọi API tạo ảnh. Agent sinh ra **prompt hoàn chỉnh** (Style Token + mô tả nội dung + tỷ lệ khung + vùng chữ an toàn) — bạn dán prompt đó vào tool tạo ảnh đang dùng (ChatGPT, Gemini, Canva AI, Midjourney...), rồi lưu ảnh về đúng thư mục theo quy ước đặt tên bên dưới. Không cần API key, không phụ thuộc 1 tool cụ thể.
|
|
15
|
+
|
|
14
16
|
## Routing
|
|
15
17
|
|
|
16
18
|
| Input | Hành động |
|
|
17
19
|
|---|---|
|
|
18
20
|
| _(empty)_ hoặc `help` | In hướng dẫn + ví dụ |
|
|
19
21
|
| `setup-style` | Chạy trước tiên — xây Style Token cố định cho thương hiệu |
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
22
|
+
| `fb1 [nội dung post]` | 1 ảnh đơn cho post Facebook |
|
|
23
|
+
| `album [nội dung post + số ảnh]` | Bộ 3-4 ảnh cho post Facebook nhiều ảnh |
|
|
24
|
+
| `carousel [nội dung]` | Bộ ảnh carousel lật trang (5-10 trang) |
|
|
25
|
+
| `thumb [chủ đề bài viết]` | Thumbnail/ảnh đại diện cho bài website |
|
|
26
|
+
| `quote [câu quote]` | Ảnh quote card |
|
|
27
|
+
| `minh-hoa [mô tả cảnh]` | Ảnh minh hoạ chèn trong bài |
|
|
28
|
+
| `tim [mô tả ảnh cần]` | Tìm lại ảnh đã tạo trong các bài cũ để tái dùng |
|
|
29
|
+
| `stock [chủ đề]` | Gợi ý từ khoá tìm ảnh stock khi không cần ảnh AI |
|
|
30
|
+
|
|
31
|
+
Trước khi chạy bất kỳ flow tạo ảnh nào: đọc Style Token trong `CLAUDE.md` cá nhân (mục "Style Token ảnh"). Nếu chưa có, chạy `setup-style` trước. Trước khi tạo mới, cân nhắc chạy `tim` — ảnh phù hợp có thể đã tồn tại trong bài cũ.
|
|
23
32
|
|
|
24
33
|
---
|
|
25
34
|
|
|
@@ -42,65 +51,155 @@ y nguyên vào mọi prompt sau này.
|
|
|
42
51
|
|
|
43
52
|
Lưu Style Token này vào `CLAUDE.md` cá nhân (mục riêng "Style Token ảnh") để agent tự nhớ, không cần dán lại thủ công mỗi lần.
|
|
44
53
|
|
|
45
|
-
##
|
|
54
|
+
## Cấu trúc prompt chuẩn (áp cho mọi flow bên dưới)
|
|
55
|
+
|
|
56
|
+
Mỗi prompt agent sinh ra luôn gồm 4 phần, theo đúng thứ tự:
|
|
46
57
|
|
|
47
58
|
```text
|
|
48
|
-
|
|
59
|
+
[1. Style Token — dán nguyên văn, không diễn giải lại]
|
|
60
|
+
[2. Nội dung ảnh — 1 ý chính, mô tả cụ thể cảnh/đối tượng]
|
|
61
|
+
[3. Tỷ lệ khung — ghi rõ theo dạng ảnh, ví dụ "tỷ lệ 1:1, 1080x1080"]
|
|
62
|
+
[4. Vùng chữ — nếu ảnh có chữ hoặc sẽ đè chữ lên sau: chừa khoảng trống ở đâu]
|
|
63
|
+
```
|
|
49
64
|
|
|
50
|
-
|
|
65
|
+
Với bộ nhiều ảnh (album, carousel): sinh **tất cả prompt cùng một lần**, Style Token lặp lại y hệt trong từng prompt, và thêm 1-2 yếu tố lặp cố định xuyên suốt bộ (cùng màu nền, cùng vị trí đặt tiêu đề, cùng nhân vật/đối tượng chính) để người xem nhận ra đây là cùng 1 bộ ảnh.
|
|
51
66
|
|
|
52
|
-
|
|
53
|
-
để chi tiết hình ảnh đè lên vùng chữ.
|
|
54
|
-
```
|
|
67
|
+
---
|
|
55
68
|
|
|
56
|
-
|
|
69
|
+
## Flow: `fb1` — Ảnh đơn cho post Facebook
|
|
57
70
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
71
|
+
Hỏi nhanh nếu chưa rõ: post này nói về điều gì, có cần chữ trên ảnh không. Sau đó sinh 1 prompt:
|
|
72
|
+
|
|
73
|
+
- Tỷ lệ: 1:1 (1080x1080) mặc định, hoặc 4:5 (1080x1350) nếu muốn chiếm nhiều màn hình hơn trên feed
|
|
74
|
+
- Đúng 1 ý chính của post — không cố tóm tắt cả bài vào 1 ảnh
|
|
75
|
+
- Nếu ảnh có chữ: chữ ngắn dưới 10 từ, chừa vùng trống rõ ràng cho chữ
|
|
76
|
+
|
|
77
|
+
Lưu thành `images/fb-1.png` trong thư mục bài viết.
|
|
78
|
+
|
|
79
|
+
## Flow: `album` — Bộ 3-4 ảnh cho post Facebook nhiều ảnh
|
|
80
|
+
|
|
81
|
+
Hỏi nhanh: post có mấy ý chính, muốn mấy ảnh (3 hay 4). Mỗi ảnh 1 ý, sinh đủ bộ prompt cùng lúc:
|
|
64
82
|
|
|
65
|
-
|
|
83
|
+
- Tỷ lệ: cùng 1 tỷ lệ cho cả bộ — 1:1 cho bộ 4 ảnh (Facebook xếp lưới 2x2 đẹp), 4:5 hoặc 1:1 cho bộ 3 ảnh
|
|
84
|
+
- Ảnh 1 là ảnh "mở" — nêu ý lớn nhất, vì đây là ảnh hiện to nhất trên feed
|
|
85
|
+
- Các ảnh sau mỗi ảnh 1 ý phụ, cùng bố cục với ảnh 1
|
|
86
|
+
- Ghi rõ yếu tố lặp cố định của bộ (màu nền, vị trí tiêu đề...) trong từng prompt
|
|
87
|
+
|
|
88
|
+
Lưu thành `images/album-1.png`, `album-2.png`... theo đúng thứ tự đăng.
|
|
89
|
+
|
|
90
|
+
## Flow: `carousel` — Bộ ảnh lật trang
|
|
91
|
+
|
|
92
|
+
Dùng cho nội dung dạng danh sách/các bước/so sánh, đăng Facebook hoặc làm carousel tái dùng đa kênh. Hỏi nhanh: nội dung chia được thành mấy phần (khuyến nghị 5-10 trang). Sinh đủ bộ prompt cùng lúc:
|
|
93
|
+
|
|
94
|
+
- Tỷ lệ: 1:1 (1080x1080) cho toàn bộ
|
|
95
|
+
- Trang 1 — hook: nêu đúng vấn đề/lời hứa của cả bộ, chữ to, ít chi tiết (áp nguyên tắc câu mở của `agent-title` subcommand `fbpost`: chuyện thật, không giật tít)
|
|
96
|
+
- Trang giữa — mỗi trang đúng 1 ý, đánh số thứ tự rõ trên ảnh (1/7, 2/7...)
|
|
97
|
+
- Trang cuối — chốt lại + bước tiếp theo nhẹ nhàng, không CTA ép mua (theo đúng rule `agent-fbpost`)
|
|
98
|
+
- Cả bộ dùng chung 1 template bố cục: vị trí số trang, vị trí tiêu đề, màu nền lặp lại y hệt
|
|
99
|
+
|
|
100
|
+
Lưu thành `images/carousel-1.png` → `carousel-n.png` theo thứ tự trang.
|
|
101
|
+
|
|
102
|
+
## Flow: `thumb` — Thumbnail/ảnh đại diện bài website
|
|
66
103
|
|
|
67
104
|
```text
|
|
68
|
-
|
|
105
|
+
Sinh prompt ảnh đại diện cho bài viết chủ đề: [chủ đề]
|
|
69
106
|
|
|
70
|
-
|
|
107
|
+
Yêu cầu trong prompt:
|
|
108
|
+
- Tỷ lệ 1200x628 (chuẩn featured image/og:image của hầu hết nền tảng blog)
|
|
109
|
+
- Không nhồi quá nhiều chi tiết, giữ 1 điểm nhấn chính liên quan chủ đề
|
|
110
|
+
- Nếu định đè tiêu đề bài lên ảnh: chừa vùng trống bên trái hoặc giữa
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Lưu thành `images/featured.png` trong thư mục bài viết. Đây là ảnh đại diện riêng — `agent-platform` sẽ gán ảnh này vào field ảnh đại diện của nền tảng (featured_media/featured_image/coverImage...) khi đăng, **không chèn ảnh này vào đầu nội dung body**.
|
|
71
114
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
115
|
+
## Flow: `quote` — Ảnh trích dẫn
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
Sinh prompt ảnh quote card với nội dung: "[câu quote]"
|
|
119
|
+
|
|
120
|
+
Yêu cầu trong prompt: chữ đọc rõ, bố cục để trống khoảng an toàn cho
|
|
121
|
+
chữ, không để chi tiết hình ảnh đè lên vùng chữ. Tỷ lệ 1:1.
|
|
75
122
|
```
|
|
76
123
|
|
|
77
|
-
Lưu
|
|
124
|
+
Lưu ý: nhiều tool AI vẽ chữ tiếng Việt bị lỗi dấu. Nếu tool đang dùng vẽ chữ xấu, sinh prompt ảnh nền không chữ (chừa vùng trống), rồi tự đè chữ bằng Canva — prompt ghi rõ "để trống vùng giữa cho chữ".
|
|
125
|
+
|
|
126
|
+
Lưu thành `images/quote-1.png` (đánh số tiếp nếu bài có nhiều quote).
|
|
78
127
|
|
|
79
128
|
## Flow: `minh-hoa` — Ảnh minh hoạ trong bài
|
|
80
129
|
|
|
81
130
|
```text
|
|
82
|
-
|
|
131
|
+
Sinh prompt ảnh minh hoạ cho đoạn: [mô tả cảnh/ý cần minh hoạ]
|
|
132
|
+
|
|
133
|
+
Yêu cầu trong prompt: đúng 1 ý chính, không cố nhồi nhiều chi tiết
|
|
134
|
+
cùng lúc, giữ đúng bảng màu và phong cách trong Style Token.
|
|
135
|
+
Tỷ lệ 16:9 hoặc 3:2 (nằm ngang, vừa khung nội dung bài viết).
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Lưu vào `images/` với tên mô tả rõ vị trí dùng (ví dụ `minh-hoa-buoc-2.png`).
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Subcommand: `tim` — Tìm lại ảnh đã tạo
|
|
143
|
+
|
|
144
|
+
Trước khi tạo ảnh mới, tìm trong kho ảnh của các bài cũ — ảnh phù hợp có thể đã có sẵn, tái dùng vừa nhanh vừa tăng nhất quán:
|
|
145
|
+
|
|
146
|
+
1. Liệt kê ảnh trong `noi-dung/*/{slug}/images/` của tất cả stage (ưu tiên `5-published/` — ảnh đã dùng thật)
|
|
147
|
+
2. Đối chiếu tên file (đặt theo quy ước mô tả nội dung nên đọc tên là biết ảnh gì) với mô tả ảnh đang cần
|
|
148
|
+
3. Trả về danh sách ảnh khớp kèm đường dẫn + bài đang dùng ảnh đó, để user mở xem và quyết định
|
|
149
|
+
4. Nếu tái dùng: copy ảnh sang `images/` của bài mới, giữ nguyên tên hoặc đổi theo vị trí dùng mới — không tham chiếu chéo sang thư mục bài khác, vì thư mục bài sẽ di chuyển qua các stage
|
|
150
|
+
|
|
151
|
+
Nếu không có ảnh nào khớp, chuyển sang flow tạo mới phù hợp (hoặc `stock`).
|
|
152
|
+
|
|
153
|
+
## Subcommand: `stock` — Gợi ý ảnh stock
|
|
154
|
+
|
|
155
|
+
Dùng khi cần ảnh đời thực (văn phòng, bàn tay gõ phím, quán cà phê...) mà ảnh AI dễ bị giả — ảnh stock thật sẽ tự nhiên hơn:
|
|
156
|
+
|
|
157
|
+
```text
|
|
158
|
+
Chủ đề/đoạn bài cần ảnh: [mô tả]
|
|
83
159
|
|
|
84
|
-
|
|
160
|
+
Hãy gợi ý 3-5 từ khoá tìm kiếm bằng tiếng Anh (stock site tìm tiếng Anh
|
|
161
|
+
tốt hơn hẳn tiếng Việt), kèm link tìm thẳng:
|
|
162
|
+
- Unsplash: https://unsplash.com/s/photos/[tu-khoa]
|
|
163
|
+
- Pexels: https://www.pexels.com/search/[tu khoa]/
|
|
85
164
|
|
|
86
|
-
|
|
87
|
-
|
|
165
|
+
Ưu tiên từ khoá cụ thể ("laptop coffee shop morning") hơn từ khoá
|
|
166
|
+
chung chung ("business").
|
|
88
167
|
```
|
|
89
168
|
|
|
169
|
+
Lưu ý khi dùng stock: Unsplash/Pexels dùng miễn phí kể cả mục đích thương mại, nhưng vẫn kiểm tra license từng ảnh trước khi dùng. Chọn ảnh có tông màu gần với bảng màu trong Style Token để không lệch khỏi nhận diện chung. Ảnh tải về cũng lưu vào `images/` của bài viết theo đúng quy ước đặt tên.
|
|
170
|
+
|
|
90
171
|
---
|
|
91
172
|
|
|
173
|
+
## Quy ước đặt tên file ảnh
|
|
174
|
+
|
|
175
|
+
Mọi ảnh (AI tạo, stock, tự chụp) đều lưu vào `images/` trong thư mục bài viết hiện tại (`noi-dung/{stage}/{slug}/images/`) — xem quy ước ở mục "Quy ước thư mục Kanban" trong file này:
|
|
176
|
+
|
|
177
|
+
| Dạng ảnh | Tên file |
|
|
178
|
+
|---|---|
|
|
179
|
+
| Ảnh đại diện bài website | `featured.png` (bắt buộc đúng tên — `agent-platform` nhận theo tên này) |
|
|
180
|
+
| Ảnh đơn Facebook | `fb-1.png` |
|
|
181
|
+
| Album Facebook | `album-1.png`, `album-2.png`... (theo thứ tự đăng) |
|
|
182
|
+
| Carousel | `carousel-1.png` → `carousel-n.png` (theo thứ tự trang) |
|
|
183
|
+
| Quote card | `quote-1.png`, `quote-2.png`... |
|
|
184
|
+
| Minh hoạ trong bài | tên mô tả vị trí, ví dụ `minh-hoa-buoc-2.png` |
|
|
185
|
+
|
|
92
186
|
## Nguyên tắc giữ nhất quán
|
|
93
187
|
|
|
94
|
-
- Lưu mọi ảnh tạo ra vào `images/` trong thư mục bài viết hiện tại (`noi-dung/{stage}/{slug}/images/`) — ảnh đại diện luôn đặt tên `featured.png` (để `agent-platform` nhận đúng và gán vào field ảnh đại diện thay vì chèn vào body), các ảnh khác đặt tên mô tả rõ vị trí dùng (ví dụ `quote-1.png`). Xem quy ước ở `agents/README.md` mục "Cấu trúc thư mục nội dung — quản lý kiểu Kanban"
|
|
95
188
|
- Luôn dán nguyên văn Style Token vào mọi prompt, không diễn giải lại bằng từ khác mỗi lần
|
|
96
189
|
- Không đổi từ đồng nghĩa khi mô tả cùng một chi tiết (màu, chất liệu, phong cách)
|
|
190
|
+
- Bộ nhiều ảnh (album, carousel) phải sinh toàn bộ prompt trong 1 lần, dùng chung template bố cục — không tạo lắt nhắt từng ảnh vào thời điểm khác nhau
|
|
97
191
|
- Nếu có nhân vật/mascot cố định, giữ 1 ảnh tham chiếu gốc và dùng lại cho mọi ảnh sau — không mô tả lại nhân vật bằng lời mỗi lần
|
|
98
192
|
- Kiểm tra ảnh ra có đúng bảng màu và cảm giác đã chốt ở Style Token không trước khi dùng
|
|
99
193
|
- Nếu 1 prompt không ra đúng phong cách, sửa lại đúng câu chữ trong Style Token thay vì viết prompt hoàn toàn mới
|
|
194
|
+
- Tìm trước, tạo sau — chạy `tim` trước khi tạo ảnh mới cùng chủ đề
|
|
195
|
+
|
|
196
|
+
## Quy ước thư mục Kanban
|
|
197
|
+
|
|
198
|
+
Mỗi bài viết (blog + fbpost + `images/`) là 1 thư mục `{slug}/` nằm trong 1 trong 5 stage của `noi-dung/`: `1-ideas → 2-drafting → 3-review → 4-approved → 5-published`. Chuyển stage = di chuyển cả thư mục sang stage kế, không cần thêm field trạng thái. `{slug}` viết thường, không dấu, nối bằng `-`. Bài đơn giản chỉ 1 file để thẳng `.md` trong thư mục stage, không bắt buộc gói thư mục. Ảnh của bài luôn nằm trong `images/` của chính thư mục bài đó.
|
|
100
199
|
|
|
101
200
|
## Files
|
|
102
201
|
|
|
103
202
|
```
|
|
104
203
|
agent-image/
|
|
105
|
-
└── SKILL.md — router + setup Style Token +
|
|
204
|
+
└── SKILL.md — router + setup Style Token + 6 flow theo dạng ảnh + tim/stock (file này)
|
|
106
205
|
```
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-onboarding
|
|
3
|
-
description: "Khai thác context dự án và giọng văn cá nhân qua hội thoại hoặc phân tích bài viết mẫu, rồi tự tổng hợp thành CLAUDE.md hoàn chỉnh. Chạy đầu tiên, trước mọi agent khác trong bộ Showme Studio."
|
|
4
|
-
argument-hint: "[(empty) để bắt đầu hội thoại, hoặc subcommand: samples | interview | summary]"
|
|
5
|
-
version: "1.
|
|
3
|
+
description: "Khai thác context dự án và giọng văn cá nhân qua hội thoại hoặc phân tích bài viết mẫu, rồi tự tổng hợp thành CLAUDE.md hoàn chỉnh. Chạy đầu tiên, trước mọi agent khác trong bộ Showme Studio. Subcommand update: học lại từ bài đã đăng để văn phong ngày càng giống bạn hơn."
|
|
4
|
+
argument-hint: "[(empty) để bắt đầu hội thoại, hoặc subcommand: samples | interview | summary | update]"
|
|
5
|
+
version: "1.1.0"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# /agent-onboarding — Dựng CLAUDE.md Từ Context Thật
|
|
@@ -19,6 +19,7 @@ Nền tảng: phân biệt **Voice** và **Tone** (Mailchimp Content Style Guide
|
|
|
19
19
|
| `samples` | Chỉ chạy bước phân tích bài viết mẫu để rút Voice Profile |
|
|
20
20
|
| `interview` | Chỉ chạy bước phỏng vấn khi chưa có bài viết mẫu nào |
|
|
21
21
|
| `summary` | Tổng hợp câu trả lời đã có (từ các bước trước) thành CLAUDE.md hoàn chỉnh |
|
|
22
|
+
| `update [slug]` | Học lại từ bài đã đăng — cập nhật Voice Profile và "Lỗi AI cần tránh" trong CLAUDE.md |
|
|
22
23
|
|
|
23
24
|
---
|
|
24
25
|
|
|
@@ -121,6 +122,17 @@ CLAUDE.md hoàn chỉnh theo đúng format:
|
|
|
121
122
|
## Điều tôi không muốn
|
|
122
123
|
[từ Bước 2]
|
|
123
124
|
|
|
125
|
+
## Lỗi AI cần tránh
|
|
126
|
+
[Danh sách lỗi AI viết hay mắc — cập nhật dần mỗi khi bạn sửa bài.
|
|
127
|
+
Khởi điểm mặc định:]
|
|
128
|
+
- không dùng dấu phẩy trước "và" (viết ", và" là khuôn tiếng Anh,
|
|
129
|
+
tiếng Việt bỏ dấu phẩy hoặc tách câu)
|
|
130
|
+
- không chen gạch ngang "-" giữa câu trong nội dung, thay bằng dấu
|
|
131
|
+
phẩy, dấu hai chấm, hoặc viết lại câu
|
|
132
|
+
- không dùng gạch ngang dài (—)
|
|
133
|
+
- không dùng khuôn "không phải X, mà là Y"
|
|
134
|
+
- không viết hoa sau dấu hai chấm
|
|
135
|
+
|
|
124
136
|
## Bối cảnh đang làm
|
|
125
137
|
[từ Bước 1]
|
|
126
138
|
```
|
|
@@ -129,6 +141,31 @@ Lưu file này vào thư mục làm việc, tên `CLAUDE.md`. Từ phiên sau, m
|
|
|
129
141
|
|
|
130
142
|
---
|
|
131
143
|
|
|
144
|
+
## Subcommand: `update` — Học lại từ bài đã đăng
|
|
145
|
+
|
|
146
|
+
CLAUDE.md không phải file viết 1 lần rồi để đó — mỗi bài đã chốt và đăng thật là chất liệu mới để văn phong chính xác hơn. `agent-platform` gợi ý chạy bước này ngay sau mỗi lần đăng thành công, hoặc tự chạy bất cứ lúc nào:
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
Đọc bài đã chốt tại noi-dung/5-published/[slug]/blog.md (bản đã qua
|
|
150
|
+
tay tôi biên tập thật, không phải bản nháp AI).
|
|
151
|
+
|
|
152
|
+
So sánh với CLAUDE.md hiện tại và trả lời:
|
|
153
|
+
|
|
154
|
+
1. Cách viết trong bài này có điểm gì chưa được ghi trong Voice
|
|
155
|
+
Profile — cách mở bài, nhịp câu, từ hay dùng, cách đưa ví dụ,
|
|
156
|
+
cách kết bài?
|
|
157
|
+
2. Nhìn lịch sử biên tập (những gì tôi đã sửa so với khuôn AI thường
|
|
158
|
+
viết): có lỗi/khuôn nào lặp lại cần thêm vào mục "Lỗi AI cần tránh"?
|
|
159
|
+
3. Đề xuất bản cập nhật cho 2 mục "Cách tôi thường nói" và "Lỗi AI
|
|
160
|
+
cần tránh".
|
|
161
|
+
|
|
162
|
+
Chỉ đề xuất điểm đã lặp lại ở ít nhất 2 bài (1 lần xuất hiện có thể
|
|
163
|
+
là ngẫu nhiên, chưa phải giọng). Chỉ ghi vào CLAUDE.md sau khi tôi
|
|
164
|
+
xác nhận từng dòng — không tự ghi đè.
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Càng đăng nhiều bài, CLAUDE.md càng sát giọng thật — các agent viết sau tự động dùng bản mới nhất, không cần chỉnh gì thêm.
|
|
168
|
+
|
|
132
169
|
## Nguyên tắc
|
|
133
170
|
|
|
134
171
|
- Ưu tiên phân tích bài viết mẫu thật hơn để khách tự mô tả trừu tượng — con người thường không tự nhận ra giọng của chính mình
|
|
@@ -7,7 +7,7 @@ version: "1.3.0"
|
|
|
7
7
|
|
|
8
8
|
# /agent-platform — Đăng Bài Lên Nền Tảng
|
|
9
9
|
|
|
10
|
-
Agent lo bước cuối cùng: lấy nội dung đã duyệt trong `noi-dung/4-approved/{slug}/` (xem quy ước tại
|
|
10
|
+
Agent lo bước cuối cùng: lấy nội dung đã duyệt trong `noi-dung/4-approved/{slug}/` (xem quy ước tại mục "Quy ước thư mục Kanban" trong file này) và đăng lên nền tảng blog thật — WordPress, Emdash, hoặc Wix — thông qua MCP hoặc REST API đã kết nối trên máy. Agent này không viết nội dung, không tạo ảnh — chỉ đưa nội dung đã có (`blog.md` + `images/`) lên nền tảng, rồi chuyển cả thư mục bài viết sang `noi-dung/5-published/{slug}/` và ghi thêm 1 dòng vào `noi-dung/_context/published-index.md` sau khi đăng thật thành công. Bài Facebook (`fbpost.md`) đăng thủ công, ngoài phạm vi agent này.
|
|
11
11
|
|
|
12
12
|
Mỗi nền tảng có 1 file cấu hình riêng trong `_platforms/{nền tảng}.json` (site URL, cách xác thực, quy tắc format) — `connect` tạo file này 1 lần, các subcommand đăng bài sau đọc lại từ đó thay vì hỏi lại mỗi lần.
|
|
13
13
|
|
|
@@ -223,6 +223,13 @@ hình đọc từ _platforms/wordpress.json.
|
|
|
223
223
|
- Ảnh trong `blog.md` tham chiếu theo tên file cục bộ (ví dụ `images/quote-1.png`) — agent tự thay bằng URL thật sau khi upload, không cần user chèn lại thủ công trên nền tảng
|
|
224
224
|
- Ảnh đại diện (`images/featured.png`, do `agent-image` tạo riêng, khác các ảnh chèn trong bài) luôn gán vào đúng field ảnh đại diện của nền tảng (featured_media/featured_image/coverImage...), không chèn vào đầu nội dung body
|
|
225
225
|
- Chỉ di chuyển thư mục bài viết sang `5-published/` khi đã publish thật ra công chúng — nếu chỉ tạo draft, giữ nguyên thư mục ở `4-approved/`
|
|
226
|
+
- Ngay sau khi đăng thật thành công và chuyển thư mục sang `5-published/`, gợi ý user chạy `agent-onboarding update [slug]` để học văn phong từ bản đã chốt — mỗi bài đã đăng là chất liệu giúp CLAUDE.md sát giọng thật hơn (không tự chạy, chỉ gợi ý)
|
|
227
|
+
|
|
228
|
+
## Quy ước thư mục Kanban
|
|
229
|
+
|
|
230
|
+
Mỗi bài viết (blog + fbpost + `images/`) là 1 thư mục `{slug}/` nằm trong 1 trong 5 stage của `noi-dung/`: `1-ideas → 2-drafting → 3-review → 4-approved → 5-published`. Chuyển stage = di chuyển cả thư mục sang stage kế, không cần thêm field trạng thái. `{slug}` viết thường, không dấu, nối bằng `-`. Bài đơn giản chỉ 1 file để thẳng `.md` trong thư mục stage, không bắt buộc gói thư mục.
|
|
231
|
+
|
|
232
|
+
Hai file context dùng chung, đặt ngoài các stage: `_context/published-index.md` (mục lục bài đã đăng — agent này ghi thêm dòng sau mỗi lần đăng, `agent-seo` đọc để internal link) và `_platforms/{nền tảng}.json` (cấu hình nền tảng, không chứa token thật).
|
|
226
233
|
|
|
227
234
|
## Files
|
|
228
235
|
|
|
@@ -96,7 +96,7 @@ Không nhồi từ khoá lặp lại máy móc — ưu tiên đọc tự nhiên
|
|
|
96
96
|
đúng cấu trúc sau.
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
Khi bắt đầu ghi vào `blog.md`, di chuyển cả thư mục bài viết từ `noi-dung/1-ideas/{slug}/` sang `noi-dung/2-drafting/{slug}/` (nếu chưa ở đó) — xem quy ước tại
|
|
99
|
+
Khi bắt đầu ghi vào `blog.md`, di chuyển cả thư mục bài viết từ `noi-dung/1-ideas/{slug}/` sang `noi-dung/2-drafting/{slug}/` (nếu chưa ở đó) — xem quy ước tại mục "Quy ước thư mục Kanban" trong file này.
|
|
100
100
|
|
|
101
101
|
### Bước 4 — Checklist On-page + E-E-A-T
|
|
102
102
|
|
|
@@ -126,17 +126,27 @@ E-E-A-T:
|
|
|
126
126
|
không làm được) thay vì chỉ khen không?
|
|
127
127
|
```
|
|
128
128
|
|
|
129
|
-
Sau khi chốt bản cuối, lưu vào `blog.md` (cùng vị trí bài blog thường), rồi di chuyển cả thư mục bài viết sang `noi-dung/3-review/{slug}/` — xem quy ước ở
|
|
129
|
+
Sau khi chốt bản cuối, lưu vào `blog.md` (cùng vị trí bài blog thường), rồi di chuyển cả thư mục bài viết sang `noi-dung/3-review/{slug}/` — xem quy ước ở mục "Quy ước thư mục Kanban" trong file này.
|
|
130
130
|
|
|
131
131
|
---
|
|
132
132
|
|
|
133
|
+
## Lỗi AI cần tránh (đọc CLAUDE.md trước khi viết)
|
|
134
|
+
|
|
135
|
+
Trước khi viết (Bước 3) và ở checklist on-page (Bước 4), đọc mục **"Lỗi AI cần tránh"** trong `CLAUDE.md` cá nhân và rà bản nháp theo danh sách đó. Mặc định gồm: không dùng dấu phẩy trước "và" (", và"), không chen gạch ngang "-" giữa câu, không dùng gạch ngang dài (—), không dùng khuôn "không phải X, mà là Y", không viết hoa sau dấu hai chấm. Nếu user tự sửa một khuôn AI chưa có trong danh sách, hỏi có muốn thêm vào `CLAUDE.md` không — đồng ý thì thêm 1 dòng, không tự ghi khi chưa hỏi.
|
|
136
|
+
|
|
133
137
|
## Nguyên tắc
|
|
134
138
|
|
|
135
139
|
- Chủ đề chọn viết phải là chủ đề có trải nghiệm thật để trả lời — SEO không thay được chuyên môn thật
|
|
136
140
|
- Cấu trúc phục vụ người đọc trước, công cụ tìm kiếm sau — không hy sinh sự rõ ràng để nhồi từ khoá
|
|
137
|
-
- Áp cùng nguyên tắc giọng văn với agent-blog
|
|
141
|
+
- Áp cùng nguyên tắc giọng văn với agent-blog, xem mục "Lỗi AI cần tránh" ở trên, minh bạch giá nếu nhắc tới sản phẩm/dịch vụ
|
|
138
142
|
- Mỗi bài Cluster nên link về đúng 1 Pillar, tránh viết rời rạc không liên kết
|
|
139
143
|
|
|
144
|
+
## Quy ước thư mục Kanban
|
|
145
|
+
|
|
146
|
+
Mỗi bài viết (blog + fbpost + `images/`) là 1 thư mục `{slug}/` nằm trong 1 trong 5 stage của `noi-dung/`: `1-ideas → 2-drafting → 3-review → 4-approved → 5-published`. Chuyển stage = di chuyển cả thư mục sang stage kế, không cần thêm field trạng thái. `{slug}` viết thường, không dấu, nối bằng `-` (ví dụ `cach-dat-tieu-de-thu-hut`). Bài đơn giản chỉ 1 file để thẳng `.md` trong thư mục stage, không bắt buộc gói thư mục.
|
|
147
|
+
|
|
148
|
+
Hai file context dùng chung, đặt ngoài các stage: `_context/published-index.md` (mục lục bài đã đăng — `agent-platform` ghi, `agent-seo` đọc để internal link) và `_platforms/{nền tảng}.json` (cấu hình nền tảng, không chứa token thật).
|
|
149
|
+
|
|
140
150
|
## Files
|
|
141
151
|
|
|
142
152
|
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-write
|
|
3
|
+
description: "Nhạc trưởng của bộ Showme Studio — hỏi bạn muốn làm gì rồi tự dẫn qua đúng chuỗi agent (chất liệu → tiêu đề → viết → ảnh → đăng), không cần nhớ gõ từng agent theo thứ tự. Dùng khi muốn ra một bài hoàn chỉnh từ đầu đến cuối trong một mạch."
|
|
4
|
+
argument-hint: "[mô tả nhanh muốn làm gì, hoặc subcommand: blog | seo | facebook | combo]"
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /agent-write — Làm Một Bài Trọn Vẹn Trong Một Mạch
|
|
9
|
+
|
|
10
|
+
Bộ Showme Studio có nhiều agent, mỗi agent lo một khâu. Agent này là nhạc trưởng: bạn nói muốn làm gì, nó chọn đúng chuỗi và dẫn bạn đi từng bước, tự chuyển khâu, tự chuyển stage thư mục. Bạn không cần nhớ thứ tự gõ agent.
|
|
11
|
+
|
|
12
|
+
Nguyên tắc: agent-write **không thay các agent con** — nó chạy đúng quy trình của từng agent con theo thứ tự, dừng ở mỗi khâu để bạn xác nhận/sửa trước khi qua khâu sau. Người viết vẫn cầm lái, chỉ đỡ phải điều phối thủ công.
|
|
13
|
+
|
|
14
|
+
## Routing
|
|
15
|
+
|
|
16
|
+
| Input | Chuỗi chạy |
|
|
17
|
+
|---|---|
|
|
18
|
+
| _(empty)_ hoặc `help` | Hỏi bạn muốn làm loại gì, rồi chọn 1 trong 4 chuỗi dưới |
|
|
19
|
+
| `blog` hoặc mô tả bài chuyên môn | Chuỗi Blog |
|
|
20
|
+
| `seo` hoặc từ khoá muốn lên top | Chuỗi SEO |
|
|
21
|
+
| `facebook` hoặc nội dung post FB | Chuỗi Facebook |
|
|
22
|
+
| `combo` | Chuỗi đầy đủ: blog + Facebook + ảnh, đăng web |
|
|
23
|
+
|
|
24
|
+
Đầu mỗi chuỗi, kiểm tra có `CLAUDE.md` chưa — nếu chưa, dừng và bảo chạy `agent-onboarding` trước (không có nó, mọi bài sẽ sai giọng).
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Chuỗi Blog
|
|
29
|
+
|
|
30
|
+
1. **Chất liệu + người đọc** — chạy `agent-blog` bước 1-2 (khai thác trải nghiệm thật, làm rõ người đọc). Tạo thư mục bài trong `1-ideas/`.
|
|
31
|
+
2. **Thông điệp** — `agent-blog` bước 3 (chấm SUCCESS, chốt thông điệp trung tâm).
|
|
32
|
+
3. **Tiêu đề** — `agent-title` flow chính (sinh + chấm 4U). Chốt 1 tiêu đề.
|
|
33
|
+
4. **Dàn ý + viết + biên tập** — `agent-blog` bước 4-5. Chuyển thư mục `1-ideas → 2-drafting → 3-review`.
|
|
34
|
+
5. **Ảnh đại diện** — hỏi có cần ảnh không; nếu có, chạy `agent-image thumb`.
|
|
35
|
+
6. **Dừng ở review** — báo bạn đọc lại; khi ổn bạn tự chuyển sang `4-approved/`.
|
|
36
|
+
7. **Đăng** — khi bạn duyệt, chạy `agent-platform` đăng bài.
|
|
37
|
+
8. **Học lại giọng** — sau khi đăng thật, gợi ý `agent-onboarding update`.
|
|
38
|
+
|
|
39
|
+
## Chuỗi SEO
|
|
40
|
+
|
|
41
|
+
Như chuỗi Blog nhưng thay bước viết bằng `agent-seo` (Pillar/Cluster → nghiên cứu → viết theo E-E-A-T → checklist on-page), và dùng `agent-title seo` ở bước tiêu đề. Trước khi bắt đầu, đọc `_context/published-index.md` để không viết trùng chủ đề đã có và để gắn internal link.
|
|
42
|
+
|
|
43
|
+
## Chuỗi Facebook
|
|
44
|
+
|
|
45
|
+
1. **Xác định loại bài** — thông báo/bán mềm (`buildinpublic`) hay ra mắt (`launch`)?
|
|
46
|
+
2. **Câu mở** — `agent-title fbpost` (lọc hook giả).
|
|
47
|
+
3. **Viết** — `agent-fbpost` đúng flow đã chọn.
|
|
48
|
+
4. **Ảnh** — hỏi dạng ảnh: 1 ảnh (`agent-image fb1`), album (`album`), hay carousel (`carousel`).
|
|
49
|
+
5. **Rà cuối** — `agent-fbpost check` trước khi đăng.
|
|
50
|
+
6. Bài Facebook đăng thủ công (ngoài phạm vi `agent-platform`).
|
|
51
|
+
|
|
52
|
+
## Chuỗi Combo
|
|
53
|
+
|
|
54
|
+
Chạy chuỗi Blog đầy đủ, và ở bước 5 chèn thêm nhánh Facebook (câu mở + `agent-fbpost buildinpublic` + ảnh) để có 1 bài blog + 1 bài Facebook giới thiệu dùng chung thư mục `{slug}/`. Đăng blog qua `agent-platform`, Facebook đăng tay.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Nguyên tắc
|
|
59
|
+
|
|
60
|
+
- Dừng ở mỗi khâu để người viết xác nhận, không chạy tuốt một mạch rồi mới cho xem
|
|
61
|
+
- Mỗi khâu dùng đúng quy trình agent con, không tự chế bước mới
|
|
62
|
+
- Luôn đọc `CLAUDE.md` để giữ giọng; luôn di chuyển cả thư mục khi chuyển stage
|
|
63
|
+
- Không tự chuyển `3-review → 4-approved` (đó là bước bạn tự duyệt) và không tự publish khi chưa được xác nhận
|
|
64
|
+
- Cuối chuỗi, có thể chạy `agent-check` để soát bài mới có thiếu file/lệch gì không
|
|
65
|
+
|
|
66
|
+
## Files
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
agent-write/
|
|
70
|
+
└── SKILL.md — router + 4 chuỗi điều phối (file này)
|
|
71
|
+
```
|