Content Pipeline
1. What? — Definition and context
Section titled “1. What? — Definition and context”An idea hits you in the shower — you record a voice note on Telegram. An interesting article shows up in your feed — you forward the URL to the bot. You snap a photo of a whiteboard after a meeting. Each time, the Content Pipeline structures the content with Claude and stores it as an Obsidian note inside a GitHub vault — ready to be retrieved, expanded, or published.
Six content types supported
Section titled “Six content types supported”| Command | Type | Input | Output |
|---|---|---|---|
/note | Note | Free text | Structured note with wikilinks |
/blog | Blog | Free text | Article with intro, body, conclusion |
/research | Research | Topic | In-depth analysis with sources |
| (URL) | URL | Web link | Summary + key points + citations |
| (voice) | Voice | Audio | Cleaned, structured transcript |
| (photo) | Photo | Image | Corrected, structured OCR text |
Architecture
Section titled “Architecture”2. Why? — Stakes and motivations
Section titled “2. Why? — Stakes and motivations”Problems solved
Section titled “Problems solved”| Problem | Without pipeline | With pipeline |
|---|---|---|
| Lost ideas | Note in some corner, never found | Indexed and versioned Obsidian vault |
| Formatting | Raw text without structure | Claude structures with frontmatter |
| Scattered content | Notes here, bookmarks there | One vault, one workflow |
| Painful publishing | Copy-paste between apps | /blog → ready-to-publish article |
Why a review workflow?
Section titled “Why a review workflow?”Claude-generated content is not stored straight away. The user first gets a Telegram preview with the title, tags, target path and the first 500 characters. Two buttons let you confirm or cancel. It is a safety net against bad classification or malformed notes.
3. How? — Technical implementation
Section titled “3. How? — Technical implementation”The journey of a piece of content
Section titled “The journey of a piece of content”1. Reception — The Telegram Orchestrator detects a /note, /blog, /research command, a URL, a voice message or a photo and routes it to the Content Pipeline.
2. Consolidation — A Code node normalises the input: text is extracted, URLs are fetched (truncated to 8000 characters), voice messages arrive already transcribed, photos already OCR’d.
3. Claude generation — The LLM (Claude Sonnet via CLI Ollama, 120 s timeout) receives a content-type-specific prompt. Each prompt defines the expected structure, the YAML frontmatter, and the formatting conventions (wikilinks for notes, sections for blogs, sources for research).
4. Temporary storage — The generated Markdown lands in the n8n_pending_actions Data Table with a short identifier (8 hex chars) and a 24 h expiration.
5. Preview — The user gets a Telegram message with the content preview and two buttons:
📝 New note
Title: Docker Networking GuideTags: docker, networking, guidePath: notes/tech/2026-02-19-docker-networking-guide.md
Docker networking in practice involves understandingbridge networks, overlay networks, and host mode...[... truncated]
[Save] [Cancel]6. Save — Clicking [Save] tells the Orchestrator to create the file in the guigpap/obsidian-vault GitHub repo via the API and send a confirmation.
Automatic classification
Section titled “Automatic classification”The storage path is decided by type and tags:
| Condition | Path |
|---|---|
| Type = research | knowledge/ |
| Type = blog | notes/projects/ |
| Tag contains “project” | notes/projects/ |
| Tag contains “reference” | notes/reference/ |
| Default | notes/tech/ |
The file is named {date}-{slug}.md (e.g. 2026-02-19-docker-networking-guide.md).
Output format
Section titled “Output format”Every note is a Markdown file with YAML frontmatter:
---title: "Docker Networking Guide"tags: [docker, networking, guide]date: 2026-02-19source: "telegram"status: "draft"type: "note"slug: "docker-networking-guide"---For blog articles, two extra fields are produced: description (meta description) and a structure with Introduction, Body, Conclusion.
For research items, the body includes: Overview, Key points, Technical details, Sources, Related topics.
4. What if? — Outlook and limits
Section titled “4. What if? — Outlook and limits”Current limits
Section titled “Current limits”| Limit | Impact | Mitigation |
|---|---|---|
| No deduplication | Sending the same URL twice = two notes | The user can cancel |
| Imperfect OCR | Low-quality photos → messy text | Claude fixes obvious mistakes |
| No vault search | Finding a note = browsing files | Tags + Obsidian search + Qdrant (planned) |
Evolution scenarios
Section titled “Evolution scenarios”If automatic publishing is needed:
- The Obsidian Blog Publisher workflow can take over
- Blog notes flagged
status: readyare publishing candidates
If semantic search is needed:
- Generate embeddings for every note
- Store them in Qdrant for vector search
/searchTelegram command to query the vault
If note volume grows:
- Add sub-folders by month or project
- Keep an automatic Obsidian index
- Weekly digest of recent notes
Related pages
Section titled “Related pages”Workflows
Section titled “Workflows”- Telegram Orchestrator — Routing of content commands
- Voice Transcription — Transcription of voice messages
- YouTube Digest — Similar pipeline for videos
Infrastructure
Section titled “Infrastructure”- AI Stack — CLI Ollama for Claude