Neckbeard 发布面向编码智能体的 DevOps 插件
Neckbeard – A DevOps/platform/SRE plugin for your agent
Neckbeard 是一个面向编码智能体的 DevOps/platform/SRE 插件,把应用转成可评审的云基础设施和月度成本估算,支持 AWS、GCP、Azure 与 GitHub Actions 或 GitLab CI,基础设施由内置的经过测试的 OpenTofu 模块目录渲染,规划、渲染和验证均为确定性代码。
颈须帮你处理基础设施,这样你就不用操心了。
一个为你的编码代理准备的插件,能把应用转化为可审查的云基础设施和每月成本估算。支持 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
