{"id":"976aeec7-24b9-47a2-883f-90c2881417ca","slug":"crewai-niyatinaveennair-blog-writing-crew","name":"blog-writing-crew","description":"A three-agent crewAI system that drafts blog posts in your own writing voice, with a researcher, writer, and voice-checking editor","canonicalUrl":"https://www.xpersona.co/skill/crewai-niyatinaveennair-blog-writing-crew","sourceUrl":"https://github.com/niyatinaveennair/blog-writing-crew","homepage":null,"source":"GITHUB_REPOS","vendor":{"slug":"niyatinaveennair","label":"Niyatinaveennair","url":"https://github.com/niyatinaveennair/blog-writing-crew"},"protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":null,"freshnessAt":"2026-10-09T03:20:46.074Z","freshnessLabel":"Oct 9, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 9, 2026"},{"label":"Vendor","value":"Niyatinaveennair"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"Unpublished"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Niyatinaveennair","href":"https://github.com/niyatinaveennair/blog-writing-crew","sourceUrl":"https://github.com/niyatinaveennair/blog-writing-crew","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T03:20:46.079Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/crewai-niyatinaveennair-blog-writing-crew/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-niyatinaveennair-blog-writing-crew/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-09T03:20:46.079Z","isPublic":true},{"factKey":"docs_crawl","category":"integration","label":"Crawlable docs","value":"6 indexed pages on the official domain","href":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceUrl":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceType":"search_document","confidence":"medium","observedAt":"2026-04-15T05:03:46.393Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/crewai-niyatinaveennair-blog-writing-crew/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-niyatinaveennair-blog-writing-crew/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["Trust evidence available"],"agentCard":{"name":"blog-writing-crew","description":"A three-agent crewAI system that drafts blog posts in your own writing voice, with a researcher, writer, and voice-checking editor","source":"GITHUB_REPOS","sourceId":"crewai:1313410673","repository":"https://github.com/niyatinaveennair/blog-writing-crew","documentation":"https://www.xpersona.co/skill/crewai-niyatinaveennair-blog-writing-crew/agent/crewai-niyatinaveennair-blog-writing-crew","protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"languages":["python"],"install":{"command":"git clone https://github.com/niyatinaveennair/blog-writing-crew.git","ecosystem":"git"},"examples":[{"kind":"example","language":"mermaid","snippet":"flowchart TD\n    U[\"User input<br/>topic + optional personal moment\"] --> M[\"main.py<br/>slugify, load voice samples\"]\n    V[\"voice_samples.md<br/>(gitignored, local only)\"] -->|read from disk| M\n\n    M -->|\"inputs dict<br/>topic, topic_slug, current_year,<br/>personal_notes, voice_samples\"| K[\"Crew.kickoff()<br/>Process.sequential\"]\n\n    K --> R[\"1 - RESEARCHER<br/>find an angle, not a fact pile<br/>verify any stat against 2-3 sources\"]\n    R -->|research brief| W[\"2 - WRITER<br/>draft while pattern-matching<br/>on full voice samples\"]\n    W -->|draft| E[\"3 - EDITOR<br/>adversarial check per paragraph:<br/>could anyone have written this?\"]\n\n    E --> O[\"Markdown post<br/>written to output/\"]"},{"kind":"example","language":"python","snippet":"def load_voice_samples() -> str:\n    if not VOICE_SAMPLES.exists():\n        print(f\"\\nNo voice reference found at {VOICE_SAMPLES}. ...\")\n        return \"No voice samples were provided for this author.\"\n    return VOICE_SAMPLES.read_text()"}]}}