Files
deerflow-factory/deer-flow/skills/public/podcast-generation/templates/tech-explainer.md
DATA 6de0bf9f5b Initial commit: hardened DeerFlow factory
Vendored deer-flow upstream (bytedance/deer-flow) plus prompt-injection
hardening:

- New deerflow.security package: content_delimiter, html_cleaner,
  sanitizer (8 layers — invisible chars, control chars, symbols, NFC,
  PUA, tag chars, horizontal whitespace collapse with newline/tab
  preservation, length cap)
- New deerflow.community.searx package: web_search, web_fetch,
  image_search backed by a private SearX instance, every external
  string sanitized and wrapped in <<<EXTERNAL_UNTRUSTED_CONTENT>>>
  delimiters
- All native community web providers (ddg_search, tavily, exa,
  firecrawl, jina_ai, infoquest, image_search) replaced with hard-fail
  stubs that raise NativeWebToolDisabledError at import time, so a
  misconfigured tool.use path fails loud rather than silently falling
  back to unsanitized output
- Native client back-doors (jina_client.py, infoquest_client.py)
  stubbed too
- Native-tool tests quarantined under tests/_disabled_native/
  (collect_ignore_glob via local conftest.py)
- Sanitizer Layer 7 fix: only collapse horizontal whitespace, preserve
  newlines and tabs so list/table structure survives
- Hardened runtime config.yaml references only the searx-backed tools
- Factory overlay (backend/) kept in sync with deer-flow tree as a
  reference / source

See HARDENING.md for the full audit trail and verification steps.
2026-04-12 14:23:57 +02:00

64 lines
1.9 KiB
Markdown

# Tech Explainer Podcast Template
Use this template when converting technical documentation, API guides, or developer tutorials into podcasts.
## Input Preparation
When the user wants to convert technical content to a podcast, help them structure the input:
1. **Simplify Code Examples**: Replace code snippets with plain language descriptions
- Instead of showing actual code, describe what the code does
- Focus on concepts rather than syntax
2. **Remove Complex Notation**:
- Mathematical formulas should be explained in words
- API endpoints described by function rather than URL paths
- Configuration examples summarized as settings descriptions
3. **Add Context**:
- Explain why the technology matters
- Include real-world use cases
- Add analogies for complex concepts
## Example Transformation
### Original Technical Content:
```markdown
# Using the API
POST /api/v1/users
{
"name": "John",
"email": "john@example.com"
}
Response: 201 Created
```
### Podcast-Ready Content:
```markdown
# Creating Users with the API
The user creation feature allows applications to register new users in the system.
When you want to add a new user, you send their name and email address to the server.
If everything goes well, the server confirms the user was created successfully.
This is commonly used in signup flows, admin dashboards, or when importing users from other systems.
```
## Generation Command
```bash
python /mnt/skills/public/podcast-generation/scripts/generate.py \
--script-file /mnt/user-data/workspace/tech-explainer-script.json \
--output-file /mnt/user-data/outputs/tech-explainer-podcast.mp3 \
--transcript-file /mnt/user-data/outputs/tech-explainer-transcript.md
```
## Tips for Technical Podcasts
- Keep episodes focused on one main concept
- Use analogies to explain abstract concepts
- Include practical "why this matters" context
- Avoid jargon without explanation
- Make the dialogue accessible to beginners