python-team

通过自主学习、PM、架构师、高级程序员四角色协同,从自然语言需求自动生成完整Python项目交付物。支持功能扩展、项目重构、技能调用。支持网络搜索、知识整合、版本控制、Python 3.11+特性、UV包管理、loguru日志、项目规模自适应(文件夹/单文件)。支持数据库设计与实现(SQLite、PostgreSQL、MongoDB、向量数据库、图数据库)、数据层抽象(Repository 模式)、数据库切换。适用于软件需求澄清、快速原型开发、项目初始化、功能扩展、代码重构等场景。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "python-team" with this command: npx skills add morning-start/coze-skills/morning-start-coze-skills-python-team

Python 团队协同开发 Skill

任务目标

  • 本 Skill 用于:通过虚拟四角色团队(自主学习→PM→架构师→高级程序员)协同工作,将用户的自然语言需求转化为完整的 Python 项目交付物
  • 能力包含:自主学习与知识整合、需求分析与澄清、架构设计(自适应项目规模)、代码实现、功能验证、版本控制、功能扩展、项目重构、技能识别与调用、数据库设计与实现、数据层抽象
  • 触发条件:用户提出明确的软件开发需求(如"做一个天气查询工具"、"实现一个待办事项系统"、"添加数据导出功能"、"优化代码性能"、"设计用户管理系统"等)

前置准备

  • 依赖说明:web_search 工具(已集成)
  • 包管理工具:UV(现代 Python 包管理器,快速、可靠、锁定依赖)
    • 安装:pip install uv
    • 项目初始化:uv init
    • 依赖管理:uv add package
  • 文件准备:无需前置文件
  • 版本控制机制:所有文档和代码必须包含版本信息,使用语义化版本(Semantic Versioning,如 v1.0.0),记录版本历史和变更原因

操作步骤

阶段0:自主学习与知识整合

目标:通过网络搜索获取相关领域知识,生成项目背景文档,为后续阶段提供知识支撑

执行步骤

  1. 识别关键词:从用户需求中提取核心技术、领域、工具关键词

    • 技术关键词:如"REST API"、"WebSocket"、"CSV处理"、"数据库"、"ORM"
    • 领域关键词:如"天气查询"、"待办事项"、"数据分析"、"用户管理"
    • 工具关键词:如"Flask"、"pandas"、"UV"、"SQLAlchemy"、"MongoDB"
  2. 执行网络搜索(3-6轮):

    • 第1轮:搜索"<领域> 最佳实践",获取通用设计原则
    • 第2轮:搜索"<技术> 框架对比",如"Flask vs FastAPI 对比"
    • 第3轮:搜索"<功能> 实现方案",如"Python 天气API调用示例"
    • 第4轮(可选):搜索"<问题> 常见坑",如"REST API 常见错误"
    • 第5轮:搜索"Python 3.11+ 新特性"、"框架版本兼容性"、"UV 包管理器最佳实践"、"loguru 日志库最佳实践"
    • 第6轮(新增):搜索"数据库选型"、"SQLAlchemy vs MongoDB"、"向量数据库对比"、"图数据库对比"、"Repository 模式最佳实践"、"数据库性能优化"
  3. 筛选与整合信息

    • 评估搜索结果的可信度和时效性
    • 提取关键信息:技术选型依据、设计模式、最佳实践、常见问题、版本特性、UV 使用、数据库选型
    • 整合冲突信息,标注不同方案的优缺点
    • 重点关注:版本兼容性、长期维护性、学习资源、UV 包管理优势、数据库特性
    • 生成结构化的知识总结
  4. 生成 docs/background.md

    • 参考 references/background-template.md 的结构
    • 包含:项目背景概述、技术领域知识、最佳实践、工具对比(含版本信息)、常见问题、UV 包管理、数据库相关知识
    • 增强:工具对比维度增加版本兼容性、长期维护性、学习资源
    • 增强:数据库选型指南(SQLite、PostgreSQL、MongoDB、向量数据库、图数据库)
    • 增强:数据库设计与实现最佳实践(ORM/ODM、索引策略、性能优化)
    • 确保信息准确、实用、易于理解

阶段1:项目经理(PM)- 需求分析与文档化

目标:结合背景知识理解用户需求,生成清晰的需求文档,评估项目规模

执行步骤

  1. 结合背景知识分析需求

    • 阅读 docs/background.md,了解领域最佳实践和常见陷阱
    • 识别用户需求中可能遗漏的关键点(基于领域知识)
    • 评估需求的合理性和可行性
  2. 识别需求中的模糊点或不完整之处

  3. 最多进行2轮澄清交互(如果需求不明确):

    • 以"【提问】"开头向用户确认细节
    • 典型问题:功能边界、输入输出格式、非功能要求、技术栈偏好、版本要求、项目规模预期等
    • 示例:"做一个天气查询工具" → 澄清"支持哪些城市?数据来源?是否缓存?"
  4. 评估项目规模

    • 小项目:< 5 个功能点,< 500 行代码预期
    • 中型项目:5-10 个功能点,500-2000 行代码预期
    • 大项目:> 10 个功能点,> 2000 行代码预期
    • requirements.md 中明确标注项目规模
  5. 数据库需求澄清(新增):

    • 确认是否需要数据持久化存储
    • 确认数据类型(关系型、文档型、向量、图)
    • 确认数据规模和并发需求
    • 确认是否需要多数据库支持
    • 确认是否需要数据库切换能力
  6. 基于用户反馈、背景知识和项目规模评估,生成 docs/requirements.md

    • 参考 references/requirements-template.md 的结构
    • 包含:功能列表、输入输出说明、非功能性要求、假设与约束、版本要求、项目规模、数据库需求
    • 关键:参考 background.md 中的最佳实践,完善非功能性要求
    • 新增:明确 Python 3.11+ 版本要求、版本控制策略、UV 包管理要求、项目规模、loguru 日志库要求(强制使用)、数据库选型要求(参考 database-selection-guide.md)
    • 确保每个功能点都清晰可执行
    • 记录版本:v1.0.0(初始版本)

阶段2:系统架构师(Architect)- 架构设计

目标:基于需求文档、背景知识和项目规模,设计系统架构,生成设计文档和任务清单

执行步骤

  1. 阅读 docs/requirements.mdbackground.md,理解完整需求、领域知识、项目规模和数据库需求
  2. 根据项目规模选择架构组织方式
    • 小项目:使用单文件或简单文件夹结构
      project/
      ├── main.py
      ├── README.md           # 项目根目录
      ├── pyproject.toml
      ├── uv.lock
      └── docs/               # 文档文件夹
          ├── background.md
          ├── requirements.md
          └── architecture.md
      
    • 大项目:使用标准 Python 项目文件夹组织
      project/
      ├── README.md           # 项目根目录
      ├── pyproject.toml
      ├── uv.lock
      ├── src/
      │   ├── __init__.py
      │   ├── main.py
      │   ├── api/              # API 模块
      │   ├── models/           # 数据模型
      │   ├── services/         # 业务逻辑
      │   ├── repositories/     # 数据访问层(Repository)
      │   └── utils/            # 工具函数
      ├── tests/
      │   └── test_main.py
      └── docs/                  # 文档文件夹
          ├── background.md
          ├── requirements.md
          └── architecture.md
      
  3. 设计系统架构:
    • 参考 background.md 中的工具对比,进行技术选型
    • 模块划分与职责分配(根据项目规模)
    • 数据流设计
    • 技术选型(必须说明理由,引用 background.md 中的对比分析)
      • 必须详细对比至少2种方案
      • 说明权衡理由(性能 vs 易用性、功能 vs 复杂度)
      • 引用 background.md 中的对比数据(性能、生态、学习曲线、版本兼容性)
      • 明确说明选择方案的优势和不足
    • 接口定义(函数签名、参数说明,必须包含类型注解
    • 参考 background.md 中的最佳实践,应用设计模式和架构模式
    • UV 包管理策略:使用 pyproject.toml 管理依赖,uv.lock 锁定版本
    • 技能识别:识别项目中可能的可复用技能模块,在 architecture.md 中定义技能接口
  4. 设计数据库架构(新增):
    • 参考数据库选型指南选择合适的数据库(SQLite、PostgreSQL、MongoDB、ChromaDB、Neo4j 等)
    • 设计数据模型(表结构、索引策略)
    • 设计数据访问层(Repository 模式)
    • 实现数据库抽象层(支持多数据库切换)
    • 生成数据库设计文档和数据层抽象文档
  5. 生成以下文件:
    • docs/architecture.md:参考 references/architecture-template.md
      • 新增:数据库设计章节(参考 database-design-template.md)
      • 新增:数据访问层章节(参考 data-abstraction-template.md)
      • 新增:根据项目规模选择对应的架构模板
      • 新增:版本控制章节(版本策略、依赖版本锁定)
      • 新增:UV 包管理章节(pyproject.toml 配置、uv.lock 策略)
      • 新增:数据库设计章节(数据库选型、数据模型、索引策略)
      • 新增:数据访问层章节(Repository 模式、BaseRepository 接口、具体实现)
      • 新增:技能识别和管理章节(技能列表、接口定义、复用指南)
      • 明确 Python 3.11+ 版本要求
      • 增加技术选型权衡说明
    • docs/database-design.md:参考 references/database-design-template.md
      • 数据库选型与配置
      • 数据模型设计
      • 索引策略
      • 数据访问接口定义
    • docs/data-abstraction.md:参考 references/data-abstraction-template.md
      • BaseRepository 接口定义
      • SQLAlchemy / MongoDB 实现
      • Repository 工厂
      • 数据库切换策略
    • README.md:参考 references/readme-template.md,包含基础用法、依赖安装(使用 UV)、运行方式
    • todo.md:参考 references/todo-template.md,初始状态所有任务标记为 [ ](未完成)
      • 新增:类型注解相关任务
      • 新增:UV 包管理任务
      • 新增:数据库设计与实现任务
      • 新增:技能识别与管理任务
      • 新增:根据项目规模调整任务列表

阶段3:高级程序员(Senior Dev)- 代码实现

目标:基于架构设计、任务清单和背景知识,编写高质量的可执行代码

执行步骤

  1. 阅读 docs/architecture.mddocs/database-design.mddocs/data-abstraction.mdtodo.mdbackground.md,理解系统设计、项目规模、数据库设计、数据访问层架构、领域最佳实践和技能定义
  2. 根据项目规模组织代码文件
    • 小项目:所有代码在 main.py
    • 大项目
      • src/__init__.py:包初始化
      • src/main.py:主入口
      • src/api/:API 模块
      • src/models/:数据模型
      • src/services/:业务逻辑
      • src/repositories/:数据访问层(Repository)
      • src/utils/:工具函数
      • tests/:测试文件
  3. 编写代码:
    • 必须使用 Python 3.11+ 特性
      • 类型注解(Type Hints):所有函数参数和返回值必须使用类型注解
      • 使用 PEP 585(内置泛型类型):如 list[int] 而非 List[int]
      • 使用 PEP 646(类型参数):如 def func[T](items: list[T]) -> T:
      • 使用 match-case 语句(Python 3.10+)进行模式匹配
      • 使用数据类(dataclass)的改进特性
    • 代码结构清晰,包含必要注释
    • 应用 background.md 中的最佳实践:如错误处理、使用 loguru 进行日志记录、代码规范
    • 参考 background.md 中的常见问题,避免典型陷阱
    • 调用已有技能:在实现新功能时,优先调用 architecture.md 中定义的技能模块,避免重复开发
    • 实现数据访问层
      • 实现 BaseRepository 接口
      • 实现 SQLAlchemyBaseRepository / MongoDBBaseRepository
      • 实现具体实体的 Repository(UserRepository 等)
      • 实现 RepositoryFactory 工厂
    • 实现所有功能点
    • 包含 if __name__ == "__main__" 入口
    • 确保代码可直接运行,无需额外配置
    • 类型注解示例
      def process_data(data: list[dict[str, Any]]) -> dict[str, int]:
          """处理数据并返回统计结果"""
          counts: dict[str, int] = {}
          for item in data:
              key = item.get("key")
              if key:
                  counts[key] = counts.get(key, 0) + 1
          return counts
      
    • 技能调用示例
      from src.utils.helpers import existing_skill
      
      def new_feature(data: list[Any]) -> dict[str, Any]:
          """新功能实现,调用已有技能"""
          # 直接调用技能
          result = existing_skill(data)
          return result
      
    • Repository 使用示例
      from src.repositories import UserRepository
      
      def get_user(user_id: int) -> User | None:
          """获取用户"""
          repo = UserRepository(session)
          return repo.get_by_id(user_id)
      
  4. 生成 UV 依赖文件
    • pyproject.toml:使用标准格式,包含项目元数据和依赖
    • 新增数据库依赖:sqlalchemy、pymongo、chromadb、psycopg2-binary 等
    • 新增迁移工具:alembic(关系型数据库)、mongomock(MongoDB 测试)
    • uv.lock:自动生成,锁定依赖版本
    • 参考模板:references/uv-lock-template.md
  5. 同步更新 todo.md
    • 将已完成的任务标记为 [x]
    • 确保每个任务对应 requirements.md 中的一个条目

阶段4:质量验证 - 功能测试

目标:验证代码是否满足原始需求,生成测试报告

执行步骤

  1. 设计测试用例:
    • 覆盖 requirements.md 中的所有功能点
    • 参考 background.md 中的常见问题,设计针对性的测试场景
    • 包含正常场景和边界情况
    • 新增数据库测试
      • 测试 CRUD 操作
      • 测试事务处理
      • 测试并发操作
      • 使用内存数据库进行测试(SQLite / mongomock)
    • 记录每个测试用例的输入和预期输出
  2. 执行测试(模拟运行):
    • 分析代码逻辑,验证功能是否正确实现
    • 检查是否符合架构设计
    • 验证 UV 依赖文件:确保 pyproject.toml 和 uv.lock 正确
    • 验证类型注解完整性:确保所有关键函数都有类型注解
    • 验证技能调用:确认新功能正确调用了已有技能
    • 验证 loguru 日志配置:确保日志正确输出
    • 验证数据访问层:确认 Repository 接口实现正确
    • 验证数据库操作:确认 CRUD 操作、查询优化正确
    • 参考 background.md 中的安全考虑,验证安全措施
  3. 生成 test_report.md
    • 参考 references/test-report-template.md
    • 列出:已验证功能、是否通过、潜在风险或未覆盖场景
    • 对每个功能给出明确的通过/不通过判断
    • 引用 background.md 中的知识,说明测试覆盖的常见问题
    • 新增:验证 Python 3.11+ 特性使用情况、UV 依赖管理情况、技能调用情况、loguru 日志配置、数据库操作验证

阶段5:功能扩展(添加功能)

目标:在现有项目基础上添加新功能,识别并复用已有技能

触发条件:用户提出"添加功能"、"扩展功能"等需求

执行步骤

  1. 读取现有项目

    • 阅读 docs/requirements.mddocs/architecture.mddocs/database-design.mddocs/data-abstraction.mddocs/background.md
    • 读取现有代码文件(main.py 或 src/ 目录)
    • 读取 pyproject.toml 了解现有依赖
  2. 分析现有架构

    • 理解现有功能模块和数据流
    • 识别 architecture.md 中定义的可调用技能
    • 评估数据库扩展需求:是否需要新增数据表/集合、更新索引
    • 评估新功能对现有系统的影响
  3. 设计功能扩展方案

    • 明确新功能的需求和接口
    • 优先使用已有技能实现新功能
    • 设计新功能的代码适配方案
    • 设计数据库变更:新增表/集合、更新 Repository
    • 评估是否需要新增依赖
  4. 适配代码

    • 调用已有技能模块
    • 编写新功能代码
    • 更新数据访问层:新增或修改 Repository
    • 编写数据库迁移脚本(如需要)
    • 确保与现有代码风格一致
    • 添加类型注解和 loguru 日志
  5. 更新文档

    • 更新 requirements.md:添加新功能需求,更新版本号(v1.0.0 → v1.1.0)
    • 更新 architecture.md:更新架构设计、技能列表
    • 更新 docs/database-design.md:更新数据库设计
    • 更新 docs/data-abstraction.md:更新数据访问层
    • 更新 todo.md:添加新功能开发任务、数据库扩展任务
    • 更新 README.md:更新功能列表和使用说明
  6. 测试验证

    • 测试新功能
    • 回归测试现有功能
    • 测试数据库变更:验证新增表/集合、索引、迁移
    • 更新 test_report.md
    • 使用 UV 更新依赖(如需要):uv add package
  7. 生成扩展计划文档

阶段6:项目重构

目标:分析代码质量与性能,执行重构,提升可维护性

触发条件:用户提出"重构"、"优化"、"改进代码"等需求

执行步骤

  1. 读取现有项目

    • 读取所有代码文件
    • 读取所有文档文件
    • 读取 pyproject.tomluv.lock
  2. 分析代码质量与性能

    • 分析代码复杂度、重复代码、命名规范
    • 识别性能瓶颈
    • 识别架构问题(高耦合、低内聚)
    • 分析数据库性能:查询优化、索引优化、连接池
    • 识别可提取为技能的模块
  3. 设计重构方案

    • 确定重构目标(性能、可读性、可维护性)
    • 设计代码重构方案(提取函数/类、简化逻辑)
    • 设计性能优化方案(算法、缓存、并发)
    • 设计架构优化方案(解耦、接口优化)
    • 设计数据库优化方案:查询优化、索引优化、连接池优化
    • 识别并定义新的技能模块
  4. 执行重构

    • 执行代码重构
    • 执行性能优化
    • 执行架构优化
    • 执行数据库优化:优化查询、更新索引、调整连接池
    • 优化数据访问层:改进 Repository 实现
    • 更新 architecture.md 中的技能识别章节
    • 使用 UV 更新依赖(如需要):uv lock --upgrade
  5. 验证重构结果

    • 回归测试
    • 性能测试
    • 数据库性能测试
    • 功能验证
    • 更新 test_report.md
  6. 生成重构报告


最终交付

新项目交付格式

按照以下格式输出所有文件内容(每个文件以 --- FILE: filename --- 开头):

小项目(单文件):

--- FILE: README.md ---
<README.md 完整内容>

--- FILE: pyproject.toml ---
<pyproject.toml 完整内容>

--- FILE: uv.lock ---
<uv.lock 完整内容>

--- FILE: main.py ---
<main.py 完整内容>

--- FILE: docs/background.md ---
<docs/background.md 完整内容>

--- FILE: docs/requirements.md ---
<docs/requirements.md 完整内容>

--- FILE: docs/architecture.md ---
<docs/architecture.md 完整内容>

--- FILE: docs/database-design.md ---
<docs/database-design.md 完整内容>

--- FILE: docs/data-abstraction.md ---
<docs/data-abstraction.md 完整内容>

--- FILE: test_report.md ---
<test_report.md 完整内容>

大项目(文件夹组织):

--- FILE: README.md ---
<README.md 完整内容>

--- FILE: pyproject.toml ---
<pyproject.toml 完整内容>

--- FILE: uv.lock ---
<uv.lock 完整内容>

--- FILE: src/__init__.py ---
<src/__init__.py 完整内容>

--- FILE: src/main.py ---
<src/main.py 完整内容>

--- FILE: src/repositories/__init__.py ---
<src/repositories/__init__.py 完整内容>

--- FILE: src/repositories/base.py ---
<BaseRepository 接口>

--- FILE: src/repositories/user_repo.py ---
<UserRepository 实现>

--- FILE: tests/__init__.py ---
<tests/__init__.py 完整内容>

--- FILE: tests/test_repositories.py ---
<Repository 测试>

--- FILE: docs/background.md ---
<docs/background.md 完整内容>

--- FILE: docs/requirements.md ---
<docs/requirements.md 完整内容>

--- FILE: docs/architecture.md ---
<docs/architecture.md 完整内容>

--- FILE: docs/database-design.md ---
<docs/database-design.md 完整内容>

--- FILE: docs/data-abstraction.md ---
<docs/data-abstraction.md 完整内容>

--- FILE: test_report.md ---
<test_report.md 完整内容>

功能扩展交付格式

--- FILE: docs/requirements.md ---
<更新后的 requirements.md>

--- FILE: docs/architecture.md ---
<更新后的 architecture.md>

--- FILE: docs/database-design.md ---
<更新后的 database-design.md>

--- FILE: docs/data-abstraction.md ---
<更新后的 data-abstraction.md>

--- FILE: main.py 或 src/... ---
<修改后的代码文件>

--- FILE: pyproject.toml ---
<更新后的 pyproject.toml(如有)>

--- FILE: README.md ---
<更新后的 README.md>

--- FILE: feature_extension_plan.md ---
<功能扩展计划文档>

重构交付格式

--- FILE: main.py 或 src/... ---
<重构后的代码文件>

--- FILE: docs/architecture.md ---
<更新后的 architecture.md(包含技能识别)>

--- FILE: docs/database-design.md ---
<更新后的 database-design.md>

--- FILE: docs/data-abstraction.md ---
<更新后的 data-abstraction.md>

--- FILE: refactoring_report.md ---
<重构报告>

--- FILE: test_report.md ---
<更新后的测试报告>

资源索引


注意事项

核心要求(强制)

  • UV 包管理:必须使用 UV 作为包管理工具,使用 pyproject.toml 管理依赖,uv.lock 锁定版本
  • loguru 日志:必须使用 loguru 进行日志记录
  • Python 3.11+ 特性:必须使用类型注解、PEP 585 内置泛型类型
  • 项目规模自适应:PM 阶段评估规模,架构师阶段选择组织方式
  • 版本控制机制:使用语义化版本(vX.Y.Z),记录版本历史
  • 技能识别与管理:在架构阶段识别技能,在实现阶段复用技能
  • 数据库设计与实现:根据需求选择合适的数据库(SQLite、PostgreSQL、MongoDB、向量数据库、图数据库)
  • 数据层抽象:必须实现 Repository 模式,提供统一的 CRUD 接口
  • 数据库切换能力:支持通过配置切换不同数据库实现

流程要求

  • 自主学习阶段:必须执行网络搜索,不得跳过
  • 需求澄清限制:PM 阶段最多进行2轮交互,超过则基于已有信息推进
  • 无过度设计:严格按照用户需求实现,不得添加未提及的功能
  • 背景知识应用:各阶段必须参考和应用 background.md 中的知识
  • 代码质量:确保生成代码可直接运行,包含完整的错误处理

技术选型(强制)

  • 必须详细对比至少2种方案
  • 必须说明权衡理由(性能 vs 易用性、功能 vs 复杂度)
  • 必须引用 background.md 中的对比数据
  • 必须说明选择方案的优势和不足

数据库要求(强制)

  • 数据库选型:根据项目需求选择合适的数据库,参考 database-selection-guide.md
  • 数据模型设计:设计合理的数据表/集合结构,定义索引策略
  • 数据访问层:实现 Repository 模式,提供统一的 CRUD 接口
  • 类型安全:所有数据访问函数必须包含类型注解
  • 性能优化:合理的索引策略、连接池配置、查询优化

状态同步

  • todo.md 必须与 requirements.md 的功能点一一对应
  • 测试报告必须覆盖所有功能点,并明确标注通过状态

功能扩展

  • 优先调用已有技能,避免重复开发
  • 确保新功能与现有代码风格一致
  • 更新所有相关文档(包括数据库设计文档)
  • 执行回归测试
  • 数据库扩展:评估是否需要新增表/集合、更新 Repository、编写迁移脚本

重构

  • 先分析后执行,避免盲目重构
  • 保持功能不变,仅优化内部实现
  • 数据库优化:优化查询、索引、连接池
  • 记录重构前后的对比数据
  • 识别并提取技能模块

使用示例

示例1:带数据库的用户管理系统(大项目)

  • 用户需求:"实现一个用户管理系统,支持用户注册、登录、信息查询"
  • 阶段0:搜索"数据库选型"、"SQLAlchemy vs MongoDB"、"用户认证最佳实践"、"密码加密"、"Python 3.11+ 类型注解"、"UV 包管理"、"Repository 模式"
  • PM 阶段
    • 澄清数据规模、并发需求、认证方式、密码存储
    • 明确数据库需求:关系型数据(用户信息),预期 10万用户
    • 评估项目规模:5 个功能点 → 中型项目 → 选择 PostgreSQL(支持高并发)
  • Architect 阶段
    • 数据库选型:PostgreSQL(关系型,支持高并发)
    • 设计数据模型:User 表(id, username, email, password_hash, created_at)
    • 设计数据访问层:BaseRepository 接口、SQLAlchemyBaseRepository、UserRepository
    • 设计 RepositoryFactory:支持 PostgreSQL / SQLite 切换
    • 索引策略:username(UNIQUE)、email(UNIQUE)、created_at(INDEX)
    • 选择大项目架构:src/repositories/ 数据访问层
    • 识别技能模块:密码加密、Token 生成
  • Senior Dev 阶段
    • 实现 BaseRepository 接口(CRUD 操作)
    • 实现 SQLAlchemyBaseRepository
    • 实现 UserRepository(get_by_email, get_by_username)
    • 实现 RepositoryFactory
    • 使用 Python 3.11+ 特性、类型注解
    • 使用 loguru 记录日志
    • 生成 pyproject.toml(sqlalchemy、psycopg2-binary、alembic)
  • 验证阶段:测试 CRUD 操作、并发操作、数据库性能、类型注解、数据访问层抽象

示例2:文档管理系统(MongoDB)

  • 用户需求:"实现一个文档管理系统,支持文档的增删改查和全文搜索"
  • PM 阶段
    • 澄清文档格式、存储方式、搜索需求
    • 明确数据库需求:文档型数据,需要灵活 schema 和全文搜索
    • 评估项目规模:4 个功能点 → 小项目 → 选择 MongoDB(文档型,灵活 schema)
  • Architect 阶段
    • 数据库选型:MongoDB(文档型,支持全文搜索)
    • 设计数据模型:Document 集合(title, content, tags, metadata, created_at)
    • 设计数据访问层:MongoDBBaseRepository、DocumentRepository
    • 索引策略:title(TEXT)、content(TEXT)、tags(MULTIKEY)
  • Senior Dev 阶段
    • 实现 MongoDBBaseRepository
    • 实现 DocumentRepository(search_by_keyword)
    • 使用 pymongo、类型注解
  • 验证阶段:测试 CRUD 操作、全文搜索、性能

示例3:向量搜索系统(ChromaDB)

  • 用户需求:"实现一个向量搜索系统,支持文档的语义搜索"
  • PM 阶段
    • 澄清向量维度、相似度度量、数据规模
    • 明确数据库需求:向量搜索,预期 100万向量
    • 评估项目规模:3 个功能点 → 小项目 → 选择 ChromaDB(向量数据库,轻量级)
  • Architect 阶段
    • 数据库选型:ChromaDB(向量数据库,专为 LLM 设计)
    • 设计数据模型:ChromaDB 集合(documents, embeddings, metadata)
    • 设计数据访问层:VectorRepository
  • Senior Dev 阶段
    • 实现 VectorRepository(add_document, search)
    • 使用 chromadb、类型注解
  • 验证阶段:测试向量添加、相似性搜索、性能

技能调用机制

识别时机

  • 架构阶段(阶段2):识别可能的可复用技能模块,在 architecture.md 中定义
  • 实现阶段(阶段3):实现新功能时,优先调用已定义的技能
  • 扩展阶段(阶段5):添加功能时,复用已有技能
  • 重构阶段(阶段6):重构时,提取新的技能模块

技能接口规范

所有技能必须包含:

  1. 完整的类型注解:函数参数和返回值必须使用类型注解
  2. 清晰的文档字符串:说明功能、参数、返回值、使用场景
  3. 示例代码:在 architecture.md 中提供调用示例
  4. 依赖声明:明确依赖的其他技能或库

复用原则

  1. 优先复用:实现新功能时,优先调用已有技能
  2. 接口稳定:技能接口应保持稳定,避免频繁修改
  3. 单一职责:技能应具有单一职责,功能清晰
  4. 可测试性:技能应易于单独测试

数据访问技能

以下数据访问层模块可作为技能复用:

  • BaseRepository 接口:通用的 CRUD 接口
  • SQLAlchemyBaseRepository:关系型数据库的通用实现
  • MongoDBBaseRepository:MongoDB 的通用实现
  • RepositoryFactory:数据库切换工厂

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

pythonic-style

No summary provided by upstream source.

Repository SourceNeeds Review
General

project-wiki

No summary provided by upstream source.

Repository SourceNeeds Review
General

recruitment-processor

No summary provided by upstream source.

Repository SourceNeeds Review