商业产业 Hacker News AI 2026-10-11T03:42 正文 ok 648 words

Show HN:GSD Task Manager——为 AI Agent 提供任务列表的 MCP 服务器

英文标题:🔶 Show HN: GSD Task Manager – an MCP server that gives your AI agent a task list

GSD Task Manager 是一款以隐私优先为理念的艾森豪威尔矩阵任务管理工具,默认将任务保存在浏览器 IndexedDB 中,并支持离线 PWA 使用。项目提供可选的 PocketBase 多设备同步,以及一个可单独安装的 MCP server,内含 19 个任务、分析和诊断工具,并支持经过校验及可 dry-run 的写入操作。对开发者而言,该项目采用 Next.js、React、TypeScript、Dexie、PocketBase、Vitest 和 Playwright 等技术栈,并提供本地部署、测试、构建与安全边界文档。
打开原文相关 6 · 机会 2
media5.8 KB media1.2 KB media1.3 KB media1.2 KB media32.8 KB media56.4 KB

中文

一个隐私优先的艾森豪威尔矩阵,用于决定应立即执行、安排、委派还是取消哪些事项。

在线应用: gsd.vinny.dev 当前版本: 13.9.2 当前产品: v11 单矩阵 shell、离线优先的本地存储、可选的 PocketBase 同步,以及 GSD MCP server。

npm 版本 npm 下载量 许可证:MIT

GSD Task Manager 艾森豪威尔矩阵

  • 支持拖放移动的响应式四象限矩阵。
  • Quick Capture、完整任务编辑、搜索、键盘导航,以及可选的内置 Smart Views。
  • 截止日期、标签、依赖项选择和循环依赖防护。
  • 归档、仪表盘/回顾分析、同步历史、设置和引导流程。
  • 本地 IndexedDB 持久化、JSON 导入/导出、离线 PWA 支持,以及由用户控制的更新提示。
  • 可选的多设备 PocketBase 同步,支持 Google、Apple 或 GitHub OAuth,以及实时 server-sent events。
  • 可单独安装的 MCP server,提供 19 个任务、分析和诊断工具,包括经过校验且支持 dry-run 的写入操作。
  • 浅色和深色 Inkwell “GSD Editorial”主题,并以 WCAG AA 作为无障碍访问的最低标准。

已弃用的 v7/v8 界面功能,例如选择模式批量操作、Quick Settings 面板和 Smart View 固定快捷方式,均不属于 v11 shell。

仅本地模式是默认设置。任务存储在浏览器的 IndexedDB 中,核心产品不需要后端。清除浏览器数据可能会删除本地任务,因此请定期导出备份。

云同步明确为可选功能。启用后,任务数据将发送至已配置的 PocketBase 服务器;托管配置使用 https://api.vinny.io。自托管说明和静态加密 hooks 位于 docker/ 下。有关准确的信任模型和令牌存储方式,请参阅 SECURITY.md。

艾森豪威尔矩阵按紧急性和重要性对工作进行分类:

  • 立即执行(Do First) —— 紧急且重要。
  • 安排(Schedule) —— 重要但不紧急。
  • 委派(Delegate) —— 紧急但不重要。
  • 取消(Eliminate) —— 既不紧急也不重要。

使用 Quick Capture 输入框,或按 n 开始创建任务。使用 Shift+N 打开完整编辑器,/ 用于搜索,? 用于帮助,Option+1 至 Option+4(非 Mac 键盘上使用 Alt)用于聚焦某个象限。应用内帮助抽屉是快捷键的权威清单。

要求:Bun 1.3.14、Node.js 22.22.2+(或 24.15+、26+),以及最新版浏览器。bun run 会在 Node 上执行 package scripts,因此测试、lint 和构建均会在已安装的 Node 环境中运行。

打开 http://localhost:3000。全新的浏览器配置文件会从 /about 开始;使用 Open App 行动按钮进入矩阵。PocketBase 并非本地任务 CRUD 所必需。

bun run test
bun run test -- --coverage
bun typecheck
bun lint
bun run quality:shape
bun run license:check
bun audit --audit-level=high
bun run build
bun run test:e2e

请使用 bun run test,而不是 bun test;后者会调用 Bun 的内置运行器,而非 Vitest。Playwright 覆盖 Chromium、Firefox 和 WebKit。可选的、需要认证的 PocketBase 测试 harness 可通过以下命令运行:

bun run test:system:pocketbase
  • Next.js 16 App Router 静态导出;应用为客户端应用。
  • React 19、TypeScript、Tailwind CSS 和 Violet Frost Inkwell tokens。
  • 使用 Dexie/IndexedDB 存储本地数据,使用 PocketBase 提供可选云同步。
  • 使用 Vitest 覆盖单元/集成测试,使用 Playwright 覆盖浏览器测试。
  • Bun workspaces,包括 packages/mcp-server/。

请从 ARCHITECTURE.md、docs/security-trust-boundaries.md 和 docs/adr/ 中的架构决策开始阅读。

  • bun run build 会在 out/ 中创建静态导出。
  • bun run deploy 会运行生产部署脚本。生产环境(gsd.vinny.dev)是唯一的部署目标;开发环境部署已于 2026-09-11 停用。
  • docker/Dockerfile 用于构建自托管的 Caddy 和 PocketBase 镜像。
  • cloudfront/response-headers-policy.json 及相关脚本用于管理生产环境响应头。

上传构建产物并不能证明 CDN 或正在运行的容器确实在提供该产物。请单独验证已部署的 URL。

发布文档检查清单

在更改发布版本或宣布某项功能前:

  1. 对比 README 中的版本与 package.json。
  2. 验证当前 shell 中的每一项功能声明,而不仅是保留的数据模型或已归档的 ADR。
  3. 运行上述标准检查以及一次生产静态构建。
  4. 当发布版本改变 GitHub release notes、SECURITY.md 和信任边界图中的声明时,更新这些内容。
  5. 将源代码、测试、构建产物、部署和线上运行时视为相互独立的证据状态。

贡献与安全

进行修改前,请阅读 CONTRIBUTING.md。请通过 SECURITY.md 中的私密流程报告漏洞,而不要提交公开 issue。

MIT

English / 原文

A privacy-first Eisenhower matrix for deciding what to do, schedule, delegate, or eliminate.

Live app: gsd.vinny.dev Current version: 13.9.2 Current product: the v11 single-matrix shell, offline-first local storage, optional PocketBase sync, and the GSD MCP server.

npm version npm downloads License: MIT

GSD Task Manager Eisenhower matrix

  • A responsive four-quadrant matrix with drag-and-drop movement.
  • Quick Capture, full task editing, search, keyboard navigation, and optional built-in Smart Views.
  • Due dates, tags, dependency selection, and circular-dependency prevention.
  • Archive, dashboard/review analytics, sync history, settings, and onboarding.
  • Local IndexedDB persistence, JSON import/export, offline PWA support, and user-controlled update prompts.
  • Optional multi-device PocketBase sync with Google, Apple, or GitHub OAuth and realtime server-sent events.
  • A separately installed MCP server with 19 task, analytics, and diagnostic tools, including validated and dry-run-aware writes.
  • Light and dark Inkwell "GSD Editorial" themes with WCAG AA as the accessibility floor.

Retired v7/v8 surfaces such as selection-mode batch operations, the Quick Settings panel, and smart-view pinning shortcuts are not part of the v11 shell.

Local-only mode is the default. Tasks are stored in the browser's IndexedDB and the core product does not require a backend. Clearing browser data can erase local tasks, so export backups regularly.

Cloud sync is explicitly optional. When enabled, task data is sent to the configured PocketBase server; the hosted configuration uses https://api.vinny.io. Self-hosting instructions and the encryption-at-rest hooks live under docker/. See SECURITY.md for the precise trust and token-storage posture.

The Eisenhower matrix classifies work by urgency and importance:

  • Do First — urgent and important.
  • Schedule — important, not urgent.
  • Delegate — urgent, not important.
  • Eliminate — neither urgent nor important.

Use the Quick Capture field or press n to start a task. Use Shift+N for the full composer, / for search, ? for help, and Option+1 through Option+4 (Alt on non-Mac keyboards) to focus a quadrant. The in-app help drawer is the canonical shortcut ledger.

Requirements: Bun 1.3.14, Node.js 22.22.2+ (or 24.15+ or 26+), and a current browser. bun run executes package scripts on Node, so tests, lint, and builds run on your installed Node.

Open http://localhost:3000. A fresh browser profile starts at /about; use the Open App call to action to enter the matrix. PocketBase is not required for local task CRUD.

bun run test
bun run test -- --coverage
bun typecheck
bun lint
bun run quality:shape
bun run license:check
bun audit --audit-level=high
bun run build
bun run test:e2e

Use bun run test, not bun test; the latter invokes Bun's built-in runner instead of Vitest. Playwright covers Chromium, Firefox, and WebKit. The optional authenticated PocketBase harness runs with:

bun run test:system:pocketbase
  • Next.js 16 App Router static export; the application is client-side.
  • React 19, TypeScript, Tailwind CSS, and the Violet Frost Inkwell tokens.
  • Dexie/IndexedDB for local data and PocketBase for optional cloud sync.
  • Vitest for unit/integration coverage and Playwright for browser coverage.
  • Bun workspaces, including packages/mcp-server/.

Start with ARCHITECTURE.md, docs/security-trust-boundaries.md, and the architecture decisions in docs/adr/.

  • bun run build creates the static export in out/.
  • bun run deploy runs the production deployment script. Production (gsd.vinny.dev) is the only deploy target; the development deploy was retired on 2026-09-11.
  • docker/Dockerfile builds the self-hosted Caddy and PocketBase image.
  • cloudfront/response-headers-policy.json and the related scripts manage production response headers.

Uploading an artifact is not proof that the CDN or a running container serves it. Verify the deployed URL separately.

Release documentation checklist

Before changing the release version or announcing a feature:

  1. Compare the README version with package.json.
  2. Verify every feature claim in the current shell, not only in retained data models or archived ADRs.
  3. Run the canonical checks above and a production static build.
  4. Update the GitHub release notes, SECURITY.md, and the trust-boundary map when the release changes their claims.
  5. Treat source, tests, build artifacts, deployment, and live runtime as separate evidence states.

Contributing and security

Read CONTRIBUTING.md before making changes. Report vulnerabilities through the private process in SECURITY.md, not a public issue.

MIT