Files
stock-tool/feature_list.json
root be9542cf9d feat: 初始化 PERDAS 增强版开发环境
- 添加 feature_list.json: 6个功能,5个已完成
- 添加 PROGRESS.md: 进度跟踪文件
- 添加 init.sh: 一键启动开发环境
- 添加 scripts/health-check.sh: 健康检查脚本
- 添加 scripts/e2e-test.sh: 端到端测试脚本
- 添加 .gitignore: 忽略不需要的文件
- 更新 README.md: 添加 PERDAS 增强版使用说明

核心特点:
- 强制增量开发(每次一个功能)
- 强制端到端测试
- 强制截图证据
- 状态持久化
- 清晰的交接机制

遵循 Anthropic 长期运行代理研究最佳实践
2026-02-19 03:38:35 +08:00

197 lines
5.7 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"project_name": "stock-tool",
"version": "1.0.0",
"created_at": "2026-02-18T19:06:35Z",
"last_updated": "2026-02-18T19:30:00Z",
"features": [
{
"id": "feat-001",
"title": "股票列表展示",
"description": "在网页上展示所有股票的基本信息包括代码、名称、价格、涨跌幅、市值、PE、ROE、负债率等指标",
"status": "completed",
"priority": "critical",
"steps": [
{
"action": "navigate",
"target": "http://localhost:8080",
"description": "打开股票分析工具主页"
},
{
"action": "verify",
"selector": ".stock-list",
"description": "验证股票列表容器存在"
},
{
"action": "verify",
"selector": ".stock-card",
"description": "验证至少有一个股票卡片"
},
{
"action": "screenshot",
"path": "tests/screenshots/feat-001-stock-list-display.png",
"description": "截图保存股票列表展示界面"
}
]
},
{
"id": "feat-002",
"title": "股票搜索功能",
"description": "支持按股票代码或公司名称搜索股票,搜索后自动跳转到对应股票详情页",
"status": "completed",
"priority": "critical",
"steps": [
{
"action": "type",
"selector": "#searchInput",
"text": "AAPL",
"description": "在搜索框输入股票代码"
},
{
"action": "click",
"selector": "button[onclick=\"searchStocks()\"]",
"description": "点击搜索按钮"
},
{
"action": "verify",
"selector": "#detailView",
"description": "验证跳转到股票详情页"
},
{
"action": "verify",
"selector": "#detailSymbol",
"_{text}": "AAPL",
"description": "验证显示正确的股票代码"
},
{
"action": "screenshot",
"path": "tests/screenshots/feat-002-stock-search.png",
"description": "截图保存搜索功能"
}
]
},
{
"id": "feat-003",
"title": "K线图展示",
"description": "在详情页展示100天历史K线图蜡烛图显示开盘价、最高价、最低价、收盘价、成交量",
"status": "completed",
"priority": "high",
"steps": [
{
"action": "navigate",
"target": "http://localhost:8080",
"description": "打开主页"
},
{
"action": "click",
"selector": ".stock-card:first-child",
"description": "点击第一个股票卡片"
},
{
"action": "wait",
"selector": "#klineTab",
"description": "等待K线图标签显示"
},
{
"action": "verify",
"selector": "canvas#klineChart",
"description": "验证K线图画布存在"
},
{
"action": "screenshot",
"path": "tests/screenshots/feat-003-kline-chart.png",
"description": "截图保存K线图"
}
]
},
{
"id": "feat-004",
"title": "技术指标展示",
"description": "展示RSI、MACD、均线系统等技术指标使用简单的CSS图表绘制",
"status": "completed",
"priority": "high",
"steps": [
{
"action": "click",
"selector": "#indicatorsTab",
"description": "点击技术指标标签"
},
{
"action": "verify",
"selector": "canvas#indicatorsChart",
"description": "验证技术指标图表存在"
},
{
"action": "screenshot",
"path": "tests/screenshots/feat-004-technical-indicators.png",
"description": "截图保存技术指标"
}
]
},
{
"id": "feat-005",
"title": "基本面数据展示",
"description": "展示收入、利润、ROE、负债权益比等财务数据",
"status": "completed",
"priority": "normal",
"steps": [
{
"action": "click",
"selector": "#financialsTab",
"description": "点击基本面标签"
},
{
"action": "verify",
"selector": "table.data-table",
"description": "验证表格存在"
},
{
"action": "screenshot",
"path": "tests/screenshots/feat-005-financials-data.png",
"description": "截图保存基本面数据"
}
]
},
{
"id": "feat-006",
"title": "数据刷新功能",
"description": "提供一键刷新按钮重新从API获取最新数据并更新数据库",
"status": "in_progress",
"priority": "normal",
"steps": [
{
"action": "navigate",
"target": "http://localhost:8080",
"description": "打开主页"
},
{
"action": "click",
"selector": ".stock-card:first-child",
"description": "点击第一个股票"
},
{
"action": "click",
"selector": ".refresh-btn",
"description": "点击刷新按钮"
},
{
"action": "verify",
"selector": "#loading",
"description": "验证加载状态显示"
},
{
"action": "screenshot",
"path": "tests/screenshots/feat-006-refresh-function.png",
"description": "截图保存刷新功能"
}
]
}
],
"summary": {
"total": 6,
"completed": 5,
"in_progress": 1,
"pending": 0,
"failed": 0
}
}