mcpField
S
SuperSkill Registry

SuperSkill Registry

远程服务
superskill.shAI 与智能体015 周前更新

关于 SuperSkill Registry

SuperSkill Registry 是面向 AI Agent 能力的目录与安装系统,提供网页界面和命令行工具。它明确展示发布版本、信任证据、撤销和用户同意门槛,供管理 Agent 资源的人员使用。

主要功能

  1. 01搜索和筛选 Agent 资源
  2. 02查看信任、文件与版本
  3. 03为 Codex 和 Claude Code 安装能力
  4. 04通过命令行验证和评估
  5. 05工作区审批与设置门槛

适用场景

  1. 01为 Agent 任务查找可复用能力
  2. 02安装前审查版本与信任详情
  3. 03将能力安装到 Codex 或 Claude Code
  4. 04验证或评估 harness 包

MCP 相关

目录流程可通过 MCP 和 HTTP 使用,并提供包括 `/mcp` 在内的 Agent 发现端点。其命令行工具也可生成 MCP 配置。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://superskill.sh/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

12
参数类型必填说明
querystring是用于搜索公开 SuperSkill 资源的自然语言或关键词查询。

详细介绍

SuperSkill

superskill.sh 是面向用户的统一产品,用于查找和安装经过审核的 AI Agent 能力。它保留现有注册信息和工作区,为 Codex 和 Claude Code 提供统一安装链接,并明确列出具体版本、信任、撤销和用户同意关卡。

旧版 OnlyHarness 界面和主机仅用于兼容:面向用户的路由会重定向到 SuperSkill,而旧版 API/MCP 坐标、npm/软件包名称、数据库标识符和不可变归档 URL 仍可供已安装的客户端使用,并维持数据连续性。内部软件包名称仍使用 @harnesshub/*;发布的兼容 CLI 软件包仍为 onlyharness。

什么是原生 harness 软件包?

原生 harness 软件包是更广泛的 OnlyHarness 资源目录中采用严格格式、经过验证的软件包:

  • harness.yaml 清单,包含运行时、工具、权限、质量关卡和风险档案。
  • 提示词、示例、评估用例和预期输出。
  • 用于 validate、eval、gate、diff、import 和 PR 注释的 CLI 命令。
  • 社交功能层:星标、服务端 remix 分叉、讨论串、已验证的关卡运行、安装确认、热度、标签、结果和维护者审核。

正式运行的 MVP

Supabase 身份验证已启用,支持注册/登录、星标、本地 remix 草稿、讨论串帖子和身份验证后的发布。

功能

  • 类似 HuggingFace 的 Agent 资源发现功能,采用 Win98 桌面界面,并配有真正的窗口管理器(拖动、最小化、z 顺序、任务栏、开始菜单)。
  • 结果筛选器、全局搜索、排行榜、Harness 热度、星标、服务端 remix 分叉计数、讨论串和已验证的关卡运行计数。
  • Harness 详情会在独立窗口中打开,提供 Overview、Install、Trust、Try sample、Thread、Files 和 Versions 标签页,以及朴素风格的信任面板;Versions 基于归档快照历史。
  • 经过身份验证的快速发布流程(New Resource Wizard),可将 Markdown 导入为小型未验证脚手架。
  • 分享卡片窗口(harness_flex.exe)、狂野西部奖项、Paint 热度图表,以及可打开向导的回形针吉祥物。
  • CLI 软件包 onlyharness,含 hh 兼容命令以及 superskill install;HH_REGISTRY_URL 可指向其他 Registry,默认值为 https://superskill.sh/api。
  • 便于 Agent 使用的发现入口:/llms.txt、/api/openapi.json、/server.json 和 /mcp。
  • 本地悬赏流程:通过现有的 gate_escrow 通道创建/认领/交付/接受工作状态;只有在匹配的托管购买款项针对已交付的关卡收据完成扣款后,才会设置 paid。
  • 语义化 PR 审查和质量关卡辅助 API。
  • 面向生产环境的 Docker 堆栈,支持在共享 VPS 主机上通过系统 Caddy 部署。

架构

flowchart LR
  Web["React/Vite UI"] --> API["Fastify Harness API"]
  API --> Seeds["Seed harnesses"]
  API --> Imports["Imported harnesses"]
  Web --> Supabase["Supabase Auth + RLS tables"]
  API --> SupabaseAuth["Supabase token verification"]
  Caddy["System Caddy / superskill.sh"] --> Web
  CLI["hh CLI"] --> Schema["Schema, eval, gate, diff"]

本地运行

npm install
npm run seed
npm run check
npm run smoke
npm run dev

打开:

  • UI:http://127.0.0.1:5177
  • API:http://127.0.0.1:8787/healthz
  • 本地 Gitea Forge:http://127.0.0.1:3000

运营方付款

付款报告和账本创建仅限手动运维。该脚本会读取已结算的 purchases 和 payout_accounts,应用当前费率,并可创建具备幂等性的付款草稿账本。它绝不会调用付款服务提供方,也不会将任何项目标记为已付款。

npm run payout:report -- --month 2026-07
npm run payout:report -- --month 2026-07 --json
npm run payout:ledger -- --month 2026-07 --ledger-out data/payout-ledgers/2026-07.json

使用 SUPABASE_URL + SUPABASE_SERVICE_ROLE_KEY,或通过 --purchases 和 --payout-accounts 使用本地 JSON 测试数据。--record-ledger 会通过 Supabase service role 对 payout_runs/payout_items 执行 upsert。没有 creator_user_id 的行会标记为 MISSING_CREATOR_ID;没有付款账户的行会被阻止,并标记为 MISSING_PAYOUT_ACCOUNT。

CLI

该 npm 包已发布:

npx onlyharness@latest search market research
npx onlyharness@latest suggest market research --json
npx onlyharness@latest resources search superpowers --json
npx onlyharness@latest resources detail github:obra/superpowers --json
npx onlyharness@latest resources open github:obra/superpowers --json
npx onlyharness@latest resources approve onlyharness:harnesses/deep-market-researcher --workspace acme --collection approved --json
npx onlyharness@latest install harnesses/deep-market-researcher --target claude-code --json
npx onlyharness@latest publish-resource ./agent-tool --name agent-tool --type command_pack --json
npx onlyharness@latest publish-resource ./agent-tool --workspace acme --name agent-tool --type command_pack --json
npx onlyharness@latest mcp-config deep-market-researcher --target claude-desktop --json
npm i -g onlyharness   # installs the `hh` command

已发布的 [email protected] 提供资源目录、不可变的 publish-resource、工作区审批/设置/门禁、成员资格到期、手动且与提供商无关的工作区订阅生命周期、通用安装以及 SuperSkill 托管命令;0.2.18 是一个已知有问题的单链接版本,因为其发布的通用技能摘要已过时。也可通过 MCP/HTTP 使用服务端目录流程。

本地开发时,构建工作区包并直接运行:

npm run build -w onlyharness
node packages/harness-cli/dist/hh.mjs doctor
node packages/harness-cli/dist/hh.mjs audit-setup
node packages/harness-cli/dist/hh.mjs suggest market research --apply --out suggested-deep-market-researcher --json
node packages/harness-cli/dist/hh.mjs suggest market research --apply --target codex --out suggested-deep-market-researcher --adapter-out .codex/harnesses/deep-market-researcher --json
node packages/harness-cli/dist/hh.mjs install harnesses/deep-market-researcher --target codex --out deep-market-researcher --adapter-out .codex/harnesses/deep-market-researcher --json
node packages/harness-cli/dist/hh.mjs pull harnesses/deep-market-researcher --version 0.1.0 --out deep-market-researcher-0.1.0 --json
node packages/harness-cli/dist/hh.mjs mcp-config deep-market-researcher --target claude-desktop --out mcp.json
node packages/harness-cli/dist/hh.mjs benchmark benchmarks/research-discovery.yaml --json
node packages/harness-cli/dist/hh.mjs extract ~/.claude/skills/my-skill --out my-skill-harness
HH_TOKEN=<token> node packages/harness-cli/dist/hh.mjs publish [email protected]:acme/harnesses.git --path harnesses/my-harness --name my-harness --json
HH_TOKEN=<token> node packages/harness-cli/dist/hh.mjs publish-resource ./agent-tool --name agent-tool --type command_pack --json
HH_TOKEN=<token> node packages/harness-cli/dist/hh.mjs publish-resource https://github.com/acme/agent-tool.git --path packages/tool --name agent-tool --type command_pack --json
HH_WORKSPACE_TOKEN=<workspace-token> node packages/harness-cli/dist/hh.mjs publish-resource ./agent-tool --workspace acme --name agent-tool --type command_pack --json
HH_WORKSPACE_TOKEN=<workspace-token> node packages/harness-cli/dist/hh.mjs resources search agent-tool --workspace acme --json
HH_WORKSPACE_TOKEN=<workspace-token> node packages/harness-cli/dist/hh.mjs resources detail @acme/agent-tool --json
HH_WORKSPACE_TOKEN=<workspace-token> node packages/harness-cli/dist/hh.mjs workspace setup acme --target claude-code --json
HH_ORG_TOKEN=<org-token> node packages/harness-cli/dist/hh.mjs setup @acme
HH_ORG_TOKEN=<org-token> node packages/harness-cli/dist/hh.mjs publish workflow.md --org acme --name my-private-harness
HH_ORG_TOKEN=<org-token> node packages/harness-cli/dist/hh.mjs sync [email protected]:acme/skills.git --org acme
TELEGRAM_BOT_TOKEN=<bot-token> HH_ORG_TOKEN=<org-token> TELEGRAM_CHANNEL_ID=<channel-id> npm run telegram:gate-bot

SuperSkill 内部 alpha 版

SuperSkill 是构建于 OnlyHarness 之上的任务优先型托管能力层。当前已检入的目录包含 12 个精确的不可变候选项,并有意将已批准的展示项目数设为零,直到获得真实的 Claude Code、Codex 和人工审查证明。

  • 公开、只读:GET /api/showroom/capabilities 和 GET /api/showroom/capabilities/{id}。这些路由绝不会推荐、下载或激活文件。
  • 已选列表:GET /api/showroom/selected 会将当前经审查的受理候选项以 selected_unreviewed 卡片形式公开。它们可以填充 Daylight 目录,但在获得针对确切版本的审批证据前,不能被推荐或激活。
  • 已确认用户的 Bearer 凭据:/api/recommendations、/api/capabilities/{id}、确切版本/存档路由、托管证明发布和托管生命周期事件,均使用一个已确认的 Supabase 用户凭据,并要求有效的服务端 superskill:managed 授权。无头客户端会显式继承 HH_TOKEN。HH_SUPERSKILL_TOKEN 仅用于兼容旧版内部 alpha,不能生成公开 GO 证据。
  • 托管 CLI 版本:[email protected] 是当前的单链接版本,已发布并通过全新 npx 安装验证,且在 plugins/superskill/runtime.json 中固定为官方 npm 完整性值。它会将托管技能详情、存档标头和存档字节绑定到一个不可变的版本/摘要/大小/信任元组。0.2.14 和 0.2.18 是已知有问题的单链接版本;切勿用 latest 替代确切的运行时固定版本。
  • Web:SuperSkill 产品界面已锁定在 superskill.sh 主机名上;旧版查询参数或存储的皮肤状态无法切换它。
npm run build:superskill-catalog
npm run check:superskill-catalog
npm run check:superskill-router
npm run smoke:superskill
npm run superskill:pilot-report

插件源代码位于 plugins/superskill 下,Claude Code 和 Codex 共用一个字节级完全相同的技能。能力交接使用一个不可变的 https://superskill.sh/api/superskill/install/{id}/{version}/{sha256} URL;固定版本的本地安装器会准确选择一个无歧义的客户端,而路由和激活许可仍彼此独立。发布到市场以及在全新会话中验证插件,仍是独立的发布操作。

面向 Agent

  • 发现:/llms.txt、/AGENTS.md、/api/openapi.json、/server.json 中的 MCP Registry 元数据,以及 /.well-known/oauth-protected-resource 中的 OAuth 受保护资源元数据。SuperSkill 不会公布自定义授权服务器:托管的无头流程通过 HH_TOKEN 手动接收已确认的账户令牌;在某个发行方拥有完整且符合标准的流程之前,/.well-known/oauth-authorization-server 会有意返回 404。
  • MCP v0.2.19:https://superskill.sh/mcp,包含确切的工具清单 search_harnesses、harness_detail、search_resources、resource_detail、resource_use_instructions、pull_instructions、pull_harness、search_docs、publish_markdown_to_harness 和 publish_resource_package。资源详情/使用工具接受可选的精确 version;明确指定的历史读取不会偏移到最新版本。工具结果使用 structuredContent;逻辑失败会将 isError 设为 true,并返回稳定的机器代码和经过清理的详情。
  • 生产环境已启用公开托管的资源包发布。已确认的发布者可创建不可变的语义化版本,并具有幂等性、持久所有权、工件 SHA-256 和有界文本存档;更改现有版本会安全地拒绝操作。SuperSkill 网页表单接受仓库文件夹或编写的技能,并将每个已接受的发布版本标记为 unreviewed,直到有独立的审核证据。静态 v2 检查结果为 fail 时,会在任何存档、目录或事件变更之前拒绝请求,并提供经过清理的规则/文件证据;HTTP 使用 SECURITY_SCAN_FAILED,而 MCP 保持稳定的 VALIDATION_FAILED 响应格式。检查结果为 pass/warn 的发布版本仍标记为未审核;静态检查通过并不表示已知晓运行时风险等级。
  • Registry 发布:server.json 仅指向规范地址 https://superskill.sh/mcp 的远程服务;com.onlyharness/registry 仍是兼容性标识符。发布仍需要针对 superskill.sh 的 MCP Registry 授权/发布证明、精确的已发布运行时固定版本,以及干净的客户端证明;onlyharness.com 仅用于兼容。
  • 团队设置和发布:hh setup @acme 读取 GET /api/orgs/{slug}/bundle;hh publish --org acme 会写入组织私有的 harness。两者在 ORGS_ENABLED=true 时都使用 HH_ORG_TOKEN。组织身份验证/捆绑包/审计会优先读取 Supabase 服务角色表,并将 HARNESS_ORGS_PATH/HARNESS_ORG_AUDIT_PATH 作为本地冒烟测试备用路径。
  • 团队工作区 UI/API:Network Neighborhood 使用 GET /api/orgs/{slug}/workspace 和相同的组织令牌,并返回组织私有卡片、经过清理的审计行,以及权限/风险摘要。
  • 工作区资源目录:已确认的账户通过 POST /api/workspaces 创建仅限邀请的工作区;该事务还会创建所有者成员身份、邀请策略和默认的已批准集合。GET /api/workspaces/{slug}/workspace、GET/PUT /api/workspaces/{slug}/setup-bundle、GET /api/workspaces/{slug}/resources、GET /api/workspaces/{slug}/resources/{id}、GET /api/workspaces/{slug}/resources/{id}/archive、POST /api/workspaces/{slug}/imports/resource-package、POST /api/workspaces/{slug}/resources/approve 和 /api/workspaces/{slug}/collections... 均受 WORKSPACES_ENABLED=true 控制。API/网页读取可使用有效且未过期的工作区成员会话,或使用 HH_WORKSPACE_TOKEN。CLI 目前仍基于令牌,HH_ORG_TOKEN 可作为迁移备用方式。hh workspace setup acme --target claude-code 会安装由工作区托管的包,并为已批准的公开资源写入说明,不会假装这些资源拥有工作区存档。GET/POST /api/workspaces/{slug}/members、POST /api/workspaces/{slug}/invites、POST /api/workspaces/{slug}/join 和 DELETE /api/workspaces/{slug}/members/{userId} 通过 member:write/invite:write 管理成员身份;POST /members 接受可选的 expiresAt,过期或已移除的成员无法使用私有安装/存档路径。原始邀请码仅返回一次,存储的只有哈希值;网页分享 URL 将原始码放在 # 后,因此在明确加入之前不会将其发送到服务器。工作区门控还提供 GET/PUT /api/workspaces/{slug}/join-policies、POST /api/workspaces/{slug}/join-code、只读的 POST /api/workspaces/{slug}/join-code/verify,以及用于 Telegram/Discord/权益检查的显式 POST /api/workspaces/{slug}/join-grants,需要 gate:verify/gate:write 作用域。有效的 paid_subscription 加入策略要求启用 WORKSPACE_SUBSCRIPTIONS_ENABLED=true;POST /subscriptions/checkout 仅创建未完成的收据,带签名的 POST /webhooks/workspace-subscriptions 以幂等方式激活/续期/宽限/取消访问权限,不会恢复已移除/已暂停的成员;POST /subscriptions/sweep 会过期已结束的访问权限,但不会收取费用。使用 hh resources approve onlyharness:harnesses/deep-market-researcher --workspace acme --collection approved,可将经过扫描的公开条目作为本地整理加入工作区集合,但这不代表 OnlyHarness 验证;not_scanned 和检查失败的资源不能获批为可安装资源。
  • 团队 Git 同步:hh sync <git-url-or-local-path> --org acme 会克隆/扫描 Markdown 技能和运行手册,然后通过组织发布端点导入。首个版本不含 Webhook。
  • 维护者发布:hh publish <harness-dir> 需要本地 .harnesshub/results.json;hh publish <git-url> --path <harness-dir> 会克隆到临时目录,在该目录中运行本地评估/门控,然后仅在服务器重新检查架构、安全性和门控均成功时发布。
  • 资源包发布:hh publish-resource <dir-or-git-url> --name <slug> --type <type> 会将技能、插件、工作流、MCP 服务、命令包、脚本、文档或源代码包中的安全且有界的文本文件打包到 OnlyHarness 存档存储中,并在 /api/resources 中列出结果。这不会获得 Verified harness 徽章。
  • 工作区资源包发布:hh publish-resource <dir-or-git-url> --workspace acme --name <slug> --type <type> 会将同一完整包发布到私有工作区目录中,名称为 @acme/name;它不会经过 Markdown 脚手架路径,也不会声称获得 Verified 徽章。
  • 组织私有拉取使用相同的令牌路径:HH_ORG_TOKEN=<org-token> hh pull @acme/private-harness。
  • 目录架上的条目是归属于 directories 所有者的纯链接发现索引。它们会在搜索结果中显示 open <url>,而 GET /api/repos/directories/{name}/archive 会返回 409 DIRECTORY_LINK_ONLY,而不是可运行文件。
  • 服务端 remix 是一个本地草稿流程,会创建真实的 fork 图记录:POST /api/repos/{owner}/{repo}/remixes 仅从存档文件创建免费的未验证 local/{name} 副本,并记录源 -> fork 的边。付费、组织/私有、目录、纯链接及许可证未指定的来源会被安全地拒绝;复制的备用配方不会增加 fork 数,也不会存储提示词/本地路径。
  • 公开 API 负载绝不暴露服务器文件系统路径:注册表/详情在可用时使用公开 Forge、OnlyHarness GitHub 镜像或上游 URL;/healthz 仅返回状态;详情中的维护者审核明确标记为 local-demo 预览,直到连接真实的 Forge PR 来源。
  • /api/resources 是面向技能、插件、工作流、MCP 服务、配置、指南、运行时、目录及原生 harness 格式包的主要混合来源感知目录。/api/registry 保留 harness 加纯链接目录这一契约,以兼容现有 Agent 客户端。
  • 类别基准测试基础设施以本地优先:hh benchmark <suite.yaml> 使用声明的评估用例分数,从本地路径比较候选 harness 和类似 harness。套件位于 benchmarks/;冒烟测试会运行其中每个 YAML 套件。这仍是运行器/比较层,并非独立的大模型质量测量。
  • Agent 自动驾驶:hh suggest <task> --json 会进行搜索,返回带信任字段的排序候选项,获取所选 harness 的详情,输出完整信任摘要,并记录隐私安全的 suggested 事件。使用 --pick <rank> 可检查/应用其他候选项。hh suggest <task> --apply --out <dir> 会通过与 hh pull 相同的存档路径安装所选 harness,在选择 --apply 时记录 accepted,并仅在文件写入后记录 applied。添加 --target cli|claude-code|codex|cursor 可在记录 applied 前运行完整的适配器安装流程。
  • 版本化存档:harness 详情包含 versions[];hh pull owner/name --version <semver> 和 hh install owner/name --version <semver> 会请求相同的不可变 /archive?version= 路径,并将 .harnesshub/source.json 固定到已解析的版本。
  • hh eval 和 hh gate 在通过时,会为已拉取的 harness 记录隐私安全的 eval/gate 事件;详情负载会从这些事件中公开 verification.lastVerifiedAt。Registry 的 runs 仅根据通过的 gate 事件计数,绝不根据 hh run 示例预览计数。
  • hh gate --receipt 会写入带签名的门控收据,其中包含 harness 引用、版本、resultsHash、判定结果和时间戳。POST /api/receipts 仅验证 ed25519 签名,不产生副作用,也不会存储提示词、本地路径、付款或权益。
  • 门控托管采用先预留模式:pricing.model: gate_escrow 结账/Webhook 会创建 reserved 状态和带过期时间的 escrow_reserved 存档权益。POST /api/billing/escrow/receipt 会在有效收据判定通过时扣款,或在有效收据判定失败时退款;POST /api/billing/escrow/timeout 会在 72 小时窗口后退款。
  • 赏金基于同一托管资金通道管理工作状态:/api/bounties* 支持创建、认领、交付和接受;接受操作会验证已交付收据、托管目标、金额和货币,阻止重复使用托管资金,并且仅在扣款后写入 paid。
  • 托管端点尚未上线:hh run 仅作为示例预览在本地执行,HTTP/MCP 接口会交付 harness 文件,而不会在服务端运行作者代码。pricing.model=per_call 会返回 409 HOSTED_EXECUTION_NOT_AVAILABLE,直到运行器/合作伙伴路径发布并通过冒烟测试。
  • 付费安装/拉取在获得权益之前会返回 402。当 PAYMENTS_ENABLED=true、X402_ENABLED=true 且设置了 X402_PAY_TO 时,存档响应还会包含 x402 v2 PAYMENT-REQUIRED 标头。成功的 hh install --pay 或 hh pull --pay 存档交付要求 X402_FACILITATOR_URL 完成验证/结算,随后会授予钱包权益。
  • 结账 URL 会跳转到 /checkout:没有 provider_ref 时,网页 UI 会要求买家登录并创建手动结账会话;带有 provider_ref 时,会显示待处理的手动交接状态。这两种状态都不会在客户端授予访问权限。
  • 手动结账是唯一启用的结账提供方(未设置 PAYMENT_PROVIDER 或设置为 manual)。任何其他提供方值都会在创建购买之前被安全地拒绝;x402 是单独的存档付款通道。
  • 买家收据为只读:GET /api/billing/receipt?provider_ref=<ref> 会返回已通过身份验证的用户的待处理/已付款购买状态和权益标记,但绝不会结算提供方或授予访问权限。
  • Bot 门控可使用带有 entitlements:read 权限的组织令牌调用 GET /api/entitlements/check?subject=user:<id>&harness=owner/name;该请求仅返回判定结果,绝不返回存档文件。
  • 更安全的社区门控使用短期有效的签名码:买家获得权益后调用 POST /api/community/invite-code,然后 Telegram/Discord Bot 使用带作用域的组织令牌调用 POST /api/community/verify-code,再授予访问权限。API 必须配置 COMMUNITY_INVITE_SECRET。
  • Registry 条目包含 installConfirms;只有经过身份验证的 kind=install&client=claude-code 事件才会计入 works in Claude Code: N confirms 徽章。
  • Claude Code 兼容市场:claude plugin marketplace add elvismusli/onlyharness,然后执行 claude plugin install superskill@superskill。单链接安装器是主要安装路径。
  • Codex MCP 设置:codex mcp add superskill --url https://superskill.sh/mcp --bearer-token-env-var HH_TOKEN。
  • 本地验证:npm run check:mcp-registry && npm run check:plugin;安装了 Claude CLI 时,还要运行 claude plugin validate . && claude plugin validate plugins/onlyharness。 从示例创建本地环境:
cp .env.example .env.local
cp .env.example apps/registry-web/.env.local

生产环境部署

当前 VPS 使用共享系统 Caddy,监听端口 80/443。OnlyHarness 在其后运行于 127.0.0.1:8097。

SSH_TARGET=hetzner-root DEPLOY_MODE=system-caddy scripts/deploy-production.sh

scripts/deploy-production.sh 在容器重新加载后默认执行公开冒烟测试:/api/healthz、/server.json、/.well-known/oauth-protected-resource、预期返回 404 的 /.well-known/oauth-authorization-server、/checkout 和 /mcp。对于非默认主机名,请覆盖 PUBLIC_BASE_URL;只有在刻意进行不完整部署时才设置 RUN_DEPLOY_SMOKE=0。 如需在不创建临时用户的情况下执行经过身份验证的生产冒烟测试,请在被忽略的生产环境文件中设置兼容性 QA 凭据,并针对 https://superskill.sh/api 运行 scripts/smoke-production-auth.ts。 部署产物:

  • infra/production-compose.yml
  • infra/production-system-caddy.override.yml
  • infra/Caddyfile.local-smoke
  • scripts/deploy-production.sh
  • scripts/smoke-production-compose.sh
  • scripts/smoke-production-auth.ts

生产冒烟测试:

scripts/smoke-production-compose.sh

set -a
. infra/production.env
set +a
SMOKE_API_URL=https://superskill.sh/api SMOKE_EXPECT_EMAIL_CONFIRMATION=1 npm run smoke:prod-auth

验证

当前验证关卡:

npm run build
npm run check
npm run smoke
npm run smoke:mcp
npm run smoke:x402
scripts/smoke-production-compose.sh

生产身份验证冒烟测试会创建一个 QA Supabase 用户,并验证电子邮件确认会阻止立即登录。若要使用已预先确认的令牌测试经过身份验证的发布,请在 CLI 发布流程中传入 HH_TOKEN,或针对已确认的会话运行 API 发布冒烟测试。

仓库布局

apps/
  harness-api/       Fastify API and registry endpoints
  registry-web/      React/Vite OnlyHarness UI
packages/
  cli/               hh CLI
  schema/            harness.yaml schema, validation, risk checks
  semantic-diff/     harness semantic diff and PR review markdown
seed-harnesses/      curated MVP harness examples
supabase/            auth/social/thread schema migrations
infra/               Docker, Caddy, Gitea, and production compose
scripts/             seed, smoke, deploy, Gitea proof scripts

安全说明

  • 真实的 .env.local、应用环境文件和 infra/production.env 文件均已加入 git 忽略列表。
  • 生产环境中的发布需要有效的 Supabase bearer 令牌。
  • 配置了 HARNESS_WEBHOOK_TOKEN 时,内部 webhook/eval 端点需要该令牌。
  • 组织设置由 ORGS_ENABLED 控制;组织令牌以 sha256: 哈希形式存储在 Supabase 或本地备用存储中,审计日志不得包含原始令牌。
  • Supabase 表使用 RLS 策略管理个人资料、用户操作和线程帖子。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。