tasks.md 9.2 KB

Tasks: 凭证管理模块 (Credential Manager)

Input: Design documents from /specs/001-credential-manager/ Prerequisites: plan.md (required), research.md, data-model.md, contracts/

Execution Flow (main)

1. Load plan.md from feature directory
   → Extract: TypeScript 5.1+, @noble/ed25519, Node.js fs.watch, strategy pattern
   → Structure: libs/credential-manager/ (独立库实现)
2. Load design documents:
   → data-model.md: Platform, Account, Signer, ConfigLoader entities
   → contracts/: credential-manager.ts, pacifica-signer.ts
   → research.md: Ed25519签名库、文件监听、智能识别、统一接口
3. Generate tasks by category:
   → Setup: 库结构、依赖安装、@noble/ed25519
   → Tests: 契约测试、集成测试、性能测试
   → Core: 凭证管理器、平台检测器、签名器
   → Integration: 文件监听、配置加载、错误处理
   → Polish: 单元测试、性能验证、快速开始文档
4. Apply TDD rules:
   → 契约测试先行(必须失败)
   → 不同文件标记[P]并行
   → 签名操作<50ms、文件加载<100ms性能要求
5. Number tasks sequentially (T001, T002...)
6. Validate completeness: 所有契约有测试、所有实体有模型

Format: [ID] [P?] Description

  • [P]: Can run in parallel (different files, no dependencies)
  • Include exact file paths in descriptions

Path Conventions

  • 独立库: libs/credential-manager/ at repository root
  • 测试: libs/credential-manager/tests/ (contract/, integration/, unit/)
  • 源码: libs/credential-manager/src/ (core/, platforms/, loaders/)

Phase 3.1: Setup

  • T001 Create libs/credential-manager/ directory structure per implementation plan
  • T002 Initialize TypeScript library project with package.json in libs/credential-manager/
  • T003 [P] Install @noble/ed25519 dependency in libs/credential-manager/package.json
  • T004 [P] Configure TypeScript config in libs/credential-manager/tsconfig.json
  • T005 [P] Configure Jest testing in libs/credential-manager/jest.config.js
  • T006 [P] Configure ESLint and Prettier in libs/credential-manager/

Phase 3.2: Tests First (TDD) ⚠️ MUST COMPLETE BEFORE 3.3

CRITICAL: These tests MUST be written and MUST FAIL before ANY implementation

  • T007 [P] Contract test ICredentialManager interface in libs/credential-manager/tests/contract/test_credential_manager.ts
  • T008 [P] Contract test IPacificaSigner interface in libs/credential-manager/tests/contract/test_pacifica_signer.ts
  • T009 [P] Contract test IConfigLoader interface in libs/credential-manager/tests/contract/test_config_loader.ts
  • T010 [P] Contract test ISigner interface in libs/credential-manager/tests/contract/test_signer.ts
  • T011 [P] Integration test hot loading 配置文件 in libs/credential-manager/tests/integration/test_hot_loading.ts
  • T012 [P] Integration test 智能平台识别 in libs/credential-manager/tests/integration/test_platform_detection.ts
  • T013 [P] Integration test Pacifica签名流程 in libs/credential-manager/tests/integration/test_pacifica_signing.ts
  • T014 [P] Integration test 多账户管理 in libs/credential-manager/tests/integration/test_account_management.ts
  • T015 [P] Performance test 签名操作<50ms in libs/credential-manager/tests/integration/test_performance.ts

Phase 3.3: Core Implementation (ONLY after tests are failing)

  • T016 [P] Platform enum and types in libs/credential-manager/src/core/types.ts
  • T017 [P] Account model in libs/credential-manager/src/core/Account.ts
  • T018 [P] ConfigLoader implementation in libs/credential-manager/src/loaders/ConfigLoader.ts
  • T019 [P] PlatformDetector service in libs/credential-manager/src/core/PlatformDetector.ts
  • T020 [P] PacificaDetector strategy in libs/credential-manager/src/platforms/pacifica/PacificaDetector.ts
  • T021 [P] AsterDetector strategy in libs/credential-manager/src/platforms/aster/AsterDetector.ts
  • T022 [P] BinanceDetector strategy in libs/credential-manager/src/platforms/binance/BinanceDetector.ts
  • T023 PacificaSigner implementation in libs/credential-manager/src/platforms/pacifica/PacificaSigner.ts
  • T024 PacificaMessageSerializer utility in libs/credential-manager/src/platforms/pacifica/MessageSerializer.ts
  • T025 PacificaKeyUtils utility in libs/credential-manager/src/platforms/pacifica/KeyUtils.ts
  • T026 UnifiedSigner service in libs/credential-manager/src/core/Signer.ts
  • T027 CredentialManager main service in libs/credential-manager/src/core/CredentialManager.ts
  • T028 [P] Error handling classes in libs/credential-manager/src/core/errors.ts
  • T029 CredentialManagerFactory in libs/credential-manager/src/core/CredentialManagerFactory.ts

Phase 3.4: Integration

  • T030 File watching integration with fs.watch in ConfigLoader
  • T031 [P] JSON Schema validation in ConfigLoader
  • T032 [P] Logging integration throughout library
  • T033 Platform strategy registration system in UnifiedSigner
  • T034 [P] Metrics collection for PacificaSigner performance
  • T035 Public API exports in libs/credential-manager/src/index.ts

Phase 3.5: Polish

  • T036 [P] Unit tests for PlatformDetector in libs/credential-manager/tests/unit/test_platform_detector.ts
  • T037 [P] Unit tests for PacificaKeyUtils in libs/credential-manager/tests/unit/test_pacifica_key_utils.ts
  • T038 [P] Unit tests for MessageSerializer in libs/credential-manager/tests/unit/test_message_serializer.ts
  • T039 [P] Unit tests for error handling in libs/credential-manager/tests/unit/test_errors.ts
  • T040 Performance verification tests (<100ms loading, <50ms signing)
  • T041 [P] Update quickstart.md with final API examples
  • T042 [P] Create README.md for credential-manager library
  • T043 [P] Remove debug logging and optimize for production
  • T044 Integration test running quickstart scenarios

Dependencies

  • Setup (T001-T006) before everything
  • Tests (T007-T015) before implementation (T016-T029)
  • T016 blocks T017-T019 (types dependency)
  • T018 blocks T030-T031 (ConfigLoader dependency)
  • T019 blocks T020-T022 (detector interface dependency)
  • T023-T025 must complete before T026 (PacificaSigner dependency)
  • T026-T027 blocks T033 (signer dependency)
  • T029 blocks T035 (factory dependency)
  • Implementation before polish (T036-T044)

Parallel Example

# Launch contract tests T007-T010 together:
Task: "Contract test ICredentialManager interface in libs/credential-manager/tests/contract/test_credential_manager.ts"
Task: "Contract test IPacificaSigner interface in libs/credential-manager/tests/contract/test_pacifica_signer.ts"
Task: "Contract test IConfigLoader interface in libs/credential-manager/tests/contract/test_config_loader.ts"
Task: "Contract test ISigner interface in libs/credential-manager/tests/contract/test_signer.ts"

# Launch platform detectors T020-T022 together:
Task: "PacificaDetector strategy in libs/credential-manager/src/platforms/pacifica/PacificaDetector.ts"
Task: "AsterDetector strategy in libs/credential-manager/src/platforms/aster/AsterDetector.ts"
Task: "BinanceDetector strategy in libs/credential-manager/src/platforms/binance/BinanceDetector.ts"

Notes

  • [P] tasks = different files, no dependencies
  • Verify contract tests fail before implementing
  • 库优先架构: 独立package.json in libs/credential-manager/
  • 性能要求: 签名<50ms, 文件加载<100ms
  • Ed25519签名使用@noble/ed25519
  • 配置文件热加载使用Node.js fs.watch
  • 平台智能识别使用多重检测器模式

Task Generation Rules

Applied during main() execution

  1. From Contracts:

    • credential-manager.ts → ICredentialManager, IConfigLoader, ISigner contract tests [P]
    • pacifica-signer.ts → IPacificaSigner contract test [P]
  2. From Data Model:

    • Platform, Account, Signer → model creation tasks [P]
    • ConfigLoader → file watching and validation tasks
  3. From User Stories (quickstart.md):

    • 基础使用 → account management integration test [P]
    • 签名操作 → Pacifica signing integration test [P]
    • 热加载监听 → hot loading integration test [P]
    • 多平台签名 → platform detection integration test [P]
  4. Ordering:

    • Setup → Tests → Models → Services → Integration → Polish
    • 文件监听依赖ConfigLoader
    • 签名器依赖平台检测器
    • 工厂依赖所有核心组件

Validation Checklist

GATE: Checked by main() before returning

  • All contracts have corresponding tests (T007-T010)
  • All entities have model tasks (T016-T018)
  • All tests come before implementation (T007-T015 before T016-T029)
  • Parallel tasks truly independent ([P] marked correctly)
  • Each task specifies exact file path (libs/credential-manager/...)
  • No task modifies same file as another [P] task
  • Performance requirements included (T015, T040)
  • TDD workflow enforced (契约测试必须先失败)
  • 库优先架构 supported (独立package.json in T002)

关键特性验证

  • 热加载: T011验证fs.watch文件监听<100ms
  • 智能识别: T012验证平台检测器准确性
  • Pacifica签名: T013验证Ed25519签名<50ms
  • 多账户: T014验证账户管理和隔离
  • 性能: T015和T040验证所有性能要求