Kandungan
Isi sebulan kandungan dengan soalan audiens anda
Petakan tema dengan Chat, cari soalan audiens di X, ambil sudut sebenar dari transkrip video dan susun kalendar empat minggu yang setiap baris menyebut buktinya.
Salin prompt
Ganti medan dalam kurungan siku lalu tampal ke Claude Code, Codex atau AI dengan akses terminal. Ia memasang skill Felo, bertanya sebelum kredit digunakan dan menjalankan aliran kerja.
Rancang empat minggu kandungan tentang [topik] untuk [audiens]. Saluran: [saluran]. Format dibenarkan: [senarai]. Hari siaran: [hari]. Bahasa: [bahasa]. Video rujukan (pilihan): [URL YouTube atau ID video]. Tempoh soalan audiens: [90] hari lepas. Hasilkan jadual kalendar Markdown dengan satu baris setiap idea: | Tarikh | Format | Tajuk kerja | Sudut | Bukti | - Tarikh: empat minggu akan datang, pada hari dibenarkan. - Format: salah satu format dibenarkan. - Tajuk kerja: nama kandungan. - Sudut: janji kepada audiens dalam satu ayat. - Bukti: soalan, siaran, halaman atau cap masa video yang membenarkan idea. Selepas jadual, tambah: 1. Tiga tema asas bulan itu. 2. Idea mana datang daripada soalan audiens, mana daripada video rujukan dan mana hipotesis anda sendiri. 3. Apa yang perlu dikaji sebelum menulis setiap kandungan. 4. Senarai sumber dengan pautan dan tarikh. Peraturan: - Ini idea, bukan jaminan. Jangan janji jangkauan, klik, kedudukan atau pertumbuhan. - Jangan reka trend, volum carian, angka penglibatan atau petikan. - Kaitkan setiap soalan audiens dengan siaran atau halaman bertarikh. Jika bukti nipis, label idea sebagai hipotesis. - Gunakan video rujukan hanya untuk sudut yang benar-benar diliputi; petik pendek dengan cap masa. - Sebelum menggunakan kredit, tunjukkan carian dan pengekstrakan yang dirancang dan tunggu kelulusan saya. - Jangan jadualkan siaran, buat draf dalam CMS atau terbitkan apa-apa. - Tulis hasil ke ./content-calendar.md dan ringkaskan dalam chat.
Salinan turut menyertakan langkah pemasangan dan peraturan keselamatan.
Apa yang anda dapat
Contoh output daripada satu larian. Bukan penjanaan langsung.
Kalendar kandungan — bulan contoh
Tema
- Masa pembersihan ialah kos tersembunyi.
- Ruang kaunter menentukan pembelian.
- Membeli untuk diri sendiri vs hadiah.
Kalendar
| Tarikh | Format | Tajuk kerja | Sudut | Bukti |
|---|---|---|---|---|
| 2026-11-02 | Carousel | Ujian pembersihan 5 minit | Tunjukkan langkah pembersihan yang tiada siapa rakam | @example_home, 2026-10-24 |
| 2026-11-04 | Video pendek | Ruang kaunter, diukur | Bandingkan jejak di kaunter sebenar | Video rujukan — 42 saat |
| 2026-11-09 | Surat berita | Mengapa meterai rosak | Jelaskan mod kegagalan yang dilaporkan pembeli | @example_buyer, 2026-10-19 |
Dari mana idea datang
Dua baris daripada soalan audiens bertarikh dan satu daripada video rujukan; baris hipotesis akan dilabel.
Apa untuk dikaji dahulu
Kadar pemulangan dan polisi penggantian meterai — kedua-duanya tidak diliputi sumber di atas.
Sumber
- https://example.com/category-guide — 2026-10-12
- https://x.com/example_home/status/... — 2026-10-24
Panggilan sebenar
Untuk pembangun: aliran kerja sama sebagai kod, mengikut urutan pelaksanaan.
Tunjukkan panggilan API sebenar
Petakan tema dengan Chat
Tanya Chat subtema yang paling dicari audiens dan simpan sumber.
calendar.ts const BASE = "https://openapi.felo.ai"; const headers = { Authorization: `Bearer ${process.env.FELO_API_KEY}`, "Content-Type": "application/json", }; async function felo<T>(path: string, body?: unknown): Promise<T> { const res = await fetch(`${BASE}${path}`, { method: body ? "POST" : "GET", headers, body: body ? JSON.stringify(body) : undefined, }); if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`); return res.json() as Promise<T>; } type ChatData = { data: { answer: string; resources: { link: string; title: string; snippet: string }[]; }; }; const topic = "portable espresso makers"; const audience = "home espresso beginners"; const themes = await felo<ChatData>("/v2/chat", { query: `Themes, recurring questions, and content gaps around ${topic} for ${audience}`, }); const sources = themes.data.resources.slice(0, 5);Contoh output
{ "answer": "Beginners ask about cleanup, counter space, and grind size …", "sources": [ { "link": "https://example.com/guide", "title": "…", "snippet": "…" } ] }Cari soalan audiens di X
Cari soalan berkaitan tema di X dalam 90 hari, simpan akaun dan tarikh.
calendar.ts type XData = { data: { tweets: { content: string; author: { username: string }; created_at: string; url: string; }[]; }; }; const since = Math.floor((Date.now() - 90 * 24 * 60 * 60 * 1000) / 1000); const questions = await felo<XData>("/v2/x/tweet/search", { query: `"${topic}" (recommend OR beginner OR how)`, limit: 50, since_time: since, }); const asked = questions.data.tweets;Contoh output
{ "data": { "tweets": [ { "content": "How do you clean one of these without taking it apart?", "author": { "username": "example_home" }, "created_at": "2026-10-24T11:30:00Z", "url": "https://x.com/example_home/status/..." } ] } }Ambil transkrip rujukan
Gunakan YouTube Subtitling untuk transkrip dan cari sudut sebenar yang boleh diguna semula.
calendar.ts type SubtitleData = { data: { title: string; contents: { text: string; start: number; duration: number }[]; }; }; const videoCode = "dQw4w9WgXcQ"; // replace with your reference video id const video = await felo<SubtitleData>( `/v2/youtube/subtitling?video_code=${videoCode}&language=en&with_time=true`, );Contoh output
{ "title": "Example Video Title", "contents": [ { "text": "Subtitle text", "start": 42.3, "duration": 8.1 } ] }Susun kalendar empat minggu
Buat jadual Markdown dengan tarikh, format, tajuk kerja, sudut dan bukti.
calendar.ts const start = new Date(); const day = (offset: number) => { const date = new Date(start); date.setDate(date.getDate() + offset); return date.toISOString().slice(0, 10); }; type Idea = { dayOffset: number; format: string; title: string; angle: string; evidence: string; }; // Rows come from the themes, the dated questions, and the transcript. const anchor = video.data.contents[0]; const ideas: Idea[] = [ { dayOffset: 1, format: "carousel", title: "The 5-minute cleanup test", angle: "Show the cleanup step nobody films", evidence: asked[0]?.url ?? "hypothesis", }, { dayOffset: 3, format: "short video", title: "Counter space, measured", angle: "Compare footprints on one real counter", evidence: anchor ? `${video.data.title} — ${Math.round(anchor.start)}s` : video.data.title, }, ]; const calendar = [ "| Date | Format | Working title | Angle | Evidence |", "| --- | --- | --- | --- | --- |", ...ideas.map( (idea) => `| ${day(idea.dayOffset)} | ${idea.format} | ${idea.title} | ${idea.angle} | ${idea.evidence} |`, ), ].join("\n"); console.log(calendar);Contoh output
| Date | Format | Working title | Angle | Evidence | | --- | --- | --- | --- | --- | | 2026-11-02 | carousel | The 5-minute cleanup test | Show the cleanup step nobody films | https://x.com/example_home/status/... | | 2026-11-04 | short video | Counter space, measured | Compare footprints on one real counter | Example Video Title — 42s |
Simpan dalam LiveDoc
Simpan kalendar dan sumber dalam LiveDoc untuk semakan akhir bulan.
calendar.ts type LiveDocData = { data: { short_id: string } }; const plan = await felo<LiveDocData>("/v2/livedocs", { name: `Content calendar: ${topic}`, description: "Monthly plan with themes, calendar rows, and evidence", }); await felo(`/v2/livedocs/${plan.data.short_id}/resources/urls`, { urls: sources.map((source) => ({ url: source.link, title: source.title })), }); await felo(`/v2/livedocs/${plan.data.short_id}/resources/doc`, { title: `Content calendar — ${day(0).slice(0, 7)}`, content: calendar, }); type Retrieved = { data: { title: string; content: string; score: number }[] }; const lastMonth = await felo<Retrieved>( `/v2/livedocs/${plan.data.short_id}/resources/retrieve`, { query: "what did we plan last month" }, ).then((res) => res.data.filter((hit) => hit.score >= 0.7));Contoh output
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
Termasuk
- Peta tema dari Chat
- Soalan audiens bertarikh di X
- Transkrip dan sudut video rujukan
- Kalendar kandungan empat minggu
- LiveDoc dengan pelan dan sumber
Apa yang tidak dilakukan
- Tidak meramal prestasi dan tidak menjamin trafik
- Tidak membaca analytics sejarah anda
- Tidak menulis post penuh dan tidak menerbitkan
- Tanpa video rujukan, langkah boleh dilangkau
- Kalendar ialah cadangan, bukan janji
Soalan
Dari mana ideanya?
Dari peta tema Chat, soalan sebenar audiens di X dan sudut video rujukan. Setiap item menyimpan pautan atau tarikh bukti.
Adakah ia tahu apa yang berkesan sebelum ini?
Tidak. Ia tidak membaca analytics; hasil sejarah anda tambah sendiri.
Adakah ia menulis post juga?
Tidak. Ia memberi kalendar dan sudut; penulisan oleh anda atau writing agent.
Tanpa video rujukan?
Langkau langkah itu; tema dan soalan X masih menampung kalendar.
Boleh jadualkan penerbitan?
Tidak. Ia membuat fail pelan; penjadualan di alat anda.
Berapa kos satu perancangan?
Chat, X Search dan transkrip video dibilkan mengikut penggunaan; kadar semasa di halaman harga dan prompt meminta kelulusan sebelum berbelanja.
Aliran kerja berkaitan
Tukar pertanyaan carian kepada brief kandungan SEO
Lihat halaman mana menjawab hari ini, baca sebagai Markdown, petakan soalan yang diliputi dan terlepas, lalu tulis brief yang penulis boleh jadikan rangka.
Buka aliran kerjaKandunganTerbitkan ringkasan berita AI harian yang benar-benar dibaca pasukan
Dapatkan ringkasan bersumber, tambah perbualan pengamal di X, ambil transkrip video, susun edisi Markdown dan arkibkan dalam LiveDoc.
Buka aliran kerjaKandunganTukar perbualan sosial kepada brief mendengar mingguan
Cari post X minggu ini tentang jenama dan pesaing, tambah konteks web bersumber, baca halaman di sebaliknya dan arkibkan setiap edisi supaya minggu berikut bermula dari yang diketahui.
Buka aliran kerjaSesuaikan
Resipi sama, disesuaikan dengan cara anda benar-benar menyampaikan.
Dua minggu sahaja
Ringkaskan empat minggu kepada dua untuk pasukan baru bermula.
Asingkan mengikut saluran
Buat lajur surat berita, X dan YouTube dengan tema sama dalam format berbeza.
Tambah pelancaran produk
Letakkan tarikh pelancaran sebagai baris tetap dan isi kandungan di sekelilingnya.
Teruskan
Halaman rujukan di sebalik resipi ini dan langkah seterusnya.