Trade With Viet
Session Explainer
Internal use only — enter access password
setup

BEUP Social Schedule Audit + Skill

2026-06-13 · explainer.tradewithviet.com

Buffer audit, 7 conflict fixes, auto-guardrail skill — BEUP social scheduling

Audited all 3 BEUP Buffer channels (FB/IG/YT), found 7 scheduling conflicts including same-day double-posts and same-product FB+IG collisions on the same day. Fixed all conflicts, then built a reusable `beup-social-schedule` skill with 8 guardrails that auto-triggers whenever scheduling is requested.

StatusLiveScopeBEUP Space BufferDate2026-06-13ChannelsFB + IG + YT

6-layer thinking chainChuỗi tư duy 6 tầng

L1
Raw requestYêu cầu gốc
"cho tôi calendar content đã schedule, theo kênh, nội dung... tôi để ý thấy hình như có sự schedule trùng lắp về nội dung, check kĩ... trên facebook hay instagram gì đó"
L2
Reframe — what was really neededDiễn giải lại — nhu cầu thật
The real ask wasn't just 'show me the calendar' — it was 'catch conflicts I can't see at a glance, fix them, then build a system so I never have to manually police this again.' The underlying need: a guardrail that fires before any post goes into the queue, not a one-time cleanup.
L3
ConstraintsRàng buộc
- Buffer free plan: 10 scheduled posts max per channel — can't afford wasted slots on duplicates - Buffer's list_posts returns 116k+ chars of JSON — not human-readable without filtering - IG native scheduler and Buffer are separate systems — conflicts between them are invisible to Buffer - 'Same product' detection must be heuristic (keyword match in text/filename) since Buffer has no product tags - A proposed fix for Jun 18 FB clashed with an existing post that wasn't visible in the initial scan
L4
Options weighedCác lựa chọn cân nhắc
Option 1 (chosen): Audit manually this session, then encode all rules as a 5-phase SKILL.md — auto-triggers next time, no manual chase. Option 2: Write a Python audit script — runs as code, misses context-dependent judgment (e.g. 'is this the same product?'). Option 3: Manual-only — fast now, but repeats every week with no learning. Option 4: n8n automation — overkill for a 10-post free plan; adds infra dependency.
L5
Principle invokedNguyên tắc áp dụng
Guardrails beat cleanup: it's cheaper to block a bad schedule at creation time than to hunt conflicts after the queue is full.
L6
Pick + recognition signalLựa chọn + dấu hiệu nhận biết
Built a SKILL.md with 5 phases (fetch → audit → report → propose → apply). Registered in CLAUDE.md auto-routing so any phrase like 'lên lịch' or 'check lịch' triggers the skill before any Buffer call. Rejected: Python script (loses AI judgment for context-sensitive rules like 'same product on same day').

How the session unfolded

1
Fetch queue
Called list_posts for all 3 channels. Output: 116k chars — piped to /tmp, used grep to extract structure.
2
Build date×channel matrix
Mapped all scheduled posts by channel and date. Found 4 same-day conflicts and 2 same-product cross-platform collisions.
3
Round 1 fixes (5 posts)
Moved: YT Pricing Psychology Jun17→Jun18, IG FEFO Jun15→Jun19, YT SEO Command Jun15→Jun16, FB Print Farm Jun14→Jun15, FB FEFO Jun16→Jun20.
4
Round 2 strategic fixes (2 posts)
Caught that FB Print Farm + IG Print Farm were still same product same day (Jun15). Moved FB→Jun21. Separately moved FB Promotion→Jun22 (was same product as IG Promotion on Jun16).
5
Strategy proposal
Proposed weekly product model (1 hero/week), cross-platform sequencing (YT Day0 → IG Day3 → FB Day5), and 4-week product rotation calendar.
6
Build beup-social-schedule skill
Created SKILL.md with 5 phases and 8 guardrails. Registered in global CLAUDE.md auto-routing table.

Layered decision cardsCác quyết định theo tầng

Why move FB Print Farm to Jun 21, not Jun 18
L1After Round 1, FB Print Farm and IG Print Farm were both scheduled Jun 15 — same product, same day.
L2Same product on FB and IG on the same day dilutes reach: algorithms see two posts competing for the same audience, and users who follow both channels see the product twice.
L3- Jun 16 FB already had FEFO Reel (just moved there) - Jun 17 FB was empty... but a strategic buffer is better than the tightest fit - Jun 18 FB had an existing Promotion post (caught in second scan) - Jun 19, 20 had other content - Jun 21 was genuinely empty
L4Jun 16 — NO (FEFO already there). Jun 18 — NO (Promotion already there, missed in first scan). Jun 17 — possible but no buffer. Jun 21 — cleanest, gives 6-day stagger from IG.
L5Verify the whole board before proposing: a fix that creates a new conflict is worse than no fix.
L6Jun 21. The lesson: always re-scan the target slot before committing — the first scan is a snapshot, not a live view.
SKILL.md vs Python script for the guardrail system
L1Need a reusable guardrail that fires every time scheduling is requested.
L2Some guardrails (hashtag count, UTM present) are mechanical. Others (same product same day, audience fatigue) require contextual judgment — 'is Print Farm Fleet the same product as Filament Tracker?' is a semantic question, not a string match.
L3- Python can't call Buffer MCP tools directly - Python can't read the current conversation context for new-post drafts - SKILL.md runs inside Claude's reasoning, so it can combine tool calls with semantic judgment - Buffer MCP tools are only available inside Claude sessions
L4Python script — fast, deterministic, but blind to semantics. n8n workflow — infra overhead, can't do semantic checks. SKILL.md — runs in Claude, combines tool use + judgment, zero infra. Cron job — no judgment, runs blind.
L5Pick the layer where the logic naturally lives: mechanical rules go in code, judgment-dependent rules go in AI reasoning.
L6SKILL.md with 5 phases. Next time you have a guardrail that's partly semantic (not just string matching), encode it as a skill, not a script.
Auto-trigger phrases vs explicit /command only
L1Should the skill only fire on '/beup-social-schedule' or also on natural-language phrases?
L2Users don't always remember command names. 'lên lịch bài này' should be enough to trigger the audit — otherwise the guardrail is only as good as the user's memory.
L3- CLAUDE.md auto-routing table is checked at every turn - Too broad a trigger could fire on unrelated social mentions - The phrases are specific enough: 'lên lịch', 'thêm vào Buffer', 'check lịch' all imply scheduling intent
L4Explicit /command only — safe, but forces memorization. Broad keyword match — too noisy. Specific phrase list — balanced. Intent classification by LLM — overkill.
L5Guardrails only work if they're frictionless to trigger.
L6Registered 6 trigger phrases in CLAUDE.md. The skill fires proactively — user never has to remember the command name.

Artifact mapBản đồ tệp tạo ra

PathĐường dẫnWhatLà gìWho reads itAi dùng
~/.claude/skills/beup-social-schedule/SKILL.md5-phase scheduling guardrail skill — fetch, audit, report, propose, applyAuto-triggers on scheduling intent; runs Buffer MCP tools + semantic judgment
~/.claude/CLAUDE.mdAdded beup-social-schedule to skill auto-routing table (intent row + named-skill block)Read at every session start — ensures skill fires proactively
Buffer: 7 posts rescheduledYT×2, IG×1, FB×4 — all conflicts resolved, clean date×channel matrixLive in Buffer queue for BEUP Space org 69ad777bb07a9d805d785903

Check your understanding

Why was Jun 18 rejected as the new slot for FB Print Farm Fleet, even though it looked empty in the first scan?
The beup-social-schedule guardrail was built as a SKILL.md rather than a Python script. What's the main reason?
In your own words: what is the 'drip not blast' social cadence rule, and why does it matter for BEUP's Buffer free plan?
Mastery checklist — tick what you can explain unpromptedBảng tự đánh giá — tích những gì bạn tự giải thích được