Communitygithub.com

programmablehq/PROGRAMMABLE

面向以太坊 Uniswap v4 的开放启动模型基础设施。

PROGRAMMABLE 是什么?

此技能通过公共 V3 机器合约将精确的项目修订版转化为确定性的启动请求,用于在以太坊上构建基于 Uniswap v4 的链上项目。它要求开发者遵循严格的合约流程:首先从 Programmable 市场获取最新的公共合约配置,并验证 CLI 工具的完整性和一致性;然后,通过精确编译 Solidity 源码,收集所有必要的项目数据(如字节码、ABI、CREATE2 目标、钩子权限等),并确保每个声明都有对应的证据支持。该技能支持在 Claude Code、Cursor 等环境中使用,其状态机驱动的 CLI 按固定顺序执行 `pack`、`validate`、`submit`、`wallet` 等命令,并强调服务器端的静态源码准入和最终 Router 模拟是权威的启动判定依据。需要注意的是,该功能并非通用钩子兼容性方案,且描述中明确禁止手写摘要、绕过检查或进行安全保证宣传。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add programmablehq/PROGRAMMABLE

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Programmable V4 钩子构建器

使用公共 V3 机器合约将精确的项目修订版转化为确定性的启动请求。不要使用已废弃的 Registry 或 GitHub 提交入口。不要推断安装、验证、提交、钱包广播、最终性、索引或源码验证处于相同状态。

建立当前公共合约

在更改项目或索取密钥之前:

  1. 获取 https://programmable.market/.well-known/programmable.json。
  2. 按照 customLaunchApi.agentIntegration 指向的广告修复目录、打包配置模式、指南、OpenAPI 文档、能力路由和不可变 CLI 发布版进行操作。
  3. 在安装前,使用其发布的校验和边车文件验证 CLI tarball。
  4. 执行未认证的 GET https://api.programmable.market/v3/capabilities。
  5. 如果配置文件 ID、修订版、版本、生产授权、路由、范围、认证边界或钱包交接基础与已安装的 CLI 合约不同,则停止。切勿降级或绕过漂移进行临时修复。

已认证的 CLI 流量固定指向原始地址 https://api.programmable.market。没有原始地址覆盖选项。测试使用注入的传输层,并且永远不要重定向生产 API 密钥。

在编辑或提交项目之前,请阅读 references/public-v3-contract.md。

构建精确项目

检查仓库的指令并保留不相关的工作。固定一个包含精确提交字节的公共源代码修订版。构建真实的图结构,而不是将项目适配到示例架构中。

收集并绑定:

  • 项目名称、代币符号、描述、精确的源代码绑定图像以及排序后的规范公共链接;
  • 精确的 Solidity Standard JSON 源代码内容和匹配的编译器输出;
  • 完整的 solc 版本、优化器和 EVM 设置、库、ABI、创建/运行时代码、元数据以及构造函数或初始化器参数;
  • 启动图中每个直接的 CREATE2 目标和依赖边;
  • 真实的 v4 钩子权限掩码以及每个已启用心回调的具体可达实现;
  • 资金模式、初始流动性模型、托管、提款路径、锁定证据、LP 费用、项目费用以及所需的 Programmable 10 bps 会计披露;
  • 请求中声明的每个检查的证据。

不要手动编写派生的摘要、地址、定位器、CREATE2 预测、图提交或验证哈希。CLI 从精确文件中派生这些内容。不要在没有基础证据的情况下声称检查已通过。

使用确定性状态机

唯一的命令顺序是:

pack
validate --remote
submit
status --watch --until authorized
wallet
status --watch --until finalized

wallet 不是 CLI 命令。它是连接的控制者检查并单独签署精确网站交接的暂停点。某些 EIP-3009 启动首先在 awaiting_funding_authorization 处暂停;仅在网站中完成该精确的 typed data 签名,再次轮询,然后在 authorized 状态为 Router 交易单独暂停。

CLI 必须:

  • 仅从 PROGRAMMABLE_API_KEY 或支持的操作系统密钥存储中读取 API 密钥;
  • 在重试之间保持字节相同的请求字节和相同的持久 Idempotency-Key;
  • 在 429 和 503 上遵循 Retry-After;
  • 在终端状态停止;
  • 从不请求私钥、签名或广播。

服务器端精确源码静态准入和最终的 Router 模拟对启动准入具有权威性。本地打包器或模型检查是准备工作,而非最终决策。切勿将任一层描述为审计或安全性、流动性、可交易性、蜜罐抵抗力或后续费用行为的保证。

精确处理结果

  • pending_review:继续单资源状态轮询。
  • action_required:读取 typed 发现和修复;更改精确源码或证据,然后创建新的包。不要绕过该发现。
  • awaiting_funding_authorization:暂停以进行精确的网站资金签名交接。
  • authorized:暂停以供控制者审查链、发送方、Router、值、选择器、calldata 和元数据。
  • submitted:轮询同一资源;仅有一个交易哈希并不代表最终性。
  • finalized:分别报告链上启动以及索引和精确源码验证的结果。
  • failed 或 cancelled:停止并报告持久的错误代码和请求 ID,而不暴露 API 密钥。

切勿声称具有通用钩子兼容性。公共配置文件在结构上支持项目拥有的多合约图以及全部十四个权限位,但精确构建仍可能不受支持、需要证据、模拟失败或需要项目更改。正常的池初始化不会添加初始流动性;自定义会计或启动种子流动性必须由项目实现并披露。

验证与交接

运行聚焦的项目测试、确定性打包、本地验证、远程预检以及 git diff --check。对于无广播的排练,在 submit 之前停止。对于真实提交,仅在特定资源返回请求 ID、当前持久状态和安全钱包交接 URL 时才将其提供给用户。

不要从本地检查、CI、准备好的响应或 HTTP 200 调用工作。在最终交接中,将源代码修订版、CLI 制品、服务器准入、钱包操作、链上最终性、发现/索引以及精确源码提供者状态分开处理。

维护者专属资源

references/eval-corpus.md 是技能维护者的前向触发和对抗性评估集;它不是运行时指令。以下文件属于已废弃的 GitHub 入口,不得为 V3 启动读取或调用:scripts/application-input-contract.mjs、scripts/autonomous-admission-contract.mjs、scripts/cli-runtime.mjs、scripts/github-exact-object-resolver.mjs、scripts/github-public-source-core.mjs、scripts/official-launchpad-core.mjs、scripts/package-dependency-contract.mjs、scripts/public-claims-core.mjs、scripts/review-target-contract.mjs、scripts/submission-core.mjs。

相关技能