160 Commits

Author SHA1 Message Date
yuzhiran 56c9376c58 docs: document brand optimization v25.1 (brand tone, SEO/GEO, sources, series column, WeChat publisher)
PROGRESS.md: adds Phase A-F brand optimization to v25 section covering 6 prompt brand tone injection, long-tail SEO keywords, differentiated sources (machine-intelligence/arXiv/indie dev/industry reports/AI products), series column feature, and WeChat publisher blocked status.

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-23 13:32:23 +08:00
yuzhiran 302efd5f2d fix(ui): responsive mobile layout with auth flow refactoring for campaigns
Adds: v-cloak fix, mobile card-list views for all tables, responsive CSS breakpoints, early auth redirect, CDN script reorder to head, ElementPlusIconsVue safety check, global ElMessage reference. Moves async mounted to .then() pattern to avoid Vue 3 SFC issues.

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-23 13:30:19 +08:00
yuzhiran 897f72012f chore(cleanup): remove old content ideas and sustainability data
Deleted: 10 legacy topic cards (001-010), README from content/ideas/, old sustainability_topics.json, test-fix notification. These belonged to deprecated 'sustainable living' content pillar.

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-23 13:26:50 +08:00
yuzhiran 0258a9af9f feat(script): add DB migration script for content focus refactoring
Comprehensive DB migration: TopicField cleanup (5 old deactivated, 3 new updated), Topic reassignment (43/47 migrated), Article cleanup (15 deleted), CollectorCategory/Cleaning (12 old deactivated), TrendFieldMapping sync (11 entries)

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-23 13:26:22 +08:00
yuzhiran 9058539bae feat(config): add differentiated information sources (arXiv/indie dev/industry reports)
Adds 5 new sources: machine-intelligence RSS, arXiv paper search, indie developer search, industry data report search, AI product changelog search. Differentiates from generic AI media.

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-23 13:25:39 +08:00
yuzhiran 9fba863ce7 feat(config): align content strategy with brand direction
initial_data: field descriptions humanized, collector search queries include long-tail keywords, platform formats updated collector.py: DEFAULT_CHINA_PAINS expanded with specific pain questions (e.g. '35岁学AI来得及吗') topic_selector.py: domain mapping 11->18 entries (Prompt/AI编程/AI写作/数据隐私/AI教育/一人企业)

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-23 13:25:11 +08:00
yuzhiran 45ad5443c1 feat(prompt): inject brand tone into 6 platform prompts
Section expansion: zhihu (unique data + debate), wechat (tech-humanity reflection), xiaohongshu (real usage data) Title optimize: all 3 platforms aligned with new brand direction

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-23 13:24:38 +08:00
yuzhiran ef289b18d1 feat(ui): add series filter to topics search area
Adds column/category filter dropdown in topics.html search form, with seriesOptions computed and filteredTopics logic

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-23 13:23:19 +08:00
yuzhiran f1e6c11505 feat(models): add series column to Topic for content columns
Topic model: new series VARCHAR field (optional, indexed)
Schema: series in TopicBase/TopicCreate/TopicUpdate
API: GET /api/topics supports ?series= query param
DB migration: ALTER TABLE topics ADD COLUMN series

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-23 13:22:13 +08:00
yuzhiran e9cd0374f4 feat(script): SEO auditor + PROGRESS.md v24 update
Add seo_auditor.py - crawls external websites, scores 6 SEO dimensions (meta/heading/content/performance/links/mobile), generates optimization tasks. Update PROGRESS.md with v24 external promotion feature.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-21 16:07:43 +08:00
yuzhiran 8a04a23e86 feat(ui): external promotion dashboard (campaigns.html)
Add campaigns.html with 6 tabs (Overview/Products/Campaigns/Rankings/Audits/Tasks) using Vue 3 + Element Plus CDN. Add nav entry to uni-nav.js.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-21 16:06:46 +08:00
yuzhiran 8f5a9e7ede feat(api): external promotion CRUD + audit endpoints
Add 20 API endpoints under /api/external/* covering products, campaigns, keywords, audits, rankings, optimization tasks with org_id filtering.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-21 16:05:55 +08:00
yuzhiran 12e49f2811 feat(models): add external promotion tables (6 models)
Add ExternalProduct, PromotionCampaign, CampaignKeyword, SEOAudit, KeywordRanking, OptimizationTask models and 18 Pydantic schemas for the external promotion module.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-21 16:04:52 +08:00
yuzhiran 81f89f6f00 docs: PROGRESS.md - landing fixes, v23 verification, cleanup
Mark landing OG image creation, GitHub link fix, nav bug fix.
Add v23 feature verification results (12 pages 200, org_id, RBAC).
Update last-updated date. Clean up completed todos.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-18 16:28:55 +08:00
yuzhiran a692f1dd44 fix: landing OG image + GitHub link
Create og-landing.png (1200x630, 62KB) for OG meta tag.
Fix GitHub link placeholder (your-org -> github.com).

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-18 16:27:59 +08:00
Yuzhiran Dev 4b87125683 docs: update PROGRESS.md - M4 complete, remaining TODOs done 2026-06-18 08:16:35 +08:00
Yuzhiran Dev 5a19e77d27 feat: rank_tracker AI citation + admin task management tab 2026-06-17 20:42:37 +08:00
Yuzhiran Dev d3ea832b3b feat: admin.html task management tab (TaskConfig + TaskLog timeline)
- Add 任务管理 tab button
- Show all 7 task modules table with enable/disable switch, schedule, params
- Edit dialog for schedule/params editing
- Click module to show el-timeline of recent 30 run logs
- View result data dialog
- Supports toggleModule, saveTaskConfig, loadTaskLogs
2026-06-17 20:10:56 +08:00
Yuzhiran Dev 1ff015e281 docs: v23 PROGRESS.md + archive WORKSPACE_REDESIGN.md 2026-06-17 18:33:19 +08:00
Yuzhiran Dev f6e5e90736 feat: Wave 3 - Dashboard redesign + RBAC + AI assistant updates
- Redesign index.html from system-monitor to user-centric workspace
  (welcome banner, summary cards, 今日待办, AI 智能建议, collapsible admin section)
- Add fetchTodos/fetchSuggestions/getPriorityClass/isOverdue methods
- Update uni-nav current-page from 'dashboard' to 'workspace'
- Add require_role to 10 admin router imports (RBAC foundation)
- Update ai-assistant.js: add factory/insights pages, org_id in chat requests
2026-06-17 18:24:57 +08:00
Yuzhiran Dev 5caf7bc52e feat: Wave 2 - API org isolation + factory.html + insights.html
- Add org_id auto-population to articles.py, publishing.py, metrics.py
- Add org_id filtering to search_rankings.py geo endpoints
- Add org_id to calendar.py create/update/delete endpoints
- Add org_id to tasks.py create endpoints
- Create factory.html content pipeline page (3-tab: 待创作/进行中/待审查)
- Create insights.html analytics page (4-tab: 概览/搜索排名/GEO/平台对比)
2026-06-17 16:13:48 +08:00
Yuzhiran Dev dcfeccc97b feat(models): add org_id to Article, PublishRecord, ContentMetrics, SearchRanking, GeoReadinessScore
- Add org_id column to 5 models with default='default'
- Update to_dict() methods for ContentMetrics, SearchRanking, GeoReadinessScore
- Add ALTER TABLE migrations in database.py init_db()
- Add org_id to 6 Pydantic response schemas
- Add require_role() helper factory in auth.py
2026-06-17 14:27:27 +08:00
Yuzhiran Dev 00431c827b feat: add org_id to ContentCalendar and ContentTask models 2026-06-17 09:02:54 +08:00
Yuzhiran Dev c8a5e8fd87 docs: Update PROGRESS.md for v21 GEO and v22 landing page
- v21: GEO tracking (geo_tracker.py, FAQ/HowTo schema, GeoReadinessScore, scheduler, admin tab)
- v22: Landing page (landing.html, routing, responsive design, auth flow changes)
- Commit count: 165 -> 170

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-16 08:28:31 +08:00
Yuzhiran Dev c069a140bb fix: Auth redirects and navigation for landing page routing
- login.html: Post-login redirect / -> /index.html; already-logged-in redirect / -> /index.html
- articles.html, topics.html: Auth failure redirect -> /login.html
- uni-nav.js: Dashboard link / -> /index.html; navigate function fix for prefix handling
- sw.js: Remove / pre-cache; HTML documents use Network First strategy for fresh content

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-16 08:28:06 +08:00
Yuzhiran Dev 24e46eced5 feat: Product landing page at / with responsive design
- landing.html: Full product website (hero, features, how-it-works, platform coverage, pricing, FAQ, CTA, footer)
- main.py: Route / to landing.html (overrides StaticFiles default index.html)
- Workspace dashboard remains at /index.html
- Responsive: desktop nav, hamburger mobile menu, single-column on small screens
- No Vue/Element Plus dependency; standalone HTML+CSS+JS (~30KB)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-16 08:27:38 +08:00
Yuzhiran Dev f15e0f720a feat: Admin GEO readiness dashboard tab
- New 'GEO 就绪度' tab button in filter bar
- Overview stat cards: total checks, AI citations, citation rate, avg readiness
- AI engine breakdown display (DeepSeek/ChatGPT/Perplexity)
- Readiness scores table with 6-dimension color-coded tags
- Manual GEO tracking trigger button

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-16 08:27:11 +08:00
Yuzhiran Dev 7c9a8b88b4 feat: FAQ/HowTo schema injection and SEO pipeline enhancement
- writer.py: inject_geo_metadata now detects content type (article/listicle/howto/faq/review) and injects appropriate JSON-LD (FAQPage, HowTo, ItemList)
- New helpers: _detect_content_type, _extract_faq_pairs, _extract_howto_steps
- outline.py: _extract_seo_keywords regex support for CJK
- prompt_loader.py: Minor update

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-16 08:26:44 +08:00
Yuzhiran Dev 93d1d511e5 feat: Register scheduled GEO tracker (07:30 daily)
- New MODULE entry: scheduled_geo_tracker
- New LOG_FILE_MAP entry
- New MODULE_JOBS entry
- _run_geo_tracker method: subprocess invokes geo_tracker.py

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-16 08:26:13 +08:00
Yuzhiran Dev 2aedb69efd feat: AI search citation tracking script
scripts/geo_tracker.py: Simulates DeepSeek/ChatGPT/Perplexity queries via LLM to detect article citations. Calculates GEO readiness score (6 dimensions: schema/faq/howto/citations/headings/word_count). Writes results to SearchRanking(search_engine='geo') and GeoReadinessScore tables.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-16 08:25:44 +08:00
Yuzhiran Dev 773080cf4f feat: GEO data model and API endpoints
- SearchRanking: +5 fields (ai_search_engine, citation_snippet, citation_url, geo_score, content_type)
- New GeoReadinessScore model (6-dimension scoring: schema/faq/howto/citations/word_count/readability/headings)
- GET /api/seo/geo/overview, GET /api/seo/geo/readiness, POST /api/seo/geo/track

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-16 08:25:18 +08:00
Yuzhiran Dev 63a6fabc00 fix: Script bug fixes (bare except, timezone, regex, test)
- collector.py, compliance_checker.py, trends.py: bare except -> specific
- db_helper.py: datetime.now() -> timezone.utc (8 occurrences)
- compliance_checker.py: regex \x08 -> \b word boundary + import json
- search_providers.py: minor fixes
- test_new_features.py: service reachability check retry

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-16 08:24:50 +08:00
Yuzhiran Dev d601a26850 fix: API route security fixes (path traversal, auth, bare except)
- articles.py: Path traversal sanitization
- optimizer_logs.py: Admin auth guard
- platform_config.py: Admin auth guard
- system.py: Path traversal whitelist
- topic_config.py: Admin auth guard
- topics.py: Minor fix

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-16 08:23:50 +08:00
Yuzhiran Dev 8595bbc521 feat: GEO/SEO structured data + search ranking tracker 2026-06-09 17:18:09 +08:00
Yuzhiran Dev 23ff63baa9 fix: 三平台内容差异化 + admin敏感词管理表格化
- writer.py: _expand_section() 去除 <100字阈值,始终调用 LLM 平台专属扩写
- prompt_loader.py: 新增 section_expansion_zhihu/wechat/xiaohongshu 三个独立 prompt
- admin.html: 配置管理标签页 + 敏感词/清理规则子标签 + 敏感词表格化管理(编辑/删除)
- config_items.py: PUT /sensitive-words/{id} 支持更新 word/category
- compliance_checker.py: AI 套话从 DB 加载 + 人称规则修正
- initial_data.py: PlatformConfig 字数迁移 + 新种子
- 各前端页面: LLM 配置 rate_limit 字段 + 供应商列表排序
2026-06-08 13:51:35 +08:00
Yuzhiran Dev d0896ef10e fix: _wrap_chinese crash on mixed-width punctuation
_image_generator.py _wrap_chinese 当标题中只有 ASCII 标点
(如 ( ) ?) 而无全角标点时,max() 收到空序列崩溃。

修复:try-except 兜底 + 补充 ASCII 标点到断点列表
2026-06-03 13:13:19 +08:00
Yuzhiran Dev c6628b22f6 fix: 任务抽屉产出结果优化 + server 启动修复
- 任务抽屉产出结果 tab 优先显示 last_message(日志消息),
  过滤 result_data 中的 None/空值
- 修复 tasks.py 因 opencode 块删除导致的 SyntaxError
- 修复 scheduled_generate 存储 None 值问题
- 清理 DB 中旧 scheduled_refresh_search_cache 的 56 条
  TaskLog + 1 条 TaskConfig
- 更新 PROGRESS.md
2026-06-03 11:06:25 +08:00
Yuzhiran Dev 499c511140 chore: opencode冗余清理 + LLM任务级模型选择 + systemd服务化
- 删除 opencode_search.py / mcp_search_server.py 及所有 MCP 引用
- 移除搜索缓存定时任务(scheduled_refresh_search_cache)
- 清理前后端所有 opencode/MCP 代码和注释
- LLM 提供商量换:opencode-go→nvidia(默认)+sensenova(合规审查)
- llm_configs 新增 is_default 字段,API 层互斥逻辑
- 所有定时任务支持独立 LLM 模型选择(LLM_TASK_PROVIDER env)
- compliance_optimizer.py 修复:import os / 解硬编码 / 关键词过滤
- Scheduler 日志修复:始终 INSERT,避免僵尸 running 行
- Systemd 服务化:Restart=always / 单 worker / Type=exec
- 搜索提供商:替换 opencode→360/搜狗/微信(免 Key)
- 更新 AGENTS.md / PROGRESS.md
2026-06-02 15:38:16 +08:00
Yuzhiran Dev abbf1468bc fix(admin): LLM 路由标签动态化
- 默认提供商按 id 排序取第一个活跃的(nvidia step-3.7-flash)
- 合规审查取活跃且 model=deepseek-v4-flash 的(sensenova)
- 不再硬编码
2026-06-01 14:46:22 +08:00
Yuzhiran Dev 53f105305f fix(admin): LLM 路由显示不准确
- 默认路由改为动态取第一个活跃提供商(当前为 nvidia step-3.7-flash)
- 合规审查标签改为固定 sensenova (deepseek-v4-flash)
- 移除硬编码的 opencode-go 标签
2026-06-01 14:42:32 +08:00
Yuzhiran Dev f1dc29f439 fix(llm): 分场景使用不同模型
- nvidia 激活、模型改为 step-3.7-flash → 用于日常生成/采集/优化等
- compliance_optimizer.py 显式指定 provider=sensenova → 合规审查走 deepseek-v4-flash
- _FALLBACK 同步更新为 step-3.7-flash
- 管理后台标签同步更新
2026-06-01 14:35:41 +08:00
Yuzhiran Dev 475945418e feat(llm): LLM 配置完全通过管理后台维护
- _get_provider_config 改从 DB 读取 api_key(.env 为 fallback)
- 前端 admin.html 新增 sensenova provider 选项,默认值更新为 sensenova
- 新增提供商不再需要改代码,后台直接配即可
2026-06-01 14:23:24 +08:00
Yuzhiran Dev 2c17f006fc feat(llm): 添加 sensenova 提供商,替换 opencode-go
_API_KEYS/_FALLBACK 添加 sensenova,DB 中设 is_active=true
与 opencode-go 同模型(deepseek-v4-flash),但走 sensenova 通道
2026-06-01 14:17:36 +08:00
Yuzhiran Dev 31d8434010 fix(llm): call_llm 429 自动 fallback + 移除 compliance 硬编码 provider
- nvidia_client.py 新增 _get_provider_fallback_list() 从 DB 读提供商顺序
- call_llm 循环尝试提供商列表,HTTP 429 自动跳过到下一个
- 移除 compliance_optimizer.py 中硬编码 provider="opencode-go"
- 新增 logging 模块引用
2026-06-01 13:23:35 +08:00
Yuzhiran Dev 09c467e56d ops(systemd): 添加 systemd 服务,自动恢复崩溃进程
- 创建 yzr-platform.service(Restart=always,崩溃后10秒恢复)
- 更新 AGENTS.md 命令文档
- 替换原来的 setsid/nohup 启动方式
2026-06-01 12:56:02 +08:00
Yuzhiran Dev 1084388fec fix(topics): 外键约束导致 delete 400
选题有关联 content_tasks/article/publish_record/metrics 表,
外键约束阻止删除。改为先级联删除关联数据再删选题。

前端同时显示服务端返回的具体错误信息,而不是笼统的 删除失败。
2026-06-01 12:08:51 +08:00
Yuzhiran Dev 468c9066cb fix(scheduler): _log_task 重复 INSERT 导致 zombie running 行
_log_task 在任务开始(running)和结束(success/failed)时分别
INSERT,导致 running 行永不更新,被 task monitor 标记为失败。

修复:新增 log_id 参数,传入时 UPDATE 已有行。所有 _run_* 方法
save running log_id 并在结束时传入。早期 return 处也标记失败。
2026-06-01 10:01:50 +08:00
Yuzhiran Dev 9b9ee4964b feat(assistant): 可执行操作改造,支持实时查询与任务触发
- 新增 assistant_actions.py 动作注册表(list_topics/get_system_stats/get_task_status/trigger_task/search_web 等)
- assistant.py 增加规则意图识别优先执行,失败则走 LLM ACTION 格式
- 格式化返回结果,前端无感知
- 支持查看系统统计、选题、任务日志、手动触发定时任务
2026-05-31 13:25:07 +08:00
Yuzhiran Dev 10ad549050 chore: gitignore 新增自动生成文件过滤
- 新增: automation/backups/ research/ automation/images/
- 新增: search_cache.json trends.json sustainability_cases.json
- untrack: 上述文件从 git 追踪中移除
2026-05-29 09:41:03 +08:00
Yuzhiran Dev 3fab87ee11 feat: 新增360/搜狗/微信搜索提供商 + PG15→16升级 & 项目文档更新
- search_utils.py: 新增 _call_360/_call_sogou/_call_wechat HTML爬取函数
- initial_data.py: 种子数据新增三个搜索提供商(priority 3/4/5)
- models.py: provider_type 注释补充新类型
- admin.html: 搜索提供商类型下拉框新增三个选项
- AGENTS.md/PROGRESS.md/README.md: PostgreSQL 15→16
- README.md: 移除硬编码数据库密码
2026-05-29 09:35:15 +08:00
Yuzhiran Dev bd3228806d fix: 合规审查卡死修复 + 小红书复制格式 + today-only过滤 2026-05-27 18:25:30 +08:00
Yuzhiran Dev 6585909ffc feat: optimize all 13 prompts by function+scenario; fix topic_selector hardcode
Prompt optimizations:
- topics_trends: 10→8 topics, simplified output, anti-hallucination
- topic_generate: stronger structure, user-pain focus
- topic_selector_gaps: add SEO+social instruction, clean JSON output
- section_expansion: shorter (removed over-detailed AI套话 list), cleaner
- title_optimize_*: 3 titles per line (no numbering), cleaned up
- outline_generation: simplified structure, strong anti-generic-titles
- compliance_fix/polish: expanded fix types, stronger output requirements
- sources_optimization: cleaner JSON schema
- tags_generation: added 'no thinking output' instruction
- research_summary: simplified output structure
- clean_ai_verbosity/clean_thinking_patterns: unchanged (rule-based)

topic_selector.py: hardcoded prompt → get_prompt('topic_selector_gaps')
_PROMPT_DEFAULTS seeds updated to match DB
2026-05-27 11:07:56 +08:00
Yuzhiran Dev 2c6adf1f43 fix: system_prompt now read from DB LLMConfig
- _get_db_defaults returns system_prompt from DB
- call_llm(system_prompt=None) falls back to DB value
- DB already has system_prompt set for both providers
2026-05-27 10:47:02 +08:00
Yuzhiran Dev b105eee9bb fix: add LLM config status display + routing info
- 状态列: icon → el-tag 文字标签(当前使用/未启用)
- 新增路由状态提示条, 显示默认 vs 审查固定路由
- 移动端卡片同样改为文字标签
2026-05-27 10:09:23 +08:00
Yuzhiran Dev 878daebfe0 fix: route compliance to opencode-go, others to nvidia; skip status on force-pass
1. DB active provider switched to nvidia (stepfun-ai/step-3.5-flash)
   → trends/collector/writer 默认用 nvidia
2. compliance_optimizer.py 固定 provider='opencode-go'
   → 合规审查用 deepseek-v4-flash(更好的模型)
3. force_passed 的选题不再更新为 'ready'(待发布)
   → 只有真正修复通过才更新状态
2026-05-27 09:36:34 +08:00
Yuzhiran Dev 004698cf98 fix: compliance optimizer now requires score improvement, retries LLM on failure
Bug: 'passed=True' check for soft quality issues (AI套话, 缺互动引导)
always exits immediately even when LLM failed to make changes.
Score 85 stays 85, content unchanged.

Fix:
1. polish_with_llm: retry once on exception (was: single attempt)
2. main loop: only accept fix when score actually improves AND
   LLM produced output (opt_logs non-empty). If LLM returns same html
   unchanged, treat as failed attempt and retry.
2026-05-27 09:23:49 +08:00
Yuzhiran Dev 29d97b5f1a fix: expand short sections (<100 chars) with LLM even if not bullet-only 2026-05-26 18:31:43 +08:00
Yuzhiran Dev 80023bbd6c fix: hybrid SVG+PIL PNG image rendering with CJK fonts, prompt URL reference 2026-05-26 17:38:28 +08:00
Yuzhiran Dev f94e6b0161 fix: correct subprocess script path and add TaskLog for trends trigger 2026-05-26 11:32:34 +08:00
Yuzhiran Dev ac8644d752 fix: content quality, image format, task monitor, calendar data source, search UI & sort 2026-05-26 11:26:10 +08:00
Yuzhiran Dev b2d043b231 新增用户管理/角色管理/菜单管理功能,修复创作流水线研究脚本
- 用户管理:新增编辑弹窗(修改用户名/角色/密码),增加组织/创建时间/最后登录列
- 角色管理:新增 Role 模型 + CRUD API,admin.html 新增角色管理 tab
- 菜单管理:新增 Menu 模型 + CRUD API,导航栏从 API 动态加载菜单项
- 个人中心:右上角下拉菜单(个人信息/修改密码/退出),新增修改密码 API
- 种子数据:initial_data.py 自动创建默认角色(admin/editor)和默认菜单(7项)
- 修复 research.py 缺少 enrich_topic_research 函数导致导入失败
- 修复 db_helper.py 中 generated_at 条件导致重创作不更新时间戳
- admin.html 操作列加宽防止按钮换行,平台配置增加删除按钮
- articles.html 预览弹窗加 lock-scroll=false 防止页面尺寸跳动
2026-05-22 18:34:27 +08:00
Yuzhiran Dev 1855f190f5 配置全面迁移数据库:PromptConfig、TaskConfig动态调度、敏感词/清洗规则/趋势映射/平台标签/痛点模板全部可编辑
- 新增 PromptConfig 模型 + API,支持提示词在线编辑(16条默认)
- 调度器动态读取 TaskConfig.schedule,admin 可调执行时间
- 新增 KeywordDomainMap、SensitiveWord、ContentCleanRule、TrendFieldMapping 表
- DOMAINS、TREND_DOMAIN_MAP、PLATFORM_TAGS、china_pains、RSS关键词、priority_weights 全部迁移到 DB
- tasks.html 重构:卡片网格+配置/产出/历史/提示词四个Tab,折叠显示
- 清理冗余代码:DEFAULT_PROMPTS死代码、collector.py unreachable代码、compliance_checker bug
- strip_thinking_html 改用 DB 规则优先
2026-05-22 11:18:23 +08:00
Yuzhiran Dev a8e0a76e07 任务页输入参数旁加'前往编辑'链接
- 采集类别参数 → admin.html#tab=categories
- 信息源参数 → admin.html#tab=sources
- admin.html 已支持 URL hash 自动切tab
- 新窗口打开,不打断当前任务浏览
2026-05-21 10:38:30 +08:00
Yuzhiran Dev 4e10cc95d3 清理 tasks.py 死代码 2026-05-21 10:21:45 +08:00
Yuzhiran Dev 9178f436b2 任务页面全面改版: 模块输入/输出/历史详情抽屉
后端新增:
- GET /api/tasks/modules/{module_id}/detail
  每个模块返回: inputs(自动填充的参数)、outputs(格式化产出结果)、
  history(今日运行记录)、log_excerpt(日志原文)

前端重构 tasks.html:
- 上半: 定时任务模块卡片网格(与仪表盘风格统一)
- 点击卡片→右侧抽屉展示3个tab:
  📥 输入参数: 搜索词/类别/待处理数量等(自动填充)
  📤 产出结果: 表格/标签/评分/建议等(按类型格式化)
  📋 运行记录: 日志原文+时间轴
- 底部保留创作任务列表(分页/筛选/详情)
- 抽屉底部立即运行按钮
2026-05-21 10:18:21 +08:00
Yuzhiran Dev 0dcfda0c80 数据新鲜度校验: 所有模块加上日期/时效检查
1. search_cache.json → 添加 _metadata.updated_at 时间戳
   web_search.search_from_cache() 跳过超过36h的旧缓存
   防止某查询失败时残留旧数据

2. metrics_feedback.json → collector 检查mtime,超过24h不采用

3. trends.json → 已有 date==TODAY 校验(load_trends)

4. collector_ai_advice → DB每日覆盖,时序安全
   creator→topic状态位避免重复生成
   optimizer→文章状态位避免重复审查
2026-05-21 10:09:51 +08:00
Yuzhiran Dev 5037d5d0ed 流水线整体前移1.5h,凌晨5点前全部就绪
01:00 search → 01:10 trends → 01:30 collect
→ 02:00 create → 03:00 review
→ 05:00 optimize_sources → 06:00 metrics

各间隔: 10min/20min/30min/60min/2h/1h
采集到创作30min缓冲足够(采集≈5-15min)
2026-05-21 10:04:41 +08:00
Yuzhiran Dev 56293a52a2 打通流水线闭环: trends+metrics+optimize_sources → collector
三大数据流精准注入采集器:

1. 热点趋势(trends) -> collector
   _get_trend_context() 读取 trends.json
   热搜注入 LLM 选题 prompt

2. 历史表现(metrics) -> collector
   scheduler 同步指标后按field聚合写入 feedback.json
   collector 读取后高互动领域获优先级提升

3. AI策略(optimize_sources) -> collector
   从 DB SystemConfig 读取 AI 建议注入 prompt
2026-05-21 09:48:38 +08:00
Yuzhiran Dev 6b790e77f6 全线异步化: 所有手动触发任务不再阻塞uvicorn worker
每个模块提供两个版本:
- run_xxxx() → Popen非阻塞(给API用)
- run_xxxx_blocking() → subprocess.run阻塞(给定时任务用)

API端点全部改为立即返回XX已后台启动,不再等子进程完成

受影响端点:
  /generate/run (原30min→12ms)
  /review/run (原10min→12ms)
  /collect/run (原5min→12ms,已修复)
  /optimize-sources/run (原2min→12ms)
  /trends/run (原2min→12ms)
  /refresh-search-cache/run (原10min→12ms)
  /metrics-sync/run (原N×10s→12ms)

同时增加对应GET状态端点:/collect/status,/generate/status,/review/status
2026-05-21 09:20:13 +08:00
Yuzhiran Dev 6f81167691 联网搜索能力集成: opencode webfetch → 采集器
新增:
- scripts/opencode_search.py: 通过 npx opencode run 调用 webfetch 联网搜索
- 搜索缓存每日 02:30 自动刷新 (scheduler)
- 管理后台「搜索缓存」模块 + 立即运行按钮
- POST /api/system/refresh-search-cache/run 手动触发端点
- 8个分类搜索词从sources.yaml读取,调用AI联网搜索真实内容

机制:
  Python脚本 → npx opencode run → AI webfetch → 真实搜索结果 → 写入search_cache.json
  → 采集器读缓存 → LLM基于真实数据生成选题

不再需要API Key,不依赖任何搜索引擎,搜索结果来自AI的webfetch能力
2026-05-21 09:01:02 +08:00
Yuzhiran Dev 7d50878c7d 搜索缓存: 可追踪的search_cache.json, webfetch预填充26条
新机制:
- web_search.py按优先级: 缓存→Bing API→Bing抓取
- search_cache.json由opencode webfetch手动填充(不依赖搜索引擎)
- 搜索失效不影响采集器(LLM直接生成选题)
- .gitignore移除search_cache.json(应被版本追踪)
2026-05-21 08:29:04 +08:00
Yuzhiran Dev eb1c4205fa 重写web_search: Bing API优先+抓取回退+诚实失败
- Bing Web Search API支持(设BING_API_KEY环境变量即可)
- 抓取回退但诚实面对反爬限制
- 搜索为空时采集器正常运行(LLM直接生成选题)
- 降低搜索依赖为可选增强
2026-05-21 08:14:47 +08:00
Yuzhiran Dev a26f0e936e 修复采集器流程顺序: 采集→分析→LLM总结
- _generate_topic_with_llm 改名为 _generate_topics_with_llm
- 支持同时接收已分析的案例+搜索结果作为LLM上下文
- run()顺序改为: 采集→RSS提炼案例→LLM基于全部数据生成→降级回退
- LLM现在在流程末尾做总结生成,而非开头替代搜索
2026-05-21 08:06:24 +08:00
Yuzhiran Dev 10996ce6ce 清理城市农业类别 + 修复采集器LLM直接选题
清理:
- sustainability_cases.json移除GLO-001/CHN-001城市农业案例,替换为循环消费
- initial_cases.json移除case8东京垂直农场/case26城市屋顶农场
- strategy_topics_to_json.py移除B01/B05/D05三个种菜选题
- collector.py移除城市农业→循环消费映射,更新注释
- 删除fix_collector.py/test_image_gen.py/generate_images.py等遗留脚本
- 删除import_topics.py和automation/下旧版生成脚本

修复:
- collector.py _generate_topic_with_llm不再依赖搜索结果,无搜索时LLM直接生成
- run()始终调用LLM,不再要求web_search_results非空
- 替换sources.yaml中已失效的RSS源(澎湃/虎嗅/中新网→36氪/少数派)
2026-05-21 08:02:08 +08:00
Yuzhiran Dev c8bee712d7 Phase3: 三平台封面图生成
- cover_generator.py: Pillow生成知乎/微信/小红书封面图(渐变背景+标题)
- 知乎 1200×630 蓝调, 微信 900×500 绿调, 小红书 1080×1440 红调
- creator.py 流水线增加 cover_generator 作为最终回退
- db_helper.py 新增 save_cover_to_article
- main.py 挂载 /automation/images 静态目录
- articles.py preview 接口返回 images 字段
- topics.html 预览dialog展示封面图
2026-05-20 19:12:58 +08:00
Yuzhiran Dev 40a77cad2c Phase2: 真实热点数据接入
- trends.py新增百度/微博/知乎实时热搜API抓取,LLM为fallback
- 新增 source 字段标记数据来源
- scheduler.py新增 scheduled_fetch_trends 每日03:00定时刷新
- system.py新增 POST /api/system/trends/run 手动触发端点
- system.py modules/status 加入热点趋势模块
- index.html triggerModule 加入 trends 触发按钮
2026-05-20 19:07:35 +08:00
Yuzhiran Dev 09da2f9dc4 Phase1: 效果数据真实化
- 替换scheduler.py中假随机数metrics_sync为知乎API自动获取
- 新增 POST /api/metrics/zhihu-fetch 知乎公开数据API端点
- metrics.html新增「数据录入」tab:手动录入表单+已有数据列表+知乎自动获取
- gitignore清理已跟踪的生成文件(outlines/research/images/cache)
2026-05-20 19:04:35 +08:00
Yuzhiran Dev eb800c5acc Ignore generated pipeline artifacts (outlines, research, images, search cache) 2026-05-20 18:31:44 +08:00
Yuzhiran Dev 9a328323c0 Filter outline markers in writer, add min-height to preview dialog 2026-05-20 18:11:32 +08:00
Yuzhiran Dev bf38125362 Fix compliance optimizer timeout: 600s -> 1800s to match other pipeline steps 2026-05-20 17:02:36 +08:00
Yuzhiran Dev 2244736318 Fix preview: keep article title and tags, adjust scroll height 2026-05-20 15:37:26 +08:00
Yuzhiran Dev 63f074e4df Fix preview dialog scroll & preserve HTML structure on edit save 2026-05-20 15:18:48 +08:00
Yuzhiran Dev 0a8fbda4fd Fix calendar filter, module triggers, API cleanup, consolidate get_current_admin, fix LLM schema 2026-05-20 14:15:00 +08:00
Yuzhiran Dev 498165440f Add platform config website_url, admin tab, fix writer DB config fallback, add trigger endpoints 2026-05-20 09:38:56 +08:00
Yuzhiran Dev 55e5f3d166 Fix topics mobile card list pagination: use paginatedTopics instead of filteredTopics 2026-05-19 08:28:56 +08:00
Yuzhiran Dev 1c78828681 Update PROGRESS.md (v16) 2026-05-19 07:45:18 +08:00
Yuzhiran Dev 3dce54b359 Fix writer max_tokens (500→1000) for titles/tags, fix preview scrollbar height 2026-05-19 07:44:56 +08:00
Yuzhiran Dev 0897074d40 Update PROGRESS.md with 2026-05-18 work summary (v16) 2026-05-18 23:53:49 +08:00
Yuzhiran Dev 671cec58fa Fix preview platform switching, add stale task cleanup on startup 2026-05-18 23:38:30 +08:00
Yuzhiran Dev 7b4e52743b Fix pagination: all pages default to 10 per page, add total counts, fix tasks pagination position and use client-side slicing 2026-05-18 22:59:03 +08:00
Yuzhiran Dev 894e53caef Add intermediate progress update for running tasks 2026-05-18 22:41:31 +08:00
Yuzhiran Dev f427aea1b3 Fix task status stuck at 'running': use new DB session in thread, add frontend auto-polling 2026-05-18 22:37:59 +08:00
Yuzhiran Dev 33766a396d Fix topic preview: add missing edit/save methods, fix scrollbar, strip tags from preview body 2026-05-18 19:40:26 +08:00
Yuzhiran Dev a09e7e6671 Add pagination to admin management tabs (cases/categories/sources/orgs) 2026-05-18 19:18:09 +08:00
Yuzhiran Dev 7169ddb678 refactor: writer.py 移除文件系统写入代码,HTML 仅持久化到数据库
删除 RELEASE_DIR、release_dir、out_path.write_text 等文件系统相关代码,
save_html 改为仅调用 save_article() 写入 articles 表。
避免后期维护时文件系统和数据库双源不一致的问题。
2026-05-18 08:29:08 +08:00
Yuzhiran Dev 279dc5b894 fix: writer.py 生成的 HTML 未写入数据库导致预览和合规优化均取不到内容
save_html 在写文件后新增 save_article() 调用,将 HTML 持久化到 articles 表,
使预览 API 和 compliance_optimizer 能从 DB 正常读取文章内容
2026-05-18 08:18:32 +08:00
Yuzhiran Dev 52564ad036 fix: 今日新增筛选统计不准 + LLM提示词动态当前日期 + 微信配图按选题生成
topics.html:
- 今日新增筛选时全量拉取 allTopics 用于保持 stats 统计正确,todayTopics
  存储服务端日期过滤结果
- filteredTopics 对 'today' 返回 todayTopics,不按不存在的 status 过滤

writer.py/research.py/outline.py:
- 所有 LLM 提示词注入今天的动态年月日(datetime.now)
- 禁用过时数据的年份改为动态 {当前年-1}-{当前年}
- 每个论点必须配真实最新案例+数据来源

writer.py WeChat 配图:
- 从 null placeholder 改为动态 SVG,展示选题标题+领域
- 标题自动换行(24字/行),附蓝色装饰条 + 渐变背景
2026-05-18 06:25:47 +08:00
Yuzhiran Dev bb50d5d925 fix: 今日新增筛选filteredTopics未处理'today'导致始终为空,状态筛选改为全量拉取保统计准确
- filteredTopics 对 filterStatus='today' 直接返回 this.topics(服务器已按日期过滤),避免按不存在的 status 再次过滤导致空列表
- fetchTopics 改为只有 'today' 走服务端 ?today=true;其他状态仍然全量拉取后客户端过滤,保证 statusStats 统计按钮数字准确
- 保留 watch 移除(用户能自由清除筛选)
2026-05-18 06:14:15 +08:00
Yuzhiran Dev a46fedabb5 fix: 选题页状态过滤器改用服务端过滤,移除watch覆写URL参数导致无法清除筛选的问题
- fetchTopics 根据 filterStatus 发送 status/today 参数到后端,而非全量拉取后客户端过滤
- 移除 watch.topics 处理器,解决 URL 参数反复覆写用户筛选操作的问题
- 今日新增(?today=true)和服务端 status 参数均走 API 过滤
2026-05-18 06:08:33 +08:00
Yuzhiran Dev 39719354fb perf: 全链路 LLM 提示词优化 + 微信公众号配图改为 base64 内联
- research.py: 提示词增加热点关联/独特观点储备/市场价值判断/平台搜索趋势
- outline.py: 增加反常识洞察/平台推荐优化/每章市场价值产出要求
- writer.py _expand_section: 增加独特观点/热点时效/专业简洁/平台推荐友好要求
- writer.py _optimize_title: 各平台补充搜索热词利用/情绪感召/参考真实爆款语气
- writer.py wechat配图: placeholder.jpg 改为 base64 内联 SVG(带相机图标+提示文案),预览可渲染,复制即用
2026-05-18 05:49:50 +08:00
Yuzhiran Dev 41b0f694ee feat: 平台配置表扩展配图/字数字段,微信公众号正文插入配图,合规检查从DB读规则
- PlatformConfig模型新增requires_image、image_count_min/max、image_width/height、min_words/max_words
- schemas.py同步PlatformConfigBase/Create/Update/Response新字段
- initial_data.py为三大平台填充初始值(微信需配图、字数800-1500等)
- database.py添加新列ALTER TABLE迁移
- platforms.html重写编辑弹窗(正确字段名+配图/字数设置)
- writer.py微信公众号文章正文h1后插入<img>占位
- compliance_checker.py接受platform_config参数,从DB读取规则替代硬编码
- compliance_optimizer.py启动时加载DB平台配置传入checker
2026-05-17 23:08:43 +08:00
Yuzhiran Dev 5674114599 perf: 多平台文章不再每个平台独立LLM改写,改为生成一篇通用文章后仅做格式排版适配 2026-05-17 22:57:11 +08:00
Yuzhiran Dev dc531460ea fix: 小红书文章无正常内容(LLM推理文本污染)、模块列表不匹配、脚本独立运行缺org_id列迁移 2026-05-17 22:52:05 +08:00
Yuzhiran Dev eb472d232e fix: 仪表盘概览标题颜色过浅改用CSS变量;模块状态列表从3个扩展至6个与定时任务数匹配 2026-05-17 17:01:14 +08:00
Yuzhiran Dev f2d778b5ce fix: 脚本独立运行时缺少init_db(),导致Topic表org_id列不存在,创作按钮点击后生成文章失败 2026-05-17 15:37:24 +08:00
Yuzhiran Dev 2b7935b408 fix: 补充H5移动端隐藏el-table样式,修复选题/文章页桌面表和移动端卡片同时显示的问题 2026-05-17 15:15:11 +08:00
Yuzhiran Dev 2852b6ef06 chore: 更新信息源配置(移除失效源,新增web_search和RSS源)及搜索缓存 2026-05-17 10:20:42 +08:00
Yuzhiran Dev d32fc05f4f refactor: 统一CSS设计系统 — 移除各页面重复内联样式,改用theme-modern.css自定义属性 2026-05-17 10:09:56 +08:00
Yuzhiran Dev 9c37c9a574 feat: Phase 4 多租户隔离 + 四阶段升级测试 + CSS 统一化
Phase 4: org_id 注入 JWT/API 过滤/组织管理 CRUD/前端组织列
测试: tests/test_phase_upgrades.py 97项全覆盖
CSS: theme-modern.css 共享 mobile-card-list/status-dot/search-bar 等模式
修复: initial_data.py LLM配置 NOT NULL 约束, TopicResponse 含 org_id
2026-05-17 06:56:53 +08:00
Yuzhiran Dev 301dc3e438 feat: 添加 LLM API 并发控制规则 (并发2, ≤60次/分钟) 2026-05-16 10:56:58 +08:00
Yuzhiran Dev fef435cc78 feat: 审查流程优化+采集定时调度+全链路LLM提示词升级
- 审查:移除 manual_review,改为迭代LLM修复(最多3次),合规分回写Topic
- 调度:scheduler 新增话题采集定时任务 scheduled_collect (01:30)
- 提示词:全链路8文件≈24个提示词升级,增强SEO/平台推荐/真人感
2026-05-14 21:52:02 +08:00
Yuzhiran Dev 1115223066 docs: 更新 PROGRESS.md 进度,扩展日志类型下拉
- PROGRESS.md 更新:articles 表迁移、合规审查重构、流水线流程说明
- logs.html 下拉框从 3 种扩展为 9 种日志类型(含研究/大纲/写作/发布/通知/趋势)
2026-05-13 18:24:25 +08:00
Yuzhiran Dev 233e23016c feat: 内容数据迁移至数据库,合规审查全链路打通
- 文章 HTML 存储从文件系统迁移至 articles 表,删除 releases 目录
- 合规审查从 DB 读取 HTML,审查结果写回 DB,通过后自动推进至待发布
- 新增 todayCount 筛选按钮,与系统概览统计数据一致
- 全屏预览修复:提升 z-index 超过侧边栏,添加退出全屏/关闭按钮
- 统一 '优化' → '审查' 命名,消除前后端术语不一致
- 调度器创作完成后自动触发审查(生成 → 审查 → 待发布)
- 清理旧备份/调试文件、过期大纲和研究笔记
2026-05-13 17:33:56 +08:00
lt bc6a302e59 feat: 优化选题/任务/日志页面布局并打通任务系统
- topics.html: 重构布局(page-header模式),创作改为走 /api/tasks/run-creator 任务系统
- tasks.html: 重试功能实现,调用 /api/tasks/run-creator 重新提交创作
- logs.html: 统一布局风格
- 三个页面添加 min-height / overflow-x / 统一间距
- backend/run.sh: 修复入口为 app.main:app
2026-05-09 19:58:49 +08:00
lt 25694db33b chore: 清理未使用的代码文件和备份
- 删除 backend/main.py (已由 app/main.py 替代)
- 删除 backend/api/ 和 backend/core/ (已由 app/api/ 和 app/core/ 替代)
- 删除 backend/static 符号链接
- 删除前端测试/调试页面
- 删除未引用的 vendor 子目录 (element-plus/, vue/, axios/)
- 删除所有 .bak 备份文件
2026-05-09 19:43:49 +08:00
lt 71cb4c35a8 chore: 清理 Docker 相关文件并优化前端布局
- 删除 Docker 相关文件 (docker-compose, Dockerfile, nginx.conf, init.sql 等)
- 优化 platforms.html 卡片布局和响应式样式
- 优化 users.html 格式和移动端卡片设计
- 优化 admin.html 页面结构和表格布局
- 修复各页面 min-height 和溢出问题
- 更新导航组件样式
2026-05-09 19:41:59 +08:00
lt e77a1aa4d9 fix(metrics): 修复 recommend-topics API 错误处理
- 添加 try-except 捕获空数据导致的聚合查询错误
- 添加 logging 导入用于错误日志记录
- 修复 avg_engagement/max_views 类型转换问题
- 新增 test_full_api.py 全功能测试脚本
- 所有 29 项 API 测试通过 (100%)
2026-05-08 23:53:55 +08:00
lt 526278589b feat: 完善前端页面 - 新增数据分析、素材库、创作任务、平台配置页面
- 新增 metrics.html: 数据分析页面 (Dashboard, 趋势图, 平台对比, 选题推荐)
- 新增 assets.html: 素材库页面 (上传/管理/预览/标签)
- 新增 tasks.html: 创作任务页面 (任务列表/进度/详情)
- 新增 platforms.html: 平台配置页面 (知乎/微信/小红书格式规则)
- 更新导航组件: 添加新页面入口, 适配 H5 底部导航
- 修复 calendar.html: 使用本地 Vue/ElementPlus 资源
- 修复 assets.py: db.func.count -> sqlalchemy.func.count
- 新增 test_api_unit.py: 后端 API 单元测试
- 新增 test_frontend.sh: 前端页面完整性测试

PC/H5 双端适配, 所有页面统一使用 navbar + navigation 组件
2026-05-08 23:35:26 +08:00
lt cf5103bbca feat: 全面升级项目架构 - PostgreSQL迁移 + 配置化改造
主要变更:
- 数据库: SQLite → PostgreSQL (yzr_nr)
- 选题系统: 硬编码字段 → 配置化 (TopicField/TopicConfigField/TopicStatusConfig)
- 新增模型: ContentCalendar, ContentMetrics, MediaAsset, PlatformConfig, ContentTask
- 新增 API: topic-config, calendar, metrics, assets, tasks, platform-config
- 数据迁移: 现有选题数据迁移到新 schema (field_id/tags/custom_data/scoring_data)
- 初始化数据: 10个领域, 5种状态, 3个平台配置

服务运行: http://localhost:8001
默认账号: admin / admin123
2026-05-08 18:26:01 +08:00
lt ac48304532 fix(navigation): 纯DOM注入方案,彻底避开Vue渲染问题
- installNavigation 改为直接创建/插入导航DOM
- 自动从 Vue 实例提取 isAdmin、currentPage、redirectToPage
- 不再依赖 Vue createElement 或组件渲染
- 支持移动端/PC端自适应
2026-05-08 15:28:01 +08:00
lt c13d8c29aa fix(navigation): 改用原生DOM操作,彻底解决h函数问题
- 放弃Vue h函数,直接document.createElement创建导航栏
- mounted生命周期中渲染侧边栏和移动端底部导航
- 原生JS绑定点击事件,确保功能正常
- 避免Vue3 prod版本中render函数的参数问题
2026-05-08 14:58:28 +08:00
lt df86e01cd2 fix(navigation): 增强移动端底部导航样式和调试
- mobile-nav 背景改为蓝色(#1890ff),文字白色,便于确认渲染
- 增加渲染日志(侧边栏/移动端项目数量)
- 确保所有页面都使用同一组件,统一显示
2026-05-08 13:36:28 +08:00
lt 9147d5e679 feat(frontend): 抽离页眉为公共组件;修复导航点击事件
- 新增 navbar-component.js:固定页眉,统一标题、用户信息、退出按钮
- 重构所有页面(index/topics/logs/admin/users)使用 navbar-component
- 清理原有 navbar 相关样式,避免冲突
- 导航组件增加 main-content padding-top 自动调整
- 修复导航按钮点击事件(确保  触发)
- 导航组件样式强应用,解决遮挡和布局问题
2026-05-08 13:22:12 +08:00
lt 2220d7b981 fix(navigation): 统一 redirectToPage 方法;修复内容区域宽度
- 各页面 redirectToPage 统一为直接跳转 page 参数
- 组件样式增加 main-content margin-left 避免内容被侧边栏遮挡
- 确保固定侧边栏与主内容布局正确
2026-05-08 12:42:03 +08:00
lt c85320ae72 fix(navigation): 修复布局偏移和事件跳转问题
- 移除 .navigation-wrapper 的 flex/min-height 布局干扰
- 确保 main-content 不受侧边栏占位影响
- 优化事件处理,增加点击日志
- 修复 admin 导航页面名称不一致问题
2026-05-08 12:30:49 +08:00
lt beb2cf2473 debug(frontend): 添加导航组件详细日志,便于问题排查
- 增加 mounted 生命周期日志
- 增加 installNavigation 和样式注入日志
- 在各页面注入运行态调试代码
- 优化 installNavigation 容错(fallback 直接注册)
- 添加最小测试页 test-minimal.html
2026-05-08 11:37:32 +08:00
lt ef168e3d90 feat(frontend): 公共导航组件完整实现
- 组件改为render函数,避免模板编译器依赖
- 自动注入样式,无需页面额外CSS
- 自适应布局:PC固定侧边栏,H5底部导航
- 所有页面统一使用,admin权限动态控制
- 自动调整main-content边距,防止遮挡
2026-05-08 11:03:33 +08:00
lt 5587fa0bce fix(navigation): 使用render函数替代template,兼容prod版Vue
- 重写组件为render函数实现,避免编译器依赖
- 优化按钮生成逻辑,使用JS数组map
- 修复样式注入时机和CSS冲突问题
- 确保app实例化后调用installNavigation进行注册
2026-05-08 10:57:23 +08:00
lt b8d9e0c209 refactor(frontend): 抽离公共导航组件,消除各页面重复代码
- 创建 navigation-component.js:统一的PC左边栏 + H5底部导航组件
- 重构 topics.html、logs.html、admin.html、users.html、index.html
- 删除各页面重复的 sidebar 和 mobile-nav HTML 结构
- 删除重复的导航样式定义,由组件统一提供
- 修复 component 插入重复的问题,确保每个页面只插入一次

现在修改导航只需更新组件文件,无需改动每个页面,提升维护性。
2026-05-08 10:36:51 +08:00
lt 284b18e5fc feat: 添加自动化数据目录与可持续性主题数据集 2026-05-08 09:26:46 +08:00
lt 0317a8f42f chore: 移除数据库文件跟踪,避免敏感数据入库 2026-05-08 09:26:13 +08:00
lt df5a9db3ad feat: 管理员页面整合与侧边栏导航优化
- 完成系统管理页面与导航整合
- 在 users.html/topics.html/logs.html 侧边栏与移动导航添加系统管理入口
- 创建 admin.html 管理页面(案例/任务日志/LLM配置/系统配置)
- 新增核心模块:collector.py(数据采集器)、scheduler.py(任务调度器)
- 新增脚本:collector_db_integration.py(采集器数据库整合)
- 更新项目文档并验证路由注册
2026-05-08 09:26:06 +08:00
lt 31d6306e3b feat: 数据源统一与前端预览修复
=== 后端核心 ===
- db_helper: 统一数据库访问抽象层
- system.py API:
  * 参数绑定修复: 使用 Body(embed=True) 接收 JSON
  * 添加请求日志记录
- sync.py: 仅导出 DB→JSON(备份)

=== 合规与流水线 ===
- compliance_checker: 标签检测优化(仅检查容器,避免正文误判)
- 所有脚本(creator/collector/writer/outline/research等)统一使用数据库

=== 前端改版 ===
- topics.html:
  * 创作/优化 API 路径修正
  * 预览弹窗重设计:多平台并行加载、富文本显示、单复制按钮
  * 状态中文映射(getStatusLabel)
  * 认证检查
- 所有 HTML 静态资源路径修复(移除 /static 前缀)

=== 数据一致性 ===
- 数据库状态统一为英文(pending/review/ready/published)
- 前端显示中文化映射

已测试 A03 流水线完整通过。
2026-05-07 11:25:42 +08:00
lt 8dd19a2179 style: unify layout across pages; add sidebar and mobile nav to admin page
- admin page:
  - Add sidebar navigation (system overview, topics, logs, users, admin)
  - Add mobile bottom navigation
  - Update title to "系统管理"
  - Add redirectToPage helper for navigation
- Ensure all admin pages (cases, tasklogs, llmconfigs, systemconfigs) remain functional
- Unify button labels: mobile nav uses "系统管理" for admin
- Minor: adjust navbar title
- No changes to other pages (they already had unified structure)
2026-05-06 22:06:21 +08:00
lt 8920a337e0 fix: 修复前端空白页与API调用错误,统一创作流程
- 前端
  - topics.html: 恢复结构并修复Vue初始化问题
  - 调整创作按钮逻辑:仅已发布选题禁用
  - 修正API端点与payload格式(generate/optimizer/publishing使用topic_ids数组)
  - 移除ElementPlus图标模块依赖,使用全局构建
  - admin.html: 回退至Options API版本,解决this上下文错误
- 后端
  - 注册/api/generate/run路由
  - 简化generate逻辑:允许非已发布选题重创作,更新状态为“待审查”
  - 统一logs查询接口支持query参数
  - 修复admin用户管理字段引用
  - 系统概览返回{ stats }结构
- 静态资源整理
  - 删除冗余element-plus-icons、重复CSS/JS、图标文件
  - 正确放置Vue和ElementPlus全局文件
- 数据库与数据
  - 补充30个案例
  - 更新选题状态与初始数据

验证:所有页面可访问,API认证与端点正常工作。
2026-05-06 21:44:56 +08:00
lt bd381ff65a feat: 完成系统管理页面与导航整合\n\n- 在 users.html/topics.html/logs.html 侧边栏与移动导航添加系统管理入口\n- 创建 admin.html 管理页面(案例/任务日志/LLM配置/系统配置)\n- 更新项目文档并验证路由注册 2026-05-02 10:43:34 +08:00
lt 53c3948cad feat: 增加案例/任务日志/LLM配置/系统配置管理功能\n\n- 扩展案例数据至30个\n- 新增Case, TaskLog, LLMConfig, SystemConfig的API路由\n- 完善initial_data导入脚本\n- 创建前端管理页面admin.html,支持完整增删改查\n- 更新导航菜单,增加系统管理入口 2026-05-02 09:13:44 +08:00
lt 511d40d40c feat: add Case, TaskLog, LLMConfig, SystemConfig models 2026-05-01 22:56:06 +08:00
lt bdcf32dce8 feat: add Case, TaskLog, LLMConfig, SystemConfig models 2026-05-01 14:33:00 +08:00
lt aa76f8203f optimize: refine LLM prompts for conciseness and reduce verbosity; reduce max_tokens to 1000 2026-05-01 11:53:02 +08:00
lt 601fc5d239 refactor: remove publisher, add auto DB sync, clean backups, update docs 2026-05-01 10:05:50 +08:00
lt 98c6c22a26 remove: delete obsolete frontend-vue project (no longer aligned with current frontend) to prevent confusion 2026-05-01 09:52:28 +08:00
lt 2cbf2909f8 remove: delete obsolete backend/static directory 2026-05-01 08:05:54 +08:00
lt e1613d2af9 fix: restore frontend to dynamic version (undo incorrect sync from outdated backend/static) 2026-05-01 07:51:16 +08:00
lt 94295e1f74 refactor: unify frontend source; sync latest UI changes and update project completion report 2026-05-01 07:32:55 +08:00
lt cfb60d7aae UI优化完善初版 2026-05-01 06:48:21 +08:00
lt e1ba31afda 版本1.0.4 - 发布前准备
- 修复system.py缩进错误
- 优化前端页面样式(待重构)
- 改进API接口结构
- 完善文档和自动化脚本
- 平台基本功能稳定运行
2026-04-29 09:32:43 +08:00
lt 0a31ae09af fix: 数据库配置和缺失导入
- 切换到 SQLite(app/database.py)避免外部依赖
- system.py: 添加 func 导入
- main.py: 导入改为 app.database.init_db
- 前端 topics.html: Vue 应用结构修复
- 后端导入全面修正(绝对导入)

版本: v1.0.3 (完整可运行版)
2026-04-27 23:10:06 +08:00
lt 6f0713953a fix: 修复后端导入路径问题以适配新工作区
- 统一使用绝对导入(backend 目录在 PYTHONPATH)
- 修改 main.py、api 模块、core/security 的导入
- 移除 generate 模块(缺失 GenerateTask 模型)
- 修复 database.py 导入 Base
- backend/run.sh 添加 PYTHONPATH 设置
- 前端 topics.html 修复 currentUser 初始值和 Vue 结构
- 添加前端代码语法检查脚本

版本: v1.0.3 (导入修复版)
2026-04-27 23:03:53 +08:00
lt d719181834 fix(ui): 修复 Vue 应用初始化语法错误
- currentUser 初始化改为 { username: '' }(之前遗漏空字符串)
- 通过 node --check 验证语法正确
2026-04-27 22:06:17 +08:00
lt 953b74bf52 fix(ui): 修复空用户显示和 Vue 启动问题
- currentUser 初始值改为空对象,避免 null 访问错误
- template 中添加空值保护:currentUser.username ? ... : '?'
- 确保 Vue 应用能正常挂载
2026-04-27 21:51:54 +08:00
lt 0a77e67200 fix(ui): 重构 topics.html Vue 应用结构
- 完全重写 script 部分,确保 methods 和 mounted 正确闭包
- 修复 Vue 表达式未解析的问题
- 添加调试日志
- 确保移动端和桌面端都能正确挂载
2026-04-27 21:30:44 +08:00
lt 03287697c3 fix(ui): 修复移动端数据加载显示
- 为 topic-card-list 添加 v-if 条件渲染
- 添加空状态提示
- 增强调试信息(console.log)
- 确保移动端卡片列表正确显示
2026-04-27 21:20:28 +08:00
lt 6cb273a8a9 fix(ui): 修复 H5 数据加载和导航跳转
- 修复 redirectToPage 路径拼接问题
- 增强 fetchTopics 错误提示(显示错误消息)
- 添加加载状态提示(首次加载)
- 确保 mounted 中 URL filter 参数正确解析
2026-04-27 20:22:20 +08:00
lt 4647921e01 fix(ui): 修复移动端卡片 Vue 结构和显示逻辑
- 恢复 clean 版本后重新添加移动端适配
- 修正 methods 结构,移除重复方法
- 移除内联 display:none,用纯 CSS 控制
- 添加 getStatusType 方法供卡片使用
2026-04-27 19:57:05 +08:00
lt 54c84b6681 feat(ui): 移动端适配优化 (logs, users)
- logs.html: 移动端控制栏垂直布局,日志卡片优化
- users.html: 新增移动端用户卡片列表,隐藏表格
- 统一小屏幕字体和间距
2026-04-27 19:36:03 +08:00
lt 33133430f8 feat(ui): 移动端卡片布局优化
- 新增移动端卡片列表 (≤768px)
- 表格在小屏幕自动隐藏
- 操作按钮在移动端垂直排列
- 减少表格字体/内边距以节省空间
2026-04-27 19:14:33 +08:00
lt d63074be71 chore: 更新项目路径到新工作区
- 所有自动化脚本、测试文件路径从旧工作区迁移到 /root/openclaw-workspace/projects/yu-zhi-ran/
- 保持项目独立于 OpenClaw 工作区管理
- 后端 run.sh 路径更新
2026-04-27 18:49:32 +08:00
lt 75ae5ae01f style(frontend): 减小操作列宽度
- 操作列宽度从 280 调整为 220,节省空间
2026-04-27 18:46:46 +08:00
lt 9ced46c296 fix(frontend): 菜单跳转和日志默认日期
- 修改 index.html 菜单为页面跳转(redirectToPage)
- 移动端导航同样修复
- logs.html: logDate 默认值为当天
- topics.html: 支持 URL filter 参数自动筛选

版本: v1.0.2
2026-04-27 16:55:15 +08:00
369 changed files with 30247 additions and 38069 deletions
+12
View File
@@ -46,6 +46,7 @@ sessions/
.cache/
# Project specific
automation/backups/
automation/data/drafts/*
!automation/data/drafts/.gitkeep
automation/data/releases/*
@@ -54,4 +55,15 @@ automation/data/published/*
!automation/data/published/.gitkeep
content/published/*
!content/published/.gitkeep
automation/data/outlines/
automation/data/research/
automation/data/sustainability_raw/
automation/data/search_cache.json
automation/data/trends.json
automation/data/sustainability_cases.json
automation/images/
data/*.db
*.db
automation/data/mcp_*.json
automation/data/*_session.txt
research/
@@ -0,0 +1,10 @@
{
"sessionID": "ses_12cdfe924ffebqMk2WsK4OQD87",
"updatedAt": "2026-06-17T01:09:35.927Z",
"sources": {
"background-task": {
"state": "idle",
"updatedAt": "2026-06-17T01:09:35.927Z"
}
}
}
@@ -0,0 +1,10 @@
{
"sessionID": "ses_13069b590ffefKhsLBe5CKeIx4",
"updatedAt": "2026-06-16T08:46:00.608Z",
"sources": {
"background-task": {
"state": "idle",
"updatedAt": "2026-06-16T08:46:00.608Z"
}
}
}
@@ -0,0 +1,11 @@
{
"sessionID": "ses_1dede8a7affeG6DxtfPUOviXrp",
"updatedAt": "2026-06-17T08:18:52.213Z",
"sources": {
"background-task": {
"state": "active",
"reason": "2 background task(s) active",
"updatedAt": "2026-06-17T08:18:52.213Z"
}
}
}
+115
View File
@@ -0,0 +1,115 @@
# AGENTS.md
## Stack
- **Backend**: FastAPI 0.104 + SQLAlchemy 2.0 + PostgreSQL 16 (`yzr_nr`)
- **Frontend**: Vue 3 (CDN, no build step) + Element Plus — static HTML served by FastAPI
- **Auth**: JWT (`python-jose` + bcrypt), default admin `admin/admin123`
- **Scheduler**: APScheduler (daily cron: 01:10 trends, 01:30 collect, 02:00 generate, 03:00 optimize, 05:00 sources, 06:00 metrics)
- **Task DB**: `TaskLog` (module_id/status/error_trace/result_data/triggered_by) + `TaskConfig` (params/enabled/schedule)
- **LLM**: Multi-provider (nvidia primary, opencode-go fallback). API keys in DB (managed via admin UI) or `.env`.
## Commands
```bash
# Start/stop/restart server (systemd service, auto-restart on failure)
systemctl start yzr-platform.service # 启动
systemctl stop yzr-platform.service # 停止
systemctl restart yzr-platform.service # 重启
systemctl status yzr-platform.service # 查看状态
journalctl -u yzr-platform.service -n 50 --no-pager # 查看日志
# Fallback: start without systemd (用于调试)
cd /root/openclaw-workspace/projects/yu-zhi-ran
setsid ./start-platform.sh 8001
# Run full integration test
cd /root/openclaw-workspace/projects/yu-zhi-ran && python3 tests/test_new_features.py
# Run specific scripts (from project root)
python3 scripts/collector.py
python3 scripts/creator.py --topic-id B02
```
## Project layout
```
yu-zhi-ran/
├── platform/
│ ├── backend/app/main.py # FastAPI entry, mounts frontend at /
│ ├── backend/app/api/*.py # 21 API routers
│ ├── backend/app/core/ # nvidia_client.py, scheduler.py, etc.
│ ├── backend/app/models.py # SQLAlchemy models (593 lines)
│ ├── backend/app/schemas.py # Pydantic schemas (504 lines)
│ ├── backend/app/database.py # PG env config + ALTER TABLE migrations
│ ├── backend/app/initial_data.py
│ └── backend/.env # API keys, DB creds
├── scripts/ # creator.py, writer.py, collector.py, etc.
├── tests/test_new_features.py # 33-test integration suite
└── PROGRESS.md # Single source of truth for project status
```
## Gotchas & conventions
### Server
- Shell timeout kills background processes — always use `setsid` to start
- Env in `platform/backend/.env`, loaded via `dotenv` at each module level
### Database
- `init_db()` in `database.py` runs ALTER TABLE migrations at startup (PostgreSQL)
- `USE_POSTGRES=false` falls back to SQLite (used in tests)
- Models have timezone-aware `DateTime(timezone=True)` columns
### Content quality architecture (三平台差异化)
**核心原则:三平台不再共享同一篇 markdown,各自独立展开。**
- `writer.py` 对 zhihu/wechat/xiaohongshu 分别调用 `generate_platform_markdown(platform)`,各走不同的 `section_expansion_{platform}` prompt
- 知乎:数据分析深度(400-800字/节),用「你」称呼读者
- 公众号:个人叙事对话感(300-500字/节),用「我」口吻
- 小红书:精炼干货(100-200字/节),直接给方法,可用 emoji
**字数配置:**
- 知乎 min 3000 / max 8000
- 公众号 min 2000 / max 4000
- 小红书 min 400 / max 1000
- 存于 `platform_configs` 表,`min_words` / `max_words` 字段,后台「平台管理」可改
**AI 套话检测:**
- DB 存储:`content_clean_rules` 表,`rule_type='ai_telltale'`
-`config_items.py` 中的 `DEFAULT_CONTENT_CLEAN_RULES` 种子数据
- `compliance_checker.py` 运行时从 DB 加载(`_load_ai_telltales()`),DB 不可用时回退代码硬编码列表
- 后台「配置管理→敏感词/清理规则」可增删改(操作 `ContentCleanRule` 表)
### Prompts (`prompt_configs` table)
- **DB 是唯一来源**,修改 prompt 直接 `UPDATE prompt_configs SET content = '...' WHERE key = '...';`
- 代码 `scripts/prompt_loader.py` 中的 `_PROMPT_DEFAULTS` **仅作种子数据**,第一次写入后就不再生效
- 新增 prompt:在 `_PROMPT_DEFAULTS` 添加定义 → 重启后自动补入 DB(仅当该 key 不存在时)
- 修改 prompt:**直接改 DB,不要改代码**(除非要更新种子供新环境用)
- DB 不可用时回退代码默认值(仅紧急模式)
- 三平台独立 section_expansion 提示词 key: `section_expansion_zhihu` / `section_expansion_wechat` / `section_expansion_xiaohongshu`
- 标题提示词去套路化,使用自然语言(不像 AI 写的 prompt)
### Prompt quality checks (`compliance_checker.py`)
- 软质量问题(AI套话/人称混用/阅读体验)只降分、不挡流程(`passed=true`
- 硬合规问题(敏感词/法律/品牌)扣分多且阻塞流程
- AI 套话从 DB `content_clean_rules(rule_type='ai_telltale')` 加载,后台可动态管理
- 人称检查修正:去掉「大家」误报,仅检查「你们」和「你」混用
### LLM
- `call_llm()` in `core/nvidia_client.py` — reads active provider from DB `LLMConfig.is_active`, API key from env
- DeepSeek reasoning models return `reasoning_content` (thinking) + `content` (answer). `call_llm` prefers `content`, falls back to tail of `reasoning_content`
- `max_tokens` must be generous (≥500 for tags/titles, ≥2000 for article content) — reasoning models consume tokens for thinking
- Schema (`LLMConfigResponse`) must include `provider`, `base_url`, `api_key` fields or they get silently dropped from API responses
### Frontend
- No npm build step — edit `.html` files directly
- H5 mobile nav only created when `window.innerWidth <= 768`
- `navigation-component.js` + `navbar-component.js` injected as Vue components
- For date filters on topics, use backend `?today=true` (server-side `date.today()`) — client-side `new Date()` gives UTC which differs from Asia/Shanghai by 8h
### Tests
- `test_new_features.py` starts its own uvicorn on port 18503, runs against SQLite
- Run from project root: `python3 tests/test_new_features.py`
### Project status
- PROGRESS.md is the single truth source for progress — update it after any significant task
- `archive/` dir keeps historical/outdated docs with `YYYY-MM-DD` date suffix
+666
View File
@@ -0,0 +1,666 @@
# 宇之然 · 项目进度总览
> 本文件为项目进度唯一真理源,所有进度信息以此为准。
> 其他文档中的进度描述一律以本文为准。
**最后更新**2026-06-23 (v25)
---
## 一、项目总览
| 项目 | 内容 |
|------|------|
| 品牌 | 宇之然 — 科技沟通万物,愿世间百态回归自然 |
| 技术栈 | FastAPI + SQLAlchemy + PostgreSQL 16 + Vue 3 (CDN) + Element Plus |
| 平台服务 | 运行中 (端口 8001) |
| 策略阶段 | 全球-本土对比研究(2026-04-15 升级) |
| Git 提交 | 170 commits · 4 tags (v1.0.0~v1.0.4) · main 分支 |
---
## 二、里程碑完成情况
| 里程碑 | 说明 | 计划 | 实际 | 状态 |
|--------|------|------|------|------|
| M1 | 项目框架搭建完成 | 2026-04-10 | 2026-04-10 | ✅ |
| M2 | 首批选题确定 | 2026-04-12 | 2026-04-10 | ✅ |
| M3 | 首篇文章发布 | 2026-04-14 | 2026-04-14 | ✅ |
| M4 | 首月发布4篇 | 2026-05-10 | 2026-06-18 | ✅ 4篇完成 |
---
## 三、发布记录
| 编号 | 标题 | 日期 | 平台 | 状态 |
|------|------|------|------|------|
| 001 | 种菜一年,焦虑降了43%:我在阳台治愈了自己 | 2026-04-14 | 知乎/微信/小红书 | ✅ 已发布 [知乎链接](https://zhuanlan.zhihu.com/p/2026998296120411553) |
| TOPIC-BBB1CC | 城市农业新趋势:东京垂直农场与上海阳台种菜对比研究 | 2026-04-21 | 知乎/微信/小红书 | ✅ 已发布 |
| A01 | 远程工作2026中国指南:从"不可能"到"可行"的路径图 | 2026-04-23 | 知乎/微信/小红书 | ✅ 已发布 |
---
## 四、模块进度
### 4.1 平台系统
| 模块 | 状态 | 说明 |
|------|------|------|
| 后端 API (auth/topics/articles/publishing/calendar/metrics/assets/tasks/platform_config/admin) | ✅ 完成 | 核心 11 个 API 模块,JWT 认证 |
| 扩展 API (cases/audit/llm_configs/system_configs/optimizer_logs/task_logs/task_configs) | ✅ 完成 | 新增案例库、审计、LLM配置、任务配置、任务运行记录模块 |
| 前端页面 (仪表盘/选题/日历/数据/素材/任务/平台/系统管理/用户/日志/文章) | ✅ 完成 | Vue 3 + Element Plus SPA |
| 数据库 (PostgreSQL 16) | ✅ 运行中 | `yzr_nr` 库 |
| 服务 | ✅ 运行中 | 端口 8001 |
| 数据库迁移 (SQLite→PostgreSQL) | ✅ 完成 | 2026-05-08 |
| PWA 离线支持 | ✅ 完成 | manifest.json + Service Worker + 离线页面 |
| articles 表 + 数据迁移 | ✅ 完成 | 48 篇文章从文件系统迁入 DB,释放文件已清理 |
### 4.2 内容生产
| 模块 | 状态 | 说明 |
|------|------|------|
| 选题库 | ✅ 完成 | 10 个旧选题 (001~010) + 20 个新选题 (4 大支柱) |
| 文章草稿 (001 系列) | ✅ 完成 | 大纲/初稿/优化版/微信版 四版齐备 |
| 配图生产 | ✅ 完成 | 10 张 SVG + 10 张 PNG,含压缩版 |
| 合规审查 | ✅ 完成 | 评分 9.2/10,引用来源补充完成 |
| 多平台发布 (001 / BBB1CC / A01) | ✅ 完成 | 知乎/微信/小红书 三平台均已发布 |
| 银发科技适配指南 | ⏳ 写作中 | drafts 中 302 行初稿 |
| F01 AI写作实战 | ✅ 已入库 | 三平台文章已存入 articles 表,待审查通过后发布 |
| F02 平台差异策略 | ✅ 已入库 | 三平台文章已存入 articles 表,待审查通过后发布 |
### 4.3 自动化系统
| 脚本 | 状态 | 说明 |
|------|------|------|
| publish_to_zhihu.sh | ✅ 可用 | 知乎自动发布 |
| publish_to_wechat_mp.sh | ✅ 可用 | 微信公众号自动发布 |
| generate_images.py / image_generator.py | ✅ 可用 | SVG + PNG 配图生成 |
| compliance_checker.py | ✅ 可用 | 合规审查(敏感词/平台规则/品牌规范) |
| compliance_optimizer.py | ✅ 重构 | 移除 manual_review,改为迭代LLM修复(最多3次),合规分回写入Topic;解硬编码 provider,改从 env 读取;关键词过滤从宽泛改为精准 |
| creator.py / writer.py / outline.py / research.py | ✅ 优化 | 全链路LLM提示词优化(SEO/平台适配/真人感) |
| collector.py / collector_db_integration.py | ✅ 可用 | 趋势采集 |
| wecom_notifier.py | ✅ 可用 | 企业微信通知 |
| db_helper.py | ✅ 扩展 | update_topic_status 支持保存 compliance_score |
| search_utils.py | ✅ 重构 | 移除 _call_mcpopencode MCP),新增 360/搜狗/微信搜索(免 API Key),百度千帆日限提升至 200 |
| opencode_search.py / mcp_search_server.py | ❌ 已删除 | opencode 搜索配额耗尽,替换为 360/搜狗/微信等免 Key 源 |
| web_search.py | ✅ 保留 | 本地缓存 + Bing 搜索(闲置备用) |
### 4.4 流水线流程
| 步骤 | 触发方式 | 说明 |
|------|---------|------|
| 内容采集 | 定时 01:30 | 热点趋势采集→生成选题建议→存入选题库 |
| 内容创作 | 手动点击 / 定时 03:30 (原 02:00) | 研究→大纲→撰写文章→合规审查→存入 articles 表 |
| 合规审查 | 手动点击 / 定时 04:30 (原 03:00) | 从 articles 表读取 draft→合规检查→LLM迭代修复(最多3次)→状态→待发布 |
| 信息源优化 | 定时 05:00 | AI评估采集类别与信息源配置,给出调整建议 |
| 指标同步 | 定时 06:00 | 同步统计数据 |
| 发布 | 手动点击 | 仅待发布状态可选 |
---
## 五、当前任务队列
### ✅ 已完成
| 任务 | 完成日期 | 备注 |
|------|---------|------|
| 审查流程优化(移除 manual_review | 2026-05-14 | 改为迭代LLM修复(最多3次),合规分回写Topic |
| 内容采集加入定时调度 | 2026-05-14 | scheduler 新增 scheduled_collect 01:30 |
| 全链路LLM提示词优化 | 2026-05-14 | 覆盖trends/topic_selector/research/outline/writer/nvidia_client/compliance 共8文件≈24个提示词,增强SEO/平台推荐/真人感 |
| 导航布局重构 | 2026-05-16 | navbar + navigation 合并为 uni-nav,单行 top-bar 自适应 PC/H510 页迁移完成 |
| 文章管理页面 (articles.html) | 2026-05-16 | 新增 articles API (list/detail/delete) + 完整管理页面,支持筛选/搜索/预览/删除 |
| CSS架构统一整合 | 2026-05-16 | reset/body/layout/card/page-header/filter/toolbar 移入 theme-modern.css86→127行),10页内联CSS总量从~660行降至~400行;preview对话框CSS归一化;删除 dead JSindex.html双style块合并为单一亮色主题 |
| Phase 1.1 配图集成到创作流水线 | 2026-05-16 | image_generator.py 支持 --topic-id 参数, DB读写图片路径; Article 新增 images JSON字段+迁移; creator.py 新增配图步骤; API GET /api/articles/{topic_id}/images; 文章页预览显示封面图 |
| Phase 1.3 统一前端体验 | 2026-05-16 | users.html 补 loading+空状态; index.html 渲染loadingStats+fetchModules错误提示; metrics.html 渲染loadingDashboard |
| Phase 2.1 发布审批 UI | 2026-05-16 | 后端 MultiPublishRequest 多平台发布 API; 前端发布确认弹窗+平台勾选 |
| Phase 2.2 日历关联文章状态 | 2026-05-16 | 后端 enrich_entry 添加 topic_status+platform_icon; 前端日历卡片显示平台图标+Topic状态标签; 修复 el-tag 缺少闭合 |
| emoji 替换为 Element Plus 图标 | 2026-05-16 | icon-components.js 注册 25 个 SVG 图标组件; 11 页 emoji → `<el-icon>` 批量替换 |
| H5 卡片布局补全 | 2026-05-16 | metrics.html 热门选题/平台对比/选题推荐三表加 H5 卡片视图 |
| Phase 3.1 平台数据对接 | 2026-05-16 | scripts/sync_metrics.py (估计算法); scheduler 新增 scheduled_metrics_sync 06:00 |
| Phase 3.2 数据看板增强 | 2026-05-16 | Chart.js 集成: 趋势折线图/状态环形图/平台对比柱状图 |
| Phase 4 多租户隔离 (JWT+API 层) | 2026-05-16 | org_id 注入 JWT payload; 12 个 API 模块添加 org 过滤; 创建选题自动继承用户 org; 管理端组织 CRUD |
| Phase 4 前端多租户 | 2026-05-16 | admin.html 新增组织管理标签页 (列表/创建/编辑/删除); users.html 增加组织列+H5卡片显示 |
| Phase 4 预置数据修复 | 2026-05-16 | initial_data.py 管理员用户添加 org_id; opencode-go LLM config 补全 user_prompt_template |
| PlatformConfig 模型字段扩展 | 2026-05-17 | 增加 requires_image/image_count_min/image_count_max/image_width/image_height/min_words/max_words; schemas/initial_data/前端表单同步; database.py 迁移 |
| 微信公众号正文配图 | 2026-05-17 | writer.py wechat 分支在 h1 后插入 `<img>` 占位 |
| 合规检查从 DB 读平台规则 | 2026-05-17 | compliance_checker.py 接受 platform_config 参数; compliance_optimizer.py 从 DB 加载平台配置传入 checker |
| 登录页居中修复 | 2026-05-18 | login.html body 添加 login-body 类 |
| 模块状态重复修复 | 2026-05-18 | system.py 重命名/去重,状态改查 jobs 而非日志文件 |
| 仪表盘"近期计划"卡片 | 2026-05-18 | index.html 新增日历 7 天预告卡片 |
| 日志/用户合并到系统管理 | 2026-05-18 | admin.html 增加用户管理+运行日志标签页;uni-nav 10→8 项 |
| 日历页增强 | 2026-05-18 | 指南横幅/即将到来列表/空状态/操作提示 |
| 任务页优化+分页 | 2026-05-18 | 6个定时任务/topic_title/STAGE_NAMES/前端分页 |
| 选题页前端分页 | 2026-05-18 | paginatedTopics computed + el-pagination |
| 后端 tasks API 改造 | 2026-05-18 | offset 参数 + topic_title 字段 |
| admin 全标签页分页 | 2026-05-18 | 案例/类别/信息源/组织/用户 5 标签统一分页(10条/页)+总数显示 |
| 选题预览修复 | 2026-05-18 | 补全 startEdit/cancelEdit/saveContent 方法;修复滚动条;strip .tags |
| 任务状态卡死修复 | 2026-05-18 | 后台线程改用独立 DB session;前端 5s 自动轮询;中间进度 30% 显示 |
| 预览平台切换修复 | 2026-05-18 | 补全 switchPlatform 方法 |
| 超时任务自动清理 | 2026-05-18 | 启动时标记运行>1h 任务为 failed;已清理 21 个卡死任务 |
| metrics 冗余统计移除 | 2026-05-18 | 删除与仪表盘重复的 4 个概览卡片 |
| writer max_tokens 提升 | 2026-05-19 | 标题/标签 max_tokens 500→1000,修复推理模型思考链占用导致输出截断 |
| 预览滚动条修复 | 2026-05-19 | 改用 height:68vh 替代 flex+calc,避免 Element Plus 对话框内滚动冲突 |
| 定时任务 DB 化 | 2026-05-22 | TaskLog 新增 module_id/error_trace/triggered_by/result_dataTaskConfig 模型新建含 params/schedule/enabledscheduler.py 全 7 个任务执行前后写 TaskRunmodules/status 从 DB 读取 |
| 平台配置弹窗修复 | 2026-05-22 | el-dialog 移入 tab 内部(与表格同级)解决响应式问题;表单字段补全 |
| AI 思考内容清洗 | 2026-05-22 | 新建 content_cleaner.py 集中管理清洗规则;writer.py/compliance_optimizer.py 统一引用;THINKING_PATTERNS 增强;strip_ai_preface 处理代码围栏块 |
| 复制正文去噪音 | 2026-05-22 | copyContent 只提取 p/h1-h4/li 元素,去 style/svg/script/img |
| platforms.html 入口合并 | 2026-05-22 | uni-nav 移除"平台"独立入口;admin.html 恢复"平台配置"tab 加启用中/全部筛选 |
| opencode_search.py 日志 | 2026-05-22 | 补 FileHandler + StreamHandler,解决管理后台显示"从未运行" |
| scheduler.json 导入修复 | 2026-05-22 | 补 import json,修复 sources(05:00) 执行时报错阻断 metrics(06:00) |
| Scheduler 日志修复(僵尸行) | 2026-05-28 | _log_task 始终 INSERT 新行,所有 _run_* 保存 log_id 后 UPDATE 同一行,消除重复 running 状态 |
| Systemd 服务化 | 2026-05-28 | yzr-platform.serviceRestart=always,崩溃自动恢复);单 worker(--workers 1)防调度器冲突;Type=exec + KillMode=control-group 防僵尸进程 |
| LLM 提供商量换 + 任务级模型选择 | 2026-05-28 | opencode-go 换 nvidia qwen3.5-397b-a17b(默认)+ sensenova deepseek-v4-flash(合规审查);llm_configs 加 is_default;所有 _run_* 方法开头调用 _set_task_llm_provider 设置 LLM_TASK_PROVIDER |
| 合规审查修复 | 2026-05-28 | compliance_optimizer.py 移除硬编码 provider;补 import os(之前导致 NameError);关键词过滤从宽泛改为精准,避免误拦正常内容 |
| 搜索提供商重构 | 2026-05-28 | 移除 opencode MCP(配额耗尽),新增 360/搜狗/微信搜索(免 Key),百度千帆日限 50→200 |
| opencode 冗余代码清理 | 2026-06-02 | 删除 opencode_search.py / mcp_search_server.py / _call_mcp / 前后端所有 opencode/MCP 引用;禁用搜索缓存定时任务 |
| 任务抽屉产出记录优化 | 2026-06-03 | drawer 产出结果 tab 优先显示日志消息(last_message),过滤 None/空值;修复 tasks.py 因 opencode 清理导致的 SyntaxError;清理 DB 中旧搜索缓存的 56 条 TaskLog + 1 条 TaskConfig |
| Hermes gateway 用户级服务恢复 | 2026-06-04 | 系统级服务 → 用户级(MemoryMax=1G 生效);删除 system 级文件;linger + default.target.wants 开机自启 |
| v-cloak 修复 Vue 模板闪烁 | 2026-06-04 | 9 页 `<div id="app">` + `theme-modern.css``[v-cloak]` 规则,消除原始模板代码闪烁 |
| **sensenova 多模型 + 模型级 rate limit** | **2026-06-04** | `LLMConfig``rate_limit`/`rate_limit_window_minutes`seed 3 模型:deepseek-v4-flash(500次/5h)、6.7-flash-lite(1500次/5h)、u1-fast(1500次/5h);进程内 rate limiter`LLM_TASK_MODEL` 环境变量实现任务级模型选择;`ai_image_generator.py` 已固定用 `sensenova-u1-fast` |
### ✅ 已完成
| 任务 | 完成日期 | 备注 |
|------|---------|------|
| GEO/SEO 结构化元数据注入 | 2026-06-09 | writer.py 的 `inject_geo_metadata()` 向 HTML 注入 JSON-LD Article schema、meta description/keywords、OG tags |
| 大纲提示词 SEO 关键词增强 | 2026-06-09 | outline.py 新增 `_extract_seo_keywords()` 从研究笔记提取关键词;outline prompt 加入 GEO 数据引用要求 |
| 搜索排名追踪 | 2026-06-09 | `SearchRanking` 模型(文章ID/关键词/排名位置/AI引用);`rank_tracker.py` 定时任务(每日 07:00)查 Bing 排名;`/api/seo/rankings` APIadmin.html 新增"搜索排名"tab |
| rank_tracker AI 引用检测 | 2026-06-18 | `_check_ai_citation()` 用 LLM 检测 Bing AI/百度 AI/Perplexity 引用 |
| admin.html 任务管理 tab | 2026-06-18 | TaskConfig 参数编辑 + TaskLog 时间轴 (el-timeline) |
| M4 第4篇文章发布 | 2026-06-18 | 发布 循环消费新物种 + 端侧AI隐私实战,累计 4 篇达首月目标 |
| 导航 bug 修复(仪表盘→index.html | 2026-06-18 | DB menu 中"仪表盘"path 从 `/``index.html`,解决点导航跳转 landing 页的问题 |
| Landing 页 OG 图片创建 | 2026-06-18 | `/automation/images/og-landing.png`1200x630 PNG62KB);之前 404 |
| Landing 页 GitHub 链接修正 | 2026-06-18 | `your-org``github.com` |
| v23 全部功能验收 | 2026-06-18 | 12 页 200 OK、org_id 隔离生效、RBAC(require_role)11路由、菜单7项正确、factory/insights 新页、dashboard 重设计 |
## 十一、外推营销系统(v24 · 2026-06-21
### 从「内容生产」到「外部推广」
**背景**:平台此前只覆盖平台内生产的内容的 SEO/GEO 优化,无法对用户已有的外部网站、公众号、小程序等做 SEO 推广。v24 新增完整的外部推广模块。
### 新增数据模型(6 张表)
| 模型 | 表名 | 说明 |
|------|------|------|
| `ExternalProduct` | `external_products` | 外部推广产品(website/article/wechat_account/miniprogram|
| `PromotionCampaign` | `promotion_campaigns` | 推广活动,关联产品和关键词 |
| `CampaignKeyword` | `campaign_keywords` | 关键词跟踪(搜索量/难度/排名)|
| `SEOAudit` | `seo_audits` | SEO 审计报告(6 维度评分)|
| `KeywordRanking` | `keyword_rankings` | 多引擎关键词排名记录 |
| `OptimizationTask` | `optimization_tasks` | AI 生成的优化建议 |
### API 端点(20 个)
| 端点 | 功能 |
|------|------|
| `GET/POST/PUT/DELETE /api/external/products` | 产品 CRUD |
| `GET/POST/PUT/DELETE /api/external/campaigns` | 活动 CRUD |
| `GET/POST/PUT/DELETE /api/external/keywords` | 关键词 CRUD |
| `GET /api/external/audits` | SEO 审计记录列表 |
| `GET /api/external/audits/{id}` | 审计详情(含优化建议)|
| `GET /api/external/rankings` | 关键词排名列表 |
| `GET /api/external/rankings/overview` | 排名概览统计 |
| `GET /api/external/optimization-tasks` | 优化建议列表 |
| `PATCH /api/external/optimization-tasks/{id}` | 更新任务状态 |
| `GET /api/external/overview` | 外推营销总览 |
### SEO 审计脚本
`scripts/seo_auditor.py` — 自动抓取目标网站并分析:
| 维度 | 权重 | 检测项 |
|------|------|--------|
| Meta 标签 | 20% | title/description/keywords/OG tags |
| 标题结构 | 15% | H1/H2 存在性、层级连续性 |
| 内容质量 | 25% | 字数、图片 alt、关键词密度 |
| 性能 | 10% | 渲染阻塞资源、图片尺寸 |
| 链接 | 10% | 内链/外链/断链/nofollow |
| 移动端 | 20% | viewport、响应式、字号 |
审计结果自动保存到 DB,生成可追踪的 OptimizationTask。
### 关键文件变更
| 文件 | 改动 |
|------|------|
| `platform/backend/app/models.py` | 新增 6 个模型(ExternalProduct/PromotionCampaign/CampaignKeyword/SEOAudit/KeywordRanking/OptimizationTask|
| `platform/backend/app/schemas.py` | 新增 18 个 Pydantic schema 类 |
| `platform/backend/app/api/external_promotion.py` | **新建** — 20 个 API 端点 |
| `platform/backend/app/main.py` | 注册 external_promotion router |
| `platform/frontend/campaigns.html` | **新建** — 外推营销 SPA 页面(6 Tab)|
| `platform/frontend/uni-nav.js` | 导航增加「外推营销」入口 |
| `scripts/seo_auditor.py` | **新建** — SEO 审计自动化脚本 |
---
## 十二、内容策略聚焦改造(v25 · 2026-06-23
### 从「6领域分散」到「3领域聚焦」
**背景**:此前内容覆盖可持续生活、数字游民、个人成长等 6 个领域,资源分散、品牌辨识度低。v25 聚焦「宇之然」品牌核心方向:AI 与前沿科技。
**聚焦的 3 个领域:**
| 领域 | 方向 | 覆盖话题 |
|------|------|---------|
| AI与效率 🤖 | AI 工具、工作流、效率方法 | AI工具实测、AI前沿资讯、效率方法论 |
| 科技人文 🔬 | AI 伦理、科技反思 | 数据隐私、人机关系、数字生活反思 |
| 未来工作方式 💼 | 远程工作、职业转型 | AI时代职场、一人企业、技能升级 |
### Phase 1 — 代码改造(6 个文件)
| 文件 | 改动 |
|------|------|
| `initial_data.py` | TopicField 从 6 个缩减为 3 个;CollectorCategory 从 8 个环保类改为 5 个 AI/科技类;PlatformConfig allowed_tags 全部替换为 AI/效率/科技标签 |
| `prompt_loader.py` | `sources_optimization` 提示词从"可持续生活领域"改为"AI与科技人文领域" |
| `config/sources.yaml` | 全部信息源替换为 AI/科技相关(36氪RSS、少数派RSS、5 组 AI 搜索词、1 个本地案例库) |
| `collector.py` | `DEFAULT_CHINA_PAINS` 从 8 个(7 环保 + 1 AI)改为 5 个 AI 焦点;`map_category_to_field` 返回 AI 领域;移除 4 处"可持续性"日志/默认值 |
| `topic_selector.py` | `DEFAULT_TREND_DOMAIN_MAP` 从 12 条(含可持续生活/个人成长/副业/家庭教育)改为 11 条纯 AI/科技映射 |
| `migrate_content_focus.py` | **新建** — Phase 2 DB 迁移脚本 |
### Phase 2 — DB 迁移
| 操作 | 影响 |
|------|------|
| TopicField | 更新 3 个新领域字段(排序/描述/图标),停用 5 个旧领域(可持续生活系统/可持续生活/数字游民/个人成长/个人知识工厂) |
| Topic | 47 个 Topic 中 43 个已迁移到新领域(4 个无法映射的归入"AI与效率" |
| Article | 删除 15 篇与旧可持续领域关联的旧文章 |
| CollectorCategory | 创建 3 个新分类(AI前沿资讯/AI工具实测/AI与职场),更新 2 个(AI生活化/科技人文),停用 12 个旧分类(循环消费/低碳出行/干净饮食/零浪费生活/绿色家电与节能/碳普惠/环保科技产品/自我丰容/适我主义/情绪价值与心理健康/沉浸式新生活/数字游民与自由职业) |
| CollectorSource | 停用 1 个旧源,创建 2 个新 AI 搜索源 |
| PlatformConfig | 3 个平台(知乎/微信/小红书)的 allowed_tags 全部替换为 AI/科技标签 |
| TrendFieldMapping | 同步 11 条新映射,停用旧映射 |
### Phase 3 — 文件清理
| 项目 | 数量 | 释放空间 |
|------|------|---------|
| 日志文件 (`automation/logs/`) | 400 个 | 2.5 MB |
| 旧选题卡片 (`content/ideas/`) | 11 个文件 | 96 KB |
| 可持续采集原始数据 (`sustainability_raw/`) | 多子目录 | 224 KB |
| 旧数据文件 (`sustainability_cases.json/topics.json`) | 2 个 | - |
| 旧草稿/大纲/研究笔记 (`drafts/outlines/research/`) | 91 个文件 | 740 KB |
| 通知记录 (`notifications/`) | 1 个 | 4 KB |
### Phase 4 — 重启验证
- 服务运行中:HTTP 200 ✅
- API 认证正常 ✅
- TopicFields 仅返回 3 个活跃领域 ✅
- Topic 总计 47 个,全部关联新领域 ✅
- Articles 已清理(0 篇过时文章)✅
- CollectorCategories 仅 5 个 AI 分类活跃 ✅
### 关键架构决策
- `collector.py` 类名(SustainabilityCollector/SustainabilitySource/SustainabilityCase)保留未改——减少中断风险,功能已从 sustainable 转向 AI/tech,重命名需要跨 20+ 文件修改
- DB 种子数据按 `if count() == 0` 判断,已有数据的库通过独立迁移脚本处理
- 旧数据优先保留(硬删除可能影响引用完整性),标记 `is_active=False` 而非删除
### 品牌调性与内容深化(v25.1 · 2026-06-23 第二次迭代)
**问题诊断**:第一次聚焦改造后,内容方向虽已收敛到 AI 3 领域,但存在品牌割裂("宇之然"调性偏人文自然 vs 内容全是纯工具测评)、AI 赛道竞争红海、平台策略错配(公众号叙事体不适合写 AI 工具)等深层问题。
**Phase A — 品牌调性注入(最核心改动)**
| prompt | 改动 | 预期效果 |
|--------|------|---------|
| `section_expansion_zhihu` | 加入独家数据要求+观点交锋,不只是介绍工具而是探讨技术如何改变人 | 在拥挤的 AI 知乎赛道上做出壁垒 |
| `section_expansion_wechat` | 从「AI 工具叙事」→「科技人文思辨」:用「我」口吻写 AI 时代的困惑、顿悟或观察 | 对齐品牌调性,摆脱"AI 测评不适合叙事体"的结构性矛盾 |
| `section_expansion_xiaohongshu` | 每个结论配亲测数据/对比/结果 | 用真实数据对抗同质化 |
| `title_optimize_zhihu` | 增加观点交锋感+立场态度 | 从"工具文标题"→"辩论帖标题" |
| `title_optimize_wechat` | 改为科技叙事方向,参考风格:「AI帮我写周报的第3个月,我终于发现哪里不对了」 | 对齐公众号新定位 |
| `title_optimize_xhs` | 每条标题含数字/时间/效果结果感 | 提高点击率 |
**Phase B — SEO/GEO 长尾关键词**
- `collector.py`: `DEFAULT_CHINA_PAINS` 每个痛点扩展 3-5 个长尾问题("AI写周报""AI提示词怎么写""35岁学AI来得及吗"
- `topic_selector.py`: `DEFAULT_TREND_DOMAIN_MAP` 从 11 条→18 条(新增 Prompt/提示词/AI编程/AI写作/数据隐私/AI教育/一人企业)
**Phase C — 差异化信息源**
`sources.yaml` 中新增 5 个与通用 AI 媒体形成区分的源:
| 新源 | 差异化定位 |
|------|-----------|
| 机器之心 RSS | AI 学术前沿,区别于大众科技媒体 |
| AI 学术论文搜索(arXiv 中文) | 一手论文解读内容源 |
| 独立开发者搜索 | 独特的小众 AI 产品视角 |
| 行业数据报告搜索 | 自采数据的基础来源 |
| AI 产品动态搜索 | 第一手产品更新信息 |
**Phase D — 栏目化内容机制**
为「AI工具实测周报」等固定栏目铺平道路:
- Topic 模型新增 `series` 字段(VARCHAR, optional, indexed
- API 端点 `/api/topics` 新增 `?series=` 筛选参数
- 前端 topics.html 搜索区增加「栏目」下拉筛选器
- `database.py` 新增 ALTER TABLE 迁移(`topics.series`
**Phase E — 公众号发布流水线**[需提供 WeChat APP_ID/APP_SECRET]
- 已安装 `/wechat-mp-publisher` 技能,支持远程 MCP 中转
- `wechat.env``mcp.json` 尚未配置
### 关键文件变更汇总
| 文件 | 变更类型 | 说明 |
|------|---------|------|
| `scripts/prompt_loader.py` | 修改 | 6 个 prompt 品牌调性注入(section_expansion×3 + title_optimize×3 |
| `platform/backend/app/initial_data.py` | 修改 | 领域描述人文化、采集搜索词长尾化、平台格式说明更新 |
| `scripts/collector.py` | 修改 | DEFAULT_CHINA_PAINS 长尾关键词扩展 |
| `scripts/topic_selector.py` | 修改 | DEFAULT_TREND_DOMAIN_MAP 从 11→18 条 |
| `config/sources.yaml` | 修改 | 新增机器之心/arXiv/独立开发者/行业报告/AI产品动态 5 个差异源 |
| `platform/backend/app/models.py` | 修改 | Topic 模型新增 series 字段 |
| `platform/backend/app/schemas.py` | 修改 | TopicBase/TopicCreate/TopicUpdate 新增 series |
| `platform/backend/app/api/topics.py` | 修改 | list_topics 新增 series 查询参数 |
| `platform/backend/app/database.py` | 修改 | ALTER TABLE 添加 topics.series 列 |
| `platform/frontend/topics.html` | 修改 | 搜索区新增栏目下拉筛选器 |
| `scripts/migrate_content_focus.py` | 新建 | DB 迁移脚本(Phase 2 遗留) |
---
> 过时文档统一移入 `archive/`,防止误导。
| 日期 | 路径 | 原因 |
|------|------|------|
| 2026-05-12 | `tasks/todo.md``archive/tasks/todo.md.2026-04-10` | 内容停滞于 2026-04-10,信息过时 |
| 2026-05-12 | `content/ideas/001-compliance.md``archive/content/ideas/` | 001 已发布,合规报告无须保留在活跃目录 |
| 2026-05-12 | `content/ideas/001-research.md``archive/content/ideas/` | 001 已发布,研究笔记无须保留在活跃目录 |
| 2026-05-12 | `content/publishing/001-images.md``archive/content/` | 配图已生成,规划稿无须保留在活跃目录 |
---
## 七、内容质量升级(v19 · 2026-06-05
### 三平台差异化内容架构
**背景**:此前三平台共用同一篇 markdown,仅做浅层适配(加 emoji/换人称),导致知乎缺深度、公众号缺情感、小红书过长。
**核心改动:**
1. **writer.py**`generate_full_markdown()``generate_platform_markdown(platform)`,每平台调用独立的 `section_expansion_{platform}` prompt
- 知乎:`section_expansion_zhihu` — 数据分析深度,400-800字/节,「你」视角
- 公众号:`section_expansion_wechat` — 个人叙事对话感,300-500字/节,「我」口吻
- 小红书:`section_expansion_xiaohongshu` — 精炼干货,100-200字/节,直接给方法+可 emoji
- 去掉公众号中「我们→我→你」的强制替换
2. **prompt_loader.py** — 新增 3 个平台独立 section_expansion 提示词,标题提示词去套路化(去除「直接输出」「不要其他文字」等 AI 味指令)
3. **平台字数提升** — min/max 大幅上调(知乎 3000-8000, 公众号 2000-4000, 小红书 400-1000),存于 `platform_configs` 表,后台可改
4. **compliance_checker.py** — AI 套话从 DB `content_clean_rules(rule_type='ai_telltale')` 加载,后台可动态管理;人称规则去掉「大家」误报
5. **config_items.py** — DEFAULT_CONTENT_CLEAN_RULES 新增 30+ 条 ai_telltale 规则
6. **initial_data.py** — PlatformConfig 字数迁移(已有库也会更新)
7. **AGENTS.md** — 文档化三平台差异化架构
**验证**33/33 测试通过
## 八、GEO/SEO 升级(v20 · 2026-06-09
### 为 AI 搜索时代而生
**背景**ChatGPT、Perplexity、百度 AI 搜索等生成式引擎正在取代传统搜索。内容被 AI 引用的价值大于单纯的关键词排名。此版本让流水线生产的内容天然符合 AI 搜索偏好。
### GEO 结构化数据
每篇生成的 HTML 自动注入:
- **JSON-LD Article schema** — `@context: schema.org`,含 headline/description/datePublished/author/publisher/keywords
- **SEO meta tags** — `<meta name="description">`, `<meta name="keywords">`
- **Open Graph tags** — `og:title`, `og:description`, `og:type`, `og:site_name`, `article:published_time`
- **平台专用** — wechat/xiaohongshu 额外注入 `og:image`
### 大纲 SEO 增强
- outline prompt 新增 `seo_keywords` 变量(从研究笔记自动提取)
- 每章要求至少融入 1 个 SEO 关键词
- 新增 GEO 要求:每章包含可引用数据点,增加被 AI 搜索引用的概率
### 搜索排名追踪
| 模块 | 说明 |
|------|------|
| `SearchRanking` 模型 | 记录 article_id/keyword/position/url_found/ai_cited/search_engine |
| `scripts/rank_tracker.py` | 对所有已发布文章,自动生成搜索查询 → 调用 Bing API 查排名 → 写入 DB |
| 定时任务 | `scheduled_rank_tracker` 每日 07:00 自动运行 |
| 管理后台 | admin.html 新增「搜索排名」tab,展示概览统计(累计检查/有排名/AI引用/最佳排名)+ 排名列表 |
### 关键文件
| 文件 | 改动 |
|------|------|
| `scripts/writer.py` | 新增 `inject_geo_metadata()`, `_extract_description()`, `_extract_tags_list()` — 在 `generate_platform_html()` 末尾注入 |
| `scripts/outline.py` | 新增 `_extract_seo_keywords()` — 传入 outline prompt |
| `scripts/prompt_loader.py` | outline_generation 提示词加入 `seo_keywords` 变量 + GEO 数据点要求 |
| `scripts/rank_tracker.py` | 新建 — Bing 排名查询 + DB 写入 |
| `platform/backend/app/models.py` | 新增 `SearchRanking` 模型 |
| `platform/backend/app/api/search_rankings.py` | 新建 — `/api/seo/rankings` + `/api/seo/rankings/overview` |
| `platform/backend/app/core/scheduler.py` | 新增 `scheduled_rank_tracker` 07:00 |
| `platform/frontend/admin.html` | 新增「搜索排名」tab(统计卡片 + el-table 排名列表) |
## 九、GEO 进阶升级(v21 · 2026-06-15
### AI 搜索引用追踪(GEO Engine Optimization
**背景**:v20 实现了搜索排名追踪(Bing)和基础元数据注入,v21 将范围扩展到 AI 搜索引用检测、GEO 就绪度评分、FAQ/HowTo 结构化数据注入。
### 1. 数据模型扩展
| 模型 | 字段 | 说明 |
|------|------|------|
| `SearchRanking` | `ai_search_engine` / `citation_snippet` / `citation_url` / `geo_score` / `content_type` | 原有排名模型新增 AI 搜索字段和内容类型 |
| `GeoReadinessScore`(新建) | `article_id/total_score(0-100)/has_schema/has_faq_format/has_howto_format/has_citations/word_count/readability_score/heading_structure_score` | 6 维度 GEO 就绪度评估 |
就绪度评分权重:结构化数据 30 + FAQ 格式 20 + HowTo 格式 15 + 引用 15 + 标题结构 10 + 内容长度 10 = 100 分
### 2. AI 搜索引用追踪脚本
`scripts/geo_tracker.py` — 对所有已发布文章,通过 LLM 模拟查询 DeepSeek/ChatGPT/Perplexity 检测是否被引用:
- 筛选 `status=published` 的文章提取标题/关键词
- 对每篇文章调用 `call_llm` 查询各 AI 引擎是否收录并引用
- 记录引用片段(citation_snippet)和引用 URL
- 计算 GEO 就绪度评分(6 维度 0-100
- 写入 `SearchRanking(search_engine="geo")``GeoReadinessScore`
### 3. FAQ/HowTo Schema 自动注入
扩展 `writer.py``inject_geo_metadata()`
- 新增 `_detect_content_type(content)` — 检测内容类型:article/listicle/howto/faq/review(基于关键词统计)
- 新增 `_extract_faq_pairs(content)` — 从 Q/A:格式提取问答对
- 新增 `_extract_howto_steps(content)` — 从步骤/Step 格式提取步骤
- 根据检测到的类型自动注入对应的 JSON-LD schema
- **FAQPage** — `mainEntity` 数组(Question + AcceptedAnswer
- **HowTo** — `step` 数组(HowToStep + HowToDirection
- **ItemList** — `itemListElement` 数组(ListItem + position + name
### 4. GEO API 端点
| 端点 | 功能 |
|------|------|
| `GET /api/seo/geo/overview` | AI 引用总数/引用率/引擎分布/平均就绪度评分 |
| `GET /api/seo/geo/readiness` | GEO 就绪度评分列表(含各维度分数) |
| `POST /api/seo/geo/track` | 手动触发 GEO 追踪 |
### 5. 定时任务注册
`scheduler.py` 新增 `scheduled_geo_tracker` 每日 07:30 自动运行
### 6. 管理后台 GEO 看板
admin.html 新增「GEO 就绪度」标签页包含:
- **统计卡片**:GEO 检查次数 / AI 引用次数 / AI 引用率 / 平均就绪度评分
- **引擎分布**:按 AI 引擎(DeepSeek/ChatGPT/Perplexity)展示检查数和引用数
- **就绪度评分表格**:文章标题/总分(彩色标签)/结构化数据✓✗/FAQ✓✗/HowTo✓✗/引用✓✗/字数/可读性/标题结构/检查时间
- **手动追踪按钮**`POST /api/seo/geo/track`
### 关键文件变更
| 文件 | 改动 |
|------|------|
| `scripts/geo_tracker.py` | **新建** — AI 搜索引用追踪 + GEO 就绪度评分全流程 |
| `scripts/writer.py` | 扩展 `inject_geo_metadata()`:新增 `_detect_content_type`/`_extract_faq_pairs`/`_extract_howto_steps`,根据内容类型自动注入 FAQPage/HowTo/ItemList schema |
| `platform/backend/app/models.py` | `SearchRanking` 扩展 5 字段 + 新建 `GeoReadinessScore` 模型 |
| `platform/backend/app/api/search_rankings.py` | 新增 3 个 GEO 端点(overview/readiness/track |
| `platform/backend/app/core/scheduler.py` | 注册 `scheduled_geo_tracker` 07:30 |
| `platform/frontend/admin.html` | 新增「GEO 就绪度」tab(统计卡片 + 引擎分布 + 评分表格 + 手动追踪) |
### 验证
33/33 测试全部通过
## 十、产品官网改造(v22 · 2026-06-16
### 从「管理后台」到「产品网站」
**背景**:此前项目以登录页面作为首屏,访客第一眼看到的是管理系统的登录框,没有品牌传达和产品介绍。改造后,未登录用户看到的是一个完整的产品官网,登录后进入管理后台(工作台)。
### 路由架构
| 路径 | 页面对应 | 访问权限 |
|------|---------|---------|
| `/` | **产品官网** — 品牌 Landing Page | 公开 |
| `/index.html` | **工作台** — 原有的仪表盘(现为 workspace) | 需登录 |
| `/login.html` | 登录页(品牌化处理) | 公开 |
| `/topics.html`, `/articles.html` 等 | 各管理功能页 | 需登录 |
### 产品官网(Landing Page
创建 `platform/frontend/landing.html` — 独立的完整产品网页,不依赖 Vue/Element Plus
- **导航栏**:固定顶部,毛玻璃背景,Logo + 产品功能/工作流程/支持平台/定价/常见问题链接 + 登录/免费使用按钮
- **Hero 区域**:大标题「让内容在 AI 时代主动找到你的客户」,背景渐变+辉光效果,三个核心数据展示
- **产品功能**:6 张特性卡片(三平台创作/GEO 优化/独立站 SEO/效果追踪/全自动流水线/合规保障)
- **工作流程**:3 步流程说明(配置选题→自动生产→追踪优化)
- **支持平台**:知乎/微信公众号/小红书/独立站
- **定价**:3 档定价(入门版 ¥299/月、专业版 ¥799/月、企业版 ¥2,499/月)
- **常见问题**:6 个 FAQ(GEO 说明/三平台差异化/零经验使用/AI 套话/API Key/数据安全)
- **CTA 区块**:渐变背景 + 行动号召按钮
- **页脚**:产品/支持/法律三栏
### 关键架构改动
| 文件 | 改动 |
|------|------|
| `platform/frontend/landing.html` | **新建** — 完整产品官网(~30KB,无外部依赖) |
| `platform/backend/app/main.py` | 新增 `/` 路由显式返回 `landing.html`(优先于 StaticFiles 的默认 index.html |
| `platform/frontend/login.html` | 登录成功跳转 `/``/index.html`;已登录检测跳转 `/``/index.html` |
| `platform/frontend/uni-nav.js` | 仪表盘导航链接 `/``/index.html``navigate` 函数修复前缀处理 |
| `platform/frontend/articles.html` | 未登录重定向 `/``/login.html` |
| `platform/frontend/topics.html` | 未登录重定向 `/``/login.html` |
| `platform/frontend/sw.js` | 移除 `/` 预缓存;HTML 文档改为 Network First 策略确保新版实时加载 |
### 响应式设计
- **桌面端**>768px):完整导航 + 多列布局
- **平板/手机端**(≤768px):汉堡菜单(侧滑展开)、单列布局、缩小 hero 字体
- **小屏手机**(≤480px):全屏宽内容、堆叠布局
### 验证
- 33/33 测试全部通过
- HTTP 访问验证:`/` 返回 landing.html31070 bytes),`/index.html` 返回工作台仪表盘
- 登录流程验证:登录后跳转 `/index.html`
- 服务已重启生效
## 十一、工作台改造与数据隔离(v23 · 2026-06-17
### 从「管理工具」到「内容工作台」
**背景**:此前平台虽功能完整但偏向管理后台视角,缺乏面向内容创作者的工作台体验;且所有业务数据缺乏组织隔离(org_id),多组织共存时数据混淆。
### Wave 1 — 数据隔离基础设施
| 改动 | 文件 |
|------|------|
| 10 个业务模型追加 `org_id` 列 | `models.py`User/Topic/ContentCalendar/MediaAsset/ContentTask/Article/PublishRecord/ContentMetrics/SearchRanking/GeoReadinessScore |
| ALTER TABLE 迁移语句 | `database.py`5 条 `ADD COLUMN IF NOT EXISTS` |
| Schema 追加 `org_id` | `schemas.py`ArticleBase/ContentCalendarResponse/ContentMetricsResponse/MediaAssetResponse/ContentTaskResponse/PublishRecordResponse |
| JWT 认证追加 org_filter | `auth.py``get_current_admin` 返回 `org_id`,新增 `require_role(required_role)` 工厂函数 |
| 导航重构为流程导向 5 项 | `uni-nav.js` — 工作台/内容工厂/数据洞察/资产库/系统管理 |
### Wave 2 — API 隔离 + 新前端页面
| 改动 | 说明 |
|------|------|
| `articles.py` | Article 创建 upsert 时从 JWT 自动注入 org_id |
| `publishing.py` | PublishRecord 创建时从关联 Topic 继承 org_id |
| `metrics.py` | ContentMetrics 创建时继承 Topic.org_id |
| `calendar.py` | ContentCalendar CRUD 添加 org_id 校验 |
| `tasks.py` | ContentTask 创建时自动注入 org_id |
| `search_rankings.py` | GEO 端点添加 org_filter |
| `factory.html` | **新建** — 内容工厂流水线页面(3Tab:待创作/进行中/待审查) |
| `insights.html` | **新建** — 数据洞察页面(4Tab:内容概览/搜索排名/GEO就绪度/平台对比) |
### Wave 3 — 仪表盘重设计 + RBAC
| 改动 | 说明 |
|------|------|
| `index.html` | 从系统监控仪表盘改为用户中心工作台(欢迎横幅/摘要卡片/今日待办/AI智能建议/管理员模块折叠隐藏) |
| `ai-assistant.js` | 新增 factory/insights 页面映射 + 问候语;API 调用带入 org_id |
| `require_role` 导入 | 10 个 admin 路由文件(admin/menu_configs/role_configs/system_configs/llm_configs/collector_mgmt/prompt_configs/task_configs/search_providers/config_items)追加 import |
### Wave 4 — 验证
- **集成测试**33/33 通过(Python 编译检查/服务启动/登录/CRUD/权限验证)
- **手动 QA**
- `/` → 200landing.html
- `/index.html` → 200(工作台仪表盘)
- `/factory.html` → 200(内容工厂)
- `/insights.html` → 200(数据洞察)
- 登录正常,auth me 返回 `admin/admin/default`
- 未认证访问 401,认证后正常访问
- 系统状态 API 正常(41 topics, 22 pending, 2 published
- **Git 提交**4 个 commit 分 Wave 提交(dcfeccc / 5caf7bc / f6e5e90
### 关键架构决策
- org_id 从 JWT 自动注入,不在客户端提交(防篡改)
- 工厂页和数据洞察页新建文件,不改造现有页面
- RBAC 使用 `require_role()` 工厂模式,逐步替换 `get_current_admin`
- 平台配置(platform_config)为全局共享,不按组织隔离
- 数据隔离为 P1 级安全修复,优先于所有其他改造
### 关键文件变更
| 文件 | 改动 |
|------|------|
| `platform/backend/app/models.py` | 10 个模型追加 org_id941 行)|
| `platform/backend/app/database.py` | ALTER TABLE 迁移逻辑(170 行)|
| `platform/backend/app/api/auth.py` | org_filter + require_role196 行)|
| `platform/backend/app/schemas.py` | 6 个响应 schema 追加 org_id637 行)|
| `platform/frontend/index.html` | 用户中心仪表盘重设计 |
| `platform/frontend/factory.html` | **新建** 内容工厂流水线页 |
| `platform/frontend/insights.html` | **新建** 数据洞察页(945 行)|
| `platform/frontend/uni-nav.js` | 流程导向导航(333 行)|
| `platform/frontend/ai-assistant.js` | 页面映射 + org_id 感知 |
| `platform/backend/app/api/*.py` | 10 个路由文件追加 require_role |
---
## 十二、规范说明
### 规划文档
| 文档 | 位置 | 说明 |
|------|------|------|
| 升级计划 | `docs/upgrade-plan.md` | 分 4 阶段的技术升级路线图 |
### 文档管理原则
1. **单一真理源**PROGRESS.md 为唯一进度文档,进度信息不出现于第二个文档中。
2. **及时归档**:阶段完成后,对应过程文档移入 `archive/`(含日期后缀),避免误导。
3. **一致性**README.md 仅引用 PROGRESS.md 摘要,不独立维护进度状态。
4. **可追溯**archive 保留完整历史,按 `YYYY-MM-DD` 子目录组织。
5. **及时更新**:每次新工作结束(或次日开始前)更新 PROGRESS.md,确保最后更新日期与实际同步。
### 工作流程
```
梳理需求/任务 → 读取 PROGRESS.md 了解当前状态
按 PROGRESS.md 执行开发
阶段任务完成 → 更新 PROGRESS.md + 归档冗余文档
如需 → 同步 README.md 摘要
```
-243
View File
@@ -1,243 +0,0 @@
# 宇之然项目目录结构说明
## 整体布局
```
yu-zhi-ran/ # 项目根目录
├── platform/ # ⭐ 管理平台(Web UI + API
│ ├── backend/ # FastAPI 后端
│ │ ├── app/
│ │ │ ├── main.py # 入口
│ │ │ ├── database.py # 数据库连接(SQLite
│ │ │ ├── models.py # Topic, Article 模型
│ │ │ ├── schemas.py # Pydantic 验证
│ │ │ ├── initial_data.py # 初始数据导入
│ │ │ ├── api/ # REST API 路由
│ │ │ │ ├── system.py # │ 系统状态、流水线控制、日志
│ │ │ │ ├── topics.py # │ 选题 CRUD
│ │ │ │ ├── publisher.py # │ 发布包管理
│ │ │ │ └── articles.py # │ 文章查看
│ │ │ └── core/ # │ 业务逻辑封装
│ │ │ ├── generator.py # │ 调用 scripts/creator.py
│ │ │ ├── optimizer.py # │ 调用 scripts/compliance_optimizer.py
│ │ │ └── sync.py # │ 同步 JSON → 数据库
│ │ └── requirements.txt
│ ├── frontend/
│ │ └── index.html # Vue 3 SPACDN 依赖)
│ ├── run.sh # 快速启动脚本
│ ├── check.py # 部署前检查
│ ├── README.md # 平台使用文档
│ └── PORTFOLIO.md # 架构详解
├── automation/ # 🔄 自动化流水线数据与日志
│ ├── scripts/ (软链) → ../scripts/ # 实际脚本在 ../scripts/
│ ├── data/ # 数据存储
│ │ ├── sustainability_topics.json # ⭐ 核心:选题库
│ │ ├── drafts/ # 草稿(按日期)
│ │ │ └── 2026-04-19/
│ │ │ ├── A02_zhihu.md
│ │ │ ├── A02_wechat.md
│ │ │ └── A02_xiaohongshu.md
│ │ └── releases/ # 发布包(按日期)
│ │ └── 2026-04-19/
│ │ ├── zhihu/zhihu_A02_zhihu.html
│ │ ├── wechat/wechat_A02_wechat.html
│ │ └── xiaohongshu/
│ └── logs/ # 运行日志
│ ├── collector_2026-04-19.log
│ ├── creator_2026-04-19.log
│ ├── optimizer_2026-04-19.log
│ └── publisher_summary_2026-04-19.json
├── scripts/ # 🛠️ 底层 CLI 脚本(被 automation/scripts/ 调用)
│ ├── collector.py # 采集热点 + 本地降级
│ ├── creator.py # 研究→大纲→撰写流水线
│ ├── compliance_optimizer.py # 合规检查 + 自动修复
│ ├── publisher.py # 发布包生成(HTML + 指南)
│ ├── research.py # 资料收集(API + 本地)
│ ├── outline.py # 大纲生成
│ ├── writer.py # 核心撰写逻辑
│ ├── wecom_notifier.py # 企业微信通知(可选)
│ └── ...(其他辅助脚本)
├── content/ # 📚 已发布内容存储
│ ├── published/ # 按 topic_id 组织
│ │ ├── A01/
│ │ │ └── 手动发布/
│ │ │ ├── 知乎/文章.html
│ │ │ └── 小红书/文章.html
│ │ └── A02/
│ ├── drafts/ # 草稿(可选)
│ ├── ideas/ # 选题记录(Markdown
│ └── images/ # 配图资源
├── config/ # ⚙️ 配置文件
│ ├── sources.yaml # RSS/网页源配置
│ └── wecom_config.yaml # 企业微信机器人配置
├── brand/ # 🏷️ 品牌资产
│ ├── brand-book.md # 愿景、调性、原则
│ └── guidelines.md # 内容创作指南
├── strategy/ # 📈 内容策略
│ └── 全球-本土比较研究与全新内容战略规划-2026-04-15.md
├── tasks/ # 📋 项目管理
│ └── todo.md
├── research/ # 📊 行业研究
│ └── trends-2026.md
├── logs/ # 📝 根目录日志(兼容)
├── backup/ # 💾 备份归档
├── README.md # 项目总览
├── YUZHIRAN_PLATFORM.md # 完整文档(本文件同级)
├── TEST_FULL_PIPELINE.md # 测试指南
├── test_full_pipeline.py # 全流程测试脚本
├── run_publisher.sh # 快速发布脚本
└── start-platform.sh # 启动管理平台(新增)
# 软链接
automation/scripts → ../scripts/
```
---
## 🔗 关键依赖关系
### platform/backend/app/core/*.py 的路径计算
| 文件 | parents 层数 | PROJECT_ROOT 指向 |
|------|-------------|-------------------|
| `database.py` | `parents[3]` | `yu-zhi-ran/` |
| `initial_data.py` | `parents[3]` | `yu-zhi-ran/` |
| `generator.py` | `parents[4]` | `yu-zhi-ran/` |
| `optimizer.py` | `parents[4]` | `yu-zhi-ran/` |
| `sync.py` | `parents[4]` | `yu-zhi-ran/` |
| `api/system.py` | `parents[4]` | `yu-zhi-ran/` |
| `api/publisher.py` | `parents[4]` | `yu-zhi-ran/` |
**规律**
-`app/` 一级:`parents[3]``yu-zhi-ran/`
-`app/api/``app/core/``parents[4]``yu-zhi-ran/`
✅ 所有路径已统一修正,可正常工作。
---
## 🚀 工作流程
### 自动流水线(cron
```
每天 05:00 → collector.py → automation/data/sustainability_topics.json(新增选题)
每天 05:30 → creator.py → automation/data/drafts/ + HTML 发布包
每天 05:45 → compliance_optimizer.py → 自动合规检查
每天 06:00 → publisher.py → content/published/(手动发布包)
```
### Web 平台手动控制
```
前端界面
├─▶ POST /api/system/generate/run
│ ↓
│ core/generator.py → subprocess(scripts/creator.py)
│ ↓
│ sync_all_topics() → 更新数据库
├─▶ POST /api/system/optimize/run
│ ↓
│ core/optimizer.py → subprocess(scripts/compliance_optimizer.py)
│ ↓
│ 读取 optimization_report.json → 更新数据库
└─▶ POST /api/publisher/generate/{topic_id}
api/publisher.py → subprocess(scripts/publisher.py --topic-id X)
复制 HTML 到 content/published/X/手动发布/
```
---
## 📁 数据源唯一性
**核心数据文件**`automation/data/sustainability_topics.json`
这是系统中**唯一**的选题状态源:
- `collector.py` 写入新选题(status: "待处理"
- `creator.py` 更新为"待审查" → "draft"
- `compliance_optimizer.py` 更新为"待发布"
- `publisher.py` 更新为"已发布"
- `platform``sync.py` 同步此 JSON 到 SQLite 供前端快速查询
**不要手动编辑数据库**!应通过脚本或 API 修改 JSON。
---
## 🎯 部署检查清单
- [x] Python 依赖安装 (`platform/backend/requirements.txt`)
- [x] 虚拟环境创建(可选)
- [x] 数据目录存在 (`automation/data/`)
- [x] 日志目录存在 (`automation/logs/`)
- [x] 选题 JSON 存在 (`automation/data/sustainability_topics.json`)
- [x] 前端文件就绪 (`platform/frontend/index.html`)
- [x] 软链接 `automation/scripts → ../scripts/` 正常
- [x] 端口 8000 可用
- [ ] cron 定时任务已配置(如需自动运行)
---
## 🔧 常见命令
```bash
# 1. 启动管理平台
cd yu-zhi-ran
./start-platform.sh 8000
# 2. 手动运行完整流水线(测试)
python test_full_pipeline.py --topic-id A05
# 3. 查看日志
tail -f automation/logs/creator_$(date +%Y-%m-%d).log
tail -f automation/logs/optimizer_$(date +%Y-%m-%d).log
tail -f automation/logs/publisher_summary_$(date +%Y-%m-%d).json
# 4. 查看选题库状态
python -c "import json; d=json.load(open('automation/data/sustainability_topics.json')); print(f'总:{len(d)}, 待处理:{sum(1 for t in d if t.get(\"status\")==\"待处理\")}, 待发布:{sum(1 for t in d if t.get(\"status\")==\"待发布\")}')"
# 5. 触发单步任务
python scripts/collector.py
python scripts/creator.py --topic-id A01
python scripts/publisher.py --topic-id A01
# 6. API 测试
curl http://localhost:8000/api/system/status | python3 -m json.tool
```
---
## 📝 说明
### 为何保留软链接?
`automation/scripts/` 通过软链接指向 `../scripts/`,原因:
- 历史兼容:部分脚本内部使用了硬编码路径 `PROJECT_ROOT/scripts/`
- 统一管理:所有脚本集中在一个目录,便于维护
- 避免复制:减少磁盘占用和同步问题
### platform 与 automation 的关系
- **platform**: Web 管理界面 + API 服务
- **automation**: 数据存储 + 日志归档 + 软链接脚本
- **scripts**: 实际执行逻辑(CLI 工具)
platform 通过 `subprocess` 调用 `scripts/` 中的脚本,输出写入 `automation/data/``automation/logs/`
---
**更新日期**: 2026-04-19
**维护**: AI 助手小然
-141
View File
@@ -1,141 +0,0 @@
# 小红书自动化推广系统(yzr-yxl会话隔离版)
## 📋 项目概览
为手机配件京东店铺设计的**小红书自动化内容发布系统**,当前会话完全隔离,不影响其他agent。
## 🗂️ 目录结构
```
/root/.openclaw/workspaces/yzr-yxl/
├── sessions/promoter/ # 🔒 会话隔离存储
│ ├── cookies/ # 登录状态
│ ├── screenshots/ # 操作截图
│ └── logs/ # 运行日志
├── scripts/ # 自动化脚本
│ ├── xhs-promoter.sh # 基础脚本
│ └── xhs-publish-advanced.sh # 高级脚本
├── content/ # 内容库
│ ├── posts/ # 笔记内容
│ └── images/ # 图片素材
├── cron/ # 定时任务配置
│ └── promoter-schedule.json
└── docs/ # 文档
└── xhs-setup-guide.md
```
## ✅ 已完成
1. **环境搭建**
- [x] 创建会话隔离目录结构
- [x] 验证 agent-browser 可用(v0.23.0
- [x] 验证 Xvfb 支持
- [x] 分析小红书登录页结构
2. **脚本开发**
- [x] 基础登录/检查/发布脚本
- [x] 高级发布脚本(批量、定时、状态监控)
- [x] 示例内容模板(手机配件场景)
3. **配置文档**
- [x] 设置指南(Cookie导入)
- [x] 定时任务配置
## ⏳ 待完成
1. **登录授权**(需要你的操作)
- [ ] 获取小红书Cookie
- [ ] 上传到隔离目录
- [ ] 验证登录状态
2. **内容准备**
- [ ] 准备产品图片
- [ ] 创建真实内容文件
- [ ] 测试单篇发布
3. **自动化测试**
- [ ] 测试定时发布
- [ ] 监控日志输出
- [ ] 调整风控参数
## 🚀 快速开始
### 1. 查看当前状态
```bash
/root/.openclaw/workspaces/yzr-yxl/scripts/xhs-publish-advanced.sh status
```
### 2. 查看帮助
```bash
/root/.openclaw/workspaces/yzr-yxl/scripts/xhs-publish-advanced.sh help
```
### 3. 创建示例内容
```bash
/root/.openclaw/workspaces/yzr-yxl/scripts/xhs-publish-advanced.sh sample
```
### 4. 查看示例内容
```bash
cat /root/.openclaw/workspaces/yzr-yxl/content/posts/sample-post.json
```
## 🔐 登录步骤(关键)
由于服务器无图形界面,需要**Cookie导入**方式登录:
### 方式一:浏览器扩展导出(推荐)
1. 在本地电脑登录 [creator.xiaohongshu.com](https://creator.xiaohongshu.com)
2. 安装 [EditThisCookie](https://chrome.google.com/webstore/detail/editthiscookie/) 扩展
3. 导出为 JSON 格式
4. 保存到服务器的隔离路径:
```
/root/.openclaw/workspaces/yzr-yxl/sessions/promoter/cookies/xhs-session.json
```
### 方式二:手动复制Cookie
1. F12打开开发者工具 → Application → Cookies
2. 复制关键字段:`session_id`, `web_id`, `gid`, `a1` 等
3. 创建JSON文件:
```json
[
{"name": "session_id", "value": "your_value", "domain": ".xiaohongshu.com"},
{"name": "web_id", "value": "your_value", "domain": ".xiaohongshu.com"}
]
```
## 📊 自动化能力
| 功能 | 状态 | 说明 |
|------|------|------|
| 登录状态保持 | ✅ | Cookie隔离存储 |
| 单篇发布 | 🧪 | 框架完成,需测试 |
| 批量发布 | 🧪 | 支持JSON配置 |
| 定时任务 | 🧪 | Cron配置就绪 |
| 图片上传 | ⚠️ | 需要进一步开发 |
| 评论互动 | ❌ | 需额外开发,风险高 |
## ⚠️ 风控建议
1. **发布频率**: 每天1-2条,间隔至少6小时
2. **内容去重**: 同一产品换不同角度拍摄
3. **账号权重**: 建议养号2周后再开自动化
4. **备用策略**: 准备2-3个小号轮换
## 📝 下一步行动
需要你来完成:
1. [ ] **提供Cookie** - 按上述方式获取并上传
2. [ ] **准备素材** - 产品图片(建议每个产品5-10张场景图)
3. [ ] **测试发布** - 验证自动化流程
4. [ ] **启用定时** - 配置正式发布计划
或者我可以帮你:
- 创建更详细的内容模板
- 配置知乎/其他平台
- 开发评论互动功能(谨慎)
你想先完成哪一步?
+114 -150
View File
@@ -1,156 +1,120 @@
# 宇之然内容创作平台
一个轻量级的管理平台,用于监控和操作内容生产流水线。
> 覆盖"选题→创作→审核→发布→数据追踪"全链路的内容运营工具
## 快速开始
### 1. 环境准备
```bash
cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/platform
# 创建虚拟环境(推荐)
backend/venv/bin/python -m venv backend/venv # 若不存在
source backend/venv/bin/activate
# 安装依赖
pip install -r backend/requirements.txt
```
### 2. 启动服务
```bash
# 方式一:使用启动脚本(推荐)
./run.sh 8000
# 方式二:手动启动
cd backend
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
```
### 3. 访问
- **界面**: http://localhost:8000/
- **API文档**: http://localhost:8000/docs
- **系统状态**: http://localhost:8000/api/system/status
## 核心功能
| 功能 | 描述 |
|------|------|
| 📊 仪表盘 | 选题总数、待发布数、今日生成 |
| 🔄 流水线控制 | 触发创作、合规优化、状态监控 |
| 📝 选题管理 | 列表、筛选、预览、发布 |
| 📦 发布包管理 | 生成多平台HTML发布包、复制 |
| 📋 日志查看 | creator/optimizer/collector 日志 |
## 与自动化流水线的集成
本平台位于 `platform/`,不修改原有 `automation/scripts/` 脚本。
**集成方式**
- `backend/app/core/generator.py` 调用 `scripts/creator.py`
- `backend/app/core/optimizer.py` 调用 `scripts/compliance_optimizer.py`
- `backend/app/api/publisher.py` 调用 `scripts/publisher.py`
- 数据存储:`automation/data/` 为唯一数据源
- 同步:`sync.py` 将 JSON 选题同步到 SQLite 数据库供前端查询
**目录结构关系**
```
yu-zhi-ran/
├── platform/ # 管理平台(本目录)
│ ├── backend/app/
│ │ ├── core/generator.py → 调用 ../scripts/creator.py
│ │ ├── core/optimizer.py → 调用 ../scripts/compliance_optimizer.py
│ │ └── api/publisher.py → 调用 ../scripts/publisher.py
│ └── frontend/index.html # UI
├── automation/
│ ├── data/ ← 数据源(JSON)
│ │ ├── sustainability_topics.json
│ │ ├── drafts/
│ │ └── releases/
│ └── logs/ ← 日志(creator, optimizer, publisher
└── scripts/
├── creator.py ← 被调用
├── compliance_optimizer.py
└── publisher.py
```
## 配置
环境变量(可选):
| 变量 | 说明 | 默认 |
|------|------|------|
| `PROJECT_ROOT` | 项目根目录 | 自动推导 |
| `DATA_DIR` | 平台数据库目录 | `platform/data` |
| `LOG_LEVEL` | 日志级别 | `INFO` |
| `ALLOWED_ORIGINS` | CORS允许的源 | `*` |
示例:
```bash
export PROJECT_ROOT=/path/to/yu-zhi-ran
./run.sh 8000
```
## 开发调试
```bash
# 检查依赖和环境
python check.py
# 查看 API 日志
tail -f automation/logs/creator_$(date +%Y-%m-%d).log
# 数据库初始化(首次)
cd backend
python -c "from app.database import init_db; init_db()"
# 手动同步数据(测试)
curl -X POST http://localhost:8000/api/system/sync/run
```
## 故障排查
| 症状 | 检查点 |
|------|--------|
| 前端显示无选题 | 1. `automation/data/sustainability_topics.json` 是否存在且包含 `status: \"待处理\"` 的数据<br>2. 点击"全量刷新"按钮 |
| 创作任务失败 | 1. 查看 `automation/logs/creator_*.log`<br>2. 确认 `scripts/creator.py` 可执行 |
| 发布包为空 | 1. 确认 `automation/data/releases/YYYY-MM-DD/` 下有对应平台的 HTML<br>2. 点击发布Tab → "重新生成" |
| 端口8000占用 | 停止其他 uvicorn 进程或 `./run.sh 8080` 改用其他端口 |
## 部署清单
- [x] FastAPI 后端(无 Docker,直接运行)
- [x] Vue 3 前端(CDN依赖,无需构建)
- [x] SQLite 数据库(`platform/data/yzr.db`
- [x] 自动化流水线集成(subprocess 调用)
- [x] 数据同步模块(JSON ↔ SQLite
- [x] 流水线状态监控面板
- [x] 日志查看功能
- [ ] 反向代理(Nginx)配置(如需外网访问)
- [ ] HTTPSLet's Encrypt
- [ ] 系统服务(systemd
如需外网访问,建议配置 Nginx 反向代理和 HTTPS。
## 技术栈
- **后端**: FastAPI 0.115.0 + Uvicorn
- **前端**: Vue 3 + Element Plus
- **数据库**: SQLite 3
- **脚本**: Python 3 (subprocess)
- **样式**: Tailwind CSS (CDN)
## 文档
- 详细架构设计: `PORTFOLIO.md`
- 使用说明: 本文档
- API 文档: http://localhost:8000/docs (运行后)
**最后更新: 2026-05-12**
---
**版本**: 0.1.0
**更新**: 2026-04-19
**维护**: 宇之然 AI 助手
> **项目进度 → 详见 [PROGRESS.md](PROGRESS.md)**(本文件为唯一进度真理源)
---
## 技术栈
| 层次 | 技术 |
|------|------|
| 后端 | FastAPI 0.104+ |
| ORM | SQLAlchemy 2.0+ |
| 数据库 | PostgreSQL 16 |
| 前端 | Vue 3 (CDN) + Element Plus |
| 认证 | JWT (python-jose) + bcrypt |
---
## 数据库配置
详见 `platform/backend/.env`
---
## 启动方式
```bash
cd /root/openclaw-workspace/projects/yu-zhi-ran
./start-platform.sh 8001
```
默认管理员: **admin** / **admin123**
---
## 页面入口
| 页面 | 地址 |
|------|------|
| 仪表盘 | http://localhost:8001/ |
| 选题管理 | http://localhost:8001/topics.html |
| 内容日历 | http://localhost:8001/calendar.html |
| 数据分析 | http://localhost:8001/metrics.html |
| 素材库 | http://localhost:8001/assets.html |
| 创作任务 | http://localhost:8001/tasks.html |
| 平台配置 | http://localhost:8001/platforms.html |
| 系统管理 | http://localhost:8001/admin.html |
| API 文档 | http://localhost:8001/docs |
---
## API 模块
| 模块 | 文件 | 功能 |
|------|------|------|
| 认证 | auth.py | 登录/注册/JWT |
| 选题 | topics.py | CRUD、评分、批量操作 |
| 选题配置 | topic_config.py | 领域/评分字段/状态配置 |
| 文章 | articles.py | 文章管理 |
| 发布 | publishing.py | 发布记录 |
| 内容日历 | calendar.py | 排期、绑定选题 |
| 数据分析 | metrics.py | 仪表盘、趋势、推荐 |
| 素材库 | assets.py | 上传、标签、搜索 |
| 创作任务 | tasks.py | 异步任务、进度管理 |
| 平台配置 | platform_config.py | 知乎/微信/小红书 |
| 系统管理 | admin.py | 用户/案例/日志/配置 |
---
## 数据模型
- **TopicField** - 领域分类配置
- **TopicConfigField** - 选题评分字段
- **TopicStatusConfig** - 选题状态配置
- **Topic** - 选题主表
- **ContentCalendar** - 内容日历
- **ContentMetrics** - 数据追踪
- **MediaAsset** - 素材库
- **PlatformConfig** - 平台配置
- **ContentTask** - 创作任务
- **User** - 用户
- **Case** - 案例库
---
## 初始化数据
- 领域: 6 个(未来工作方式、AI与效率、可持续生活、数字游民、个人成长、科技人文)
- 状态: 5 种(待处理、待审查、草稿、待发布、已发布)
- 平台: 3 个(知乎、微信公众号、小红书)
- 管理员: admin/admin123
---
## 项目结构
```
yu-zhi-ran/
├── platform/
│ ├── backend/
│ │ ├── app/
│ │ │ ├── api/ # REST API
│ │ │ ├── core/ # 业务逻辑
│ │ │ ├── models.py # SQLAlchemy 模型
│ │ │ ├── schemas.py # Pydantic 验证
│ │ │ ├── database.py # 数据库连接
│ │ │ ├── main.py # FastAPI 入口
│ │ │ └── initial_data.py
│ │ └── venv/
│ └── frontend/ # Vue + Element Plus SPA
├── automation/ # 自动化脚本
├── content/ # 内容数据
└── scripts/ # 工具脚本
```
-262
View File
@@ -1,262 +0,0 @@
# 宇之然内容管理平台
> 自动化内容生产 + Web 管理界面
一个可持续、可管理的内容创业系统,实现从选题采集到多平台发布的全流程自动化。
---
## 🎯 核心能力
-**全自动流水线**:采集 → 创作 → 合规 → 发布准备(每日凌晨运行)
-**Web 管理界面**:一键控制、实时监控、可视化发布包管理
-**降级策略**:外部源失效时自动切换本地案例库,保证稳定产出
-**多平台支持**:知乎、小红书、微信公众号(HTML 发布包)
-**风控设计**:半自动发布(生成 HTML + 人工复制),避免平台封号
---
## 📦 项目结构(简洁版)
```
yu-zhi-ran/
├── platform/ # Web 管理平台(FastAPI + Vue 3
│ ├── backend/ # API 服务
│ └── frontend/ # 管理界面
├── automation/ # 自动化数据 + 日志
│ ├── data/ # JSON 选题库、草稿、发布包
│ ├── logs/ # 运行日志
│ └── scripts/ → ../scripts/ # 软链到 scripts/
├── scripts/ # CLI 脚本(collector, creator, optimizer...
├── content/ # 已发布内容存储
├── config/ # 配置文件(RSS源、机器人)
├── start-platform.sh # 快速启动管理平台
└── README_NEW.md # 本文档
```
---
## 🚀 快速开始
### 1️⃣ 启动管理平台(推荐)
```bash
cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran
./start-platform.sh 8001
```
访问:
- 界面:http://localhost:8001/
- API 文档:http://localhost:8001/docs
### 2️⃣ 测试自动化流水线
```bash
cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran
python test_full_pipeline.py --topic-id A01
```
预期输出:
- 生成 `automation/data/drafts/2026-04-19/A01_*.md`
- 生成 `automation/data/releases/2026-04-19/*/A01_*.html`
- 合规自动通过
### 3️⃣ 查看当前状态
```bash
# 选题库统计
python -c "import json; d=json.load(open('automation/data/sustainability_topics.json')); print(f'总{len(d)} 待处理:{sum(1 for t in d if t.get(\"status\")==\"待处理\")} 待发布:{sum(1 for t in d if t.get(\"status\")==\"待发布\")}')"
# 日志(今日)
tail -f automation/logs/creator_$(date +%Y-%m-%d).log
```
---
## 🔄 系统架构
```
定时任务 (cron)
├─▶ 05:00 collector.py → automation/data/sustainability_topics.json(选题)
├─▶ 05:30 creator.py → drafts/ + releases/HTML
├─▶ 05:45 optimizer.py → 合规报告
└─▶ 06:00 publisher.py → content/published/(发布包)
Web 平台(可选控制)
├─▶ 一键触发创作/优化
├─▶ 查看选题列表和详情
├─▶ 生成发布包、预览HTML、复制
└─▶ 查看实时流水线状态
```
---
## 📊 当前运行状态(2026-04-19
| 指标 | 数值 |
|------|------|
| 总选题数 | 22 |
| 待处理 | 20 |
| 待发布 | 2 (A01, A02) |
| 自动运行 | ✅ 正常(05:00-06:00 |
| 最新运行 | A0205:30 完成,8秒) |
| 合规通过率 | 100%3/3 |
待发布内容已就绪,可手动发布到知乎/小红书。
---
## 🎮 主要操作指南
### 触发创作任务
**Web 界面**:平台 → "运行创作任务" 按钮
**或命令行**
```bash
python scripts/creator.py --topic-id A03
```
### 生成发布包
**Web 界面**:选题 → 发布 → "重新生成"
**或命令行**
```bash
python scripts/publisher.py --topic-id A01
```
发布包位置:
```
content/published/A01/手动发布/
├── 知乎/文章.html
└── 小红书/文章.html
```
### 标记为已发布
在 Web 界面"发布管理"中填写各平台链接 → "确认发布"
这会更新选题状态为"已发布"并保存链接。
---
## ⚙️ 配置
### 数据源(automation/config/sources.yaml
```yaml
sources:
- name: "新华网-环保频道"
type: "rss"
url: "http://..."
- name: "本地案例库"
type: "local_markdown"
path: "automation/data/cases.md"
```
### 环境变量(platform/.env,可选)
```bash
PROJECT_ROOT=/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran
LOG_LEVEL=INFO
```
---
## 📝 开发调试
```bash
# 1. 检查环境
cd platform
python check.py
# 2. 启动服务(开发模式)
./run.sh 8000
# 3. 查看 API 日志(新终端)
tail -f automation/logs/creator_$(date +%Y-%m-%d).log
# 4. 重置数据库(如需)
rm -f data/yzr.db
cd platform/backend
python -c "from app.database import init_db; init_db(); from app.initial_data import import_topics_from_json; import_topics_from_json()"
```
---
## 🚧 注意事项
### 路径规范
所有 `platform/backend/app/**/*.py` 必须使用相对路径计算 `PROJECT_ROOT`
- `app/database.py`, `initial_data.py`: `Path(__file__).resolve().parents[3]`
- `app/api/*.py`, `app/core/*.py`: `Path(__file__).resolve().parents[4]`
禁止使用硬编码绝对路径!
### 软链接
```
platform/data → ../data
platform/logs → ../logs
automation/scripts → ../scripts/
```
这些链接确保平台和自动化模块共享数据。
### 数据流向
**唯一真理源**`automation/data/sustainability_topics.json`
- 所有状态更新(待处理 → 待发布 → 已发布)都应写入此 JSON
- `platform` 通过 `sync.py` 同步到 SQLite 供前端快速查询
- 不要直接修改数据库而不更新 JSON!
---
## 📚 详细文档
- `YUZHIRAN_PLATFORM.md` - 完整项目文档(架构、API、扩展)
- `platform/PORTFOLIO.md` - 平台架构详解
- `platform/README.md` - 平台使用说明
- `PROJECT_STRUCTURE.md` - 目录结构说明
---
## 🐛 故障排查
| 问题 | 检查点 | 命令 |
|------|--------|------|
| Web 界面无数据 | JSON 是否同步? | `curl http://localhost:8000/api/system/status` |
| 创作失败 | creator 日志 | `tail -n 50 automation/logs/creator_*.log` |
| 发布包缺失 | releases 目录 | `ls automation/data/releases/$(date +%Y-%m-%d)/` |
| 端口占用 | 8000 被谁用? | `lsof -i:8000` |
---
## 🎉 现状总结
昨天(4月18日)完成:
- 数据源切换(新华网+人民网)
- 降级策略(本地案例库保底)
- 锁机制(2小时超时)
- publisher 发布包系统
- 前端管理界面
今天(4月19日):
- 统一项目结构,整合 platform + automation
- 修正所有路径计算
- 添加软链接统一数据目录
- 创建启动脚本和文档
**状态**:✅ 系统稳定运行,每日自动产出内容,Web 平台就绪。
---
**维护**: AI 助手小然
**更新**: 2026-04-19
-232
View File
@@ -1,232 +0,0 @@
# 宇之然项目 - 2026-04-19 任务完成报告
## 📋 完成事项
### 1. ✅ 新增教育类选题
- **D06**: AI辅导孩子写作业:工具选型与使用边界
- **D07**: 用AI自制科普动画:父亲的亲子项目实践
**效果**:D 方向(科技人文交叉)扩展至 7 个选题,占比 31.8%
**更新位置**
- `automation/data/sustainability_topics.json` (+2)
- 数据库已同步(platform/backend/data/yzr.db
- 管理端 API 可查
---
### 2. ✅ 优化信息源配置
**文件**: `config/sources.yaml`
**新增/修改**
- 增加澎湃新闻-绿色频道 RSS
- 为每个中文源添加 `keywords` 字段(中英文可持续性词汇)
- 调整 `sustainability_categories` 映射
**信息源总数**: 10个
- 中文源:5个(新华网、人民网、澎湃新闻、中国环境报、国家发改委)
- 英文源:3个(UNEP、WEF、Circularity News
- 本地源:2个(案例库、历史选题库)
---
### 3. ✅ 修复本地案例库
**文件**: `automation/data/sustainability_cases.json`
**改动**
- 重建结构化 JSON 案例库(原文件解析失效)
- 新增 6 个高质量案例(日本东京、瑞典斯德哥尔摩、荷兰阿姆斯特丹、法国、德国、中国上海)
- 每个案例包含完整字段:country, category, title, core_idea, data_facts, global_advantage, china_pain_point, localization_suggestion, mvp_action, source_url, 评分等
**验证**
```
✅ collector 加载: 6 个案例
✅ JSON 格式有效
✅ SustainabilityCase 解析成功
```
---
### 4. 🔧 修复 collector.py 路径计算
**问题**: `PROJECT_ROOT` 计算错误(只上升2层)
**修复**: 改为 `Path(__file__).parent.parent.parent`(上升3层到项目根)
**影响**: 日志、数据、配置文件路径全部修正
---
### 5. 🔧 增强 RSS 关键词匹配
**改动**
- 支持每个信息源自定义关键词(`keywords` 字段)
- RSS 抓取数量从 10 增至 15
- 处理 `content` 为空的情况(fallback 到 title
- 关键词列表扩展(增加中文词汇)
---
### 6. ✅ 验证 Gitea 端口冲突解决
- yhl 服务:3000
- Gitea2999(原 3000
- wdKJ3001
- yu-zhi-ran8001
**端口清单已更新**: `network/ports-registry.md`
---
### 7. ✅ wdkj 项目信息归档
**文件**: `projects/wdkj-info.md`
内容:项目位置、端口、配置、密钥、API、管理后台等信息完整备份
---
## 📊 系统当前状态
### 自动化流水线(定时)
| 任务 | 时间 | 脚本 | 状态 |
|------|------|------|------|
| collector | 05:00 | collector.py | ✅ 已配置 |
| creator | 05:30 | creator.py | ✅ 已配置 |
| optimizer | 05:45 | compliance_optimizer.py | ✅ 已配置 |
| publisher | 06:00 | publisher.py | ✅ 已配置 |
**下次运行**: 2026-04-20 凌晨 05:00 开始
---
### 选题库(2026-04-19 15:30
| 领域 | 数量 | 待发布 | 待处理 |
|------|------|--------|--------|
| 未来工作方式 | 5 | 2 | 3 |
| 可持续生活系统 | 5 | 0 | 5 |
| 个人知识工厂 | 5 | 0 | 5 |
| 科技人文交叉 | 7 | 0 | 7 |
| **总计** | **22** | **2** | **20** |
**状态说明**
- 待发布(A01, A02):release 包已就绪,等待手动发布
- 待处理:可用于自动创作
---
### 服务运行状态
| 服务 | 端口 | PID | 状态 |
|------|------|-----|------|
| yu-zhi-ran platform | 8001 | 1982655 | ✅ running |
| Gitea | 2999 | 2007075 | ✅ running |
| yhl-auto API | 8000 | 2014198 | ✅ running |
| yhl-auto crawler | - | 1403607 | ✅ running |
| wdkj-server | 3001 | 1667053 | ✅ running |
---
## 🔍 已知问题与待办
### ⚠️ 当前问题
1. **RSS 外部源失效**
- 新华网、人民网 RSS 抓取返回 0 篇文章
- 可能原因:RSS URL 失效、关键词过滤过严、源站反爬
- **临时解决**: 降级策略使用本地案例库(每天至少产出1个选题)
- **长期解决**: 增加更多可靠中文源(已完成澎湃新闻添加)
2. **企业微信通知失败**
- 原因:OpenClaw Gateway 未连接
- 影响:定时任务完成通知无法推送
- 解决:检查网关状态 `openclaw gateway status`
3. **网页源未自动抓取**
- 中国环境新闻、国家发改委等标记为"需手动处理"
- 需要实现网页抓取器(或使用 API 替代)
---
### 📝 后续优化建议
1. **增加信息源**
- [ ] 添加更多可持续性领域 RSS(如:中国能源网、北极星环保网)
- [ ] 配置新闻 API(如:百度新闻、搜狗新闻)
- [ ] 实现网页源自动抓取(BeautifulSoup + 智能选择器)
2. **优化案例库**
- [ ] 扩充案例数量至 50+(每个子领域至少 5 个)
- [ ] 添加案例来源验证(URL 可访问性检查)
- [ ] 引入 AI 自动提炼核心观点(减少人工)
3. **关键词匹配**
- [ ] 为每个信息源定制关键词(已完成基础)
- [ ] 支持同义词扩展(如:环保=绿色=生态)
- [ ] 添加负面关键词过滤(排除无关内容)
4. **通知修复**
- [ ] 检查 OpenClaw Gateway 连接
- [ ] 测试企业微信 MCP 工具
- [ ] 配置备用通知渠道(邮件、钉钉)
5. **监控与报告**
- [ ] 每日自动生成运行报告(邮件/消息)
- [ ] 选题数量趋势图
- [ ] 内容质量指标(字数、合规分、发布率)
---
## 📈 运行数据(历史)
### 4月16日
- collector: 选题库为空,失败
- creator: 成功(A01, A02, A03, A04
- optimizer: 成功(A01 100分)
- publisher: 成功
### 4月17日
- collector: 降级策略,生成 C01, C02
- creator: 成功(C01, B01, A05
- optimizer: 成功(全自动通过)
- publisher: 成功
### 4月18日
- collector: 外部源失败,降级无效(本地解析错误)
- creator: 选题库为空,失败
- optimizer: N/A
- publisher: N/A
### 4月19日(今日)
- collector: 外部源仍失败,降级使用 6 个本地案例,生成 D06, D07?
- **实际**: collector 尚未运行(待凌晨执行)
- **当前**: 仅执行了优化配置和测试
- 管理平台: ✅ 启动(8001
- 数据同步: ✅ 22选题同步到 DB
---
## 🎯 结论
今日主要完成**基础设施优化**
- ✅ 案例库重建(6个高质量案例)
- ✅ 信息源配置升级(10个源)
- ✅ collector 代码修复(路径、关键词、JSON加载)
- ✅ 新增2个教育类选题
- ✅ 端口冲突解决
- ✅ 项目信息归档
**预期效果**:从明早(04-2005:00 开始,collector 将:
1. 尝试从 10 个信息源抓取
2. 若外部源失败,使用 6 个本地案例保底
3. 生成至少 1 个新选题
4. 后续 creator 自动创作
---
**生成时间**: 2026-04-19 15:30 (Asia/Shanghai)
**任务状态**: ✅ 已完成核心优化
-285
View File
@@ -1,285 +0,0 @@
# 宇之然内容管理平台 - 完整项目文档
## 📦 项目概览
宇之然内容管理平台是一个集**自动化流水线**与**Web管理界面**于一体的内容生产系统。
- **自动化模块**: 采集→创作→优化→发布的全自动脚本
- **管理平台**: Web UI 监控、控制、发布包管理
- **数据源**: 单一 JSON 文件 + 本地案例库
- **目标**: 每日自动生成高质量原创内容,多平台分发
## 🏗️ 目录结构
```
yu-zhi-ran/
├── platform/ # 管理平台(FastAPI + Vue 3
│ ├── backend/ # FastAPI 后端
│ │ └── app/
│ │ ├── api/ # REST API
│ │ │ ├── system.py # 系统状态、流水线控制
│ │ │ ├── topics.py # 选题管理
│ │ │ ├── publisher.py # 发布包管理
│ │ │ └── articles.py
│ │ └── core/ # 业务逻辑封装
│ │ ├── generator.py → 调用 scripts/creator.py
│ │ ├── optimizer.py → 调用 scripts/compliance_optimizer.py
│ │ └── sync.py → 同步 automation/data/*.json
│ └── frontend/ # Vue 3 前端(CDN依赖)
│ └── index.html
├── automation/ # 自动化流水线(脚本+数据+日志)
│ ├── scripts/ (软链) → ../scripts/
│ ├── data/ # JSON 数据源
│ │ ├── sustainability_topics.json # 选题库
│ │ ├── drafts/ # 草稿目录
│ │ └── releases/ # 发布包(按日期)
│ └── logs/ # 运行日志
│ ├── collector_*.log
│ ├── creator_*.log
│ ├── optimizer_*.log
│ └── publisher_*.log
├── scripts/ # 底层CLI脚本(被automation/scripts/引用)
│ ├── collector.py # 采集热点
│ ├── creator.py # 内容创作
│ ├── compliance_optimizer.py # 合规优化
│ ├── publisher.py # 发布包生成
│ ├── research.py # 研究资料
│ ├── outline.py # 大纲生成
│ └── writer.py # 撰写主力
├── content/ # 已发布内容存储
│ ├── published/ # 按 topic_id 组织
│ ├── drafts/ # 草稿
│ ├── ideas/ # 选题记录
│ └── images/ # 配图资源
├── config/ # 配置文件
│ ├── sources.yaml # RSS/网页源配置
│ └── wecom_config.yaml # 企业微信通知
├── brand/ # 品牌资产
│ ├── brand-book.md
│ └── guidelines.md
├── research/ # 行业研究
│ └── trends-2026.md
├── strategy/ # 内容策略
│ └── 全球-本土比较研究与全新内容战略规划-2026-04-15.md
├── tasks/ # 项目管理
│ └── todo.md
├── logs/ # 根目录日志(兼容)
├── backup/ # 备份归档
├── README.md # 项目总览
├── TEST_FULL_PIPELINE.md # 测试指南
└── run_publisher.sh # 快速启动发布任务
# 软链接(保持路径兼容)
automation/scripts → ../scripts/
```
---
## 🚀 快速开始
### 方式一:直接运行自动化流水线(CLI)
```bash
cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran
# 手动执行各步骤
python scripts/collector.py # 采集选题
python scripts/creator.py # 创作内容
python scripts/compliance_optimizer.py # 合规优化
python scripts/publisher.py # 生成发布包
# 或使用测试脚本
python test_full_pipeline.py --topic-id A01
```
### 方式二:启动 Web 管理平台
```bash
cd platform
./run.sh 8001
# 访问
# - 界面: http://localhost:8001/
# - API文档: http://localhost:8001/docs
```
**功能**
- 📊 仪表盘:选题统计、今日生成
- 🔄 控制台:一键触发 collector/creator/optimizer
- 📝 选题管理:列表、预览、状态
- 📦 发布管理:生成发布包、查看HTML、复制
- 📋 日志查看:所有模块实时日志
### 方式三:定时自动运行(cron)
```bash
# 编辑 crontab
crontab -e
# 添加以下任务(参考)
0 5 * * * cd /path/to/yu-zhi-ran && python automation/scripts/collector.py
30 5 * * * cd /path/to/yu-zhi-ran && python automation/scripts/creator.py
45 5 * * * cd /path/to/yu-zhi-ran && python automation/scripts/compliance_optimizer.py
0 6 * * * cd /path/to/yu-zhi-ran && python automation/scripts/publisher.py
```
---
## 🔄 系统架构
### 数据流
```
┌─────────────────┐
│ 采集/创作/优化 │ ←─ automation/scripts/*.py
│ (CLI 脚本) │
└────────┬────────┘
│ 读写 JSON
┌─────────────────┐
│ automation/data │
│ sustainability_ │
│ topics.json │
└────────┬────────┘
│ 同步
┌─────────────────┐
│ platform/ │
│ FastAPI + │
│ SQLite DB │
└────────┬────────┘
│ HTTP API
┌─────────────────┐
│ Web 前端 │
│ (Vue 3) │
└─────────────────┘
```
### 触发流程
| 操作 | API端点 | 执行脚本 | 结果 |
|------|---------|----------|------|
| 点击"运行创作任务" | POST `/api/system/generate/run` | `scripts/creator.py` | 生成草稿 → 状态: 待审查 |
| 点击"运行合规优化" | POST `/api/system/optimize/run` | `scripts/compliance_optimizer.py` | 全自动通过 → 状态: 待发布 |
| 点击"生成发布包" | POST `/api/publisher/generate/{id}` | `scripts/publisher.py` | HTML包 → content/published/ |
| 页面刷新 | GET `/api/system/status` | - | 显示最新状态 |
---
## 📊 当前状态(2026-04-19
- **选题库**: 22 个(20 待处理 + 2 待发布)
- **自动运行**: ✅ 每日 05:00-06:00 全流程
- **上次运行**: 2026-04-19 05:30A02 选题,8秒完成)
- **合规通过率**: 100%(小样本)
- **发布包**: A01、A02 已就绪(知乎+小红书)
查看详细日志:
```bash
tail -f automation/logs/creator_$(date +%Y-%m-%d).log
tail -f automation/logs/publisher_$(date +%Y-%m-%d).log
```
---
## 🔧 开发调试
### 检查环境
```bash
cd platform
python check.py
```
### 手动测试流水线
```bash
python test_full_pipeline.py --topic-id A05
```
### API 测试
```bash
# 系统状态
curl http://localhost:8000/api/system/status
# 触发创作
curl -X POST http://localhost:8000/api/system/generate/run
# 流水线状态
curl http://localhost:8000/api/system/pipeline/status
```
### 数据库重置
```bash
cd platform/backend
rm -f data/yzr.db
python -c "from app.database import init_db; init_db()"
```
---
## 📝 配置说明
### automation/config/sources.yaml
配置外部信息源(RSS/网页):
```yaml
sources:
- name: "新华网-环保频道"
type: "rss"
url: "http://www.news.cn/..."
focus: "可持续性"
- name: "人民网-生态环境"
type: "rss"
url: "http://env.people.com.cn/..."
focus: "环保政策"
```
### platform/.env (可选)
```bash
PROJECT_ROOT=/path/to/yu-zhi-ran
DATA_DIR=/path/to/data
LOG_LEVEL=INFO
```
---
## 🎯 核心特性
| 特性 | 实现 |
|------|------|
| **降级策略** | 外部源失败 → 本地数据库 → Markdown案例库 |
| **锁机制** | 2小时超时,防止并发冲突 |
| **状态同步** | JSON ↔ SQLite 自动同步 |
| **发布准备** | 生成多平台HTML + 发布指南,人工发布(风控) |
| **Web管理** | Vue 3 单页应用,无需构建 |
| **日志聚合** | 所有模块日志按日期归档 |
---
## 🚧 待办事项
- [ ] 添加用户认证(目前仅本地访问)
- [ ] 实现异步任务状态轮询(创作/优化耗时较长)
- [ ] Nginx 反向代理配置(外网访问)
- [ ] 监控告警(失败通知)
- [ ] 多账号/IP策略(小红书多号分散风险)
- [ ] 数据导出功能(选题库、发布记录)
---
## 📚 相关文档
- `platform/PORTFOLIO.md` - 平台架构详解
- `platform/README.md` - 管理平台使用说明
- `PROJECT_PLAN_V2.md` - 盈利模式与5平台矩阵
- `HERMES_AND_YUZHRAN_STATUS.md` - 多Agent共享状态
- `2026-04-18-YUZHRAN-FIXES-SUMMARY.md` - 技术修复总结
---
**版本**: 2.0 (2026-04-19)
**维护**: 宇之然 AI 助手
**最后更新**: 2026-04-19
@@ -0,0 +1,331 @@
# 宇之然工作台改造方案 — 极简实用 AI Agent 时代设计
> 调研日期: 2026-06-16
> 基于 2026 年 AI 产品设计趋势 + 现有工作台全面审计
---
## 一、现有工作台问题分析
### 1.1 当前页面结构
| 页面 | 定位 | 问题 |
|------|------|------|
| `/index.html` 仪表盘 | 系统概览 + 模块状态 + 近期计划 | **系统视角**,不是用户视角。6 张统计卡片 + 6 个定时模块卡片 + 调度状态 → 像运维面板,不像创作工作台 |
| `topics.html` 选题 | 选题表格 CRUD + 批量操作 | 功能完整但无聊。没有 AI 辅助选题推荐,没有智能排序 |
| `metrics.html` 数据 | 统计看板 + 图表 | 功能 OK,但与 GEO/搜索排名/合规数据分离在不同页面 |
| `calendar.html` 日历 | 内容日历 | 独立页面,与选题/数据割裂 |
| `tasks.html` 任务 | 流水线执行记录 | 展示后端调度状态,普通用户看不懂 |
| `admin.html` 系统管理 | 13 个 Tab 的后台 | 混入了业务功能(AI助手、搜索排名、GEO) |
| `assets.html` 素材 | 素材管理 | 基础功能 |
| `landing.html` 官网 | 产品官网 | ✅ 独立、清晰 |
### 1.2 核心问题
1. **仪表盘是「系统监控」不是「创作工作台」**
- 一进来看到的是定时任务状态(热点趋势/采集/创作/审查),不是「我今天要做什么」
- 缺少任务优先级、待办提醒、进度概览
- 对于内容编辑来说,模块卡片(scheduler 状态)毫无意义
2. **导航/信息架构是「功能菜单」不是「创作流程」**
- 六个平级菜单项:仪表盘、选题、数据、日历、素材、任务
- 没有工作流意识 — 用户需要在多个页面跳转来完成一个创作流程
- 缺少「最近工作」「快速开始」等具有上下文感的入口
3. **AI 能力是「附加功能」不是「内嵌体验」**
- AI 助手是右下角浮窗 chatbot,与工作流分离
- AI 选题分析在选题页弹窗里,AI 写文章在发布流程里
- 没有 Agent 工作区 — 没有一个地方能看到 AI 正在做什么、做了什么、需要什么审批
4. **权限与功能混杂**
- 业务功能(搜索排名、GEO 优化、AI 助手)锁在 admin.html 里
- 普通用户使用需要切换到「系统管理」—— 概念上就不对
5. **缺少「Agent 时代」的核心交互模式**
- ❌ 没有 Plan-first(先展示计划,再执行)
- ❌ 没有 AI 操作轨迹/审计
- ❌ 没有任务编排/Agent 工作区
- ❌ 没有智能建议/预测
- ✅ 但已经有一个基础的 AI 助手浮窗底座
---
## 二、2026 AI 产品设计趋势映射
### 从 7 个趋势看我们应该做什么
| # | 趋势 | 对我们意味着什么 |
|---|------|----------------|
| 1 | **UX → AX (Agentic Experience)** | 工作台需要展示 AI 的**行动计划**和**执行轨迹**,而不是单纯的界面操作 |
| 2 | **Plan-first 交互** | 选题→创作→发布 应该有一个**流程预览**步骤,AI 先展示「我将做 A→B→C」,用户确认后再执行 |
| 3 | **Invisible AI (嵌入式 AI)** | AI 不应该是右下角聊天窗,而应该嵌入到选题列表(智能排序)、文章编辑(实时优化建议)、日历(智能排期)|
| 4 | **Delegation with Control** | 用户需要看到一个「代理仪表盘」— AI 正在做什么、已完成什么、需要审批什么 |
| 5 | **Workspace over Chat** | 从「跟 AI 对话」到「AI 作为团队成员在共享空间工作」|
| 6 | **预览→差异→确认 模式** | 所有 AI 生成/修改的内容,先展示 diff/预览,再确认写入 |
| 7 | **审批路径和可逆性** | 每一步操作都有 undo 路径和操作历史 |
---
## 三、改造方案设计
### 3.1 总体信息架构重构
```
当前: 目标:
┌──────────┐ ┌──────────────────┐
│ 仪表盘 │ ← 系统视角 │ 工作台 (首页) │ ← 用户视角
│ 选题 │ │ ├─ 今日待办 │
│ 数据 │ │ ├─ 创作流水线 │
│ 日历 │ │ ├─ 智能建议 │
│ 素材 │ │ └─ 最近工作 │
│ 任务 │ ├──────────────────┤
│ 系统管理 │ │ 内容工厂 │ ← 创作流程
└──────────┘ │ ├─ 选题工作区 │
│ ├─ AI 创作工作区 │
│ ├─ 发布工作区 │
│ └─ 内容日历 │
├──────────────────┤
│ 数据洞察 │ ← 效果分析
│ ├─ 数据看板 │
│ ├─ 搜索排名 │
│ ├─ GEO 就绪度 │
│ └─ 合规报告 │
├──────────────────┤
│ 资产库 │ ← 资源管理
├──────────────────┤
│ 系统管理 (admin) │ ← 仅管理员
```
### 3.2 工作台首页(全新设计)
**目标**:一打开就知道今天要做什么、进度如何、有什么需要关注
```
┌─────────────────────────────────────────────────┐
│ ☀️ 早上好,张三 你的团队本周已发布 3 篇内容 │
├─────────────────────────────────────────────────┤
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ 待处理│ │ 待审查│ │ 待发布│ │ 本月 │ │ 合规 │ │
│ │ 选题 │ │ 文章 │ │ 内容 │ │ 目标 │ │ 健康 │ │
│ │ 12 │ │ 5 │ │ 3 │ │ 67% │ │ 94% │ │
│ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │
├─────────────────────────────────────────────────┤
│ 📋 今日待办 │
│ ┌─────────────────────────────────────────────┐ │
│ │ 🔴 审查「远程办公的 5 个陷阱」- 逾期 2 天 │ │
│ │ 🟡 审核「AI 写作工具实测」- AI 已完稿 │ │
│ │ 🔵 确认本周排期 - 3 篇待定稿 │ │
│ └─────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────┤
│ 🤖 AI Agent 工作区 │
│ ┌─────────────────────────────────────────────┐ │
│ │ 📡 热点采集 ✅ 完成 (12 条新趋势) │ │
│ │ ✍️ 文章创作 ⏳ 进行中 (2/5 篇) │ │
│ │ 🔍 合规审查 ⏳ 排队中 (3 篇待审) │ │
│ │ 📊 数据同步 ⏰ 06:00 自动运行 │ │
│ │ │ │
│ │ [查看 Agent 轨迹 →] │ │
│ └─────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────┤
│ 💡 AI 智能建议 │
│ ┌─────────────────────────────────────────────┐ │
│ │ 💡 「碳中和」关键词本周搜索量 ↑47% │ │
│ │ 建议创建一篇相关选题 │ │
│ │ [一键创建选题 →] │ │
│ │ 💡 你的知乎上周互动率 ↑12% │ │
│ │ 建议继续保持数据分析深度 │ │
│ └─────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────┤
│ 📅 近期计划 │
│ ┌──────────┬──────────────────┬──────────┐ │
│ │ 06/17 二 │ 远程办公工具对比 │ 知乎发布 │ │
│ │ 06/18 三 │ AI 写作体验 │ 公众号 │ │
│ │ 06/19 四 │ 零浪费生活指南 │ 小红书 │ │
│ └──────────┴──────────────────┴──────────┘ │
└─────────────────────────────────────────────────┘
```
### 3.3 内容工厂(创作流水线重构)
**目标**:按创作流程组织,而不是按数据表组织
#### 选题工作区
- **AI 智能选题板**:热点趋势 + 关键词热度 + 历史数据 → 推荐选题
- **选题看板**:Kanban 视图(待处理→分析中→已评分→待创作)
- **批量操作**:AI 一键分析 → 自动评分 → 自动排序
- **卡片预览**:题目的核心观点、受众痛点、差异化切入点和评分一览
#### AI 创作工作区 (NEW)
- **创作任务面板**:显示所有进行中的 AI 创作任务
- **Plan-first 流程**:用户选择选题 → AI 展示大纲 → 用户确认 → AI 逐节写作
```
步骤 1: 选择选题 + 平台
步骤 2: AI 生成大纲 (展示预览)
步骤 3: 用户调整大纲 (拖拽排序/编辑)
步骤 4: AI 逐节写作 (进度条展示)
步骤 5: 合规审查 (展示问题列表)
步骤 6: 用户最终编辑
```
- **Agent 执行轨迹**:每次 AI 操作都有时间线记录
- **在线编辑器**:统一的富文本编辑器,支持实时 AI 优化建议
#### 发布工作区
- **发布检查清单**:AI 自动检查合规、字数、配图、格式
- **一键多平台发布**:选题→三平台各自适配→预览→确认发布
- **发布历史**:时间线视图
### 3.4 AI Agent 工作区(新概念页面)
**这是本次改造的核心创新亮点** — 一个展示 AI 作为「团队成员」工作状况的看板。
```
┌─────────────────────────────────────────────────┐
│ 🤖 AI Agent 工作区 │
├─────────────────────────────────────────────────┤
│ 🔴 活跃任务 │
│ ┌─────────────────────────────────────────────┐ │
│ │ ✍️ 正在创作「远程办公的 5 个陷阱」→ 知乎版 │ │
│ │ 进度: ████████░░ 78% │ │
│ │ 当前步骤: 撰写第 3 节「团队协作挑战」 │ │
│ │ [预览] [暂停] [取消] │ │
│ │ │ │
│ │ 🔍 正在审查「AI 写作工具实测」- 小红书版 │ │
│ │ 进度: ████░░░░░░ 35% │ │
│ │ 发现 2 个合规问题 │ │
│ │ [查看详情] │ │
│ └─────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────┤
│ ⏳ 待审批 │
│ ┌─────────────────────────────────────────────┐ │
│ │ 📝 大纲待确认 「零浪费生活指南」 │ │
│ │ 已由 AI 自动生成,等待你审核 │ │
│ │ [查看大纲] [确认] [修改] │ │
│ │ │ │
│ │ 📄 文章待审 「碳中和入门」已完稿 │ │
│ │ 合规评分 92/100,2 条建议 │ │
│ │ [审阅] [通过] [退回修改] │ │
│ └─────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────┤
│ ✅ 今日已完成 │
│ ┌─────────────────────────────────────────────┐ │
│ │ ✅ 采集热点 12 条 → 生成 3 个新选题 │ │
│ │ ✅ 同步数据指标 → 知乎互动率 +12% │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
```
### 3.5 数据洞察(统一分析中心)
将当前分散的数据功能整合:
| Tab | 功能 | 来源 |
|-----|------|------|
| 概览 | 总指标 + 趋势图 | 现有 metrics.html |
| 搜索排名 | 关键词排名追踪 | 现 admin.html 搜索排名 |
| GEO 就绪度 | AI 搜索优化评分 | 现 admin.html GEO |
| 合规报告 | 发布前合规检查历史 | 现 admin.html + 优化报告 |
| 平台对比 | 知乎/公众号/小红书数据 | 现有 metrics.html |
### 3.6 导航改造
```javascript
// 现有 navItems (硬编码):
[{dashboard, topics, metrics, calendar, assets, tasks}]
// admin 额外: [admin]
// 目标 navItems (按角色动态):
// 编辑:
[{工作台(top), 内容工厂(factory), 数据洞察(insights), 资产库(assets)}]
// 管理员:
内容工厂 + 数据洞察 + 资产库 + 系统管理(admin)
```
导航从「功能清单」变成「流程引导」:
- **工作台** = 首页(今日待办 + Agent 状态 + 智能建议)
- **内容工厂** = 创作全流程(选题→创作→发布→日历)
- **数据洞察** = 所有数据分析入口
- **资产库** = 素材管理
### 3.7 移动端适配
当前移动端只是隐藏表格换卡片,改造后:
- 底部 Tab 导航栏(代替顶部汉堡菜单)
- 工作台首页简化为:今日待办 + Agent 状态 + 快速操作按钮
- 内容工厂:简易 Kanban,手势左右切换阶段
- AI Agent: 推送通知代替实时面板
---
## 四、实施优先级
### P0 — 快速见效 (1-2 天)
这些改动小但体验提升大:
| 改动 | 文件 | 工作量 |
|------|------|--------|
| 仪表盘改为用户视角(统计卡片 = 待办数量而不是系统模块) | `index.html` | 半天 |
| 将 AI 助手从浮窗升级为半屏面板 | `ai-assistant.js` | 半天 |
| 导航改为新架构(工作台/内容工厂/数据洞察/资产库) | `uni-nav.js` | 半天 |
### P1 — 核心重构 (3-5 天)
| 改动 | 涉及 | 工作量 |
|------|------|--------|
| 内容工厂页面(创作流水线) | 新建 `factory.html` | 2 天 |
| AI Agent 工作区 | 新建 `agent.html` | 2 天 |
| 数据洞察整合(合并 GEO/搜索排名) | 改造 `metrics.html` | 1 天 |
### P2 — 增强功能 (5-7 天)
| 改动 | 工作量 |
|------|--------|
| Plan-first 创作流程(大纲预览→确认→执行) | 3 天 |
| Agent 执行轨迹/审计时间线 | 2 天 |
| 智能选题推荐面板 | 2 天 |
| 移动端全面适配 | 2 天 |
### P3 — AI 原生体验 (后续)
| 改动 | 工作量 |
|------|--------|
| 智能排期 / 内容策略建议 | 3 天 |
| 自动化工作流编排(拖拽编排 Agent 任务) | 5 天 |
| 多 Agent 协作(采集 Agent + 写作 Agent + 审查 Agent | 5 天 |
---
## 五、关键设计原则
1. **用户视角 > 系统视角**
- 展示「我今天要做什么」而不是「系统正在运行什么」
- 统计数字 = 行动信号(待办数量)而不是监控指标
2. **流程 > 功能**
- 按创作流程组织页面(选题→创作→发布→分析)
- 不在功能之间跳转,在流程中前进
3. **AI 是团队成员,不是工具**
- 展示 AI 的工作计划、进度、产出
- 用户是「审核者/决策者」而不是「操作者」
- 核心模式:用 AI → AI 执行 Plan → 用户审核/批准
4. **预览→确认→执行**
- AI 生成的所有内容:先预览/展示差异,再确认
- 所有操作可逆,有撤销路径
5. **极简不极简功能**
- 减少平级菜单数量和页面复杂
- 不减少功能 — 用上下文和流程引导代替功能罗列
---
## 六、与当前改造项目的关系
本次工作台改造与正在进行的数据隔离/权限升级是 **互补关系**:
| 改造线 | 范围 | 依赖 |
|--------|------|------|
| **数据隔离+权限** (当前进行中) | 后端架构、数据安全 | 无 |
| **工作台极简改造** (本方案) | 前端 UI/UX、信息架构 | 权限系统就绪后可基于角色定制页面 |
建议:
1. 先完成数据隔离和权限基础 — 这是安全基石
2. 工作台改造可以在权限未完全就绪时就开始前端改造(不依赖后端)
3. 导航的 role-based 显示可以利用现有的 `/api/menus/active` 接口
-24
View File
@@ -1,24 +0,0 @@
#!/usr/bin/env python3
"""
在 Markdown 的 H2 标题前插入分隔线,第一个除外
"""
MD_PATH = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/published/2026-04-14-上海阳台种菜一年/final-article.md"
with open(MD_PATH, "r", encoding="utf-8") as f:
lines = f.readlines()
new_lines = []
first_h2_seen = False
for line in lines:
if line.startswith("## "):
if first_h2_seen:
new_lines.append("---\n\n")
else:
first_h2_seen = True
new_lines.append(line)
with open(MD_PATH, "w", encoding="utf-8") as f:
f.writelines(new_lines)
print(f"✅ 已处理 {MD_PATH}")
-39
View File
@@ -1,39 +0,0 @@
#!/usr/bin/env python3
"""
在章节标题(h2)前插入分隔线,第一个除外
"""
import re
HTML_PATH = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/published/2026-04-14-上海阳台种菜一年/article-optimized.html"
with open(HTML_PATH, "r", encoding="utf-8") as f:
html = f.read()
# 分隔线HTML
separator = '<div class="chapter-separator" style="margin: 40px 0 20px; border-top: 2px dashed #e0e0e0;"></div>\n'
# 找到所有 h2 标题
h2_pattern = re.compile(r'(<h2>.*?</h2>)', re.DOTALL)
matches = list(h2_pattern.finditer(html))
# 跳过第一个 h2,对其余每个插入分隔
insertions = []
for i, m in enumerate(matches[1:], start=1): # 从第二个开始
insert_pos = m.start()
insertions.append((insert_pos, separator))
# 按位置逆序插入,避免影响后续位置
insertions.sort(reverse=True, key=lambda x: x[0])
html_list = list(html)
for pos, sep in insertions:
html_list.insert(pos, sep)
new_html = ''.join(html_list)
# 写回
with open(HTML_PATH, "w", encoding="utf-8") as f:
f.write(new_html)
print(f"✅ 已插入 {len(insertions)} 个章节分隔")
print(f"📄 文件: {HTML_PATH}")
+2 -2
View File
@@ -7,8 +7,8 @@
import os
from PIL import Image
IMAGES_DIR = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/publishing/images"
OUTPUT_DIR = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/publishing/images_compressed"
IMAGES_DIR = "/root/openclaw-workspace/projects/yu-zhi-ran/content/publishing/images"
OUTPUT_DIR = "/root/openclaw-workspace/projects/yu-zhi-ran/content/publishing/images_compressed"
os.makedirs(OUTPUT_DIR, exist_ok=True)
+338
View File
@@ -0,0 +1,338 @@
[
{
"id": 1,
"title": "GitLab 全远程公司手册",
"field": "未来工作方式",
"summary": "GitLab 是全球最大的全远程公司,拥有1500+员工分布在65+国家,其文档和协作模式被广泛研究。",
"key_metrics": "员工满意度 4.5/5,离职率低于行业平均50%",
"date": "2024",
"source": "GitLab 官方博客",
"source_url": "https://about.gitlab.com/remote-work/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 2,
"title": "Zapier 异步沟通指南",
"field": "未来工作方式",
"summary": "Zapier 通过自动化工作流减少会议,实现全球团队异步协作。",
"key_metrics": "员工每周会议时间 <2h,效率提升30%",
"date": "2023",
"source": "Zapier 博客",
"source_url": "https://zapier.com/blog/asynchronous-communication/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐"
},
{
"id": 3,
"title": "爱沙尼亚游民签证",
"field": "未来工作方式",
"summary": "爱沙尼亚推出数字游民签证,允许远程工作者合法居住1年。",
"key_metrics": "申请量年增200%,主要来自IT从业者",
"date": "2024",
"source": "Estonian Government",
"source_url": "https://e-resident.gov.ee/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐"
},
{
"id": 4,
"title": "巴厘岛游民社区",
"field": "未来工作方式",
"summary": "巴厘岛成为亚洲游民热点,提供 coworking 空间和社区活动。",
"key_metrics": "每年吸引10万+游民,消费力强",
"date": "2024",
"source": "Bali Tourism Board",
"source_url": "https://www.balitourismboard.org/",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 5,
"title": "Fiverr AI服务市场",
"field": "未来工作方式",
"summary": "Fiverr 上 AI 代写、数据分析等服务泛滥,形成灰色产业链。",
"key_metrics": "AI服务订单季度增长150%",
"date": "2025",
"source": "Fiverr 数据报告",
"source_url": "https://www.fiverr.com/",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 6,
"title": "Indie Hackers 社区",
"field": "未来工作方式",
"summary": "Indie Hackers 是独立开发者分享产品成长和盈利的地方。",
"key_metrics": "超过5000个真实项目案例,月均收入 $2k+",
"date": "2024",
"source": "Indie Hackers",
"source_url": "https://www.indiehackers.com/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐"
},
{
"id": 7,
"title": "One Person Business",
"field": "未来工作方式",
"summary": "一人企业思维强调极简运营,低风险创业模式。",
"key_metrics": "初期投入 <$100020%实现月入$3k",
"date": "2023",
"source": "Pieter Levels 博客",
"source_url": "https://levels.io/",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 9,
"title": "纽约社区花园政策",
"field": "可持续生活系统",
"summary": "纽约市通过土地使用权政策支持社区花园建设。",
"key_metrics": "覆盖500+社区,参与者超10万",
"date": "2023",
"source": "NYC Parks",
"source_url": "https://www.nycgovparks.org/",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐"
},
{
"id": 10,
"title": "瑞典零浪费城市",
"field": "可持续生活系统",
"summary": "瑞典城市通过垃圾分类和堆肥计划,实现垃圾填埋量减少90%。",
"key_metrics": "垃圾回收率 99%,焚烧发电供全市1/3用电",
"date": "2024",
"source": "Swedish Waste Management",
"source_url": "https://www.avfallsverige.se/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐"
},
{
"id": 11,
"title": "日本 Mottainai 文化",
"field": "可持续生活系统",
"summary": "Mottainai(勿浪费)精神贯穿生活,提倡物尽其用。",
"key_metrics": "家庭垃圾量比欧美低40%",
"date": "2024",
"source": "日本环境省",
"source_url": "https://www.env.go.jp/",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐"
},
{
"id": 12,
"title": "荷兰自行车城市",
"field": "可持续生活系统",
"summary": "荷兰城市拥有完善的自行车道网络,自行车通勤占比 >40%。",
"key_metrics": "人均自行车拥有量 1.3辆,交通事故率低",
"date": "2023",
"source": "Dutch Cycling Embassy",
"source_url": "https://cyclingembassy.org/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐"
},
{
"id": 13,
"title": "挪威电动车普及",
"field": "可持续生活系统",
"summary": "挪威通过免税和充电设施补贴,使电动车占新车销量80%以上。",
"key_metrics": "2024年电动车渗透率 82%",
"date": "2024",
"source": "Norwegian EV Association",
"source_url": "https://elbil.no/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐"
},
{
"id": 14,
"title": "法国二手强制法",
"field": "可持续生活系统",
"summary": "法国要求零售商提供二手商品区域,促进循环消费。",
"key_metrics": "二手商品销售额年增25%",
"date": "2023",
"source": "French Government",
"source_url": "https://www.gouvernement.fr/",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐"
},
{
"id": 15,
"title": "Patagonia 维修服务",
"field": "可持续生活系统",
"summary": "Patagonia 提供终身维修服务,延长产品寿命。",
"key_metrics": "维修量年增30%,顾客忠诚度极高",
"date": "2024",
"source": "Patagonia Worn Wear",
"source_url": "https://www.patagonia.com/worn-wear/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐"
},
{
"id": 16,
"title": "Obsidian + RAG 个人知识库",
"field": "个人知识工厂",
"summary": "Obsidian 结合检索增强生成,实现私有知识问答。",
"key_metrics": "无需云端,本地向量存储,响应 <1s",
"date": "2024",
"source": "Obsidian Hub",
"source_url": "https://obsidian.md/",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 17,
"title": "PARA 系统在 Notion",
"field": "个人知识工厂",
"summary": "Tiago Forte 的 PARA 方法将信息分为项目、领域、资源、存档四类。",
"key_metrics": "用户报告节省每周 3 小时信息整理时间",
"date": "2023",
"source": "Fortelabs.co",
"source_url": "https://fortelabs.co/",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 18,
"title": "费曼技巧经典",
"field": "个人知识工厂",
"summary": "通过向他人讲解来检验自己是否真正理解。",
"key_metrics": "学习效率提升 40%",
"date": "2024",
"source": "Feynman Technique",
"source_url": "https://www.feynmantechnique.org/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 19,
"title": "EU AI Act",
"field": "科技人文交叉",
"summary": "欧盟人工智能法案,对 AI 系统进行风险分级监管。",
"key_metrics": "违反最高罚款达全球年营业额6%",
"date": "2024",
"source": "European Commission",
"source_url": "https://digital-strategy.ec.europa.eu/en/policies/european-approach-artificial-intelligence",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐"
},
{
"id": 20,
"title": "硅谷高管禅修热",
"field": "科技人文交叉",
"summary": "许多硅谷领袖将正念冥想作为日常,提高专注力。",
"key_metrics": " Fortune 500 中 35% 提供冥想课程",
"date": "2023",
"source": "Harvard Business Review",
"source_url": "https://hbr.org/",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐"
},
{
"id": 21,
"title": "Tauri + Rust 构建跨平台桌面应用性能对比",
"field": "技术工具集",
"summary": "对比 Tauri 2.0 与 Electron 在资源占用、启动速度、包体积等维度的性能数据,展示 Rust 后端优势。",
"key_metrics": "内存占用降低 60%, 安装包体积减少 70%, 首次启动时间 <1.5s",
"date": "2026",
"source": "Tauri 官方博客",
"source_url": "https://tauri.app/blog/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐"
},
{
"id": 22,
"title": "独立开发者如何用 FastAPI + Vue 3 快速构建 SaaS",
"field": "技术工具集",
"summary": "一位独立开发者分享使用 FastAPI 后端 + Vue 3 前端在 2 周内完成多平台内容管理系统的实战经验。",
"key_metrics": "开发周期 14 天, 代码量 8K 行, 部署成本 < $10/月",
"date": "2025",
"source": "Dev.to 社区",
"source_url": "https://dev.to/",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 23,
"title": "Notion + Python 自动化内容工作流案例",
"field": "个人知识工厂",
"summary": "如何用 Python 脚本自动同步 Notion 数据库到博客平台,实现从选题到发布的完整自动化。",
"key_metrics": "每周节省 8 小时, 错误率降为 0, 发布延迟 <5 分钟",
"date": "2025",
"source": "Notion 模板社区",
"source_url": "https://www.notion.so/templates",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 24,
"title": "GitHub Copilot 辅助 Rust 开发效率调研",
"field": "技术工具集",
"summary": "在真实 Rust 项目中启用 Copilot 后,代码编写速度提升 35%,且代码质量保持不变。",
"key_metrics": "编码速度 +35%, 代码评审通过率 92%, 学习曲线平缓",
"date": "2026",
"source": "GitHub 官方报告",
"source_url": "https://github.blog/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 25,
"title": "零浪费生活方式:一年减少 80% 塑料使用",
"field": "可持续生活系统",
"summary": "记录一家三口一年内通过改变购物习惯、DIY 日用品、选择可持续品牌,实现塑料消耗大幅减少的过程。",
"key_metrics": "塑料垃圾减少 80%, 开销降低 15%, 生活质量评分 +20%",
"date": "2025",
"source": "B站 UP 主 \"零浪费生活家\"",
"source_url": "https://www.bilibili.com/",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐"
},
{
"id": 27,
"title": "数字游民签证地图:2026 最新政策对比",
"field": "未来工作方式",
"summary": "收集 35 个国家/地区的数字游民签证政策,包括申请条件、停留时间、税收优惠等关键信息。",
"key_metrics": "覆盖 35 国, 政策更新频率 季度, 中国护照适用 18 国",
"date": "2026",
"source": "Nomad List",
"source_url": "https://nomadlist.com/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 28,
"title": "AI 副业变现:用 StepFun API 打造的 5 个微型产品",
"field": "未来工作方式",
"summary": "开发者分享如何利用 StepFun 的大模型 API 快速开发并上线 5 个小型付费 AI 工具,实现月入过万。",
"key_metrics": "产品上线时间 1-3 天/个, 月收入 ¥12,000+, 用户满意度 4.8/5",
"date": "2026",
"source": "StepFun 开发者故事",
"source_url": "https://www.stepfun.com/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐"
},
{
"id": 29,
"title": "知识管理新范式:Obsidian + LlamaIndex 实现个人知识问答",
"field": "个人知识工厂",
"summary": "将 Obsidian 笔记库通过 LlamaIndex 索引,打造基于个人知识的智能问答系统,准确率超 90%。",
"key_metrics": "笔记量 5K+, 问答准确率 92%, 本地部署无持续成本",
"date": "2025",
"source": "Obsidian 论坛",
"source_url": "https://forum.obsidian.md/",
"credibility_rating": "⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐"
},
{
"id": 30,
"title": "异步协作革命:用 Lark + Python 实现分布式团队项目管理",
"field": "未来工作方式",
"summary": "跨 5 个时区的 15 人团队,通过 Lark 机器人 + Python 脚本实现自动化任务分配、进度同步、日报生成。",
"key_metrics": "会议减少 60%, 项目延期率下降 70%, 员工满意度 +25%",
"date": "2025",
"source": "字节跳动企业服务案例",
"source_url": "https://www.larkoffice.com/",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐"
}
]
@@ -1,14 +0,0 @@
{
"task": "test",
"time": "2026-04-22 19:00",
"topic_count": 1,
"case_count": 2,
"source_count": 3,
"details_link": "/test",
"topic_title": "测试选题",
"image_count": 5,
"output_dir": "/test",
"status": "测试状态",
"error": "",
"log_path": "/tmp/test.log"
}
@@ -1,40 +0,0 @@
# 文章大纲:AI时代的技能组合:什么技能值得投入10年?
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:AI时代的技能组合:什么技能值得投入10年?
- 点明文章价值
## 二、核心观点(约300字)
基于WEF未来技能报告,划分4个技能维度(AI强化型、AI无法替代、复合型、过时型),帮中国职场人识别护城河技能
## 三、受众痛点分析(约300字)
学什么都不放心,怕投入时间后AI又取代
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:将全球宏观报告转化为个人技能地图,提供可视化工具(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-17*
@@ -1,40 +0,0 @@
# 文章大纲:远程工作2026中国指南:从'不可能'到'可行'的路径图
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:远程工作2026中国指南:从'不可能'到'可行'的路径图
- 点明文章价值
## 二、核心观点(约300字)
通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作
## 三、受众痛点分析(约300字)
想远程但不知如何合法操作,担心被边缘化
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:对比GitLab/Zapier海外实践,本土化落地策略(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-18*
@@ -1,40 +0,0 @@
# 文章大纲:第二大脑2.0:用DeepSeek+本地向量库建立私有知识系统
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:第二大脑2.0:用DeepSeek+本地向量库建立私有知识系统
- 点明文章价值
## 二、核心观点(约300字)
对比Obsidian+RAG海外实践,针对国内云服务担忧,提供数据主权、隐私保护、无缝检索、AI问答的本地化方案
## 三、受众痛点分析(约300字)
想系统化知识但担心云存储安全,怕复杂
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合个人知识工厂领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:强调数据主权,从API调用到本地部署的渐进路线(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-18*
@@ -1,40 +0,0 @@
# 文章大纲:AI副业入门:用DeepSeek实现第一笔收入的100天
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:AI副业入门:用DeepSeek实现第一笔收入的100天
- 点明文章价值
## 二、核心观点(约300字)
从代写文案/数据分析起步,通过Fiverr国内外平台对比,制定定价策略和违规红线规避
## 三、受众痛点分析(约300字)
想用AI赚钱但不知从何开始,怕踩坑
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:对比Fiverr海外繁荣 vs 国内空白,提供本土化接单路径(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-19*
@@ -1,40 +0,0 @@
# 文章大纲:远程工作2026中国指南:从'不可能'到'可行'的路径图
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:远程工作2026中国指南:从'不可能'到'可行'的路径图
- 点明文章价值
## 二、核心观点(约300字)
通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作
## 三、受众痛点分析(约300字)
想远程但不知如何合法操作,担心被边缘化
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:对比GitLab/Zapier海外实践,本土化落地策略(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-20*
@@ -1,40 +0,0 @@
# 文章大纲:AI副业入门:用DeepSeek实现第一笔收入的100天
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:AI副业入门:用DeepSeek实现第一笔收入的100天
- 点明文章价值
## 二、核心观点(约300字)
从代写文案/数据分析起步,通过Fiverr国内外平台对比,制定定价策略和违规红线规避
## 三、受众痛点分析(约300字)
想用AI赚钱但不知从何开始,怕踩坑
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:对比Fiverr海外繁荣 vs 国内空白,提供本土化接单路径(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-20*
@@ -1,40 +0,0 @@
# 文章大纲:数字游民签证全解析:30个国家政策对比,中国护照能去哪些?
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:数字游民签证全解析:30个国家政策对比,中国护照能去哪些?
- 点明文章价值
## 二、核心观点(约300字)
分析爱沙尼亚/葡萄牙/巴厘岛等30国游民签证,结合中国护照限制,给出签证+保险+税务+社群的完整路线
## 三、受众痛点分析(约300字)
想地理套利但被签证和社保困扰
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:不是简单列出签证,而是给出中国护照持有者的可行组合方案(如泰国+大马+巴厘岛)(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-20*
@@ -1,40 +0,0 @@
# 文章大纲:一人公司实验:从创意到营收的365天日志
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:一人公司实验:从创意到营收的365天日志
- 点明文章价值
## 二、核心观点(约300字)
基于Indie Hackers案例,结合中国孤独创业现状,提供MVP设计、现金流管理、法律合规的一站式指南
## 三、受众痛点分析(约300字)
想单干但怕失败、缺启动资金、不懂营销
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:真实日志形式,展示完整从0到营收的过程,不美化(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-20*
@@ -1,40 +0,0 @@
# 文章大纲:城市农业ROI报告:20㎡阳台种菜一年,省了多少钱?
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:城市农业ROI报告:20㎡阳台种菜一年,省了多少钱?
- 点明文章价值
## 二、核心观点(约300字)
对比东京垂直农场与国内空间限制,精选高ROI蔬菜品种,智能设备自动灌溉,给出详细成本核算和品种推荐
## 三、受众痛点分析(约300字)
想种但怕麻烦、怕亏本、不知道种什么
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合可持续生活系统领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:用财务思维算账(投入/产出/时间成本),打破'种菜必须有地'的思维(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-20*
@@ -1,40 +0,0 @@
# 文章大纲:零浪费家庭实验:一年只产100L垃圾,可能吗?
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:零浪费家庭实验:一年只产100L垃圾,可能吗?
- 点明文章价值
## 二、核心观点(约300字)
对比瑞典零浪费城市,针对中国垃圾分类困境,提供垃圾追踪表、替代方案数据库、社区互助网络
## 三、受众痛点分析(约300字)
想环保但觉得做不到、不知道从哪减
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合可持续生活系统领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:极限实验(100L/年)+ 可执行步骤(从塑料减量开始),不理想化(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-20*
@@ -1,40 +0,0 @@
# 文章大纲:科技与自然共生:如何用AI让阳台农场更'自然'
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:科技与自然共生:如何用AI让阳台农场更'自然'
- 点明文章价值
## 二、核心观点(约300字)
对比荷兰智能温室与中国人'回归原始'误区,实现技术隐形化(传感器+提醒)+ 自然反馈闭环 + 人工仪式感
## 三、受众痛点分析(约300字)
想用科技但又怕失去'自然感',追求矛盾
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合科技人文交叉领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:技术与情感连接的平衡方案,AI只做幕后,人工保留仪式(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-20*
@@ -1,40 +0,0 @@
# 文章大纲:城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径
- 点明文章价值
## 二、核心观点(约300字)
基于3个城市农业案例,提炼本土化落地策略
## 三、受众痛点分析(约300字)
城市农业领域常见的痛点与困惑
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 5 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合可持续生活系统领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-20*
@@ -1,40 +0,0 @@
# 文章大纲:远程工作2026中国指南:从'不可能'到'可行'的路径图
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:远程工作2026中国指南:从'不可能'到'可行'的路径图
- 点明文章价值
## 二、核心观点(约300字)
通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作
## 三、受众痛点分析(约300字)
想远程但不知如何合法操作,担心被边缘化
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:对比GitLab/Zapier海外实践,本土化落地策略(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-21*
@@ -1,40 +0,0 @@
# 文章大纲:零浪费家庭实验:一年只产100L垃圾,可能吗?
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:零浪费家庭实验:一年只产100L垃圾,可能吗?
- 点明文章价值
## 二、核心观点(约300字)
对比瑞典零浪费城市,针对中国垃圾分类困境,提供垃圾追踪表、替代方案数据库、社区互助网络
## 三、受众痛点分析(约300字)
想环保但觉得做不到、不知道从哪减
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合可持续生活系统领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:极限实验(100L/年)+ 可执行步骤(从塑料减量开始),不理想化(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-21*
@@ -1,40 +0,0 @@
# 文章大纲:城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径
- 点明文章价值
## 二、核心观点(约300字)
基于3个城市农业案例,提炼本土化落地策略
## 三、受众痛点分析(约300字)
城市农业领域常见的痛点与困惑
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 5 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合可持续生活系统领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-21*
@@ -1,40 +0,0 @@
# 文章大纲:远程工作2026中国指南:从'不可能'到'可行'的路径图
## 一、引言
- 开场场景/痛点引入
- 提出核心问题:远程工作2026中国指南:从'不可能'到'可行'的路径图
- 点明文章价值
## 二、核心观点
通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作
## 三、受众痛点分析
想远程但不知如何合法操作,担心被边缘化
## 四、全球/行业趋势与案例
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:对比GitLab/Zapier海外实践,本土化落地策略
## 七、行动指南(MVP
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-22*
@@ -1,40 +0,0 @@
# 文章大纲:AI副业入门:用DeepSeek实现第一笔收入的100天
## 一、引言
- 开场场景/痛点引入
- 提出核心问题:AI副业入门:用DeepSeek实现第一笔收入的100天
- 点明文章价值
## 二、核心观点
从代写文案/数据分析起步,通过Fiverr国内外平台对比,制定定价策略和违规红线规避
## 三、受众痛点分析
想用AI赚钱但不知从何开始,怕踩坑
## 四、全球/行业趋势与案例
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:对比Fiverr海外繁荣 vs 国内空白,提供本土化接单路径
## 七、行动指南(MVP
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-22*
@@ -1,40 +0,0 @@
# 文章大纲:城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径
## 一、引言(约200字)
- 开场场景/痛点引入
- 提出核心问题:城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径
- 点明文章价值
## 二、核心观点(约300字)
基于3个城市农业案例,提炼本土化落地策略
## 三、受众痛点分析(约300字)
城市农业领域常见的痛点与困惑
## 四、全球/行业趋势与案例(约500字)
- 引用研究笔记中的 5 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议(约400字)
- 结合可持续生活系统领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践(约300字)
## 七、行动指南(MVP,约200字)
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励(约200字)
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-22*
@@ -1,40 +0,0 @@
# 文章大纲:远程工作2026中国指南:从'不可能'到'可行'的路径图
## 一、引言
- 开场场景/痛点引入
- 提出核心问题:远程工作2026中国指南:从'不可能'到'可行'的路径图
- 点明文章价值
## 二、核心观点
通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作
## 三、受众痛点分析
想远程但不知如何合法操作,担心被边缘化
## 四、全球/行业趋势与案例
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:对比GitLab/Zapier海外实践,本土化落地策略
## 七、行动指南(MVP
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-23*
@@ -1,40 +0,0 @@
# 文章大纲:AI副业入门:用DeepSeek实现第一笔收入的100天
## 一、引言
- 开场场景/痛点引入
- 提出核心问题:AI副业入门:用DeepSeek实现第一笔收入的100天
- 点明文章价值
## 二、核心观点
从代写文案/数据分析起步,通过Fiverr国内外平台对比,制定定价策略和违规红线规避
## 三、受众痛点分析
想用AI赚钱但不知从何开始,怕踩坑
## 四、全球/行业趋势与案例
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:对比Fiverr海外繁荣 vs 国内空白,提供本土化接单路径
## 七、行动指南(MVP
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-23*
@@ -1,40 +0,0 @@
# 文章大纲:数字游民签证全解析:30个国家政策对比,中国护照能去哪些?
## 一、引言
- 开场场景/痛点引入
- 提出核心问题:数字游民签证全解析:30个国家政策对比,中国护照能去哪些?
- 点明文章价值
## 二、核心观点
分析爱沙尼亚/葡萄牙/巴厘岛等30国游民签证,结合中国护照限制,给出签证+保险+税务+社群的完整路线
## 三、受众痛点分析
想地理套利但被签证和社保困扰
## 四、全球/行业趋势与案例
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:不是简单列出签证,而是给出中国护照持有者的可行组合方案(如泰国+大马+巴厘岛)
## 七、行动指南(MVP
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-23*
@@ -1,40 +0,0 @@
# 文章大纲:一人公司实验:从创意到营收的365天日志
## 一、引言
- 开场场景/痛点引入
- 提出核心问题:一人公司实验:从创意到营收的365天日志
- 点明文章价值
## 二、核心观点
基于Indie Hackers案例,结合中国孤独创业现状,提供MVP设计、现金流管理、法律合规的一站式指南
## 三、受众痛点分析
想单干但怕失败、缺启动资金、不懂营销
## 四、全球/行业趋势与案例
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:真实日志形式,展示完整从0到营收的过程,不美化
## 七、行动指南(MVP
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-23*
@@ -1,40 +0,0 @@
# 文章大纲:数字游民签证全解析:30个国家政策对比,中国护照能去哪些?
## 一、引言
- 开场场景/痛点引入
- 提出核心问题:数字游民签证全解析:30个国家政策对比,中国护照能去哪些?
- 点明文章价值
## 二、核心观点
分析爱沙尼亚/葡萄牙/巴厘岛等30国游民签证,结合中国护照限制,给出签证+保险+税务+社群的完整路线
## 三、受众痛点分析
想地理套利但被签证和社保困扰
## 四、全球/行业趋势与案例
- 引用研究笔记中的 0 个案例,精选 2-3 个详述
- 数据支撑:提取研究笔记中的关键数据
- 趋势分析
## 五、本土落地建议
- 结合未来工作方式领域特点
- 提供可执行的步骤
- 注意事项
## 六、独特视角:不是简单列出签证,而是给出中国护照持有者的可行组合方案(如泰国+大马+巴厘岛)
## 七、行动指南(MVP
1. 理解现状
2. 小范围试验
3. 评估效果
4. 形成习惯
## 八、总结与鼓励
- 回顾要点
- 呼吁行动
## 九、参考文献
- 从研究笔记中提取来源链接
---
*大纲生成时间:2026-04-25*
@@ -1,20 +0,0 @@
# 研究笔记:AI时代的技能组合:什么技能值得投入10年?
## 选题信息
- **ID**: A05
- **领域**: 未来工作方式
- **核心观点**: 基于WEF未来技能报告,划分4个技能维度(AI强化型、AI无法替代、复合型、过时型),帮中国职场人识别护城河技能
- **受众痛点**: 学什么都不放心,怕投入时间后AI又取代
- **独特视角**: 将全球宏观报告转化为个人技能地图,提供可视化工具
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-17*
@@ -1,20 +0,0 @@
# 研究笔记:远程工作2026中国指南:从'不可能'到'可行'的路径图
## 选题信息
- **ID**: A01
- **领域**: 未来工作方式
- **核心观点**: 通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作
- **受众痛点**: 想远程但不知如何合法操作,担心被边缘化
- **独特视角**: 对比GitLab/Zapier海外实践,本土化落地策略
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-18*
@@ -1,20 +0,0 @@
# 研究笔记:第二大脑2.0:用DeepSeek+本地向量库建立私有知识系统
## 选题信息
- **ID**: C01
- **领域**: 个人知识工厂
- **核心观点**: 对比Obsidian+RAG海外实践,针对国内云服务担忧,提供数据主权、隐私保护、无缝检索、AI问答的本地化方案
- **受众痛点**: 想系统化知识但担心云存储安全,怕复杂
- **独特视角**: 强调数据主权,从API调用到本地部署的渐进路线
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-18*
@@ -1,20 +0,0 @@
# 研究笔记:AI副业入门:用DeepSeek实现第一笔收入的100天
## 选题信息
- **ID**: A02
- **领域**: 未来工作方式
- **核心观点**: 从代写文案/数据分析起步,通过Fiverr国内外平台对比,制定定价策略和违规红线规避
- **受众痛点**: 想用AI赚钱但不知从何开始,怕踩坑
- **独特视角**: 对比Fiverr海外繁荣 vs 国内空白,提供本土化接单路径
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-19*
@@ -1,20 +0,0 @@
# 研究笔记:远程工作2026中国指南:从'不可能'到'可行'的路径图
## 选题信息
- **ID**: A01
- **领域**: 未来工作方式
- **核心观点**: 通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作
- **受众痛点**: 想远程但不知如何合法操作,担心被边缘化
- **独特视角**: 对比GitLab/Zapier海外实践,本土化落地策略
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-20*
@@ -1,20 +0,0 @@
# 研究笔记:AI副业入门:用DeepSeek实现第一笔收入的100天
## 选题信息
- **ID**: A02
- **领域**: 未来工作方式
- **核心观点**: 从代写文案/数据分析起步,通过Fiverr国内外平台对比,制定定价策略和违规红线规避
- **受众痛点**: 想用AI赚钱但不知从何开始,怕踩坑
- **独特视角**: 对比Fiverr海外繁荣 vs 国内空白,提供本土化接单路径
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-20*
@@ -1,20 +0,0 @@
# 研究笔记:数字游民签证全解析:30个国家政策对比,中国护照能去哪些?
## 选题信息
- **ID**: A03
- **领域**: 未来工作方式
- **核心观点**: 分析爱沙尼亚/葡萄牙/巴厘岛等30国游民签证,结合中国护照限制,给出签证+保险+税务+社群的完整路线
- **受众痛点**: 想地理套利但被签证和社保困扰
- **独特视角**: 不是简单列出签证,而是给出中国护照持有者的可行组合方案(如泰国+大马+巴厘岛)
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-20*
@@ -1,20 +0,0 @@
# 研究笔记:一人公司实验:从创意到营收的365天日志
## 选题信息
- **ID**: A04
- **领域**: 未来工作方式
- **核心观点**: 基于Indie Hackers案例,结合中国孤独创业现状,提供MVP设计、现金流管理、法律合规的一站式指南
- **受众痛点**: 想单干但怕失败、缺启动资金、不懂营销
- **独特视角**: 真实日志形式,展示完整从0到营收的过程,不美化
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-20*
@@ -1,20 +0,0 @@
# 研究笔记:城市农业ROI报告:20㎡阳台种菜一年,省了多少钱?
## 选题信息
- **ID**: B01
- **领域**: 可持续生活系统
- **核心观点**: 对比东京垂直农场与国内空间限制,精选高ROI蔬菜品种,智能设备自动灌溉,给出详细成本核算和品种推荐
- **受众痛点**: 想种但怕麻烦、怕亏本、不知道种什么
- **独特视角**: 用财务思维算账(投入/产出/时间成本),打破'种菜必须有地'的思维
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-20*
@@ -1,20 +0,0 @@
# 研究笔记:零浪费家庭实验:一年只产100L垃圾,可能吗?
## 选题信息
- **ID**: B02
- **领域**: 可持续生活系统
- **核心观点**: 对比瑞典零浪费城市,针对中国垃圾分类困境,提供垃圾追踪表、替代方案数据库、社区互助网络
- **受众痛点**: 想环保但觉得做不到、不知道从哪减
- **独特视角**: 极限实验(100L/年)+ 可执行步骤(从塑料减量开始),不理想化
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-20*
@@ -1,20 +0,0 @@
# 研究笔记:科技与自然共生:如何用AI让阳台农场更'自然'
## 选题信息
- **ID**: D05
- **领域**: 科技人文交叉
- **核心观点**: 对比荷兰智能温室与中国人'回归原始'误区,实现技术隐形化(传感器+提醒)+ 自然反馈闭环 + 人工仪式感
- **受众痛点**: 想用科技但又怕失去'自然感',追求矛盾
- **独特视角**: 技术与情感连接的平衡方案,AI只做幕后,人工保留仪式
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-20*
@@ -1,50 +0,0 @@
# 研究笔记:城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径
## 选题信息
- **ID**: TOPIC-BBB1CC
- **领域**: 可持续生活系统
- **核心观点**: 基于3个城市农业案例,提炼本土化落地策略
- **受众痛点**: 城市农业领域常见的痛点与困惑
- **独特视角**: 国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践
## 相关案例(5个)
### 案例 1: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 2: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 3: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 4: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 5: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-20*
@@ -1,20 +0,0 @@
# 研究笔记:远程工作2026中国指南:从'不可能'到'可行'的路径图
## 选题信息
- **ID**: A01
- **领域**: 未来工作方式
- **核心观点**: 通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作
- **受众痛点**: 想远程但不知如何合法操作,担心被边缘化
- **独特视角**: 对比GitLab/Zapier海外实践,本土化落地策略
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-21*
@@ -1,20 +0,0 @@
# 研究笔记:零浪费家庭实验:一年只产100L垃圾,可能吗?
## 选题信息
- **ID**: B02
- **领域**: 可持续生活系统
- **核心观点**: 对比瑞典零浪费城市,针对中国垃圾分类困境,提供垃圾追踪表、替代方案数据库、社区互助网络
- **受众痛点**: 想环保但觉得做不到、不知道从哪减
- **独特视角**: 极限实验(100L/年)+ 可执行步骤(从塑料减量开始),不理想化
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-21*
@@ -1,50 +0,0 @@
# 研究笔记:城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径
## 选题信息
- **ID**: TOPIC-BBB1CC
- **领域**: 可持续生活系统
- **核心观点**: 基于3个城市农业案例,提炼本土化落地策略
- **受众痛点**: 城市农业领域常见的痛点与困惑
- **独特视角**: 国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践
## 相关案例(5个)
### 案例 1: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 2: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 3: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 4: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 5: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-21*
@@ -1,20 +0,0 @@
# 研究笔记:远程工作2026中国指南:从'不可能'到'可行'的路径图
## 选题信息
- **ID**: A01
- **领域**: 未来工作方式
- **核心观点**: 通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作
- **受众痛点**: 想远程但不知如何合法操作,担心被边缘化
- **独特视角**: 对比GitLab/Zapier海外实践,本土化落地策略
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-22*
@@ -1,20 +0,0 @@
# 研究笔记:AI副业入门:用DeepSeek实现第一笔收入的100天
## 选题信息
- **ID**: A02
- **领域**: 未来工作方式
- **核心观点**: 从代写文案/数据分析起步,通过Fiverr国内外平台对比,制定定价策略和违规红线规避
- **受众痛点**: 想用AI赚钱但不知从何开始,怕踩坑
- **独特视角**: 对比Fiverr海外繁荣 vs 国内空白,提供本土化接单路径
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-22*
@@ -1,50 +0,0 @@
# 研究笔记:城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径
## 选题信息
- **ID**: TOPIC-BDD1CD
- **领域**: 可持续生活系统
- **核心观点**: 基于3个城市农业案例,提炼本土化落地策略
- **受众痛点**: 城市农业领域常见的痛点与困惑
- **独特视角**: 国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践
## 相关案例(5个)
### 案例 1: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 2: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 3: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 4: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
### 案例 5: 东京垂直农场:10平米 balcony 年产蔬菜 100kg
- **来源**: 未知
- **日期**: 未知
- **摘要**: 无
- **关键数据**: 无
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-22*
@@ -1,20 +0,0 @@
# 研究笔记:远程工作2026中国指南:从'不可能'到'可行'的路径图
## 选题信息
- **ID**: A01
- **领域**: 未来工作方式
- **核心观点**: 通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作
- **受众痛点**: 想远程但不知如何合法操作,担心被边缘化
- **独特视角**: 对比GitLab/Zapier海外实践,本土化落地策略
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-23*
@@ -1,20 +0,0 @@
# 研究笔记:AI副业入门:用DeepSeek实现第一笔收入的100天
## 选题信息
- **ID**: A02
- **领域**: 未来工作方式
- **核心观点**: 从代写文案/数据分析起步,通过Fiverr国内外平台对比,制定定价策略和违规红线规避
- **受众痛点**: 想用AI赚钱但不知从何开始,怕踩坑
- **独特视角**: 对比Fiverr海外繁荣 vs 国内空白,提供本土化接单路径
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-23*
@@ -1,20 +0,0 @@
# 研究笔记:数字游民签证全解析:30个国家政策对比,中国护照能去哪些?
## 选题信息
- **ID**: A03
- **领域**: 未来工作方式
- **核心观点**: 分析爱沙尼亚/葡萄牙/巴厘岛等30国游民签证,结合中国护照限制,给出签证+保险+税务+社群的完整路线
- **受众痛点**: 想地理套利但被签证和社保困扰
- **独特视角**: 不是简单列出签证,而是给出中国护照持有者的可行组合方案(如泰国+大马+巴厘岛)
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-23*
@@ -1,20 +0,0 @@
# 研究笔记:一人公司实验:从创意到营收的365天日志
## 选题信息
- **ID**: A04
- **领域**: 未来工作方式
- **核心观点**: 基于Indie Hackers案例,结合中国孤独创业现状,提供MVP设计、现金流管理、法律合规的一站式指南
- **受众痛点**: 想单干但怕失败、缺启动资金、不懂营销
- **独特视角**: 真实日志形式,展示完整从0到营收的过程,不美化
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-23*
@@ -1,20 +0,0 @@
# 研究笔记:数字游民签证全解析:30个国家政策对比,中国护照能去哪些?
## 选题信息
- **ID**: A03
- **领域**: 未来工作方式
- **核心观点**: 分析爱沙尼亚/葡萄牙/巴厘岛等30国游民签证,结合中国护照限制,给出签证+保险+税务+社群的完整路线
- **受众痛点**: 想地理套利但被签证和社保困扰
- **独特视角**: 不是简单列出签证,而是给出中国护照持有者的可行组合方案(如泰国+大马+巴厘岛)
## 相关案例(0个)
## 研究发现摘要
- 待补充:从案例中提炼的趋势和洞察
- 待补充:数据支撑
## 待深入研究的问题
- [ ] 需要更多本土数据
- [ ] 需要验证某些结论的适用性
*生成时间:2026-04-25*
-563
View File
@@ -1,563 +0,0 @@
[
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-002",
"country": "Sweden",
"category": "零浪费生活",
"title": "斯德哥尔摩零浪费社区:年垃圾量降至 50kg/人",
"core_idea": "通过源头减量、分类回收、堆肥和共享经济,实现家庭垃圾最小化",
"data_facts": "人均年垃圾 50kg(中国城市平均 200kg),回收率 85%",
"global_advantage": "完善的分类回收体系,消费者环保意识强",
"china_pain_point": "中国垃圾分类执行难,回收设施不健全",
"localization_suggestion": "先从塑料和厨余垃圾入手,使用社区微信群协调资源",
"mvp_action": "记录一周垃圾类型和重量,设定减量 30% 的目标",
"source_url": "https://example.com/stockholm-zero-waste",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-003",
"country": "Netherlands",
"category": "低碳出行",
"title": "阿姆斯特丹自行车城市:自行车通勤占比 40%",
"core_idea": "建设连续安全的自行车道网络,配合政策激励和公众宣传",
"data_facts": "自行车道总长 400km,市中心停车费 10欧元/小时,汽车速度限制 30km/h",
"global_advantage": "城市规划历史悠久,社会共识 strong",
"china_pain_point": "中国城市缺乏自行车道,汽车占用严重,空气污染",
"localization_suggestion": "选择自行车友好的小区,使用折叠车解决最后一公里",
"mvp_action": "记录一周通勤距离,尝试 3 天自行车通勤,计算节省成本",
"source_url": "https://example.com/amsterdam-bike-city",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-004",
"country": "France",
"category": "循环消费",
"title": "法国二手服装法:强制商家提供维修和回收服务",
"core_idea": "法律要求服装品牌为耐用产品提供维修,并回收旧衣物",
"data_facts": "每年减少纺织品浪费 50万吨,创造 2 万个就业岗位",
"global_advantage": "政府立法强制,企业责任明确",
"china_pain_point": "中国二手服装信任度低,平台鱼龙混杂",
"localization_suggestion": "选择有质检服务的二手平台,优先购买品牌经典款",
"mvp_action": "本月购买 3 件二手衣物,记录质量和价格对比",
"source_url": "https://example.com/france-second-hand-law",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-005",
"country": "Germany",
"category": "能源效率",
"title": "德国房屋节能改造:旧房能耗降低 60%",
"core_idea": "通过外墙保温、三层玻璃窗、热回收新风系统,实现旧房节能改造",
"data_facts": "改造费用 8-12万元,年节省能源费用 4000-6000元,投资回收期 15-20 年",
"global_advantage": "政府补贴 30%-50%,技术标准完善",
"china_pain_point": "中国老旧小区改造资金不足,技术标准不统一",
"localization_suggestion": "优先做门窗密封和保温,分阶段改造,申请政府补贴",
"mvp_action": "做家庭能耗审计,找出最大的热损失点",
"source_url": "https://example.com/germany-energy-retrofit",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-003",
"country": "Netherlands",
"category": "低碳出行",
"title": "阿姆斯特丹自行车城市:自行车通勤占比 40%",
"core_idea": "建设连续安全的自行车道网络,配合政策激励和公众宣传",
"data_facts": "自行车道总长 400km,市中心停车费 10欧元/小时,汽车速度限制 30km/h",
"global_advantage": "城市规划历史悠久,社会共识 strong",
"china_pain_point": "中国城市缺乏自行车道,汽车占用严重,空气污染",
"localization_suggestion": "选择自行车友好的小区,使用折叠车解决最后一公里",
"mvp_action": "记录一周通勤距离,尝试 3 天自行车通勤,计算节省成本",
"source_url": "https://example.com/amsterdam-bike-city",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-004",
"country": "France",
"category": "循环消费",
"title": "法国二手服装法:强制商家提供维修和回收服务",
"core_idea": "法律要求服装品牌为耐用产品提供维修,并回收旧衣物",
"data_facts": "每年减少纺织品浪费 50万吨,创造 2 万个就业岗位",
"global_advantage": "政府立法强制,企业责任明确",
"china_pain_point": "中国二手服装信任度低,平台鱼龙混杂",
"localization_suggestion": "选择有质检服务的二手平台,优先购买品牌经典款",
"mvp_action": "本月购买 3 件二手衣物,记录质量和价格对比",
"source_url": "https://example.com/france-second-hand-law",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
}
]
@@ -1 +0,0 @@
[]
@@ -1 +0,0 @@
[]
@@ -1 +0,0 @@
{"task": "sustainability_collection", "time": "2026-04-17 18:33", "topic_count": 0, "case_count": 0, "source_count": 8, "details_link": "automation/data/sustainability_raw/2026-04-17"}
@@ -1,53 +0,0 @@
[
{
"id": "LOCAL-UNKNOWN",
"country": "Global",
"category": "未分类",
"title": "",
"core_idea": "",
"data_facts": "",
"global_advantage": "",
"china_pain_point": "",
"localization_suggestion": "",
"mvp_action": "",
"source_url": "",
"credibility_rating": "⭐⭐",
"china_applicability": "⭐⭐",
"collection_date": "2026-04-18",
"status": "待验证"
},
{
"id": "LOCAL-UNKNOWN",
"country": "Global",
"category": "未分类",
"title": "",
"core_idea": "",
"data_facts": "",
"global_advantage": "",
"china_pain_point": "",
"localization_suggestion": "",
"mvp_action": "",
"source_url": "",
"credibility_rating": "⭐⭐",
"china_applicability": "⭐⭐",
"collection_date": "2026-04-18",
"status": "待验证"
},
{
"id": "LOCAL-UNKNOWN",
"country": "Global",
"category": "未分类",
"title": "",
"core_idea": "",
"data_facts": "",
"global_advantage": "",
"china_pain_point": "",
"localization_suggestion": "",
"mvp_action": "",
"source_url": "",
"credibility_rating": "⭐⭐",
"china_applicability": "⭐⭐",
"collection_date": "2026-04-18",
"status": "待验证"
}
]
@@ -1,21 +0,0 @@
[
{
"id": "TOPIC-.F4F684",
"title": "未分类新趋势: 与的中国落地路径",
"cases": [
"LOCAL-UNKNOWN",
"LOCAL-UNKNOWN",
"LOCAL-UNKNOWN"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "未分类在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 0.78,
"status": "待处理",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-18T18:26:25.984697"
}
]
@@ -1 +0,0 @@
{"task": "sustainability_collection", "time": "2026-04-18 18:26", "topic_count": 1, "case_count": 3, "source_count": 8, "details_link": "automation/data/sustainability_raw/2026-04-18"}
@@ -1,53 +0,0 @@
[
{
"id": "LOCAL-UNKNOWN",
"country": "Global",
"category": "未分类",
"title": "",
"core_idea": "",
"data_facts": "",
"global_advantage": "",
"china_pain_point": "",
"localization_suggestion": "",
"mvp_action": "",
"source_url": "",
"credibility_rating": "⭐⭐",
"china_applicability": "⭐⭐",
"collection_date": "2026-04-18",
"status": "待验证"
},
{
"id": "LOCAL-UNKNOWN",
"country": "Global",
"category": "未分类",
"title": "",
"core_idea": "",
"data_facts": "",
"global_advantage": "",
"china_pain_point": "",
"localization_suggestion": "",
"mvp_action": "",
"source_url": "",
"credibility_rating": "⭐⭐",
"china_applicability": "⭐⭐",
"collection_date": "2026-04-18",
"status": "待验证"
},
{
"id": "LOCAL-UNKNOWN",
"country": "Global",
"category": "未分类",
"title": "",
"core_idea": "",
"data_facts": "",
"global_advantage": "",
"china_pain_point": "",
"localization_suggestion": "",
"mvp_action": "",
"source_url": "",
"credibility_rating": "⭐⭐",
"china_applicability": "⭐⭐",
"collection_date": "2026-04-18",
"status": "待验证"
}
]
@@ -1,21 +0,0 @@
[
{
"id": "TOPIC-.285EC9",
"title": "未分类新趋势: 与的中国落地路径",
"cases": [
"LOCAL-UNKNOWN",
"LOCAL-UNKNOWN",
"LOCAL-UNKNOWN"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "未分类在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 0.78,
"status": "待处理",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-19T05:00:54.473396"
}
]
@@ -1 +0,0 @@
{"task": "sustainability_collection", "time": "2026-04-19 05:00", "topic_count": 1, "case_count": 3, "source_count": 8, "details_link": "automation/data/sustainability_raw/2026-04-19"}
@@ -1,53 +0,0 @@
[
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
}
]
@@ -1,33 +0,0 @@
[
{
"id": "TOPIC-BBB1CC",
"title": "城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径",
"cases": [
"GLO-001",
"CHN-001",
"CHN-001"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "城市农业在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 8,
"field": "可持续生活系统",
"format": "趋势洞察 + 实操指南",
"core_concept": "基于3个城市农业案例,提炼本土化落地策略",
"audience_pain": "城市农业领域常见的痛点与困惑",
"unique_angle": "国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践",
"priority": "中",
"total_score": 80,
"compliance_score": 100,
"source_file": "automation/data/sustainability_topics.json",
"ready_at": null,
"published_at": null,
"platform_urls": {},
"status": "待处理",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-20T08:10:56.670892"
}
]
@@ -1 +0,0 @@
{"task": "sustainability_collection", "time": "2026-04-20 08:10", "topic_count": 1, "case_count": 3, "source_count": 10, "details_link": "automation/data/sustainability_raw/2026-04-20"}
@@ -1,53 +0,0 @@
[
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
}
]
@@ -1,33 +0,0 @@
[
{
"id": "TOPIC-BDD1CD",
"title": "城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径",
"cases": [
"GLO-001",
"CHN-001",
"CHN-001"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "城市农业在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 8,
"field": "可持续生活系统",
"format": "趋势洞察 + 实操指南",
"core_concept": "基于3个城市农业案例,提炼本土化落地策略",
"audience_pain": "城市农业领域常见的痛点与困惑",
"unique_angle": "国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践",
"priority": "中",
"total_score": 80,
"compliance_score": 100,
"source_file": "automation/data/sustainability_topics.json",
"ready_at": null,
"published_at": null,
"platform_urls": {},
"status": "待处理",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-21T05:00:36.188294"
}
]
@@ -1 +0,0 @@
{"task": "sustainability_collection", "time": "2026-04-21 05:00", "topic_count": 1, "case_count": 3, "source_count": 10, "details_link": "automation/data/sustainability_raw/2026-04-21"}
@@ -1,53 +0,0 @@
[
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
}
]
@@ -1,33 +0,0 @@
[
{
"id": "TOPIC-63F42C",
"title": "城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径",
"cases": [
"GLO-001",
"CHN-001",
"CHN-001"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "城市农业在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 8,
"field": "可持续生活系统",
"format": "趋势洞察 + 实操指南",
"core_concept": "基于3个城市农业案例,提炼本土化落地策略",
"audience_pain": "城市农业领域常见的痛点与困惑",
"unique_angle": "国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践",
"priority": "中",
"total_score": 80,
"compliance_score": 100,
"source_file": "automation/data/sustainability_topics.json",
"ready_at": null,
"published_at": null,
"platform_urls": {},
"status": "待处理",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-22T08:52:14.499370"
}
]
@@ -1 +0,0 @@
{"task": "sustainability_collection", "time": "2026-04-22 08:52", "topic_count": 1, "case_count": 3, "source_count": 10, "details_link": "automation/data/sustainability_raw/2026-04-22"}
@@ -1,53 +0,0 @@
[
{
"id": "GLO-001",
"country": "Japan",
"category": "城市农业",
"title": "东京垂直农场:10平米 balcony 年产蔬菜 100kg",
"core_idea": "利用多层种植架和 LED 生长灯,在狭小阳台实现全年蔬菜生产",
"data_facts": "每平米年产 10kg,较传统方式节水 90%,投资回收期 1.5 年",
"global_advantage": "技术成熟度高,社区支持网络完善",
"china_pain_point": "中国城市阳台承重限制、光照不足、邻里投诉风险",
"localization_suggestion": "选用轻量化种植架,搭配自动定时浇水,选择低光需求品种",
"mvp_action": "从 2 平米开始,种香草和叶菜,记录成本与产出",
"source_url": "https://example.com/tokyo-vertical-farm",
"credibility_rating": "⭐⭐⭐⭐⭐",
"china_applicability": "⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
},
{
"id": "CHN-001",
"country": "China",
"category": "城市农业",
"title": "上海阳台种菜年省 3000 元:居民自种调查",
"core_idea": "利用阳台空间种菜,实现部分蔬菜自给,降低生活成本",
"data_facts": "20 平米阳台年产蔬菜 100kg,节省买菜支出 3000 元,投入成本 2000 元",
"global_advantage": "中国城市人口密集,阳台空间普遍存在",
"china_pain_point": "缺乏种植知识,病虫害防治困难,物业可能干涉",
"localization_suggestion": "选择易种品种(番茄、辣椒、生菜),使用有机土,与邻居共享收获",
"mvp_action": "先种 5 盆香草,成功后再扩大",
"source_url": "https://www.bilibili.com/video/BV1xx411",
"credibility_rating": "⭐⭐⭐",
"china_applicability": "⭐⭐⭐⭐⭐",
"collection_date": "2026-04-19",
"status": "已验证"
}
]
@@ -1,33 +0,0 @@
[
{
"id": "TOPIC-01DEB4",
"title": "城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径",
"cases": [
"GLO-001",
"CHN-001",
"CHN-001"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "城市农业在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 8,
"field": "可持续生活系统",
"format": "趋势洞察 + 实操指南",
"core_concept": "基于3个城市农业案例,提炼本土化落地策略",
"audience_pain": "城市农业领域常见的痛点与困惑",
"unique_angle": "国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践",
"priority": "中",
"total_score": 80,
"compliance_score": 100,
"source_file": "automation/data/sustainability_topics.json",
"ready_at": null,
"published_at": null,
"platform_urls": {},
"status": "待处理",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-23T10:38:49.999118"
}
]
@@ -1 +0,0 @@
{"task": "sustainability_collection", "time": "2026-04-23 10:38", "topic_count": 1, "case_count": 3, "source_count": 10, "details_link": "automation/data/sustainability_raw/2026-04-23"}
-642
View File
@@ -1,642 +0,0 @@
[
{
"id": "TOPIC-BBB1CC",
"title": "城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径",
"cases": [
"GLO-001",
"CHN-001",
"CHN-001"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "城市农业在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 25,
"field": "可持续生活系统",
"format": "趋势洞察 + 实操指南",
"core_concept": "基于3个城市农业案例,提炼本土化落地策略",
"audience_pain": "城市农业领域常见的痛点与困惑",
"unique_angle": "国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践",
"priority": "中",
"total_score": 50,
"compliance_score": 100,
"source_file": "automation/data/sustainability_topics.json",
"ready_at": "2026-04-21",
"published_at": null,
"platform_urls": {},
"status": "待发布",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-20T08:10:56.670892"
},
{
"id": "TOPIC-BDD1CD",
"title": "城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径",
"cases": [
"GLO-001",
"CHN-001",
"CHN-001"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "城市农业在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 25,
"field": "可持续生活系统",
"format": "趋势洞察 + 实操指南",
"core_concept": "基于3个城市农业案例,提炼本土化落地策略",
"audience_pain": "城市农业领域常见的痛点与困惑",
"unique_angle": "国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践",
"priority": "中",
"total_score": 50,
"compliance_score": 100,
"source_file": "automation/data/sustainability_topics.json",
"ready_at": "2026-04-22",
"published_at": null,
"platform_urls": {},
"status": "待发布",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-21T05:00:36.188294"
},
{
"id": "A01",
"title": "远程工作2026中国指南:从'不可能'到'可行'的路径图",
"field": "未来工作方式",
"format": "趋势洞察 + 实操指南",
"core_concept": "通过法律实操(合同、社保、个税)和心理建设(孤独应对),在中国环境下实现远程工作",
"audience_pain": "想远程但不知如何合法操作,担心被边缘化",
"unique_angle": "对比GitLab/Zapier海外实践,本土化落地策略",
"priority": "高",
"priority_score": 20,
"total_score": 40,
"status": "待发布",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436643",
"ready_at": "2026-04-23",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "A02",
"title": "AI副业入门:用DeepSeek实现第一笔收入的100天",
"field": "未来工作方式",
"format": "实操指南 + 案例研究",
"core_concept": "从代写文案/数据分析起步,通过Fiverr国内外平台对比,制定定价策略和违规红线规避",
"audience_pain": "想用AI赚钱但不知从何开始,怕踩坑",
"unique_angle": "对比Fiverr海外繁荣 vs 国内空白,提供本土化接单路径",
"priority": "高",
"priority_score": 20,
"total_score": 40,
"status": "待审查",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436654",
"ready_at": "2026-04-19",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "A03",
"title": "数字游民签证全解析:30个国家政策对比,中国护照能去哪些?",
"field": "未来工作方式",
"format": "对比分析 + 实操指南",
"core_concept": "分析爱沙尼亚/葡萄牙/巴厘岛等30国游民签证,结合中国护照限制,给出签证+保险+税务+社群的完整路线",
"audience_pain": "想地理套利但被签证和社保困扰",
"unique_angle": "不是简单列出签证,而是给出中国护照持有者的可行组合方案(如泰国+大马+巴厘岛)",
"priority": "高",
"priority_score": 20,
"total_score": 40,
"status": "待发布",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436656",
"ready_at": "2026-04-25",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "A04",
"title": "一人公司实验:从创意到营收的365天日志",
"field": "未来工作方式",
"format": "实践日志 + 方法论",
"core_concept": "基于Indie Hackers案例,结合中国孤独创业现状,提供MVP设计、现金流管理、法律合规的一站式指南",
"audience_pain": "想单干但怕失败、缺启动资金、不懂营销",
"unique_angle": "真实日志形式,展示完整从0到营收的过程,不美化",
"priority": "高",
"priority_score": 20,
"total_score": 40,
"status": "待审查",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436658",
"ready_at": "2026-04-20",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "A05",
"title": "AI时代的技能组合:什么技能值得投入10年?",
"field": "未来工作方式",
"format": "趋势分析 + 个人规划",
"core_concept": "基于WEF未来技能报告,划分4个技能维度(AI强化型、AI无法替代、复合型、过时型),帮中国职场人识别护城河技能",
"audience_pain": "学什么都不放心,怕投入时间后AI又取代",
"unique_angle": "将全球宏观报告转化为个人技能地图,提供可视化工具",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436660",
"ready_at": "2026-04-17",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "B01",
"title": "城市农业ROI报告:20㎡阳台种菜一年,省了多少钱?",
"field": "可持续生活系统",
"format": "数据分析 + 实操指南",
"core_concept": "对比东京垂直农场与国内空间限制,精选高ROI蔬菜品种,智能设备自动灌溉,给出详细成本核算和品种推荐",
"audience_pain": "想种但怕麻烦、怕亏本、不知道种什么",
"unique_angle": "用财务思维算账(投入/产出/时间成本),打破'种菜必须有地'的思维",
"priority": "高",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436665",
"ready_at": "2026-04-20",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "B02",
"title": "零浪费家庭实验:一年只产100L垃圾,可能吗?",
"field": "可持续生活系统",
"format": "实践实验 + 方法论",
"core_concept": "对比瑞典零浪费城市,针对中国垃圾分类困境,提供垃圾追踪表、替代方案数据库、社区互助网络",
"audience_pain": "想环保但觉得做不到、不知道从哪减",
"unique_angle": "极限实验(100L/年)+ 可执行步骤(从塑料减量开始),不理想化",
"priority": "高",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436667",
"ready_at": "2026-04-21",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "B03",
"title": "低碳生活账单:用3年省了8万,碳足迹降了60%",
"field": "可持续生活系统",
"format": "数据分析 + 案例研究",
"core_concept": "对比欧洲碳税政策,从交通(电动车+共享)、饮食(植物为主)、消费(二手优先)三个维度,展示真实账单变化",
"audience_pain": "觉得低碳=更贵,不敢尝试",
"unique_angle": "用财务数据说话(省8万),打破'环保=烧钱'误解",
"priority": "高",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436669",
"ready_at": "2026-04-16",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "B04",
"title": "循环消费实战:10件物品,用3年省了2万",
"field": "可持续生活系统",
"format": "实操指南 + 案例清单",
"core_concept": "对比法国二手强制法与中国闲鱼文化,提供购买决策树(买新/二手/租)、延长寿命技巧、转卖策略",
"audience_pain": "想买二手但怕质量差、怕麻烦",
"unique_angle": "10件物品的具体交易记录和对比(手机、相机、家具等),可复制",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436671",
"ready_at": "2026-04-17",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "B05",
"title": "社区菜园指南:如何推动小区5户邻居共建共享",
"field": "可持续生活系统",
"format": "方法论 + 实操步骤",
"core_concept": "对比纽约社区花园政策与中国物业协调难题,提供法律风险(物权)、利益分配机制、技术方案(分区+智能)",
"audience_pain": "想组织但怕纠纷、不懂法律、协调不了邻居",
"unique_angle": "从1个友好小区试点开始,成功后复制,降低风险",
"priority": "高",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436673",
"ready_at": "2026-04-16",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "C01",
"title": "第二大脑2.0:用DeepSeek+本地向量库建立私有知识系统",
"field": "个人知识工厂",
"format": "技术指南 + 实操案例",
"core_concept": "对比Obsidian+RAG海外实践,针对国内云服务担忧,提供数据主权、隐私保护、无缝检索、AI问答的本地化方案",
"audience_pain": "想系统化知识但担心云存储安全,怕复杂",
"unique_angle": "强调数据主权,从API调用到本地部署的渐进路线",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436675",
"ready_at": "2026-04-18",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "C02",
"title": "PKM极简实践:PARA系统在Notion上的落地模板",
"field": "个人知识工厂",
"format": "模板分享 + 方法论",
"core_concept": "将Tiago Forte的PARA体系简化为3个核心文件夹,每周10分钟维护,AI辅助整理,让中国人真正用起来",
"audience_pain": "学了方法坚持不了,工具复杂难上手",
"unique_angle": "极简版(4个区)+ 每日5分钟习惯养成,降低门槛",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436677",
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "C03",
"title": "费曼学习法AI增强:如何让AI帮你'教'懂一个概念",
"field": "个人知识工厂",
"format": "方法论 + 实践工具",
"core_concept": "结合经典费曼技巧与AI工具,三步法(AI简化→自我复述→Gap识别)+ 输出倒逼输入",
"audience_pain": "学东西记不住,自以为懂了但其实不会",
"unique_angle": "用AI当'测试官',验证你的理解深度,非被动接受知识",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436679",
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "C04",
"title": "AI个人助理搭建:从ChatGPT到私有化部署的完整路线",
"field": "个人知识工厂",
"format": "技术路线图 + 成本分析",
"core_concept": "基于海外个人AI助手普及现状,针对国内数据安全顾虑,提供从API调用到本地部署的渐进式方案(成本可控)",
"audience_pain": "想用AI助手但又怕数据泄露,不知如何起步",
"unique_angle": "不是直接推本地部署(成本高),而是API优先,敏感时再本地策略",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436680",
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "C05",
"title": "技能树可视化:用思维导图规划5年职业路径",
"field": "个人知识工厂",
"format": "方法论 + 工具模板",
"core_concept": "借鉴化工业界能力模型,构建硬技能×软技能矩阵,行业对标和学习资源聚合,让职业成长可规划",
"audience_pain": "不知道学什么,学了不知道用在哪,职业迷茫",
"unique_angle": "技能树而非技能列表,展示技能间关联和成长路径",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436682",
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "D01",
"title": "AI伦理实践指南:开发者在中国的合规清单",
"field": "科技人文交叉",
"format": "合规指南 + 案例分析",
"core_concept": "对比EU AI Act与中国算法推荐管理规定,提供数据隐私、歧视检测、透明度义务、备案流程的自查清单",
"audience_pain": "开发者不了解国内AI伦理法规,怕踩雷",
"unique_angle": "不是泛泛而谈伦理,而是具体到'备案流程'和'自查表',即拿即用",
"priority": "高",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436687",
"ready_at": "2026-04-16",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "D02",
"title": "数字排毒月:戒掉微信/抖音后,生活发生了什么",
"field": "科技人文交叉",
"format": "实践实验 + 效果分析",
"core_concept": "对比硅谷禅修热与中国'失联恐惧',采用渐进式戒断(无屏时段)+ 替代活动 + 社交边界管理",
"audience_pain": "想减少屏幕时间但又怕错过重要信息,自律困难",
"unique_angle": "真实实验记录(not理论),展示戒断前后的生活变化数据",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436689",
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "D03",
"title": "银发科技报告:给爸妈装智能设备,学到的5个设计原则",
"field": "科技人文交叉",
"format": "设计原则 + 案例",
"core_concept": "对比日本适老化设计与国产'适老模式'鸡肋,提炼简化选项、物理反馈、容错设计、情感连接的具体方案",
"audience_pain": "给父母买智能设备但他们不用,功能复杂",
"unique_angle": "不是推荐产品,而是总结5个设计原则,让读者自己改造设备",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436690",
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "D04",
"title": "儿童数字素养课:10岁儿子的AI启蒙12周",
"field": "科技人文交叉",
"format": "教育日志 + 方法论",
"core_concept": "对比芬兰AI教育与国内家长'禁止接触'心态,通过每周1次'AI家庭时间',培养批判性思维和创造力",
"audience_pain": "不知如何让孩子正确认识AI,怕沉迷又怕脱节",
"unique_angle": "真实父子12周项目记录,提供可复制的课程大纲",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436692",
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "D05",
"title": "科技与自然共生:如何用AI让阳台农场更'自然'",
"field": "科技人文交叉",
"format": "理念 + 实操方案",
"core_concept": "对比荷兰智能温室与中国人'回归原始'误区,实现技术隐形化(传感器+提醒)+ 自然反馈闭环 + 人工仪式感",
"audience_pain": "想用科技但又怕失去'自然感',追求矛盾",
"unique_angle": "技术与情感连接的平衡方案,AI只做幕后,人工保留仪式",
"priority": "高",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-16T09:42:54.436694",
"ready_at": "2026-04-20",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "D06",
"title": "AI辅导孩子写作业:工具选型与使用边界",
"field": "科技人文交叉",
"format": "实操指南 + 场景分析",
"core_concept": "对比国内外AI教育工具(ChatGPT、DeepSeek、Khanmigo),分析家长监督下的使用边界,提供安全、有效的家庭AI辅导方案",
"audience_pain": "想用AI帮孩子学习,但担心依赖过度、答案错误、隐私泄露",
"unique_angle": "结合芬兰AI教育理念,本土化落地建议(监管、时段、任务类型)",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-19T15:02:00.198416",
"ready_at": "2026-04-22",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "D07",
"title": "用AI自制科普动画:父亲的亲子项目实践",
"field": "科技人文交叉",
"format": "项目日记 + 教程",
"core_concept": "记录与10岁孩子一起用AI工具(文本生成、图像生成、视频合成)制作科普动画的12周过程,分享工具链、协作方式和教育心得",
"audience_pain": "想高质量陪伴孩子,但不知道如何利用科技开展亲子活动,怕孩子沉迷屏幕",
"unique_angle": "亲身实践(非理论)+ 详细工具清单 + 每周项目文档开源,可复制的家庭创客教育方案",
"priority": "中",
"priority_score": 20,
"total_score": 40,
"status": "待处理",
"cases": [],
"source_file": "strategy/全球-本土比较研究与全新内容战略规划-2026-04-15.md",
"created_at": "2026-04-19T15:02:00.198445",
"ready_at": "2026-04-24",
"compliance_score": 100,
"lock_by": null,
"lock_at": null,
"platform_urls": {},
"published_at": null
},
{
"id": "TOPIC-63F42C",
"title": "城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径",
"cases": [
"GLO-001",
"CHN-001",
"CHN-001"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "城市农业在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 8,
"field": "可持续生活系统",
"format": "趋势洞察 + 实操指南",
"core_concept": "基于3个城市农业案例,提炼本土化落地策略",
"audience_pain": "城市农业领域常见的痛点与困惑",
"unique_angle": "国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践",
"priority": "中",
"total_score": 80,
"compliance_score": 100,
"source_file": "automation/data/sustainability_topics.json",
"ready_at": null,
"published_at": null,
"platform_urls": {},
"status": "待处理",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-22T08:39:42.909753"
},
{
"id": "TOPIC-63F42C",
"title": "城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径",
"cases": [
"GLO-001",
"CHN-001",
"CHN-001"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "城市农业在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 8,
"field": "可持续生活系统",
"format": "趋势洞察 + 实操指南",
"core_concept": "基于3个城市农业案例,提炼本土化落地策略",
"audience_pain": "城市农业领域常见的痛点与困惑",
"unique_angle": "国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践",
"priority": "中",
"total_score": 80,
"compliance_score": 100,
"source_file": "automation/data/sustainability_topics.json",
"ready_at": null,
"published_at": null,
"platform_urls": {},
"status": "待处理",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-22T08:52:14.499370"
},
{
"id": "A02",
"title": "测试选题:移除字数标注",
"field": "测试",
"status": "待处理",
"priority": "高",
"priority_score": 20,
"total_score": 30,
"created_at": "2026-04-22T14:00:00",
"cases": [],
"lock_by": null,
"lock_at": null,
"published_at": null,
"platform_urls": {}
},
{
"id": "TOPIC-01DEB4",
"title": "城市农业新趋势: 东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国落地路径",
"cases": [
"GLO-001",
"CHN-001",
"CHN-001"
],
"audience": "城市焦虑青年(26-35岁)",
"china_pain_points": "城市农业在中国面临的主要问题",
"localization_solution": "国际案例中国化适配方案",
"mvp_actions": "读者可立即尝试的3个行动",
"estimated_length": 2500,
"priority_score": 8,
"field": "可持续生活系统",
"format": "趋势洞察 + 实操指南",
"core_concept": "基于3个城市农业案例,提炼本土化落地策略",
"audience_pain": "城市农业领域常见的痛点与困惑",
"unique_angle": "国际案例本土化:东京垂直农场:10平米 balcony 年产蔬菜 100kg与上海阳台种菜年省 3000 元:居民自种调查的中国实践",
"priority": "中",
"total_score": 80,
"compliance_score": 100,
"source_file": "automation/data/sustainability_topics.json",
"ready_at": null,
"published_at": null,
"platform_urls": {},
"status": "待处理",
"lock_by": null,
"lock_at": null,
"created_at": "2026-04-23T10:38:49.999118"
}
]
@@ -1,322 +0,0 @@
[
{
"id": "001",
"title": "在上海阳台种菜一年,我收获了啥?",
"field": "自然 / 生活",
"format": "实操指南 + 个人故事",
"word_count": "2500",
"core_concept": "城市农业不仅是种菜,更是与自然重建连接的生活方式",
"audience_pain": "- 想体验田园生活但没条件去农村",
"unique_angle": "- 不鼓吹\"田园牧歌\",客观展示失败和踩坑",
"data_cases": [
"1. 上海阳台种植调研报告(找本地社区数据)",
"2. 不同蔬菜的生长周期和产量数据(农业网站)"
],
"estimated_days": "4天",
"priority": "高",
"priority_score": 10,
"publish_date": "2026-04-15",
"status": "已发布",
"evaluation": {
"受众覆盖": 8,
"独特性": 9,
"数据可得性": 8,
"可持续性": 7,
"平台契合度": 9,
"品牌契合度": 10,
"总分": 51
},
"total_score": 51,
"cases": [],
"source_file": "001-上海阳台种菜一年.md",
"created_at": "2026-04-16T07:52:48.754855",
"published_date": "2026-04-16"
},
{
"id": "002",
"title": "AI时代,什么能力不会被替代?",
"field": "科技 / 职场",
"format": "趋势洞察 + 实操建议",
"word_count": "2800",
"core_concept": "AI淘汰的不是工作,而是不会使用AI的人;但有些\"人类特质\"能力反而更珍贵",
"audience_pain": "- 担心被AI替代,职业焦虑严重",
"unique_angle": "- 区分配\"被AI强化的能力\"和\"AI无法替代的能力\"",
"data_cases": [
"1. 世界经济论坛《未来就业报告》技能趋势数据",
"2. 美国劳工统计局职业自动化概率研究"
],
"estimated_days": "5天",
"priority": "高",
"priority_score": 10,
"publish_date": "2026-04-18",
"status": "待处理",
"evaluation": {
"受众覆盖": 9,
"独特性": 8,
"数据可得性": 9,
"平台契合度": 9,
"品牌契合度": 10,
"总分": 53
},
"total_score": 53,
"cases": [],
"source_file": "002-AI时代什么能力不会被替代.md",
"created_at": "2026-04-16T07:52:48.755025"
},
{
"id": "003",
"title": "从程序员到数字游民:我的三年转型之路",
"field": "工作 / 职场",
"format": "个人故事 + 实操指南",
"word_count": "2600",
"core_concept": "数字游民不是逃离,而是更聪明的工作生活方式选择",
"audience_pain": "- 受够了996,想自由但不敢行动",
"unique_angle": "- 不美化\"边玩边赚\",客观展示挑战和代价",
"data_cases": [
"1. 数字游民调研报告(人数、收入、职业分布)",
"2. 不同国家的签证政策和生活成本对比(数字游民签证国家)"
],
"estimated_days": "5天",
"priority": "高",
"priority_score": 10,
"publish_date": "2026-04-20",
"status": "待处理",
"evaluation": {
"受众覆盖": 9,
"独特性": 8,
"数据可得性": 8,
"可持续性": 9,
"平台契合度": 9,
"品牌契合度": 10,
"总分": 53
},
"total_score": 53,
"cases": [],
"source_file": "003-数字游民这一年.md",
"created_at": "2026-04-16T07:52:48.755167"
},
{
"id": "004",
"title": "零浪费生活一年:一个家庭产生的垃圾去哪儿了?",
"field": "自然 / 生活",
"format": "实验记录 + 科普指南",
"word_count": "2300",
"core_concept": "零浪费不是苦行,而是更聪明的消费选择;个人行动虽小,但能改变系统",
"audience_pain": "- 想环保但不知道从何下手",
"unique_angle": "- 不道德绑架,用数据和成本说服",
"data_cases": [
"1. 中国城市生活垃圾产生量数据(统计年鉴)",
"2. 不同包装方式的碳足迹对比(生产、运输、处理)"
],
"estimated_days": "4天",
"priority": "高",
"priority_score": 10,
"publish_date": "2026-04-22",
"status": "待处理",
"evaluation": {
"受众覆盖": 8,
"独特性": 9,
"数据可得性": 8,
"可持续性": 8,
"平台契合度": 8,
"品牌契合度": 10,
"总分": 51
},
"total_score": 51,
"cases": [],
"source_file": "004-零浪费生活一年实验.md",
"created_at": "2026-04-16T07:52:48.755315"
},
{
"id": "005",
"title": "深度工作实践:如何在干扰世界中保持专注",
"field": "工作 / 生产力",
"format": "实操指南 + 个人实验",
"word_count": "2400",
"core_concept": "专注力是新时代最稀缺的资源,通过系统方法可以重建深度工作能力",
"audience_pain": "- 每天忙碌但没产出,时间碎片化",
"unique_angle": "- 不鸡汤,用实验数据和自我追踪说话",
"data_cases": [
"1. Cal Newport《深度工作》理论体系",
"2. 注意力恢复理论(Attention Restoration Theory"
],
"estimated_days": "4天",
"priority": "高",
"priority_score": 10,
"publish_date": "2026-04-23",
"status": "待处理",
"evaluation": {
"受众覆盖": 9,
"独特性": 7,
"数据可得性": 9,
"可持续性": 8,
"平台契合度": 9,
"品牌契合度": 8,
"总分": 50
},
"total_score": 50,
"cases": [],
"source_file": "005-深度工作实践.md",
"created_at": "2026-04-16T07:52:48.755469"
},
{
"id": "006",
"title": "副业月入过万:我一个程序员的三年探索之路",
"field": "工作 / 副业",
"format": "实操经验 + 方法论总结",
"word_count": "2700",
"core_concept": "副业不是投机,而是将主业技能产品化、多元化的过程",
"audience_pain": "- 工资不够花,想搞钱但不知道从哪开始",
"unique_angle": "- 从技术人视角(程序员)看副业选项,但方法论通用",
"data_cases": [
"1. 中国职场人副业调研报告(参与率、收入分布)",
"2. 程序员技能变现渠道对比(外包、咨询、产品、内容)"
],
"estimated_days": "5天",
"priority": "高",
"priority_score": 10,
"publish_date": "2026-04-25",
"status": "待处理",
"evaluation": {
"受众覆盖": 9,
"独特性": 7,
"数据可得性": 9,
"可持续性": 9,
"平台契合度": 9,
"品牌契合度": 9,
"总分": 52
},
"total_score": 52,
"cases": [],
"source_file": "006-副业月入过万.md",
"created_at": "2026-04-16T07:52:48.755650"
},
{
"id": "007",
"title": "正念冥想一年:从焦虑到平静的转变",
"field": "人文 / 心理健康",
"format": "个人实验 + 科学解读",
"word_count": "2200",
"core_concept": "冥想不是玄学,是可训练的大脑肌肉;一年练习带来可测量的认知和情绪变化",
"audience_pain": "- 焦虑、失眠、注意力不集中",
"unique_angle": "- 用科学家态度做自我实验(追踪数据、前后对比)",
"data_cases": [
"1. 冥想改变大脑结构的研究(灰质增加、杏仁核缩小)",
"2. 压力激素(皮质醇)水平变化数据"
],
"estimated_days": "4天",
"priority": "中",
"priority_score": 7,
"publish_date": "2026-04-27",
"status": "待处理",
"evaluation": {
"受众覆盖": 8,
"独特性": 8,
"数据可得性": 8,
"可持续性": 7,
"平台契合度": 8,
"品牌契合度": 9,
"总分": 48
},
"total_score": 48,
"cases": [],
"source_file": "007-正念冥想一年变化.md",
"created_at": "2026-04-16T07:52:48.755802"
},
{
"id": "008",
"title": "极简3年:我从囤积症到少物生活的转变",
"field": "人文 / 生活方式",
"format": "个人转变故事 + 实操指南",
"word_count": "2500",
"core_concept": "极简不是扔东西,而是重新定义\"足够\";通过减少物质,增加精神丰盈",
"audience_pain": "- 家里东西越来越多,整理完很快又乱",
"unique_angle": "- 从囤积症患者到极简主义者的真实转变(有心理过程)",
"data_cases": [
"1. 极简主义创始人(Joshua & Ryan)理念和实践",
"2. 物品生命周期研究(平均使用次数、浪费数据)"
],
"estimated_days": "4天",
"priority": "中",
"priority_score": 7,
"publish_date": "2026-04-29",
"status": "待处理",
"evaluation": {
"受众覆盖": 8,
"独特性": 8,
"数据可得性": 8,
"可持续性": 8,
"平台契合度": 8,
"品牌契合度": 10,
"总分": 50
},
"total_score": 50,
"cases": [],
"source_file": "008-极简3年我学会了.md",
"created_at": "2026-04-16T07:52:48.755960"
},
{
"id": "009",
"title": "城市观鸟指南:如何在水泥森林发现 biodiversity",
"field": "自然 / 科普",
"format": "实操指南 + 城市生态观察",
"word_count": "2000",
"core_concept": "自然不在远方,就在身边;城市也是wildlife的栖息地,学会观察能提升生活幸福感",
"audience_pain": "- 想接触自然但没时间去郊外",
"unique_angle": "- 城市观鸟入门,从\"完全小白\"到\"常见鸟达人\"",
"data_cases": [
"1. 城市生物多样性调研报告(中国的城市化与野生动物)",
"2. 常见城市鸟类图鉴(种类、特征、习性)"
],
"estimated_days": "3天",
"priority": "中",
"priority_score": 7,
"publish_date": "2026-05-01",
"status": "待处理",
"evaluation": {
"受众覆盖": 7,
"独特性": 9,
"数据可得性": 8,
"可持续性": 9,
"平台契合度": 8,
"品牌契合度": 10,
"总分": 51
},
"total_score": 51,
"cases": [],
"source_file": "009-城市观鸟指南.md",
"created_at": "2026-04-16T07:52:48.756111"
},
{
"id": "010",
"title": "个人知识管理系统(PKM)实践:我用一年搭建的第二大脑",
"field": "工作 / 生产力",
"format": "实操教程 + 系统设计",
"word_count": "2800",
"core_concept": "信息时代,会学习不如会管理知识;一个适合自己的PKM系统能释放认知带宽,提升创造力和决策质量",
"audience_pain": "- 收藏无数,但从未回看(收藏夹吃灰)",
"unique_angle": "- 不推销特定工具,强调方法论+适合自己的选择",
"data_cases": [
"1. PKM方法论(Zettelkasten、PARA、CODE等)",
"2. 工具对比研究(Notion、Obsidian、Roam、Logseq、飞书、Notability"
],
"estimated_days": "5天",
"priority": "中",
"priority_score": 7,
"publish_date": "2026-05-03",
"status": "待处理",
"evaluation": {
"受众覆盖": 8,
"独特性": 8,
"数据可得性": 9,
"可持续性": 9,
"平台契合度": 9,
"品牌契合度": 9,
"总分": 52
},
"total_score": 52,
"cases": [],
"source_file": "010-PKM实践.md",
"created_at": "2026-04-16T07:52:48.756300"
}
]
+187
View File
@@ -0,0 +1,187 @@
{
"date": "2026-05-10",
"gaps": [
{
"domain": "远程工作",
"topic": "远程工作2.0时代",
"reason": "疫情后远程工作模式持续升级,企业与员工探索新型协作方式",
"hot_keywords": [
"异步协作",
"数字游牧",
"远程团队管理"
],
"platform": "知乎"
},
{
"domain": "AI工具",
"topic": "AI绘画工具大战",
"reason": "MidJourney、Stable Diffusion等工具更新迭代,用户创作热情高涨",
"hot_keywords": [
"AI绘画",
"提示词工程",
"商用授权"
],
"platform": "微博"
},
{
"domain": "可持续生活",
"topic": "低碳生活实践",
"reason": "碳中和目标推动下,个人可持续生活方式成为热门讨论",
"hot_keywords": [
"零废弃",
"二手经济",
"绿色出行"
],
"platform": "小红书"
},
{
"domain": "知识管理",
"topic": "第二大脑(Zettelkasten",
"reason": "知识工作者追求高效学习与输出,个人知识管理系统流行",
"hot_keywords": [
"Obsidian",
"卡片笔记法",
"知识连接"
],
"platform": "知乎"
},
{
"domain": "数字生活",
"topic": "数字极简主义",
"reason": "信息过载背景下,用户开始主动减少数字干扰",
"hot_keywords": [
"数字断舍离",
"专注力管理",
"低刺激设计"
],
"platform": "微博"
},
{
"domain": "科技人文",
"topic": "元宇宙伦理",
"reason": "虚拟世界发展引发关于隐私、身份与社会关系的深度讨论",
"hot_keywords": [
"数字身份",
"虚拟伦理",
"元宇宙治理"
],
"platform": "知乎"
},
{
"domain": "远程工作",
"topic": "远程工作税务问题",
"reason": "跨境远程工作带来的税务合规性成为热议焦点",
"hot_keywords": [
"远程税务",
"数字游牧税",
"跨境合规"
],
"platform": "微博"
},
{
"domain": "AI工具",
"topic": "AI辅助写作",
"reason": "ChatGPT等工具推动内容创作效率提升,引发创作伦理讨论",
"hot_keywords": [
"AI写作",
"内容原创性",
"AI辅助创作"
],
"platform": "小红书"
},
{
"domain": "可持续生活",
"topic": "城市垂直农业",
"reason": "城市化进程中,本地化食品生产成为可持续发展新方向",
"hot_keywords": [
"屋顶农场",
"水培种植",
"本地供应链"
],
"platform": "知乎"
},
{
"domain": "数字生活",
"topic": "数字遗产管理",
"reason": "数字资产继承问题随着老龄化社会到来受到关注",
"hot_keywords": [
"数字遗嘱",
"账号继承",
"数字身后事"
],
"platform": "微博"
}
],
"suggestions": [
{
"title": "远程工作2.0:企业与员工的新协作",
"field": "职场与管理",
"core_concept": "疫情后远程工作模式持续升级,企业与员工探索新型协作方式",
"audience_pain": "如何在远程工作中保持高效协作与团队凝聚力",
"unique_angle": "从企业与员工双方视角分析远程工作2.0的实践与挑战"
},
{
"title": "AI绘画工具大战:创作革命还是泡沫?",
"field": "科技与创意",
"core_concept": "MidJourney、Stable Diffusion等工具更新迭代,用户创作热情高涨",
"audience_pain": "如何在AI工具辅助下提升创作效率与质量",
"unique_angle": "探讨AI绘画工具对传统艺术行业的影响与未来发展趋势"
},
{
"title": "低碳生活实践:你的每个选择都在改变世界",
"field": "环保与可持续",
"core_concept": "碳中和目标推动下,个人可持续生活方式成为热门讨论",
"audience_pain": "如何在日常生活中实践低碳,减少个人碳足迹",
"unique_angle": "从个人行为到社会影响,探索低碳生活的实践与意义"
},
{
"title": "第二大脑:知识管理的终极武器",
"field": "学习与生产力",
"core_concept": "知识工作者追求高效学习与输出,个人知识管理系统流行",
"audience_pain": "如何高效管理知识,提升学习与工作效率",
"unique_angle": "Zettelkasten方法的实践与优化,适用于不同场景的知识管理技巧"
},
{
"title": "数字极简主义:减少干扰,提升专注力",
"field": "数字生活",
"core_concept": "信息过载背景下,用户开始主动减少数字干扰",
"audience_pain": "如何在数字化时代保持专注,减少信息过载",
"unique_angle": "数字极简主义的实践方法与工具推荐,提升生活质量"
},
{
"title": "元宇宙伦理:虚拟世界的道德边界",
"field": "科技与人文",
"core_concept": "虚拟世界发展引发关于隐私、身份与社会关系的深度讨论",
"audience_pain": "如何在元宇宙中保护个人隐私与身份安全",
"unique_angle": "探讨元宇宙伦理的核心问题与可能的解决方案"
},
{
"title": "远程工作税务问题:跨境远程工作的合规指南",
"field": "职场与财务",
"core_concept": "跨境远程工作带来的税务合规性成为热议焦点",
"audience_pain": "如何在跨境远程工作中遵守税务法规,避免合规风险",
"unique_angle": "从法律与实践角度分析远程工作税务问题的解决方案"
},
{
"title": "AI辅助写作:创作效率的提升与伦理的思考",
"field": "科技与创意",
"core_concept": "ChatGPT等工具推动内容创作效率提升,引发创作伦理讨论",
"audience_pain": "如何利用AI工具提升创作效率,同时保持内容原创性",
"unique_angle": "探讨AI辅助写作的最佳实践与伦理边界"
},
{
"title": "城市垂直农业:未来食品生产的新方向",
"field": "环保与可持续",
"core_concept": "城市化进程中,本地化食品生产成为可持续发展新方向",
"audience_pain": "如何在城市中实现可持续的食品生产与供应",
"unique_angle": "城市垂直农业的技术与实践,探索未来食品生产的可能性"
},
{
"title": "数字遗产管理:老龄化社会的新挑战",
"field": "数字生活",
"core_concept": "数字资产继承问题随着老龄化社会到来受到关注",
"audience_pain": "如何管理与传承数字资产,避免遗产纠纷",
"unique_angle": "数字遗产管理的法律与实践指南,保护个人数字资产"
}
]
}
+1 -1
View File
@@ -4,7 +4,7 @@
set -e
PROJECT_ROOT="/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran"
PROJECT_ROOT="/root/openclaw-workspace/projects/yu-zhi-ran"
MARKDOWN_FILE="$PROJECT_ROOT/content/drafts/001-wechat.md"
COVER_IMG="$PROJECT_ROOT/content/publishing/images/05-封面图.png"
-138
View File
@@ -1,138 +0,0 @@
#!/usr/bin/env python3
"""
将 Markdown 文章转换为 Word 文档,嵌入图片
"""
import os
import re
from docx import Document
from docx.shared import Inches, Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
# 路径配置
MARKDOWN_FILE = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/published/2026-04-14-上海阳台种菜一年/final-article.md"
IMAGES_DIR = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/publishing/images"
OUTPUT_DOCX = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/published/2026-04-14-上海阳台种菜一年/上海阳台种菜一年_最终版.docx"
# 读取 Markdown
with open(MARKDOWN_FILE, "r", encoding="utf-8") as f:
lines = f.readlines()
doc = Document()
doc.styles['Normal'].font.name = '微软雅黑'
doc.styles['Normal'].font.size = Pt(11)
# 样式函数
def add_heading(text, level=1):
heading = doc.add_heading(text, level=level)
heading.alignment = WD_ALIGN_PARAGRAPH.LEFT
return heading
def add_paragraph(text, bold=False, italic=False):
p = doc.add_paragraph()
run = p.add_run(text)
run.bold = bold
run.italic = italic
return p
# 解析 Markdown
in_code_block = False
in_table = False
table_data = []
for i, line in enumerate(lines):
line = line.rstrip('\n')
# 代码块跳过
if line.startswith('```'):
in_code_block = not in_code_block
continue
if in_code_block:
continue
# 标题
if line.startswith('# '):
add_heading(line[2:], level=1)
continue
if line.startswith('## '):
add_heading(line[3:], level=2)
continue
if line.startswith('### '):
add_heading(line[4:], level=3)
continue
# 表格处理(简化:将表格转为文本,图片位置用占位)
if line.startswith('|'):
in_table = True
table_data.append(line)
continue
if in_table and not line.startswith('|'):
in_table = False
# 可以在此转换表格,为简化直接跳过
continue
# 图片:![alt](path)
img_match = re.match(r'!\[(.*?)\]\((images/.*?)\)', line)
if img_match:
alt, path = img_match.groups()
img_full_path = os.path.join(os.path.dirname(MARKDOWN_FILE), path)
if os.path.exists(img_full_path):
try:
# 插入图片,宽度 6 英寸(约 15cm)
doc.add_picture(img_full_path, width=Inches(6))
# 居中
last_para = doc.paragraphs[-1]
last_para.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 添加图片说明(可选)
if alt:
cap = doc.add_paragraph(alt)
cap.alignment = WD_ALIGN_PARAGRAPH.CENTER
cap.style = 'Caption'
except Exception as e:
doc.add_paragraph(f"[图片加载失败: {path}]")
else:
doc.add_paragraph(f"[图片缺失: {img_full_path}]")
continue
# 引用
if line.startswith('> '):
p = doc.add_paragraph(line[2:])
p.paragraph_format.left_indent = Inches(0.5)
p.italic = True
continue
# 列表
if re.match(r'^[-*] ', line):
p = doc.add_paragraph(line[2:], style='List Bullet')
continue
if re.match(r'^\d+\. ', line):
p = doc.add_paragraph(line[line.find('.')+2:], style='List Number')
continue
# 分隔线
if line.strip() == '---':
doc.add_paragraph('_' * 50)
continue
# 普通段落
if line.strip():
# 处理行内加粗、斜体
p = doc.add_paragraph()
parts = re.split(r'(\*\*[^*]+\*\*|\*[^*]+\*)', line)
for part in parts:
if part.startswith('**') and part.endswith('**'):
run = p.add_run(part[2:-2])
run.bold = True
elif part.startswith('*') and part.endswith('*'):
run = p.add_run(part[1:-1])
run.italic = True
else:
run = p.add_run(part)
else:
doc.add_paragraph() # 空行
# 保存文档
doc.save(OUTPUT_DOCX)
print(f"✅ Word 文档已生成: {OUTPUT_DOCX}")
print(f"📄 页数: {len(doc.paragraphs)} 段落")
print(f"🖼️ 图片路径: {IMAGES_DIR}")
-93
View File
@@ -1,93 +0,0 @@
#!/usr/bin/env python3
"""
生成 Word 文档,图片从发布目录的 images 文件夹读取
"""
import os
from docx import Document
from docx.shared import Inches, Pt
from docx.enum.text import WD_ALIGN_PARAGRAPH
BASE_DIR = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/published/2026-04-14-上海阳台种菜一年"
MD_FILE = os.path.join(BASE_DIR, "final-article.md")
IMAGES_DIR = os.path.join(BASE_DIR, "images") # 已复制的图片
OUTPUT_DOCX = os.path.join(BASE_DIR, "上海阳台种菜一年_最终版.docx")
with open(MD_FILE, "r", encoding="utf-8") as f:
lines = f.readlines()
doc = Document()
doc.styles['Normal'].font.name = '微软雅黑'
doc.styles['Normal'].font.size = Pt(11)
def add_heading(text, level=1):
heading = doc.add_heading(text, level=level)
heading.alignment = WD_ALIGN_PARAGRAPH.LEFT
return heading
for line in lines:
line = line.rstrip('\n')
if line.startswith('# '):
add_heading(line[2:], level=1)
continue
if line.startswith('## '):
add_heading(line[3:], level=2)
continue
if line.startswith('### '):
add_heading(line[4:], level=3)
continue
if line.startswith('---'):
doc.add_paragraph('_' * 60)
continue
# 图片
if line.startswith('!['):
import re
m = re.match(r'!\[(.*?)\]\((images/.*?)\)', line)
if m:
alt, fname = m.groups()
img_path = os.path.join(IMAGES_DIR, os.path.basename(fname))
if os.path.exists(img_path):
try:
doc.add_picture(img_path, width=Inches(6))
last_para = doc.paragraphs[-1]
last_para.alignment = WD_ALIGN_PARAGRAPH.CENTER
except Exception as e:
doc.add_paragraph(f"[图片错误: {fname}]")
else:
doc.add_paragraph(f"[缺失图片: {fname}]")
continue
# 空行
if not line.strip():
doc.add_paragraph()
continue
# 普通段落,处理粗体斜体
p = doc.add_paragraph()
parts = []
tmp = line
while '**' in tmp:
parts.append(tmp[:tmp.find('**')])
tmp = tmp[tmp.find('**')+2:]
if '**' in tmp:
parts.append(('bold', tmp[:tmp.find('**')]))
tmp = tmp[tmp.find('**')+2:]
else:
parts.append(('bold', tmp))
break
if not parts:
parts = [line]
for part in parts:
if isinstance(part, tuple):
style, text = part
run = p.add_run(text)
run.bold = (style == 'bold')
else:
p.add_run(part)
doc.save(OUTPUT_DOCX)
print(f"✅ Word 已生成: {OUTPUT_DOCX}")
print(f"📄 段落数: {len(doc.paragraphs)}")
-74
View File
@@ -1,74 +0,0 @@
#!/usr/bin/env python3
"""
生成 HTML,图片使用相对路径 'images/xxx.png'(确保图片在发布目录的 images 子文件夹中)
"""
import os
import re
BASE_DIR = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/published/2026-04-14-上海阳台种菜一年"
MD_FILE = os.path.join(BASE_DIR, "final-article.md")
OUT_HTML = os.path.join(BASE_DIR, "上海阳台种菜一年_可复制.html")
with open(MD_FILE, "r", encoding="utf-8") as f:
content = f.read()
# 替换图片为 HTML img 标签,保持相对路径
def replace_img(match):
alt, path = match.groups()
return f'<img src="{path}" alt="{alt}" style="max-width:100%; margin:20px 0; display:block;">'
content = re.sub(r'!\[(.*?)\]\((images/.*?)\)', replace_img, content)
# 转换 Markdown 为 HTML
html_lines = []
for line in content.split('\n'):
if line.startswith('# '):
html_lines.append(f'<h1>{line[2:]}</h1>')
elif line.startswith('## '):
html_lines.append(f'<h2>{line[3:]}</h2>')
elif line.startswith('### '):
html_lines.append(f'<h3>{line[4:]}</h3>')
elif line.startswith('---'):
html_lines.append('<hr style="border:none;border-top:2px dashed #ddd;margin:40px 0;">')
elif line.startswith('> '):
html_lines.append(f'<blockquote style="border-left:4px solid #4CAF50;background:#f9f9f9;padding:10px 20px;margin:20px 0;color:#666;">{line[2:]}</blockquote>')
elif re.match(r'^[-*] ', line):
html_lines.append(f'<li>{line[2:]}</li>')
elif re.match(r'^\d+\. ', line):
html_lines.append(f'<li>{line[line.find(". ")+2:]}</li>')
elif line.strip() == '':
html_lines.append('<br>')
else:
# 处理行内粗体斜体
tmp = re.sub(r'\*\*(.*?)\*\*', r'<strong>\1</strong>', line)
tmp = re.sub(r'\*(.*?)\*', r'<em>\1</em>', tmp)
html_lines.append(f'<p>{tmp}</p>')
html = f'''<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>上海阳台种菜一年</title>
<style>
body {{ font-family: "Microsoft YaHei", sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; line-height: 1.8; }}
h1 {{ font-size: 28px; border-bottom: 2px solid #4CAF50; padding-bottom: 10px; }}
h2 {{ font-size: 24px; margin-top: 40px; border-left: 4px solid #4CAF50; padding-left: 10px; }}
h3 {{ font-size: 20px; margin-top: 30px; color: #666; }}
img {{ max-width: 100%; height: auto; border-radius: 4px; margin: 20px 0; display: block; margin-left: auto; margin-right: auto; }}
blockquote {{ border-left: 4px solid #4CAF50; background: #f9f9f9; padding: 10px 20px; margin: 20px 0; color: #666; }}
li {{ margin-bottom: 8px; }}
p {{ margin-bottom: 16px; }}
</style>
</head>
<body>
{chr(10).join(html_lines)}
</body>
</html>'''
with open(OUT_HTML, "w", encoding="utf-8") as f:
f.write(html)
print(f"✅ HTML 已生成: {OUT_HTML}")
print(f"📊 字符数: {len(content)}")
print(f"🖼️ 图片路径: images/ (需与 HTML 同目录的 images 文件夹)")
-90
View File
@@ -1,90 +0,0 @@
#!/usr/bin/env python3
"""
生成图文混排的 HTML(图片内联为 base64),方便直接复制
"""
import os
import re
import base64
BASE_DIR = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/published/2026-04-14-上海阳台种菜一年"
MD_FILE = os.path.join(BASE_DIR, "final-article.md")
IMAGES_DIR = os.path.join(BASE_DIR, "images") # 使用发布目录内的 images
OUT_HTML = os.path.join(BASE_DIR, "上海阳台种菜一年_内联.html")
# 读取 Markdown
with open(MD_FILE, "r", encoding="utf-8") as f:
content = f.read()
# 预加载图片并转为 base64
image_cache = {}
for fname in os.listdir(IMAGES_DIR):
if fname.endswith('.png'):
path = os.path.join(IMAGES_DIR, fname)
with open(path, "rb") as imgf:
b64 = base64.b64encode(imgf.read()).decode('utf-8')
image_cache[fname] = b64
# 替换图片
def replace_img(match):
alt = match.group(1)
fname = match.group(2)
key = os.path.basename(fname)
if key in image_cache:
return f'<img src="data:image/png;base64,{image_cache[key]}" alt="{alt}" style="max-width:100%; margin:20px 0; display:block;">'
else:
return f'<p>[图片缺失: {fname}]</p>'
content = re.sub(r'!\[(.*?)\]\((images/.*?)\)', replace_img, content)
# Markdown 转 HTML
html_lines = []
for line in content.split('\n'):
if line.startswith('# '):
html_lines.append(f'<h1>{line[2:]}</h1>')
elif line.startswith('## '):
html_lines.append(f'<h2>{line[3:]}</h2>')
elif line.startswith('### '):
html_lines.append(f'<h3>{line[4:]}</h3>')
elif line.startswith('---'):
html_lines.append('<hr>')
elif line.startswith('> '):
html_lines.append(f'<blockquote>{line[2:]}</blockquote>')
elif re.match(r'^[-*] ', line):
html_lines.append(f'<li>{line[2:]}</li>')
elif re.match(r'^\d+\. ', line):
html_lines.append(f'<li>{line[line.find(". ")+2:]}</li>')
elif line.strip() == '':
html_lines.append('<br>')
else:
tmp = re.sub(r'\*\*(.*?)\*\*', r'<strong>\1</strong>', line)
tmp = re.sub(r'\*(.*?)\*', r'<em>\1</em>', tmp)
html_lines.append(f'<p>{tmp}</p>')
html = f'''<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>上海阳台种菜一年</title>
<style>
body {{ font-family: "Microsoft YaHei", sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; line-height: 1.8; }}
h1 {{ font-size: 28px; border-bottom: 2px solid #4CAF50; padding-bottom: 10px; }}
h2 {{ font-size: 24px; margin-top: 40px; border-left: 4px solid #4CAF50; padding-left: 10px; }}
h3 {{ font-size: 20px; margin-top: 30px; color: #666; }}
img {{ max-width: 100%; height: auto; border-radius: 4px; margin: 20px 0; display: block; margin-left: auto; margin-right: auto; }}
blockquote {{ border-left: 4px solid #4CAF50; background: #f9f9f9; padding: 10px 20px; margin: 20px 0; color: #666; }}
li {{ margin-bottom: 8px; }}
p {{ margin-bottom: 16px; }}
</style>
</head>
<body>
{chr(10).join(html_lines)}
</body>
</html>'''
with open(OUT_HTML, "w", encoding="utf-8") as f:
f.write(html)
print(f"✅ HTML 已生成: {OUT_HTML}")
print(f"📊 字符数: {len(content)}")
print(f"🖼️ 内嵌图片: {len(image_cache)}")
-50
View File
@@ -1,50 +0,0 @@
#!/usr/bin/env python3
"""
对 article.md 进行内容优化:
- 去除具体 App 品牌名(花帮主、园艺助手)
- 隐去设备具体品牌(小米米家)
- 保留功能描述和用户价值
- 保持中立、实用、无广告感
"""
import os
import re
BASE_DIR = "/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/content/published/2026-04-14-上海阳台种菜一年"
MD_FILE = os.path.join(BASE_DIR, "final-article.md")
OUT_MD = os.path.join(BASE_DIR, "final-article-optimized.md")
with open(MD_FILE, "r", encoding="utf-8") as f:
content = f.read()
# 1. 替换具体 App 名称 -> 通用描述
content = re.sub(r'花帮主', '一些第三方种植App', content)
content = re.sub(r'园艺助手', '另一些生活助手类App', content)
content = re.sub(r'(\*\*)花帮主(\*\*)AI识别病虫害,准确率85%', '**一些第三方种植App**,可以通过 AI 识别病虫害,准确率在 80% 以上', content)
# 2. 替换设备品牌 -> 通用描述
content = re.sub(r'小米米家灌溉套装', '智能灌溉套装', content)
content = re.sub(r'LED补光灯', 'LED 植物补光灯', content)
# 3. 移除可能带有广告嫌疑的表述(如“效果最好”、“推荐”等),改为中性描述
content = re.sub(r'强烈推荐(易种)', '适合新手(易种)', content)
content = re.sub(r'强烈推荐', '推荐', content)
# 4. 图片描述调整(不影响图片本身,只调整 alt 文本和图片说明)
# 图片文件保留不变,只调整 Markdown 中的说明文字
content = re.sub(r'!\[App截图\]', '[App功能截图]', content)
content = re.sub(r'App截图', 'App功能界面示意', content)
# 5. 增加免责声明(在文末)
if "声明:" not in content:
content = content.rstrip() + "\n\n---\n\n> **声明**:本文提及的工具和设备仅为个人使用经验分享,不构成商业推荐。读者可根据自身需求选择类似产品。\n"
with open(OUT_MD, "w", encoding="utf-8") as f:
f.write(content)
print(f"✅ 优化完成: {OUT_MD}")
print("🔧 优化项:")
print(" - 去除具体 App 品牌名")
print(" - 隐去设备品牌")
print(" - 增加中立表述")
print(" - 添加免责声明")

Some files were not shown because too many files have changed in this diff Show More