分支:001-credential-manager
| 日期:2025-09-29 | 规范:spec.md
输入:/Users/he/projects/binance-api/specs/001-credential-manager/spec.md
中的功能规范
用户需求:用于多平台对冲的账号管理模块,智能注入账户分辨不同平台执行对应业务
1. 从 Input 路径加载功能规范
→ 如果缺失:ERROR "No feature spec at {path}"
2. 填写技术背景(扫描 NEEDS CLARIFICATION)
→ 根据文件结构或上下文判断项目类型(web=前后端,mobile=App+API)
→ 根据项目类型给出结构决策
3. 根据宪章内容完成 Constitution Check 部分(原则 I–V、运营约束、流程质量门槛、治理要求)
4. 评估 Constitution Check
→ 若存在违例:记录在 Complexity Tracking
→ 若无法给出理由:ERROR "Simplify approach first"
→ 更新 Progress Tracking:Initial Constitution Check
5. 执行 Phase 0 → research.md(确保记录行情数据源、敞口目标与风险约束)
→ 若仍有 NEEDS CLARIFICATION:ERROR "Resolve unknowns"
6. 执行 Phase 1 → contracts、data-model.md、quickstart.md、agent 文件
7. 再次评估 Constitution Check
→ 若出现新违例:回到 Phase 1 调整
→ 更新 Progress Tracking:Post-Design Constitution Check
8. 规划 Phase 2 → 描述任务生成策略(不要创建 tasks.md)
9. 停止 - 准备执行 /tasks 命令
重要提示:/plan 命令到步骤 7 即结束。后续阶段由其他命令完成:
实施一个多平台对冲账号管理模块,支持智能账户注入、平台识别和业务分发。核心需求包括:100ms内配置热加载、50ms内签名完成、支持Pacifica/Aster/Binance多平台、智能平台识别、统一签名API。技术方案基于AccountRegistry简化模式,避免过度设计,使用TypeScript严格模式,策略模式实现多平台签名,文件监听实现热加载。针对对冲业务场景,提供账户池管理和风险分散支持。
语言/版本:TypeScript (Node.js 18+) 主要依赖:tweetnacl (Ed25519), js-sha3 (EIP-191), crypto (HMAC-SHA256), chokidar (文件监听), AccountRegistry (简化账户管理) 存储:JSON配置文件 + 内存缓存 + 加密凭证存储 测试框架:Jest with TypeScript, 契约测试先行 目标平台:Node.js server environment, 对冲交易系统集成 项目类型:单体库模块,集成到现有多平台对冲系统 性能目标:热加载<100ms, 签名<50ms, 支持>100并发账户 约束条件:支持文件热加载、零停机更新、多平台兼容、Delta中性要求 规模/范围:多平台对冲账户管理,预计支持10+交易所,100+账户并发
关卡:必须在 Phase 0 前通过,并在 Phase 1 后再次确认。
specs/[###-feature]/
├── plan.md # 本文件(/plan 输出)
├── research.md # Phase 0 输出(/plan)
├── data-model.md # Phase 1 输出(/plan)
├── quickstart.md # Phase 1 输出(/plan)
├── contracts/ # Phase 1 输出(/plan)
└── tasks.md # Phase 2 输出(/tasks,非 /plan 生成)
src/
├── core/
│ ├── credential-manager/ # 凭证管理核心模块
│ │ ├── CredentialManager.ts # 主管理器
│ │ ├── AccountRegistry.ts # 账户注册表(简化模式)
│ │ ├── signers/ # 签名器策略
│ │ │ ├── PacificaSigner.ts # Ed25519签名
│ │ │ ├── AsterSigner.ts # EIP-191签名
│ │ │ └── BinanceSigner.ts # HMAC-SHA256签名
│ │ └── ConfigValidator.ts # 配置验证
│ └── http-client/ # HTTP客户端模块(已存在)
├── types/
│ ├── credential.ts # 凭证类型定义
│ └── platformAdapter.ts # 平台适配器类型
├── utils/ # 工具函数
└── examples/ # 使用示例
tests/
├── contract/ # 契约测试
│ ├── credential-manager.contract.test.ts
│ ├── signer-strategies.contract.test.ts
│ └── account-registry.contract.test.ts
├── integration/ # 集成测试
│ ├── multi-platform-signing.integration.test.ts
│ ├── hot-reload.integration.test.ts
│ └── hedging-workflows.integration.test.ts
└── unit/ # 单元测试
├── signers/
└── managers/
结构决策:采用单体项目结构,基于现有src/core模块扩展。使用模块化分层架构,遵循AccountRegistry简化模式,避免复杂的工厂适配器组合。credential-manager作为独立模块与现有http-client模块并行,通过类型定义保持松耦合。
生成调研任务:
对每个未知项:
任务:调研 {未知点} 在 {功能背景} 的最佳做法
对每个技术选项:
任务:收集 {技术} 在 {领域} 的最佳实践
整理输出至 research.md
:
产出:research.md,所有未知项已解决
前提:research.md 已完成
data-model.md
/contracts/
.specify/scripts/bash/update-agent-context.sh claude
产出:data-model.md、/contracts/*、失败的契约测试、quickstart.md、更新后的 agent 文件
说明 /tasks 命令的工作方式(本阶段不执行)
任务生成策略:
.specify/templates/tasks-template.md
为基线排序策略:
预估输出:tasks.md,约 25-30 个有序任务
注意:Phase 2 由 /tasks 完成,非 /plan 输出
超出 /plan 命令范围
Phase 3:执行 /tasks 生成 tasks.md
Phase 4:按 tasks.md 实施
Phase 5:验证(运行测试、执行 quickstart、性能验证)
仅在 Constitution Check 有违例时填写
违例 | 原因 | 被否决的简单方案 |
---|---|---|
[示例:新增第 4 个项目] | [现实需求] | [为何前三个不足] |
执行流程中的状态记录
阶段状态:
关卡状态:
基于宪章 v1.6.0 - 详见 /memory/constitution.md