mirror of
https://github.com/tiennm99/blog.git
synced 2026-10-11 03:13:10 +00:00
Moves URL processing workflow from AGENTS.md into a dedicated skill at .agents/skills/add-post. Simplifies AGENTS.md to only contain project info and development server instructions. Creates symlink in .claude/skills/ for skill discovery.
6.5 KiB
6.5 KiB
name, description
| name | description |
|---|---|
| add-post | URL processing workflow for Hugo blog newsletter posts. Automatically processes URLs, extracts content, generates Vietnamese summaries, and creates/updates daily newsletter posts with proper formatting. |
Instructions
<description>This skill handles the complete workflow for adding newsletter posts to a Hugo blog. It processes URLs, extracts content, generates professional Vietnamese summaries, and manages daily newsletter files with proper numbering and formatting.</description>
Project Info
- Type: Hugo static site with Vietnamese tech content
- Theme: hugo-theme-stack
- Language: Vietnamese (with common English tech words)
- Timezone: Asia/Ho_Chi_Minh (UTC+7)
- Directory Structure:
content/post/YYYY/MM/DD/index.md
Workflow
Follow these steps when user provides URLs:
Step 1: Prepare URLs
For each URL:
- Clean: Remove tracking params (
utm_*,fbclid,gclid, etc.) - Validate: Check accessibility (HTTP 200)
- Check duplicate: Search exact URL in project files using Grep
- Classify:
- Article URL → Extract for main content
- Direct asset (
.png,.jpg,.pdf,.mp4, etc.) → Bonus section
- Skip if: Inaccessible, duplicate, or extraction fails
Step 2: Find Today's Post
- Get current date:
YYYY-MM-DD - Check path:
content/post/YYYY/MM/DD/index.md - If exists: Update this file
- If not exists: Create new file with incremented newsletter number
Step 3: Determine Newsletter Number
To find next newsletter number:
- Start from current date folder, search backwards:
- Current month folders (DD, DD-1, DD-2...)
- Previous months (MM-1, MM-2...)
- Previous years if needed (YYYY-1, YYYY-2...)
- Find most recent
index.mdwith "Newsletter #N" - Increment: N + 1
Step 4: Generate Content
For Article URLs - Extract and generate:
- Title: Original article title
- Summary: 1-2 paragraphs, professional Vietnamese
- Max 300 words
- Use common English tech terms only when no Vietnamese equivalent exists
- Brief intro to the topic
- Give overview for readers
- Key points (optional): 3-5 bullet points if relevant
For Asset URLs - Extract:
- Type: Image, video, PDF, etc.
- Title: File name or detected title
- Add to Bonus section by type
Step 5: Write Content
New Post Template:
---
title: "Newsletter #[number]"
date: YYYY-MM-DD
tags: ["AI-Assisted"]
categories: ["Newsletter"]
---
*Mời bạn thưởng thức Newsletter #[number].*
## [Article Title](clean_url)
[Vietnamese summary - professional, max 300 words]
**Điểm chính:** (optional)
- [Key point 1]
- [Key point 2]
Update Existing Post - Insert new articles before Bonus section:
[Existing articles...]
## [New Article Title](clean_url)
[New summary...]
### Bonus
**Images:**

Step 6: Format Bonus Section
Group assets by type with subheadings:
### Bonus
**Images:**

**Videos:**
[Video: title](url)
**Documents:**
[PDF: title](url)
Language Policy
PRIMARY LANGUAGE: Vietnamese (99%) SECONDARY LANGUAGE: English (1% - only for unavoidable technical terms)
English Terms Allowed (NO VIETNAMESE EQUIVALENT):
- API, GitHub, AI, Rust, Go, HTTP, JSON, SQL, CI/CD, Docker, Kubernetes
- Technology names: PostgreSQL, MongoDB, Redis, etc.
- Company names: Databricks, Snowflake, Google, Microsoft, etc.
- Product names: Neon, CrunchyData, etc.
- Acronyms with no direct translation: MCP, ETL, OLAP, etc.
TRANSLATE EVERYTHING TO VIETNAMESE:
- error handling → xử lý lỗi
- dependency → phụ thuộc
- performance → hiệu năng
- deployment → triển khai
- scalability → khả năng mở rộng
- database → cơ sở dữ liệu
- testing → kiểm thử
- framework → khung làm việc
- developer → nhà phát triển
- engineer → kỹ sư
- code → mã nguồn
- software → phần mềm
- application → ứng dụng
- algorithm → thuật toán
- architecture → kiến trúc
- feature → tính năng
- bug → lỗi
- security → bảo mật
- authentication → xác thực
- authorization → phân quyền
- integration → tích hợp
- interface → giao diện
- monitoring → giám sát
- optimization → tối ưu hóa
- server → máy chủ
- client → máy khách
Action Verbs (ALWAYS USE VIETNAMESE):
- use → sử dụng
- make sure → đảm bảo
- check → kiểm tra
- run → chạy
- build → xây dựng
- deploy → triển khai
- test → kiểm thử
- debug → gỡ lỗi
- monitor → giám sát
- analyze → phân tích
- optimize → tối ưu hóa
- configure → cấu hình
- install → cài đặt
- update → cập nhật
- create → tạo
- delete → xóa
- manage → quản lý
Content Requirements:
- Audience: Junior developers
- Tone: Professional, clear, accessible, natural Vietnamese
- Length: Max 300 words per summary
- Quality Check: Verify before saving that Vietnamese content is ≥ 99%
Error Handling
| Issue | Action |
|---|---|
| URL inaccessible | Skip, include in report |
| Duplicate URL found | Skip, include in report |
| Content extraction fails | Skip, treat as error |
| Directory not exist | Create directories |
| Summary too short | Accept (no minimum length) |
Final Report Format
After processing, provide:
✅ Newsletter Processing Complete
📄 File: content/post/YYYY/MM/DD/index.md
📊 Action: [Created new / Updated existing] Newsletter #[number]
✅ Processed: [count] URLs
- [count] articles added
- [count] assets added to Bonus
❌ Failed: [count] URLs
- [url]: [reason]
Best Practices
- Always verify file paths exist before writing
- Preserve existing content when updating
- Use exact URLs for duplicate checking
- Generate quality summaries using AI tools
- Handle errors gracefully and report clearly
- Group Bonus assets by type with subheadings
- Keep front matter minimal (tags added separately)
- Use relative paths for internal links
- Validate markdown before saving
- Process all URLs in one batch per request
Quality Checklist
- Valid Hugo front matter
- Title:
"Newsletter #[number]" - Date:
YYYY-MM-DDformat - Tags: Include
"AI-Assisted" - Clean URLs (no tracking params)
- Correct Vietnamese grammar
- Proper markdown syntax
- Articles before Bonus section
- Bonus assets grouped by type
- Vietnamese content ≥ 99%