跳到正文
Hacker News· bealesh·· 3 天前AI 评分58

Neckbeard 发布面向编码智能体的 DevOps 插件

Neckbeard – A DevOps/platform/SRE plugin for your agent

AI 导读

Neckbeard 是一个面向编码智能体的 DevOps/platform/SRE 插件,把应用转成可评审的云基础设施和月度成本估算,支持 AWS、GCP、Azure 与 GitHub Actions 或 GitLab CI,基础设施由内置的经过测试的 OpenTofu 模块目录渲染,规划、渲染和验证均为确定性代码。

正文 · AI 翻译

neckbeard

颈须帮你处理基础设施,这样你就不用操心了。

一个为你的编码代理准备的插件,能把应用转化为可审查的云基础设施和每月成本估算。支持 AWS、GCP 或 Azure;GitHub Actions 或 GitLab CI;无服务器容器或 Kubernetes——全部由内置的经过测试的 OpenTofu 模块目录渲染生成。代理会读取你的应用并进行解释;规划、渲染和验证都是确定性的代码。代理从不凭空发明基础设施。

灵感来自 ponytail。

安装

Claude Code,作为两个独立的提示:

/plugin marketplace add bealesh/neckbeard
/plugin install neckbeard@neckbeard

然后,在你的应用仓库中:/neckbeard:analyze。你的第一个 /neckbeard: 命令会安装插件所驱动的那个小巧的 neckbeard CLI(一个经过 sha256 验证的发布二进制文件,或者当存在 Go 时使用 go install)——无需其他设置。成本估算和静态验证使用你可能已经拥有的工具(Infracost、OpenTofu、Checkov);/neckbeard:doctor 会告诉你哪些缺失以及每个工具能解锁什么。

Codex、Cursor 或任何支持 SKILL.md 的代理:参见 INSTALL.md。

会发生什么

you:    /neckbeard:analyze
agent:  reads your repo → evidence-backed profile → asks what code can't tell it
you:    answer the questions, pick a cloud and a tier
you:    /neckbeard:estimate
agent:  plans against the catalog → "$77/mo expected — here's the table, and
        here's what Infracost can't price"
you:    /neckbeard:sync
agent:  scaffold → validate → "V0 PASSED; V1/V2 NOT EXERCISED; next step is
        docs/bootstrap.md"
you:    review the files like any PR; follow the runbook per environment

命令

命令 作用
/neckbeard:analyze 将仓库读取为有证据支持的 app-profile.yaml(带有 file:line 的事实、带有置信度的推断、醒目的假设),提出开放性问题,建议 neckbeard.yaml。
/neckbeard:estimate [comparison] 根据模块目录进行规划,并在任何东西存在之前显示每月成本表——每个环境的低/预期/高成本、使用假设以及每个未定价的资源。serverless vs kubernetes 或 solo vs smallteam 会同时运行两者。
/neckbeard:sync 循环:规划 → 估算 → 搭建 → 验证,在所有权契约下进行(你的编辑永远不会被静默覆盖)。以 PASSED / FAILED / NOT EXERCISED 结束。
/neckbeard:doctor [plan|estimate|validate|all] 如果缺失则安装 CLI;报告哪些先决条件已存在以及每个能解锁什么。
/neckbeard:help 快速参考。

为什么存在这个

编码代理擅长应用代码,却不擅长徒手编写基础设施。失败模式总是相同的:看起来合理的 HCL,实则微妙地损坏、默认不安全且无法估算。颈须颠倒了角色:

  • 人类维护黄金路径——版本化的 OpenTofu 模块、流水线模板、GitOps 布局,按云划分,每次变更都在 CI 中测试。
  • 代理负责分析、参数化和解释。它读取你的应用,弄清楚它需要什么,并将其映射到目录输入上——每个声明都有证据支持。
  • 中间的一切都是确定性的。相同的输入,相同的字节:规划器输出一个经过哈希验证的 blueprint.yaml 锁文件,渲染器是它的纯函数,重新生成永远不会静默覆盖你的编辑。

目录无法表达的需求会成为具名发现(“redis 不在工作负载契约范围内”),而不是强行套用到最近的模块上。

其他人不会告诉你的部分:它要花多少钱

同一个参考应用(HTTP 服务 + worker + cron + Postgres),最小规格,所有三个环境,通过 Infracost 获取实时价格:

Cloud Run Container Apps ECS Fargate EKS GKE(区域级) AKS
每月 $77 ~$98* $250 $396 $754 ~$801*

* Infracost 目前还无法为 Container Apps 计算定价——而报告不是让一个低数字撒谎,而是列出每个未定价的资源。这就是本项目的风格:空闲时的基线成本、你可以编辑的明确使用假设、低/预期/高情景,以及一个来源脚注。它还会为你的决策定价:这张表就是为什么颈须会告诉独立开发者“你暂时还不需要 Kubernetes”——有凭有据。

诚实即架构

基础设施工具喜欢暗示超出它们已证明的东西。颈须以三种结论报告,而第三种才是重点:

V0   PASSED         tofu validate [prd]
V0   PASSED         checkov policy [prd]        ← every skip carries a written reason
V0   PASSED         kubeconform (clusters/)
V1   NOT EXERCISED  authenticated plan          requires cloud credentials
V2   NOT EXERCISED  deployment verification     requires cloud credentials
  • 静态验证从不声称可部署性。V0/V1/V2 是不同层级,各自报告为已演练或未演练。
  • 生成的 .checkov.yaml 中每个 Checkov 跳过都说明了原因。没有原因的跳过是对你安全态势的谎言。
  • 当实时运行失败时,失败会成为公开的发现,然后编入目录修复。我们第一次真实部署产生了十个;其中五个当天就变成了修复。
  • 降级路径会说明原因(Azure + GitLab 合并请求计划无法联合——流水线会说明这一点,而不是神秘地失败)。

你将获得

  • 三个隔离环境(dev/stg/prd),具有独立状态,按层级预设基于明确维度设定规模:流量、可用性、RPO/RTO、运营容量。每个值都可见,并可在目录的已测试范围内覆盖;超出范围的值会被标记,而非认可。
  • 每个云两个运行时:无服务器容器(Cloud Run / ECS Fargate / Container Apps)或 Kubernetes(EKS / GKE / AKS)配合 Flux 清单。
  • 面向 GitHub Actions 或 GitLab CI 的 CI/CD 来自一个模型:测试 → 构建 → 扫描(trivy 阻止 HIGH/CRITICAL)→ 推送;基础设施在 PR 上以只读身份规划,在 main 上以写入身份应用,生产由环境保护门控。零静态云密钥——处处使用 OIDC 联合,并由一个测试强制执行:如果渲染的流水线曾提及 AWS_SECRET_ACCESS_KEY,该测试就会失败。
  • 安全态势作为明确控制:默认私有网络、持有操作员填写的名称的密钥管理器(值从不接触 neckbeard、其状态或你的 git 历史)、限定范围的 CI 身份、在层级启用时使用托管 WAF 规则。
  • 一份引导运行手册(docs/bootstrap.md),引导拥有提升权限的人员按环境完成状态后端 → OIDC 信任 → CI 身份。validate 之后的一切都刻意保持人工介入。

支持的工作负载是一个镜像、最多 10 个 HTTP/worker/cron 进程、Postgres、对象存储、密钥,部署到现有账户、项目或订阅中。其他任何情况都是明确的 unsupported 发现。

状态:pre-alpha,并且对此精确说明

已证明的内容及方式:

声明 证据
在所有 12 条云 × VCS × 运行时路径上 analyze → plan → estimate → scaffold → validate 静态矩阵在每个 PR 上于 CI 中运行;三个互不相关的夹具应用端到端接入
实时部署 → 更新 → 回滚,无服务器 在 AWS/GitHub 和 Azure/GitHub 上通过,并带有真实数据库检查(证据)
在 GCP、GitLab 通道、Kubernetes 上的实时部署、晋升、恢复演练 尚未。已实现,未演练

该插件目前的产品是接入这一半:可审查的基础设施、流水线、成本估算,以及一份可交给人工的引导运行手册。部署生命周期(neckbeard release …,记录在技能中)是实验性的,并在启动计划中逐门跟踪。不要将静态验证视为部署证明。着陆区(组织结构、护栏——DESIGN.md 中的路径 F)已设计,未构建。

各部分如何组合

            you / your agent                      deterministic core
        ┌──────────────────────┐            ┌───────────────────────────┐
repo ──▶│ analyze: facts w/    │  profile   │ plan: catalog @ pinned    │
        │ evidence, questions, ├───────────▶│ versions → blueprint.yaml │
        │ judgment, answers    │  config    │ (hash-verified lockfile)  │
        └──────────────────────┘            └─────────┬─────────────────┘
                                       ┌──────────────┼──────────────┐
                                       ▼              ▼              ▼
                                   estimate       scaffold        validate
                                   Infracost,     ownership       V0 static,
                                   scenarios,     contract:       V1 plan,
                                   unpriced       never silently  V2 deploy —
                                   named          overwrite       each reported

仓库根目录就是插件:skills/neckbeard/SKILL.md 是代理的操作手册,commands/ 是斜杠命令,cmd/ 下的 Go CLI 以及 catalog/ 下的模块目录是确定性的一半。该 CLI 也可以在没有代理的情况下驱动一切:

go install github.com/bealesh/neckbeard/cmd/neckbeard@latest
neckbeard analyze && $EDITOR app-profile.yaml neckbeard.yaml
neckbeard plan && neckbeard estimate && neckbeard scaffold && neckbeard validate

深入解析:DESIGN.md(完整设计,自第一天起保持诚实)· docs/findings/(现实教给我们的东西)· CONTRIBUTING.md。

许可证

Apache-2.0 — 见 LICENSE。

来源:Hacker News · github.com