-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path_create_blog_sprint.py
More file actions
160 lines (131 loc) · 10.2 KB
/
Copy path_create_blog_sprint.py
File metadata and controls
160 lines (131 loc) · 10.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
import subprocess, json, sys, os, textwrap
ENV = {**os.environ, 'HERMES_KANBAN_BOARD': 'blog-sprint', 'PYTHONPATH': 'cids-hermes-agent'}
BASE = "F:/bookgenerator_hermes"
def kanban(*args):
r = subprocess.run(
[sys.executable, '-m', 'hermes_cli.main', 'kanban', *args, '--json'],
capture_output=True, text=True, timeout=30, cwd='E:/HermesPortable', env=ENV
)
if r.returncode != 0:
print(f'ERR: {r.stderr[:200]}')
return None
try: return json.loads(r.stdout)['id']
except: return None
# Create board
subprocess.run([sys.executable, '-m', 'hermes_cli.main', 'kanban', 'boards', 'switch', 'blog-sprint', '--json'],
capture_output=True, cwd='E:/HermesPortable', env=ENV)
# ═══════════════════════════════════════════
# BLOG SPRINT — 5 Artikel pro Task
# Keine Parents → alle parallel
# ═══════════════════════════════════════════
BODY_SHORT = """PROJEKT-PFAD: {path}
--
AUFGABE: 5 Kurz-Artikel für {name} ({domain}, {lang})
Erstelle 5 Blog-Artikel (je 500+ Wörter) im Ordner blog/([slug])/index.html.
THEMEN FÜR DIESE 5 ARTIKEL:
{topics}
JEDER ARTIKEL:
- blog/[slug]/index.html Struktur
- OG-Tags + JSON-LD (BlogPosting)
- 1 FLUX-Bild generieren → WebP (quality 85) → lazy loading einbetten
- 2-3 interne Links zu anderen Seiten derselben Brand
- Valides HTML mit Nav/Footer
NUTZE delegate_task FÜR PARALLELE ARTIKELERSTELLUNG (5 Subagenten, 1 pro Artikel).
"""
BODY_INDEPTH = """PROJEKT-PFAD: {path}
--
AUFGABE: 5 In-Depth-Artikel für {name} ({domain}, {lang})
Erstelle 5 In-Depth-Artikel (je 2500+ Wörter) im Ordner blog/([slug])/index.html.
THEMEN FÜR DIESE 5 ARTIKEL:
{topics}
JEDER ARTIKEL:
- blog/[slug]/index.html Struktur
- OG-Tags + JSON-LD (BlogPosting)
- 3-5 FLUX-Bilder generieren → WebP → lazy loading
- 3-5 interne Links + Quellenangaben
- hreflang falls übersetzt
NUTZE delegate_task FÜR PARALLELE ARTIKELERSTELLUNG (5 Subagenten, 1 pro Artikel).
"""
# ═══════════════════════════════════════════
# ARCWRITER (DE) — 15 Kurz + 10 In-Depth = 25 neue = 5 Tasks
# ═══════════════════════════════════════════
AW_PATH = "F:/bookgenerator_hermes/marketing/websites/arcwriter"
aw_short_topics = [
"1. Romanplot strukturieren — Die 3-Akt-Struktur • 2. Charaktere zum Leben erwecken • 3. Dialoge schreiben die fesseln • 4. Worldbuilding leicht gemacht • 5. Schreibblockaden überwinden",
"6. KDP veröffentlichen Schritt für Schritt • 7. Buchcover selbst gestalten • 8. Selbstlektorat für Autoren • 9. Beta-Leser finden und nutzen • 10. Autoren-Website erstellen",
"11. KI vs. traditionelles Schreiben • 12. Lokale KI vs. Cloud-KI für Autoren • 13. Die besten KI-Schreibtools 2026 • 14. Sudowrite Alternativen im Vergleich • 15. Mit KI editieren und polieren",
]
aw_indepth_topics = [
"1. KDP Publishing mit KI — Kompletter Leitfaden • 2. Geld verdienen als Autor 2026 • 3. Self-Publishing Strategie für Einsteiger • 4. Buch-Marketing für Autoren • 5. Serie schreiben und vermarkten",
"6. Die Zukunft des KI-gestützten Schreibens • 7. Vom Manuskript zum Bestseller • 8. Autoren-SaaS: Mit White-Label Geld verdienen • 9. Ghostwriting mit KI-Support • 10. Rechtsfragen beim KI-Schreiben",
]
# ═══════════════════════════════════════════
# FICTIONFORGE (EN) — 15 Kurz + 10 In-Depth = 25 neue
# ═══════════════════════════════════════════
FF_PATH = "F:/bookgenerator_hermes/marketing/websites/fictionforge"
ff_short_topics = [
"1. LitRPG Writing Guide • 2. Fantasy Worldbuilding with AI • 3. AI Character Creation • 4. Plot Twists That Shock Readers • 5. Writing Productivity Hacks",
"6. Genre Fiction Trends 2026 • 7. Daily Word Goals That Work • 8. Serial Fiction: Write & Publish Fast • 9. NaNoWriMo Preparation Guide • 10. Writing Prompts That Spark Ideas",
"11. Collaborative Writing with AI • 12. Feedback Loops for Better Stories • 13. Writing Mindset: Overcome Perfectionism • 14. The Writing Habit: Consistency Tips • 15. AI Writing vs. Human Creativity",
]
ff_indepth_topics = [
"1. Make Money Writing Fiction 2026 • 2. Kindle Publishing Strategy • 3. Self-Publishing vs. Traditional Publishing • 4. Building an Author Audience • 5. Royalties Explained: Maximize Your Income",
"6. AI-Assisted Worldbuilding at Scale • 7. Gamification in Writing: Level Up Your Craft • 8. Genre-Bending: Mixing Tropes for Success • 9. From Wattpad to Bestseller List • 10. The Business of Being an Author",
]
# ═══════════════════════════════════════════
# SCRIPTOR (EN) — 15 Kurz + 10 In-Depth = 25 neue
# ═══════════════════════════════════════════
SC_PATH = "F:/bookgenerator_hermes/marketing/websites/scriptor"
sc_short_topics = [
"1. Deep Work Techniques for Writers • 2. Distraction-Free Writing Setup • 3. Long-Form Planning Strategies • 4. Manuscript Formatting Guide • 5. Self-Editing Like a Pro",
"6. Author Productivity Systems • 7. Writing Retreats: Plan Your Perfect Session • 8. Deadline Management for Authors • 9. The Case for Offline Writing • 10. Privacy-First Writing Tools",
"11. Outlining Your Non-Fiction Book • 12. Track Your Manuscript Progress • 13. Writing Groups vs. Solo Writing • 14. Working with an Editor • 15. Book Launch Planning",
]
sc_indepth_topics = [
"1. Why Offline Writing Tools Are Making a Comeback • 2. Scrivener vs. Scriptor vs. Ulysses • 3. One Price Forever: Against Writing Subscriptions • 4. Author Finances: Budgeting for Your Career • 5. Traditional Publishing: Is It Worth It?",
"6. The Deep Work Manifesto for Writers • 7. Building a Sustainable Writing Career • 8. Copyright and AI: What Authors Need to Know • 9. The Art of the Book Proposal • 10. Writing as a Business: Tax and Legal Basics",
]
# ═══════════════════════════════════════════
# WORDSTRUCTOR (EN) — 20 Kurz + 10 In-Depth = 30 neue
# ═══════════════════════════════════════════
WS_PATH = "F:/bookgenerator_hermes/marketing/landing"
ws_short_topics = [
"1. AI Book Writing for Beginners • 2. White-Label SaaS for Writing Agencies • 3. Multi-Brand Content Strategy • 4. Book Pipeline Automation • 5. Scaling Your Writing Business",
"6. Enterprise AI Writing Solutions • 7. Ghostwriting Platform Comparison • 8. Content Factory: Produce Books at Scale • 9. Client Management for Writing Agencies • 10. Quality Control in AI Writing",
"11. API Integration for Writing Tools • 12. Brand Customization for White-Label • 13. Onboarding Clients to Your Platform • 14. Revenue Models for Book Businesses • 15. Team Collaboration in Writing",
"16. Case Studies: Successful AI Writing Agencies • 17. Publishing Workflow Automation • 18. Roadmap Planning for SaaS Writing Tools • 19. The AI Writing Revolution: 2026 Update • 20. Build Your Own AI Writing Platform",
]
ws_indepth_topics = [
"1. The Complete Guide to White-Label AI Writing • 2. Building a Six-Figure Ghostwriting Agency • 3. AI Publishing: The New Content Economy • 4. Passive Income Through Book Publishing • 5. SaaS Metrics for Writing Platforms",
"6. From Author to Publisher: Scaling with AI • 7. The Ethics of AI Writing • 8. Enterprise Content Strategy with AI • 9. How to Start a Book Publishing Business • 10. The Future of Writing: AI-Human Collaboration",
]
# ═══════════════════════════════════════════
# CREATE TASKS
# ═══════════════════════════════════════════
# Each brand gets: 3 short-batch tasks + 2 indepth-batch tasks = 5 tasks per brand
# + 4 short-batch for wordstructor = 6 tasks
brand_configs = [
("arcwriter", "arcrwriter.app", "DE", AW_PATH, aw_short_topics, aw_indepth_topics),
("fictionforge", "fictionforge.pro", "EN", FF_PATH, ff_short_topics, ff_indepth_topics),
("scriptor", "writescriptor.com", "EN", SC_PATH, sc_short_topics, sc_indepth_topics),
("wordstructor", "wordstructor.com", "EN", WS_PATH, ws_short_topics, ws_indepth_topics),
]
for brand_id, domain, lang, path, short_topics, indepth_topics in brand_configs:
# Short article batches (3 batches x 5 = 15 articles)
for i, topics in enumerate(short_topics):
tid = kanban("create", f"[{brand_id}] Kurzartikel Batch {i+1} — 5 Stk",
"--assignee", "content-filler",
"--body", BODY_SHORT.format(name=brand_id, domain=domain, lang=lang, path=path, topics=topics))
print(f"K{i+1} {brand_id}: {tid}")
# In-depth article batches (2 batches x 5 = 10 articles)
for i, topics in enumerate(indepth_topics):
tid = kanban("create", f"[{brand_id}] InDepth Batch {i+1} — 5 Stk",
"--assignee", "content-filler",
"--body", BODY_INDEPTH.format(name=brand_id, domain=domain, lang=lang, path=path, topics=topics))
print(f"I{i+1} {brand_id}: {tid}")
# ═══════════════════════════════════════════
# SYNTHESIS: Blog-Index aktualisieren + Deploy
# ═══════════════════════════════════════════
# Collect all task IDs for synthesis (we don't have them stored here)
# Synthesis will be created after we know all IDs
print("\n✅ Blog-Sprint Tasks erstellt. Alle parallel (keine Parents).")