沉思
"Pondering my tasks..."
通过MCP服务器集成、web可视化和基于代理的任务处理进行任务依赖图管理。
概述
Ponder是一个轻量级的、基于SQLite的任务管理系统,专为AI代理和开发人员设计。它管理具有依赖关系的任务,跟踪工作进度,并与MCP(模型上下文协议)服务器无缝集成。
截图
特性
- 任务管理:创建、更新和跟踪具有优先级、描述和规范的任务
- 功能组织:将任务分组到功能/项目中,以便更好地组织
- 依赖图:定义任务依赖关系,以确保正确的执行顺序
- 状态跟踪:跟踪任务状态(待定、正在进行、已完成、已阻止)
- MCP集成:用于基于代理的任务处理的完整MCP服务器实现
- 自动快照:每次数据库更改后自动JSONL导出
- Web服务器:内置可视化服务器(端口8000)
- 纯Go:零CGO依赖modernc.org/sqlite
安装
直接从存储库
直接从GitHub安装最新版本:
go install github.com/nick-dorsch/ponder/cmd/ponder@v0.1.0来源
# Download dependencies
go mod download
# Build binary
go build -o ponder ./cmd/ponder
# Install locally
go install ./cmd/ponder
# Release build (stripped)
go build -ldflags "-s -w" -o ponder-linux-amd64 ./cmd/ponder快速开始
# Initialize ponder in your project
ponder init
# Start the MCP server (for agent integration)
ponder mcp设置
MCP服务器配置
将Ponder MCP服务器添加到您的 .opencode/opencode.jsonc:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ponder": {
"type": "local",
"command": [
"ponder",
"mcp"
],
"enabled": true
}
}
}MCP服务器提供用于管理功能、任务和依赖关系的工具。该命令应该是PATH中的二进制文件(例如,通过安装 go install)或绝对路径。
在PATH中使用二进制文件
如果运行后Go二进制文件不在您的PATH中 go install,将此添加到您的shell配置文件中:
# Add to ~/.bashrc, ~/.zshrc, or ~/.config/fish/config.fish
export PATH="$PATH:$(go env GOPATH)/bin"然后重新加载shell:
source ~/.bashrc # or ~/.zshrc轨道器代理
Orbitor代理是一个专门的规划代理,可以创建高质量的特征规范和任务图。创建 .opencode/agents/Orbitor.md:
---
description: Manages features, tasks and dependencies to the Ponder graph using the Ponder MCP server
mode: primary
model: opencode/gemini-3-flash
color: "#76db7d"
temperature: 0.1
tools:
write: false
edit: false
bash: true
ponder_*: true
---
You are the Ponder Orbitor. Your sole responsibility is to produce high-quality feature
specifications and task graphs using the Ponder MCP tools.
INTERACTION CONTRACT (STRICT):
- You MUST begin every feature request by interviewing the user.
- Do NOT create features or tasks until requirements are nailed down.
- Ask targeted, technical clarification questions until there is no ambiguity.
REQUIREMENTS GATHERING PHASE:
Before proposing any plan, confirm:
1) Feature goal and non-goals
2) Expected user-visible behavior
3) Technical constraints (language, framework, patterns)
4) Definition of done
5) Testing expectations and exclusions
6) Any sequencing or dependency assumptions
Only proceed once the user explicitly confirms or answers all blocking questions.
PLANNING PHASE (after clarification):
Produce a concise plan proposal containing:
- Feature name(s)
- Task list (each with: goal, scope, acceptance criteria)
- Explicit dependency graph (model ALL dependencies)
- Identification of any discovery or spike tasks if uncertainty remains
TASK QUALITY BAR:
- Tasks represent up to one full coding session (≤ 1 day of work).
- Tasks must be narrowly scoped with a single primary outcome.
- Each task must be independently verifiable.
TESTING RULES (MANDATORY):
- All code tasks MUST require tests unless they are explicitly documentation-only or purely aesthetic.
- Set `tests_required=true` by default.
- Set `tests_required=false` ONLY for doc or aesthetic tasks, and state why.
DEPENDENCY MODELING (STRICT):
- Model dependencies exhaustively.
- If task B assumes task A's output, A MUST be a dependency.
- Avoid implicit sequencing.Orbitor将在创建任何功能或任务之前采访您以收集需求。它不编写代码,只生成规范和任务图。
项目结构
.ponder/
├── ponder.db # SQLite database
├── snapshot.jsonl # Auto-exported tasks
└── .gitignore # Ignores database file用法
命令
# Initialize Ponder in a directory (creates .ponder/ with database)
ponder init [directory]
# Start the Work TUI (web UI enabled by default)
ponder
# Configure work defaults in .ponder/config.json
# {
# "model": "opencode/gemini-3-flash",
# "max_concurrency": 4,
# "available_models": ["opencode/gemini-3-flash", "openai/gpt-5.3-codex"]
# }
# Work TUI flags (on root command)
ponder -max_concurrency 5 # Maximum worker cap (default: config.json or 4)
ponder -model # Model for workers (default: config.json or opencode/gemini-3-flash)
ponder -interval 10s # Polling interval when idle (default: 5s, 0 to exit)
ponder -web=false # Disable web UI (default: enabled)
ponder -port 8080 # Web server port (default: 8000)
# Global flags (available for all commands)
ponder --db-path /path/to/custom.db --snapshot-path /path/to/snapshot.jsonl --verboseMCP工具
Ponder公开了以下用于代理集成的MCP工具:
特性
create_feature-创建新功能update_feature-更新现有功能delete_feature-删除功能(级联到任务)list_features-列出所有功能get_feature-按ID获取单个功能
任务
create_task-创建新任务update_task-更新现有任务update_task_status-更新任务状态(待定/正在进行/已完成/已阻止)delete_task-删除任务list_tasks-列出带有可选筛选器的任务get_available_tasks-准备好要处理的任务
依赖项
create_dependency-在任务之间创建依赖关系delete_dependency-删除依赖项get_task_dependencies-获取任务所依赖的所有任务
图
get_graph_json-以JSON格式获取完整的任务图
任务流示例
# Orbitor creates a feature (staged)
create_feature name="auth-system" description="User authentication" specification="Implement JWT-based auth"
# Orbitor creates tasks (staged)
create_task feature_name="auth-system" name="Create login endpoint" description="Implement POST /login endpoint" specification="Accept email/password, return JWT token" priority=8
create_task feature_name="auth-system" name="Add password hashing" description="Hash passwords before storage" specification="Use bcrypt with cost factor 12" priority=9
# Orbitor sets up dependencies
create_dependency feature_name="auth-system" task_name="Create login endpoint" depends_on_task_name="Add password hashing"
# Orbitor reviews staged changes
list_staged_changes
# Orbitor commits all staged changes to the graph
commit_staged_changes
# Worker agent gets available tasks (those with all dependencies completed)
get_available_tasks
# Worker agent marks task complete
complete_task feature_name="auth-system" name="Add password hashing" completion_summary="Implemented bcrypt hashing with cost factor 12"发展
测试
# Run all tests
go test ./...
# Run specific test
go test -run TestTaskCRUD ./internal/db/
# Run with coverage
go test -cover ./...
# Run with race detector
go test -race ./...代码的风格
# Format all code
go fmt ./...
# Or use goimports
goimports -w .
# Lint
golangci-lint run建筑
- SQLite:纯Go SQLite,支持WAL模式并发访问
- MCP服务器:用于代理集成的基于stdio的MCP服务器
- 模型:使用Pydantic样式模式清理数据模型
- 快照:JSONL格式,便于版本控制和可移植性
- 依赖项:DAG验证以防止循环依赖
需求
- 转到1.25+
- SQLite(嵌入式)
依赖项
核心:
modernc.org/sqlite-纯Go SQLitegithub.com/google/uuid-UUID生成github.com/mark3labs/mcp-go-MCP-SDK
许可证
麻省理工学院
______________________________________________________________________
Built with pure Go and a healthy dose of orb pondering 🧙♂️
