Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Use when managing BangunAI Blog content, automating blog workflows, and writing MDX articles with BangunAI conventions. Supports Obsidian-like features (callouts, mermaid, LaTeX, wikilinks, backlinks, graph view).
Use when managing BangunAI Blog content, automating blog workflows, and writing MDX articles with BangunAI conventions. Supports Obsidian-like features (callouts, mermaid, LaTeX, wikilinks, backlinks, graph view).
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Homepage: React 18 + Vite + MDX + shadcn/ui Blog Root: /home/hades/BangunAI-Blog Content Root: /home/hades/BangunAI-Blog/src/content Tech Stack: TypeScript, Tailwind CSS, Mermaid 11, KaTeX, Shiki Skill ini menggabungkan: workflow custom untuk blog content (daily, fetch style, universal writer, logging, smart read) MDX authoring untuk React-based digital garden Obsidian-like features (callouts, mermaid diagrams, LaTeX math, wikilinks, backlinks) Auto-import system via import.meta.glob
Blog ini adalah Digital Garden & Knowledge Base dengan fitur terinspirasi dari Obsidian.
/home/hades/BangunAI-Blog/ โโโ src/ โ โโโ content/ โ โ โโโ writing/ # Blog posts (notes, essays) โ โ โโโ articles/ # Technical articles, tutorials โ โ โโโ read/ # Reading notes, link curation โ โ โโโ daily/ # Daily notes (tasks, logs) โ โ โโโ about.mdx # About page (single file) โ โ โโโ now.mdx # Now page (current activities) โ โ โโโ index.ts # Auto-import loader โ โโโ components/ # React components (40+ shadcn/ui) โ โ โโโ Callout.tsx # 14 tipe callouts โ โ โโโ MermaidDiagram.tsx # Mermaid renderer โ โ โโโ WikiLink.tsx # Internal linking โ โ โโโ Backlinks.tsx # Auto backlinks โ โ โโโ GraphView.tsx # Knowledge graph โ โ โโโ ui/ # shadcn/ui components โ โโโ pages/ # Route pages โ โโโ lib/ # Utilities โ โ โโโ date.ts # Date formatting โ โ โโโ utils.ts # Class utilities โ โโโ data/ โ โโโ posts.ts # Helper functions โ โโโ types.ts # TypeScript types โโโ public/ # Static assets โโโ skill/ # Agent skills (this!) โโโ package.json # Dependencies
TypeDescriptionLocationFeaturesWritingPersonal notes, essayssrc/content/writing/Filter by type (note/essay), category, tagsArticlesTechnical tutorials, guidessrc/content/articles/Grouped by yearReadCurated readings with notessrc/content/read/Source URL, snippet, tagsDailyDaily notes, tasks, logssrc/content/daily/Rollover tasks, timestampsAboutAbout page (MDX)src/content/about.mdxSingle static pageNowCurrent activitiessrc/content/now.mdxUpdated regularly
File src/content/index.ts auto-detect semua .mdx files via import.meta.glob: // NO MANUAL REGISTRATION NEEDED! const writingModules = import.meta.glob("./writing/*.mdx", { eager: true }); const articleModules = import.meta.glob("./articles/*.mdx", { eager: true }); const readModules = import.meta.glob("./read/*.mdx", { eager: true }); Benefits: Create file โ Auto-detected โ Available immediately
--- title: "Judul Artikel Yang Menarik" slug: judul-artikel-yang-menarik summary: "Ringkasan singkat 1-2 kalimat yang compelling." type: note # note | essay | article category: Tech # Tech | Refleksi | Produktivitas | Linux | Coding | Life tags: [react, typescript, tutorial] date: "2026-02-11T14:30:00" readingTime: 5 featured: false # (optional) untuk featured posts --- Required Fields: title โ Judul artikel (string) slug โ URL-friendly slug (kebab-case) summary โ Deskripsi singkat, compelling (1-2 kalimat) type โ Jenis konten: note โ Catatan pendek, quick takes essay โ Tulisan mendalam, eksploratif article โ Tutorial, panduan terstruktur category โ Kategori utama (pilih salah satu): Tech โ Teknologi, programming, tools Refleksi โ Personal reflection, thoughts Produktivitas โ Productivity, workflow Linux โ Linux, terminal, sysadmin Coding โ Coding practices, patterns Life โ Lifestyle, experiences tags โ Array tags (lowercase, kebab-case) date โ ISO timestamp dengan jam (YYYY-MM-DDTHH:mm:ss) readingTime โ Estimasi menit baca (~200 kata/menit) Optional Fields: featured โ Boolean, untuk featured posts di homepage
--- title: "Judul Artikel/Bacaan" slug: judul-artikel-bacaan snippet: "Quote atau snippet menarik dari artikel (1-2 kalimat)." source: "nama-situs.com" url: "https://link-ke-artikel.com" tags: [programming, career] date: "2026-02-11T18:00:00" --- ## Catatan Personal (Optional) Komentar atau catatan tentang bacaan ini... Required Fields: title โ Judul artikel (string) slug โ URL-friendly slug (kebab-case) snippet โ Quote/excerpt menarik dari artikel source โ Domain sumber (e.g., github.com, dev.to) url โ Link lengkap ke artikel asli tags โ Array tags (lowercase) date โ ISO timestamp Body Content: Optional, untuk catatan personal
--- title: "About" # atau "Now" --- Content langsung di sini... Mendukung semua fitur MDX (callouts, highlight, mermaid, dll). Minimal frontmatter: Hanya title
<Callout type="info" title="Judul Callout"> Isi callout di sini. </Callout> Available types: info โ Informasi umum (biru) tip โ Tips & tricks (hijau) warning โ Peringatan (kuning) danger โ Danger/error (merah) success โ Success message (hijau cerah) note โ Catatan (abu-abu) example โ Contoh (ungu) bug โ Bug report (merah) question โ Pertanyaan (biru muda) abstract โ Abstract/summary (indigo) important โ Penting (orange) caution โ Hati-hati (kuning gelap) quote โ Kutipan (krem) cite โ Sitasi (krem gelap) Obsidian Blockquote Syntax: > [!info] Judul Callout > Isi callout menggunakan sintaks Obsidian.
```mermaid graph TD A[Start] --> B{Decision} B -->|Yes| C[Action] B -->|No| D[End] ``` Supported diagrams (Mermaid v11): graph / flowchart โ Flowchart sequenceDiagram โ Sequence diagram pie โ Pie chart classDiagram โ UML class diagram stateDiagram-v2 โ UML state diagram erDiagram โ Entity relationship diagram gantt โ Gantt chart mindmap โ Mind map timeline โ Timeline Features: Auto-render dengan tema terang/gelap Unique ID per diagram (no conflicts) Responsive container
Inline: $E = mc^2$ Block: $$ \int_0^\infty e^{-x} dx = 1 $$ Powered by KaTeX 0.16 โ Fast math rendering
<WikiLink to="slug-artikel" label="Teks yang Ditampilkan" /> Features: Link mati (slug not found) โ strikethrough otomatis Auto-deteksi dari semua posts
<Highlight>teks yang di-highlight</Highlight> Atau gunakan HTML tag: <mark>teks yang di-highlight</mark>
<YouTube url="https://youtube.com/watch?v=VIDEO_ID" title="Judul Video" /> Features: Responsive iframe Auto-aspect ratio 16:9
```typescript function hello(name: string): string { return `Hello, ${name}!`; } ``` Features: Powered by Shiki with github-dark-dimmed theme Copy button included Multi-language support (TypeScript, Python, Bash, dll)
Auto-generated di setiap artikel detail. Menampilkan artikel lain yang me-link ke artikel ini.
Interactive force-directed graph menampilkan koneksi antar konten.
Sticky di desktop (right sidebar) Collapsible bottom bar di mobile Active heading tracking Progress bar
Dark Mode (Default): --background โ Navy gelap (#1A1A2E) --foreground โ Cream (#F5E6D3) --primary โ Gold/amber (aksen utama) --accent โ Warm gold (hover states) --card โ Navy lebih terang Light Mode: --background โ Cream hangat --foreground โ Navy gelap --primary โ Amber gelap --card โ Cream lebih gelap Usage: // โ Gunakan semantic tokens <div className="bg-background text-foreground"> <button className="bg-primary text-primary-foreground"> Klik </button> </div> // โ Jangan hardcode warna <div className="bg-[#1A1A2E] text-[#F5E6D3]">
FontUsageSpace GroteskHeadings & navigationSource Serif 4Body text artikel (serif)InterUI elements & labelsJetBrains MonoCode blocks & inline code
<div className="glass glass-hover rounded-xl p-6"> Konten dengan efek kaca transparan </div>
Fetch latest file untuk style reference. Supports all categories including special pages. # Input: CATEGORY (writing, articles, read, daily, about, now) BLOG_ROOT="/home/hades/BangunAI-Blog" case "$CATEGORY" in "daily") DIR="$BLOG_ROOT/src/content/daily" ;; "writing") DIR="$BLOG_ROOT/src/content/writing" ;; "articles") DIR="$BLOG_ROOT/src/content/articles" ;; "read") DIR="$BLOG_ROOT/src/content/read" ;; "about") cat "$BLOG_ROOT/src/content/about.mdx" exit 0 ;; "now") cat "$BLOG_ROOT/src/content/now.mdx" exit 0 ;; *) echo "โ Unknown category"; exit 1 ;; esac LAST_FILE=$(ls -t "$DIR"/*.mdx 2>/dev/null | head -n 1) if [ -f "$LAST_FILE" ]; then echo "๐ REFERENSI GAYA ($LAST_FILE):" head -n 50 "$LAST_FILE" else echo "โ Belum ada file di $CATEGORY" fi
Write new content dengan frontmatter lengkap. For Writing/Articles: CATEGORY="writing" # atau "articles" FILENAME="judul-artikel.mdx" BLOG_ROOT="/home/hades/BangunAI-Blog" cat > "$BLOG_ROOT/src/content/$CATEGORY/$FILENAME" <<'EOF' --- title: "Judul Artikel Baru" slug: judul-artikel-baru summary: "Ringkasan singkat tentang artikel ini yang menarik perhatian pembaca." type: note category: Tech tags: [react, typescript, tutorial] date: "2026-02-12T15:00:00" readingTime: 5 --- ## Introduction Paragraf pembuka yang compelling dan menarik perhatian. <Callout type="tip" title="Pro Tip"> Gunakan callouts untuk highlight informasi penting! </Callout> ## Section 1 ### Subsection A Content here dengan **bold** dan *italic*. ```typescript // Example code dengan syntax highlighting function example(): string { return "Hello World"; }
graph LR A[Input] --> B[Process] B --> C[Output]
Inline math: $x^2 + y^2 = z^2$ Block math: $$ \sum_{i=1}^{n} i = \frac{n(n+1)}{2} $$
Check out <WikiLink to="other-article" label="this related article" />.
Append timestamped log to today's daily note. # Input: CONTENT="..." TODAY=$(date +%Y-%m-%d) FILE="/home/hades/BangunAI-Blog/src/content/daily/$TODAY.mdx" if [ ! -f "$FILE" ]; then echo "โ Run 'daily' workflow first!" exit 1 fi echo "- $(date +%H:%M) $CONTENT" >> "$FILE" echo "โ Logged to: $FILE"
Smart search content by keyword. # Input: FILE="..." find "/home/hades/BangunAI-Blog/src/content" -name "*$FILE*.mdx" | head -n 1 | xargs -r cat
Update about.mdx with MDX content. # Input: CONTENT="..." FILE="/home/hades/BangunAI-Blog/src/content/about.mdx" cat > "$FILE" <<EOF --- title: "About" --- $CONTENT EOF echo "โ Updated: $FILE"
Update now.mdx with current activities. # Input: CONTENT="..." FILE="/home/hades/BangunAI-Blog/src/content/now.mdx" CURRENT_DATE=$(date +"%B %Y") cat > "$FILE" <<EOF --- title: "Now" --- ## Apa yang Sedang Saya Kerjakan *Terakhir diperbarui: $CURRENT_DATE* Halaman ini terinspirasi dari [nownownow.com](https://nownownow.com) โ tempat saya mencatat apa yang sedang saya fokuskan saat ini. --- $CONTENT --- > *Halaman ini adalah snapshot dari kehidupan saya saat ini. Bukan resume, bukan portofolio โ hanya update jujur tentang apa yang sedang saya kerjakan.* EOF echo "โ Updated: $FILE"
Verify content auto-import statistics. BLOG_ROOT="/home/hades/BangunAI-Blog" echo "๐ Content Statistics:" echo "" echo "Writing posts: $(ls -1 "$BLOG_ROOT/src/content/writing"/*.mdx 2>/dev/null | wc -l)" echo "Articles: $(ls -1 "$BLOG_ROOT/src/content/articles"/*.mdx 2>/dev/null | wc -l)" echo "Read items: $(ls -1 "$BLOG_ROOT/src/content/read"/*.mdx 2>/dev/null | wc -l)" echo "Daily notes: $(ls -1 "$BLOG_ROOT/src/content/daily"/*.mdx 2>/dev/null | wc -l)" echo "" echo "Special files:" echo "- about.mdx: $(test -f "$BLOG_ROOT/src/content/about.mdx" && echo "โ " || echo "โ")" echo "- now.mdx: $(test -f "$BLOG_ROOT/src/content/now.mdx" && echo "โ " || echo "โ")" echo "- index.ts: $(test -f "$BLOG_ROOT/src/content/index.ts" && echo "โ " || echo "โ")"
CategoryPathUse CaseType OptionsExampleswritingsrc/content/writing/Personal notes, essaysnote, essayReflections, quick takes, deep thoughtsarticlessrc/content/articles/Technical tutorials, guidesarticleHow-to guides, technical deep divesreadsrc/content/read/Reading notes, link curationN/A (special format)Curated articles, bookmarksdailysrc/content/daily/Daily notes, tasks, logsdailyTask tracking, daily logsaboutsrc/content/about.mdxAbout page (static)N/APersonal bio, site infonowsrc/content/now.mdxCurrent activitiesN/AWhat I'm doing now
Choose wisely untuk category field: Tech โ Teknologi, programming, tools, frameworks Refleksi โ Personal reflection, thoughts, philosophy Produktivitas โ Productivity tips, workflow, GTD Linux โ Linux, terminal, system administration Coding โ Coding practices, patterns, best practices Life โ Lifestyle, personal experiences, stories
DO: title: "Belajar React Hooks di 2026" slug: belajar-react-hooks-2026 type: note category: Tech tags: [react, hooks, javascript] date: "2026-02-12T15:30:00" DON'T: title: belajar-react-hooks # Missing quotes slug: Belajar React Hooks # Not kebab-case type: blog # Invalid type category: technology # Typo/wrong value tags: React, Hooks # Not array format date: "2026-02-12" # Missing time
DO: belajar-react-hooks-2026.mdx setup-neovim-lua.mdx refleksi-tahun-2025.mdx DON'T: Blog Post 1.mdx # Spaces, not descriptive temp.mdx # Non-descriptive NEW_POST.mdx # Uppercase, underscore
Recommended structure: --- frontmatter here --- ## Introduction (H2) Brief intro, hook the reader. <Callout type="info"> Context or prerequisite info. </Callout> ## Main Section 1 (H2) ### Subsection A (H3) Content... ### Subsection B (H3) Content... ## Main Section 2 (H2) ### Examples (H3) Code or examples... ## Conclusion (H2) Summary and takeaways.
DO: <Callout type="tip" title="Pro Tip"> Use semantic components for better UX. </Callout> <WikiLink to="related-article" label="Read more about this" /> DON'T: <div style="background: yellow; padding: 10px;"> Hardcoded styling instead of using Callout </div> <a href="/artikel/related-article">Read more</a> <!-- Should use WikiLink instead -->
ISO timestamp with time: date: "2026-02-12T15:30:00" # YYYY-MM-DDTHH:mm:ss Displayed as: Detail page: 11 Februari 2026, 14:30 Card list: 11 Feb ยท 14:30
# Count words (exclude frontmatter) WORD_COUNT=$(tail -n +$(grep -n "^---$" file.mdx | tail -1 | cut -d: -f1) file.mdx | wc -w) # Calculate reading time (200 words/minute) READING_TIME=$(( (WORD_COUNT + 199) / 200 )) # Add to frontmatter readingTime: $READING_TIME
Use lowercase Use kebab-case for multi-word tags Keep tags consistent across posts Prefer specific over generic tags Good tags: tags: [react-hooks, typescript, state-management] Bad tags: tags: [React Hooks, programming, stuff]
# Start dev server cd /home/hades/BangunAI-Blog bun run dev # Open http://localhost:8080
Fetch style reference: CATEGORY="writing" bash fetch_last.sh Create new file: cat > src/content/writing/new-post.mdx <<'EOF' --- title: "New Post" slug: new-post summary: "Brief summary" type: note category: Tech tags: [tag1, tag2] date: "$(date -Iseconds)" readingTime: 5 --- Content here... EOF Verify auto-import: # File otomatis terdeteksi via import.meta.glob # Check di browser: http://localhost:8080/writing Build & deploy: bun run build bun run preview
# Add new content git add src/content/writing/new-post.mdx git commit -m "Add: new blog post about X" # Rename (preserve history) git mv src/content/writing/old.mdx src/content/writing/new.mdx git commit -m "Rename: old post to new name" # Delete (tracked) git rm src/content/writing/unwanted.mdx git commit -m "Remove: unwanted post" # Push git push origin main
Check: Valid frontmatter? (all required fields present) Valid MDX syntax? (no unclosed tags) File in correct directory? Dev server restarted?
Check: Valid Mermaid syntax? Diagram type supported? Check browser console for errors
Reason: Target slug not found Fix: Verify target slug exists Check spelling Ensure target file has valid frontmatter
Check: Valid LaTeX syntax? Escaped special characters? Using $ or $$ delimiters correctly?
Writing/Articles: --- title: "Title" slug: slug summary: "Summary" type: note|essay|article category: Tech|Refleksi|Produktivitas|Linux|Coding|Life tags: [tag1, tag2] date: "YYYY-MM-DDTHH:mm:ss" readingTime: number --- Read: --- title: "Title" slug: slug snippet: "Snippet" source: "domain.com" url: "https://..." tags: [tag1, tag2] date: "YYYY-MM-DDTHH:mm:ss" --- Special Pages: --- title: "About|Now" ---
ComponentUsageCallout<Callout type="info" title="...">...</Callout>Mermaid```mermaid ... ```LaTeX$...$ or $$...$$WikiLink<WikiLink to="slug" label="..." />Highlight<Highlight>...</Highlight>YouTube<YouTube url="..." title="..." />
TypeLocationWritingsrc/content/writing/*.mdxArticlessrc/content/articles/*.mdxReadsrc/content/read/*.mdxDailysrc/content/daily/*.mdxAboutsrc/content/about.mdxNowsrc/content/now.mdxIndexsrc/content/index.ts
Skill ini fully integrated dengan BangunAI Blog: โ 8 workflows ready to use โ 3 frontmatter formats supported โ Complete MDX components reference โ Obsidian-like features documented โ Design system guidelines โ Best practices & troubleshooting โ Auto-import via import.meta.glob โ Git-based operations โ Production-ready Homepage: https://github.com/dwirx/BangunAI-Blog
Writing, remixing, publishing, visual generation, and marketing content production.
Largest current source with strong distribution and engagement signals.