diff --git a/README.md b/README.md new file mode 100644 index 0000000..d763aef --- /dev/null +++ b/README.md @@ -0,0 +1,86 @@ +# AI Venture Operating System (AVOS) + + +> ⚠️ 如果你看到的是这份 README 文本,而不是表单页面,说明你打开错页面了。 +> 请直接打开:`/index.html` 或 `/app/index.html`(通过本地 HTTP 服务访问)。 + + +你问得非常关键:**要不要继续多跑几轮?** + +我把系统升级成了“可配置轮次 + 收敛判断”,不再只固定 5 轮。 + +## 现在能做什么 + +- 前端可选 `5~20` 轮自动迭代。 +- CLI 支持 `--rounds` 参数。 +- 每次运行都会给出“继续跑”还是“已收敛”的建议。 + +## 前端体验 + +```bash +cd app +python3 -m http.server 8787 +``` + +打开 : +- 设置“自动迭代轮数(5-20)” +- 点击 `自动迭代 N 轮(无人干预)` + +## CLI 体验 + +```bash +python3 scripts/autopilot_iterate.py --rounds 5 +python3 scripts/autopilot_iterate.py --rounds 12 +``` + +## 我的当前判断(基于现有规则引擎) + +- 前几轮(通常 1~4 轮)提升明显。 +- 之后容易进入平台期。 +- 到平台期后,继续增加轮次收益有限,应切换到“真实用户数据驱动”的优化。 + +## 核心文件 + +- `app/index.html`:可配置轮数的自动迭代 UI。 +- `scripts/autopilot_iterate.py`:支持 `--rounds` 和收敛建议的 CLI 引擎。 +- `docs/03_mvp_plan.md`:v0.3 迭代标准与建议。 + + +## 实测结论(你问的“最后结果”) + +我已实际运行 `5 / 8 / 12 / 20` 轮: + +- 最优轮次稳定在 `Round 4` +- 最优得分稳定在 `8.29` +- `8` 轮之后基本收敛 + +详细数据见:`docs/04_run_summary.md` + + +## 怎么打开网页(你这个问题的直接答案) + +### 本地打开 + +在仓库根目录执行: + +```bash +python3 -m http.server 8787 +``` + +然后访问: + +- `http://localhost:8787/`(现在根目录 `index.html` 会自动跳转到 `app/index.html`) +- 或直接 `http://localhost:8787/app/index.html` + +### GitHub Pages 设置(Page setting) + +因为现在根目录已经有 `index.html` 跳转页,最简单配置是: + +1. GitHub 仓库 → `Settings` → `Pages` +2. `Build and deployment` 里选择: + - `Source`: **Deploy from a branch** + - `Branch`: **main**(或你的发布分支) + - `Folder`: **/(root)** +3. 保存后等待发布完成。 + +发布后访问你的 Pages 链接即可(会自动跳到 `/app/index.html`)。 diff --git a/app/index.html b/app/index.html new file mode 100644 index 0000000..73874e9 --- /dev/null +++ b/app/index.html @@ -0,0 +1,212 @@ + + + + + + AI 时代职业赚钱路径诊断器 v0.3 + + + +
+

AI 时代职业赚钱路径诊断器(自动迭代版)

+

支持 5~20 轮无人干预迭代,并自动判断是否“继续多跑”还是“已收敛该切换数据验证”。

+ +
+

输入

+
+
+
+
+
+
+
+ + +
+
+ + +
+
+
+ + + + +
+
+
+ + + +
+
+ +

单轮结果

点击“生成单轮报告”。
+

自动迭代日志

点击“自动迭代 N 轮(无人干预)”。
+
+ + + + diff --git a/docs/00_project_brief.md b/docs/00_project_brief.md new file mode 100644 index 0000000..436d166 --- /dev/null +++ b/docs/00_project_brief.md @@ -0,0 +1,26 @@ +# 00 Project Brief + +## 主题 +AI 时代个人职业赚钱路径(从概念到可执行项目) + +## 目标用户 +- 处在职业转型阶段的个人 +- 想将 AI 能力转化为收入的从业者/自由职业者/创作者 + +## 核心问题 +原工作如何被 AI 改造,并形成可落地的收入路径。 + +## 最小交付 +- 一份可执行的结构化诊断报告,或 +- 一个可在线使用的职业诊断网页工具(MVP) + +## 成功标准(v0.1) +- 用户 10 秒内理解产品价值 +- 用户愿意完成输入 +- 输出结果可直接行动 +- 用户愿意复制/保存结果 +- 用户愿意分享给他人 + +## 停止标准 +- 连续多轮测试无法显著提升输入完成率与结果有用性 +- 产品价值主张无法收敛到清晰人群与场景 diff --git a/docs/01_system_architecture.md b/docs/01_system_architecture.md new file mode 100644 index 0000000..e745071 --- /dev/null +++ b/docs/01_system_architecture.md @@ -0,0 +1,29 @@ +# 01 System Architecture + +## 三层架构 + +### L1 咨询研究层 +判断问题价值、市场机会与优先级。 + +### L2 产品执行层 +将机会转化为网页、工具、模板、报告与自动化流程。 + +### L3 增长迭代层 +通过上线、反馈、复盘和商业化实现持续增长。 + +## 九部门虚拟公司模型 + +1. **CEO / 总控层**:定义问题、用户、边界、成功/停止标准。 +2. **Research / 市场研究部**:行业趋势、竞品、痛点、证据等级。 +3. **Strategy / 战略筛选部**:用固定维度进行机会评分并输出 Top 3。 +4. **Product / 产品经理部**:PRD、流程、页面结构、版本路线。 +5. **Engineering / 工程执行部**:最小技术实现与交付。 +6. **UX / 用户体验部**:可理解性、输入成本、输出价值、移动端体验。 +7. **Growth / 增长部**:传播、SEO、冷启动、免费/付费设计。 +8. **QA / 测试部**:功能稳定性、页面兼容、发布前检查。 +9. **Knowledge / 沉淀部**:将项目资产化为可复用知识库。 + +## 关键原则 +- 先跑通闭环,再追求全自动。 +- 先验证价值,再扩展复杂系统。 +- 执行场(GitHub)与知识场(Obsidian)并行沉淀。 diff --git a/docs/02_workflow_and_case.md b/docs/02_workflow_and_case.md new file mode 100644 index 0000000..d0f6ced --- /dev/null +++ b/docs/02_workflow_and_case.md @@ -0,0 +1,47 @@ +# 02 Workflow and Case + +## 标准流程(从想法到上线) + +### 阶段 0:输入想法 +输入示例:`AI 时代,我的工作是 xxx,未来如何工作赚钱?` + +### 阶段 1:研究 +- 行业趋势 +- 用户痛点 +- 现有方案 +- 付费场景 +- 市场缺口 + +### 阶段 2:机会拆分 +候选方向示例: +- 职业诊断工具 +- 定制报告 +- Prompt 模板库 +- 小型课程 +- 自动化网站 +- 咨询服务 +- 社群产品 + +### 阶段 3:评分筛选 +固定 7 维度: +- 痛点强度 +- 付费意愿 +- 市场增长 +- MVP 速度 +- 差异化 +- 自动化程度 +- 个人资源匹配 + +## 案例结论(本轮) +首个切入建议:**AI 职业赚钱路径诊断网页 + 自动生成报告**。 + +## 风险与翻转条件 +- 目标用户过于宽泛,导致价值主张失焦。 +- 第一版系统过重(登录/支付/数据库)拖慢验证。 +- 只给结论不给行动步骤,用户感知价值低。 +- 没有真实反馈闭环,系统退化为“文档生成器”。 + +## 未核实项 +- 具体职业画像(`xxx`)尚未给定。 +- 细分市场规模与竞品清单需下一轮联网核实。 +- 价格区间仅为策略假设,需真实用户测试。 diff --git a/docs/03_mvp_plan.md b/docs/03_mvp_plan.md new file mode 100644 index 0000000..b0331b2 --- /dev/null +++ b/docs/03_mvp_plan.md @@ -0,0 +1,50 @@ +# 03 MVP Plan(v0.3:可配置轮次 + 收敛判断) + +## 目标 + +在无人干预自动迭代基础上,再提升两点: + +1. 迭代轮次可配置(5~20) +2. 自动判断“是否还值得继续多跑” + +## 当前完成度 + +- [x] 单页输入/输出 +- [x] 自动 N 轮迭代(前端 5~20) +- [x] 自动 N 轮迭代(CLI `--rounds`) +- [x] 收敛建议(继续跑 / 切换数据优化) +- [ ] 真实用户反馈接入 +- [ ] 自动部署与观测面板 + +## 使用方式 + +### 前端 + +```bash +cd app +python3 -m http.server 8787 +``` + +打开: + +### CLI + +```bash +python3 scripts/autopilot_iterate.py --rounds 5 +python3 scripts/autopilot_iterate.py --rounds 12 +``` + +## 迭代流程 + +1. Proposal:生成初始方案。 +2. Scoring:7 维评分。 +3. Critique:对低分项给出可执行批评。 +4. Revision:自动改写方案。 +5. Selection:选择最优轮次。 +6. Convergence Check:判断是否仍值得继续增轮。 + +## v0.3 验证指标 + +- 第 N 轮得分 >= 第 1 轮得分 +- 收敛判断可输出明确建议 +- 报告可复制为 Markdown diff --git a/docs/04_run_summary.md b/docs/04_run_summary.md new file mode 100644 index 0000000..0a51975 --- /dev/null +++ b/docs/04_run_summary.md @@ -0,0 +1,27 @@ +# 04 Run Summary(自动迭代实测结论) + +## 实测配置 + +- 主题:`AI时代职业赚钱路径诊断器` +- 版本:v0.3(可配置轮次 + 收敛判断) +- 实测轮次:5 / 8 / 12 / 20 + +## 结果总览 + +| 轮次 | Round1 总分 | 最终轮总分 | 最优轮次 | 最优分数 | 收敛判断 | +|---|---:|---:|---:|---:|---| +| 5 | 6.43 | 8.29 | 4 | 8.29 | 仍可再跑 3-5 轮 | +| 8 | 6.43 | 8.29 | 4 | 8.29 | 已收敛,建议转数据优化 | +| 12 | 6.43 | 8.29 | 4 | 8.29 | 已收敛,建议转数据优化 | +| 20 | 6.43 | 8.29 | 4 | 8.29 | 已收敛,建议转数据优化 | + +## 解释 + +1. 系统在前 4 轮完成主要改进(人群收敛、阶梯收费、双引擎获客、反馈回流)。 +2. 从第 8 轮开始,分数基本不再提升,进入平台期。 +3. 因此“继续盲跑更多轮次”收益很小,最优动作是引入真实用户反馈数据再迭代。 + +## 当前结论(对外可说) + +- **已达到当前规则引擎条件下的最优近似**(best=8.29, Round 4)。 +- **不是终局最优**:若接入真实用户行为数据,理论上仍可继续提升。 diff --git a/docs/05_pages_setup.md b/docs/05_pages_setup.md new file mode 100644 index 0000000..0fbf376 --- /dev/null +++ b/docs/05_pages_setup.md @@ -0,0 +1,33 @@ +# 05 Pages Setup(根目录 + app 子目录) + +## 现状 + +- `index.html`(根目录)= 可直接运行的应用页面 +- `app/index.html`(子目录)= 同一应用页面副本 + +> 这样做的目的是避免“只看到 README 文本、不见表单 UI”的混淆。 + +## 本地启动 + +```bash +python3 -m http.server 8787 +``` + +访问任一地址: + +- `http://localhost:8787/` +- `http://localhost:8787/index.html` +- `http://localhost:8787/app/index.html` + +## GitHub Pages 配置步骤 + +1. 打开仓库 `Settings` → `Pages` +2. `Build and deployment` 选择 `Deploy from a branch` +3. Branch 选发布分支(例如 `main`) +4. Folder 选 `/(root)` +5. 保存并等待 Pages 发布 + +## 常见错误 + +- 看到的是 README 文本:说明你打开了 README 页面而不是站点首页。 +- 正确入口始终是站点根地址(或 `index.html`)。 diff --git a/index.html b/index.html new file mode 100644 index 0000000..73874e9 --- /dev/null +++ b/index.html @@ -0,0 +1,212 @@ + + + + + + AI 时代职业赚钱路径诊断器 v0.3 + + + +
+

AI 时代职业赚钱路径诊断器(自动迭代版)

+

支持 5~20 轮无人干预迭代,并自动判断是否“继续多跑”还是“已收敛该切换数据验证”。

+ +
+

输入

+
+
+
+
+
+
+
+ + +
+
+ + +
+
+
+ + + + +
+
+
+ + + +
+
+ +

单轮结果

点击“生成单轮报告”。
+

自动迭代日志

点击“自动迭代 N 轮(无人干预)”。
+
+ + + + diff --git a/scripts/autopilot_iterate.py b/scripts/autopilot_iterate.py new file mode 100644 index 0000000..496a90f --- /dev/null +++ b/scripts/autopilot_iterate.py @@ -0,0 +1,181 @@ +#!/usr/bin/env python3 +"""Autonomous iteration runner for AVOS. + +Runs self-improvement rounds without human input: +1) propose +2) score +3) critique +4) revise +5) keep best +""" + +from __future__ import annotations + +import argparse +from dataclasses import dataclass, asdict +from statistics import mean +from typing import Dict, List + + +@dataclass +class Plan: + niche: str + offer: str + acquisition: str + validation: str + automation_stack: str + risks: List[str] + + +@dataclass +class RoundResult: + round_id: int + score: Dict[str, float] + total: float + critique: List[str] + plan: Plan + + +def initial_plan(topic: str) -> Plan: + return Plan( + niche="泛职业人群", + offer=f"{topic}诊断网页 + 报告", + acquisition="内容平台泛流量", + validation="上线后观察访问量", + automation_stack="前端表单 + 规则引擎", + risks=["用户太泛", "付费路径不清晰", "反馈闭环弱"], + ) + + +def evaluate(plan: Plan) -> Dict[str, float]: + niche_focus = 9 if "泛" not in plan.niche else 5 + paid_offer = 8 if any(k in plan.offer for k in ["模板", "咨询", "订阅", "训练营"]) else 6 + growth = 8 if "SEO" in plan.acquisition or "矩阵" in plan.acquisition else 6 + mvp_speed = 9 if "前端" in plan.automation_stack or "规则" in plan.automation_stack else 7 + differentiation = 8 if "行业" in plan.niche or "垂直" in plan.niche else 6 + automation = 9 if "自动" in plan.validation or "回流" in plan.validation else 6 + fit = 9 if "GitHub" in plan.automation_stack or "Markdown" in plan.automation_stack else 7 + return { + "pain": niche_focus, + "willingness_to_pay": paid_offer, + "growth": growth, + "mvp_speed": mvp_speed, + "differentiation": differentiation, + "automation": automation, + "resource_fit": fit, + } + + +def critique(score: Dict[str, float], plan: Plan) -> List[str]: + notes: List[str] = [] + if score["pain"] < 8: + notes.append("把目标人群从‘泛职业’收敛到一个高痛点垂直职业。") + if score["willingness_to_pay"] < 8: + notes.append("在免费诊断后加入低价模板包与中价咨询,形成阶梯收费。") + if score["growth"] < 8: + notes.append("把获客从‘泛流量’改为SEO长尾+内容矩阵双引擎。") + if score["automation"] < 8: + notes.append("加入自动反馈回流:用户评分结果写入迭代队列。") + if "反馈闭环弱" in plan.risks: + notes.append("新增每轮复盘指标:输入完成率、复制率、分享率。") + return notes + + +def revise(plan: Plan, notes: List[str], round_id: int) -> Plan: + new_plan = Plan(**asdict(plan)) + for n in notes: + if "收敛" in n: + new_plan.niche = "自由职业内容创作者(想把AI能力产品化)" + elif "阶梯收费" in n: + new_plan.offer = "免费诊断 + 39元模板包 + 299元咨询" + elif "双引擎" in n: + new_plan.acquisition = "SEO长尾页面 + 短视频/图文内容矩阵" + elif "自动反馈回流" in n: + new_plan.validation = "自动收集用户评分并回流到下一轮策略" + elif "复盘指标" in n: + new_plan.validation += ";追踪输入完成率/复制率/分享率" + + if round_id >= 3 and "GitHub" not in new_plan.automation_stack: + new_plan.automation_stack += " + GitHub Actions + Markdown沉淀" + + new_plan.risks = [r for r in new_plan.risks if r != "反馈闭环弱"] + ["样本量不足"] + return new_plan + + +def run(topic: str, rounds: int) -> List[RoundResult]: + history: List[RoundResult] = [] + plan = initial_plan(topic) + + for i in range(1, rounds + 1): + score = evaluate(plan) + total = round(mean(score.values()), 2) + notes = critique(score, plan) + history.append(RoundResult(i, score, total, notes, plan)) + plan = revise(plan, notes, i) + + return history + + +def convergence_advice(history: List[RoundResult], patience: int = 3) -> str: + if len(history) < 2: + return "样本轮次不足,建议至少运行 5 轮。" + + deltas = [round(history[i].total - history[i - 1].total, 2) for i in range(1, len(history))] + stable = sum(1 for d in deltas[-patience:] if d <= 0.01) if len(deltas) >= patience else 0 + best = max(history, key=lambda x: x.total) + + if stable >= patience: + return ( + f"得分已在最近 {patience} 轮基本收敛(最优 Round {best.round_id}, {best.total})。" + "建议下一步切换到真实用户数据优化,而不是盲目增加轮次。" + ) + return "仍存在提升空间,建议再跑 3-5 轮并引入新的策略分支。" + + +def render_markdown(history: List[RoundResult]) -> str: + best = max(history, key=lambda x: x.total) + lines = [ + "# AVOS 自动迭代报告", + "", + f"- 轮次: {len(history)}", + f"- 最优得分: {best.total}", + f"- 最优轮次: Round {best.round_id}", + f"- 迭代建议: {convergence_advice(history)}", + "", + ] + for r in history: + lines.extend( + [ + f"## Round {r.round_id}", + f"- 总分: {r.total}", + f"- 方案: {r.plan.offer}", + f"- 人群: {r.plan.niche}", + f"- 获客: {r.plan.acquisition}", + f"- 验证: {r.plan.validation}", + "- 本轮批评:", + ] + ) + if r.critique: + lines.extend([f" - {c}" for c in r.critique]) + else: + lines.append(" - 无明显短板,继续做数据化优化。") + lines.append("") + return "\n".join(lines) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Run AVOS autonomous iteration rounds.") + parser.add_argument("--rounds", type=int, default=5, help="Number of self-iteration rounds.") + parser.add_argument("--topic", type=str, default="AI时代职业赚钱路径诊断器", help="Topic for planning.") + return parser.parse_args() + + +def main() -> None: + args = parse_args() + rounds = max(1, args.rounds) + history = run(topic=args.topic, rounds=rounds) + print(render_markdown(history)) + + +if __name__ == "__main__": + main()