Skip to content

Jinger52035/HarnessEngineeringManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevPilot - Workflow Orchestrator

English Documentation

DevPilot 是一款桌面端工作流编排工具,专为管理长周期 AI 编程工作流而设计。它提供可视化的工作区管理界面,支持里程碑追踪、文件实时监控和蓝图模板系统。

您需要了解HardnessEngineering和Open Spec等相关知识

https://github.com/walkinglabs/learn-harness-engineering

https://github.com/Fission-AI/OpenSpec


技术架构

技术栈

层级 技术选型
语言 Python 3.11+
GUI 框架 PySide6 (Qt 6.5+)
架构模式 分层架构 + 信号/槽通信
数据持久化 JSON (注册表、里程碑) + Markdown (进度日志)
文件监控 Qt QFileSystemWatcher
主题系统 QSS (Qt Style Sheets) 全局暗色主题

目录结构

DevPilot/
├── launcher.py                 # 应用入口
├── requirements.txt            # Python 依赖声明
├── workspace_registry.json     # 工作区注册表 (运行时生成)
│
├── core/                       # 核心应用包
│   ├── __init__.py
│   ├── application.py          # 应用引导与事件循环初始化
│   ├── settings.py             # 全局配置常量与主题样式
│   ├── entities.py             # 领域实体定义
│   ├── workspace_service.py    # 工作区/蓝图 CRUD 服务
│   ├── monitor.py              # 文件系统变更监控
│   ├── shell.py                # 主窗口布局与事件编排
│   │
│   └── views/                  # UI 视图组件
│       ├── __init__.py
│       ├── toolbar.py          # 顶部导航工具栏
│       ├── dashboard.py        # 工作区卡片网格仪表盘
│       ├── detail_page.py      # 工作区全页详情视图
│       ├── cards.py            # 里程碑卡片与进度可视化
│       ├── new_workspace_dialog.py  # 新建工作区对话框
│       └── blueprint_explorer.py    # 蓝图浏览器
│
├── blueprints/                 # 蓝图模板库
│   └── Micro/                  # "Micro" 长周期工作流蓝图
│       ├── AGENTS.md
│       ├── CLAUDE.md
│       ├── feature_list.json
│       ├── claude-progress.md
│       └── init.sh
│
└── workspaces/                 # 默认工作区存放目录

核心模块说明

core/settings.py — 全局配置

集中管理所有路径常量、状态配色方案和全局 QSS 暗色主题样式表。配色采用 Tailwind CSS Slate 色系:

  • 主背景: #0f172a (slate-900)
  • 面板背景: #1e293b (slate-800)
  • 边框: #334155 (slate-700)
  • 主强调色: #3b82f6 (blue-500)
  • 成功色: #10b981 (emerald-500)
  • 警告色: #ef4444 (red-500)

core/entities.py — 领域实体

定义三个核心数据类:

  • Milestone — 单个可交付项(包含排名、领域、阶段状态、验证检查项、证据)
  • Workspace — 活跃工作区实例(提供里程碑加载、进度读取、状态概览方法)
  • Blueprint — 可复用蓝图模板(包含资产文件列表)

core/workspace_service.py — 服务层

WorkspaceService 类封装所有业务操作:

方法 功能
discover_blueprints() 扫描 blueprints/ 目录发现可用蓝图
enumerate_workspaces() 列举所有已注册工作区
provision_workspace() 基于蓝图创建新工作区
adopt_workspace() 导入已存在的目录作为工作区
destroy_workspace() 彻底删除工作区(含文件)
detach_workspace() 仅取消注册(保留文件)
identify_blueprint() 通过文件匹配自动识别蓝图类型

注册表以 JSON 格式存储于 workspace_registry.json,结构为:

[
  {
    "name": "workspace-label",
    "path": "C:/absolute/path/to/workspace",
    "template": "Micro"
  }
]

core/monitor.py — 文件监控

FileMonitor 基于 Qt 的 QFileSystemWatcher 实现:

  • 监控 .json.md.sh 后缀文件
  • 监控工作区根目录变更
  • 文件被编辑器替换时(删除+重建)自动重新注册监控
  • 通过 change_detected 信号通知上层

core/shell.py — 主窗口

AppShell 采用页面式导航架构(QStackedWidget),而非传统的 Tab + Splitter 布局:

  • Page 0 — Dashboard: 工作区卡片网格,3列自适应布局
  • Page 1 — Detail: 单个工作区的全页面详情展示
  • Page 2 — Blueprints: 蓝图浏览器

页面间通过顶部工具栏的导航按钮和面包屑切换。文件变更通过 300ms 防抖定时器合并刷新。

core/views/ — UI 视图组件

组件 职责
AppToolbar 顶部固定工具栏:品牌标识、面包屑导航、操作按钮
DashboardView 主仪表盘,以卡片网格展示所有工作区概览
WorkspaceGridCard 单个工作区的网格卡片(含迷你进度条、统计数据、右键菜单)
DetailPage 全页详情:顶部 Header → 2列里程碑网格 → 底部日志/文件并排
MilestoneCard 里程碑卡片(带状态色标、排名标签、hover 效果)
OverviewStrip 自绘制水平进度条(圆角分段着色 + 图例)
PhaseBadge 药丸形状态标签
NewWorkspaceDialog 新建工作区的表单对话框
BlueprintExplorer 蓝图列表 + 资产内容预览

数据流

用户操作 → AppShell → WorkspaceService → 文件系统 (workspaces/, registry.json)
                          ↓
                    更新 Entities
                          ↓
                    发射 Qt Signal
                          ↓
                    视图通过 Slot 响应刷新
                          ↓
                    FileMonitor 检测外部变更
                          ↓
                    防抖后触发整体刷新

里程碑状态系统

状态 key 显示名 颜色
not_started 未开始 #6b7280 (灰)
in_progress 进行中 #3b82f6 (蓝)
blocked 已阻塞 #ef4444 (红)
passing 已通过 #10b981 (绿)

安装指南

前置要求

  • Python 3.11 或更高版本
  • pip 包管理器

安装步骤

# 进入项目目录
cd DevPilot

# 安装依赖
pip install -r requirements.txt

仅需安装 PySide6 一个依赖包。


使用说明

启动应用

python launcher.py

界面概览

应用采用页面导航架构,通过顶部工具栏切换视图:

  • 仪表盘(首页)— 以卡片网格展示所有工作区概览,单击进入详情
  • 工作区详情 — 全页面展示:Header 区 → 2列里程碑网格 → 底部进度日志与文件浏览器并排
  • 蓝图库 — 浏览可用蓝图模板及其内容

顶部工具栏始终可见,提供"返回"导航、面包屑路径显示、以及新建/导入/蓝图库快捷按钮。

创建新工作区

  1. 点击工具栏 新建工作区 按钮
  2. 输入工作区名称(英文,无空格)
  3. 选择蓝图模板(默认为 "Micro")
  4. 选择存放路径(默认在 workspaces/ 下)
  5. 确认创建

创建后蓝图中的所有文件会被复制到目标目录。

导入已有工作区

  1. 点击 导入 按钮
  2. 选择要导入的目录
  3. 系统会自动识别匹配的蓝图类型
  4. 确认蓝图选择后完成导入

导入操作不会复制或修改目标目录中的任何文件,仅将其注册到管理列表。

查看工作区详情

在仪表盘中点击任意工作区卡片,将进入全页详情视图:

  • 顶部 Header — 工作区名称、蓝图信息、路径、进度概览条
  • 里程碑网格 — 以 2 列卡片网格展示所有功能项及其状态
  • 底部并排区域 — 左侧为进度日志,右侧为文件浏览器(可拖拽调整比例)

点击工具栏"返回"按钮回到仪表盘。

右键菜单操作(Micro 蓝图)

在仪表盘中对 Micro 蓝图类型的工作区卡片右键,可执行以下操作:

操作 说明
复制工作提示 将带有路径和指令的文本复制到剪贴板
启动终端执行 打开新的 CMD 窗口并自动执行 Claude 命令
导入 target.md 选择一个 .md 文件复制到工作区作为需求文档
初始化工作区 基于 target.md 自动生成里程碑和进度文件

初始化工作区

初始化操作会打开一个选项对话框:

  • 版本控制软件 — 选择 Git 或 Perforce (P4),初始化时会将相关命令替换为对应版本控制的语法
  • 人工检验选项 — 勾选后提交规则将变为必须人工确认后才可执行提交

删除工作区

右键工作区卡片 → "删除工作区":

  • 内部工作区(位于 workspaces/ 下):确认后将同时删除文件
  • 外部工作区(导入的):仅从注册表移除,不删除原始文件

实时监控

进入工作区详情页后,系统会自动监控其文件变化:

  • 监控 .json.md.sh 类型文件
  • 外部工具(如 AI Agent)修改文件后,界面会在 300ms 内自动刷新
  • 状态栏会显示当前监控状态

蓝图模板系统

Micro 蓝图

专为长周期 AI 辅助编程工作流设计,包含以下文件:

文件 用途
AGENTS.md 编程代理的工作规范和流程指南
CLAUDE.md Claude 专用的工作指南
feature_list.json 里程碑定义(包含优先级、验证步骤、状态追踪)
claude-progress.md 会话级别的进度日志模板
init.sh 项目初始化脚本

自定义蓝图

blueprints/ 目录下创建新文件夹即可添加自定义蓝图:

blueprints/
└── MyTemplate/
    ├── any-file.md
    ├── config.json
    └── setup.sh

蓝图目录中的所有文件会在创建工作区时被完整复制。


feature_list.json 格式

{
  "project": "项目名称",
  "version": "1.0",
  "features": [
    {
      "id": "F001",
      "priority": 1,
      "area": "功能领域",
      "title": "功能标题",
      "user_visible_behavior": "用户可观察到的行为描述",
      "status": "not_started",
      "verification": [
        "验证步骤 1",
        "验证步骤 2"
      ],
      "evidence": [],
      "notes": ""
    }
  ]
}

status 字段可选值: not_started | in_progress | blocked | passing


常见问题

Q: 应用无法启动? 确认已安装 Python 3.11+ 和 PySide6:

python --version
pip show PySide6

Q: 工作区列表为空? 确认 blueprints/ 目录下存在至少一个蓝图模板,且 workspace_registry.json 文件格式正确。

Q: 文件修改后界面没有自动刷新? 部分编辑器使用"原子写入"(先写临时文件再重命名),这种情况下 FileMonitor 会自动重新注册监控路径。如果仍然无效,可手动切换工作区选中状态来强制刷新。

Q: 如何在其他机器上迁移? 复制整个 DevPilot/ 目录即可。注意 workspace_registry.json 中存储的是绝对路径,迁移后需要手动修改或重新导入工作区。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors