工具栈和系统边界

目的

定义工程操作系统中每类工具负责什么。通用原则是:成熟工具解决通用能力,自研精力放在核心产品、业务逻辑和团队闭环上。后续如果接入 Agent,再补 Agent 协作控制面。

推荐工具栈

系统 首选工具 负责什么 说明
源码管理 GitHub 仓库、PR、分支保护、CODEOWNERS 代码事实来源。
工作跟踪 Linear 产品工作、bug、技术债、cycle、project Jira 适合更重的企业流程。
文档 Notion 或 Lark Docs/Wiki 手册、spec、会议纪要、wiki 代码邻近文档仍应放 repo。
沟通 Slack 或 Lark Messenger 日常协作、事故群、发布通知 如果公司采用 Lark 套件,可用 Lark 替代 Slack/Notion 的协作层。
轻量流程/表单 Lark Base / Approval intake 表单、发布 checklist、事故 action 表 适合内部流程,不替代 GitHub/CI 事实。
CI/CD GitHub Actions lint、typecheck、test、build、migration、smoke 可替换为 GitLab CI、Buildkite 等。
Monorepo pnpm + Turbo 构建图、dev task、test task 可替换为 npm/yarn/Nx/Bazel 等。
本地环境 Docker Compose Postgres、API、Web、本地集成 也可使用 Dev Container 或本地脚本。
后续 Runtime daemon Go service 自动化 claim/run loop、本地执行、runtime pairing 后续 Agent 阶段再建设。语言不限,关键是 claim、heartbeat、隔离和回传。
数据库 Postgres + Drizzle 平台事实和 migration ORM 可替换,migration 必须可审查。
可观测性 Sentry + Grafana/Loki/Prometheus/Tempo 错误、指标、日志、trace Datadog 是付费一体化替代;Lark 只适合接收告警。
密钥 1Password 起步,Vault 进阶 开发者密钥、服务密钥、审计 小团队先用 1Password;复杂后上 Vault。
Feature flag LaunchDarkly 或 Unleash 灰度发布、kill switch 风险功能必须有快速关闭手段。
安全扫描 GitHub Advanced Security / Dependabot / Semgrep 依赖和代码扫描 PR 和定时任务都应跑。

参考实现映射

参考资产 操作系统角色
.github/workflows/ci.yml CI 质量门禁
docker-compose.yml 本地和 smoke 环境
repo-level check command,例如 pnpm check 合并前统一检查命令,通常聚合 format/lint/typecheck/unit test/build
turbo.json Monorepo task graph
packages/db DB migration owner
services/runtime-daemon 后续自动化 Runtime 执行层
SCM smoke/witness scripts,例如 scripts/github-*smoke* 验证 GitHub/GitLab 等外部集成的最小真实路径
Provider smoke,例如 smoke:codex 后续验证真实 agent/provider 集成能完成一次受控 run

工具负责人规则

  1. Linear/Jira 负责计划中的工作和状态。
  2. GitHub/GitLab 负责代码、PR 和 CI 事实。
  3. Notion/Lark Wiki 负责手册、会议纪要、协作型文档。
  4. Repo docs 负责架构、模块契约、测试、runbook、技术规范。
  5. Slack/Lark 负责时效性沟通,不负责永久决策。
  6. Postgres 负责平台事实。
  7. 可观测性工具负责运行时事实。
  8. Secret manager 负责凭证;.env.local 只是本地投影。

三角色工具责任

角色 负责工具边界
产品负责人 工作跟踪、产品文档、验收记录、用户反馈入口
技术负责人 Git、PR、代码规范、架构文档、质量门禁
平台 / 资深工程师 CI/CD、本地环境、监控、日志、密钥、发布和排障工具

工具选型可以替换,但这三类责任不能混在一起。比如 Lark 可以通知和审批,但不能替代 PR、CI、监控或密钥系统的事实来源。

集成契约

流程 集成方式
Linear issue -> GitHub branch 分支名和 PR 标题包含 issue id
GitHub PR -> Linear 状态 GitHub integration 或自动化更新状态
CI 结果 -> PR 门禁 保护分支要求 required checks
发布 -> Slack/Lark 发布 bot 推送 owner、version、rollback
事故 -> Slack/Lark + Linear 事故群协作,action items 进入 Linear
错误峰值 -> issue Sentry/Grafana 告警创建或关联事故
密钥请求 -> audit 1Password/Vault 记录访问或 service account 使用

如果团队标准化使用 Lark/飞书,可以这样替换协作层:

流程 Lark 映射
发布通知 Lark 群机器人发送发布卡片
事故房间 Lark 事故群 + 置顶事故文档
Intake 表单 Lark Base 表单或 Approval 表单
周计划纪要 Lark Docs/Wiki
轻量审批 Lark Approval 做内部 sign-off,技术门禁仍在 GitHub/CI
告警路由 Grafana/Sentry webhook -> Lark bot

反模式

下一步阅读

读完或填完这份文档后,通常继续看: