Agents Playbook

遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。

没有一套可以保证软件永远不会有缺陷或漏洞的做法;如果规范或假设是错误的,即使合适的方法也可能失败。也没有哪些做法可以保证一个项目能够维持健康和运作良好的开发者社区。但是,遵循最佳做法可以帮助改善项目的成果。例如,一些做法可以在发布之前进行多人评估,这可以帮助您找到其他难以找到的技术漏洞,并帮助建立信任,并希望不同公司的开发人员之间进行重复的交互。要获得徽章,必须满足所有“必须”和“禁止”的条款,满足所有“应该”条款或有合适的理由,所有“建议”条款必须满足或未满足(至少希望考虑)。欢迎通过 GitHub网站创建问题或提出请求进行反馈。另外还有一个一般讨论邮件列表

如果这是您的项目,请在项目页面上显示您的基准徽章状态!基准徽章状态如下所示: 项目13878的基准徽章等级为baseline-1 以下是如何嵌入基准徽章:
您可以通过将其嵌入到Markdown文件中来显示您的基准徽章状态:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/13878/baseline)](https://www.bestpractices.dev/projects/13878)
或者将其嵌入到HTML中:
<a href="https://www.bestpractices.dev/projects/13878"><img src="https://www.bestpractices.dev/projects/13878/baseline"></a>


这些是基准等级1的标准。 这些是标准版本 v2026.02.19。

Baseline Series: 基准等级1 基准等级2 基准等级3

        

 基本

  • 常规

    请注意,其他项目可能使用相同的名称。

    An open engineering harness for coding agents. Agents Playbook turns production lessons into portable rules, prompts, memory patterns, evaluation practices, and executable quality gates that teams can adopt incrementally without fine-tuning models or locking their workflow to one coding-agent vendor. The repository also publishes the zero-runtime-dependency @agentskit/playbook CLI.

    请使用 SPDX许可证表达格式;例子包括“Apache-2.0”,“BSD-2-Clause”,“BSD-3-Clause”,“GPL-2.0+”,“LGPL-3.0 +”,“MIT”和“(BSD-2-Clause OR Ruby)”。
    如果有多种语言,请将它们列为逗号分隔值(可选空格),并将它们从最多到最少使用。如果有长列表,请至少列出前三个最常见的列表。如果没有语言(例如,这是仅文档或仅测试项目),请使用单个字符“ - ”。请使用每种语言的常规大小写,例如“JavaScript”。
    通用平台枚举(CPE)是用于信息技术系统,软件和软件包的结构化命名方案。在报告漏洞时,它可用于多个系统和数据库。

 控制 24/24

  • 控制


    当用户尝试读取或修改项目权威存储库中的敏感资源时,系统必须要求用户完成多因素认证过程。 [OSPS-AC-01.01]
    为项目的版本控制系统强制执行多因素认证,要求协作者在访问敏感数据或修改存储库设置时提供第二种形式的认证。通行密钥对于此控制是可接受的。

    The AgentsKit GitHub organization requires two-factor authentication for organization members. This was verified through the organization settings API before preparing the assessment.



    当添加新的协作者时,版本控制系统必须要求手动分配权限,或默认将协作者权限限制为可用的最低权限。 [OSPS-AC-02.01]
    大多数公共版本控制系统都是这样配置的。确保项目的版本控制系统在添加协作者时始终默认分配最低可用权限,仅在必要时授予额外权限。

    AgentsKit organization members receive read-only repository access by default. Higher permissions require explicit assignment by an organization owner, and the organization currently has no outside collaborators.



    当尝试直接提交到项目的主分支时,强制机制必须阻止该更改的应用。 [OSPS-AC-03.01]
    如果VCS是集中式的,请在项目的VCS中对主分支设置分支保护。或者,使用去中心化方法,如Linux内核的方法,即先在另一个仓库中提出更改,将更改合并到主仓库需要特定的单独操作。

    The active Protect main ruleset requires all changes to refs/heads/main to pass through a pull request and eight verified CI, package, browser, CodeQL, dependency-review, and audit checks. Direct commits are blocked and the ruleset has no bypass actors.



    当尝试删除项目的主分支时,版本控制系统必须将此视为敏感活动,并要求明确确认意图。 [OSPS-AC-03.02]
    在项目的版本控制系统中对主分支设置分支保护以防止删除。

    The active Protect main ruleset prevents deletion and non-fast-forward updates of refs/heads/main and has no bypass actors.



    当CI/CD管道接受输入参数时,该参数必须在管道中使用之前进行清理和验证。 [OSPS-BR-01.01]
    CI/CD 流水线应对所有来自不可信来源的元数据输入进行清理(引用、转义或在期望值时退出)。这包括分支名称、提交消息、标签、拉取请求标题和作者信息等数据。

    Pull-request workflows run fixed commands and do not interpolate pull-request titles, commit messages, branch names, authors, or other attacker-controlled metadata into shell commands. Third-party Actions are pinned to full commit hashes and checkout credentials are not persisted.



    当 CI/CD 流水线对不可信代码快照进行操作时,它必须阻止访问特权 CI/CD 凭据和资产。 [OSPS-BR-01.03]
    CI/CD 流水线应将不可信代码快照与特权凭据和资产隔离。特别是,项目应谨慎确保在协作者审查之前构建或执行代码的工作流无法访问 CI/CD 凭据。

    Untrusted contributions run through pull_request workflows rather than pull_request_target. GitHub withholds repository secrets from fork pull requests, checkout credentials are not persisted, and the repository default GITHUB_TOKEN permission is read-only.



    当项目将URI列为官方项目渠道时,该URI必须仅通过加密渠道交付。 [OSPS-BR-03.01]
    配置项目的网站和版本控制系统使用SSH或HTTPS等加密渠道进行数据传输。确保项目文档中引用的所有工具和域名只能通过加密渠道访问。

    Official repository, documentation, issue, package, release, ecosystem, and security channels listed by the project use HTTPS.



    当项目将URI列为官方分发渠道时,该URI必须仅通过加密渠道交付。 [OSPS-BR-03.02]
    配置项目的发布管道,仅从使用SSH或HTTPS等加密渠道进行数据传输的网站、API响应和其他服务获取数据。

    The @agentskit/playbook package is distributed by npm over authenticated HTTPS with registry integrity metadata. Version 0.1.1 also has an immutable annotated Git tag and a public GitHub release resolving to the licensed source commit.



    项目必须防止在版本控制系统中意外存储未加密的敏感数据,例如机密和凭据。 [OSPS-BR-07.01]
    配置.gitignore或等效文件以排除可能包含敏感信息的文件。使用预提交钩子和自动扫描工具来检测和防止在提交中包含敏感数据。

    GitHub secret scanning and push protection are enabled. Contribution and security policies prohibit submitting credentials, private customer information, and confidential repository details, while the published CLI includes a secrets gate for adopting repositories.



    当项目发布版本后,项目文档必须包含所有基本功能的用户指南。 [OSPS-DO-01.01]
    为项目的所有基本功能创建用户指南或文档,说明如何安装、配置和使用项目的功能。如果存在任何已知的危险或破坏性操作,请包含高度可见的警告。

    The README and public documentation cover incremental adoption, installation, CLI commands, gate configuration, architecture and governance patterns, local-first discovery, agent handoffs, verification commands, and the supported public interfaces of the released functionality.



    当项目发布版本后,项目文档必须包含缺陷报告指南。 [OSPS-DO-02.01]
    建议项目使用其VCS默认问题跟踪器。如果使用外部来源,请确保项目文档和贡献指南清晰且明显地解释如何使用报告系统。建议项目文档还设定缺陷将如何分类和解决的期望。

    The published package metadata identifies the public GitHub issue tracker as its defect-reporting channel, the repository exposes that tracker publicly, CONTRIBUTING.md explains the public change workflow, and SECURITY.md directs vulnerabilities to private reporting instead of public issues.



    在活跃期间,项目必须有一个或多个机制用于公开讨论提议的更改和使用障碍。 [OSPS-GV-02.01]
    在项目中建立一个或多个公开讨论机制,例如邮件列表、即时消息或问题跟踪器,以促进开放的沟通和反馈。

    Public GitHub issues and pull requests are the documented mechanisms for discussing production lessons, proposed patterns, implementation changes, and usage obstacles, except for vulnerabilities or confidential data.



    在活跃期间,项目文档必须包含贡献流程的说明。 [OSPS-GV-03.01]
    创建一个CONTRIBUTING.md或CONTRIBUTING/目录来概述贡献流程,包括提交更改的步骤以及与项目维护者互动的方式。

    CONTRIBUTING.md explains evidence requirements, document shape, scope, gate expectations, review, tombstoning, license boundaries, conduct, and the private security-reporting path.



    活跃期间,源代码的许可证必须符合OSI开源定义或FSF自由软件定义。 [OSPS-LE-02.01]
    向项目的代码仓库添加一个LICENSE文件,其中包含开放源代码促进会(OSI)批准的许可证,或自由软件基金会(FSF)批准的自由许可证。此类许可证的示例包括MIT、BSD 2-Clause、BSD 3-Clause修订版、Apache 2.0、较宽松GNU通用公共许可证(LGPL)和GNU通用公共许可证(GPL)。如果没有其他限制(如专利),发布到公共领域可以满足此控制要求。

    Software source in the repository is licensed under the OSI-approved MIT License. The separately identified editorial corpus is licensed under CC BY 4.0.



    活跃期间,已发布软件资产的许可证必须符合OSI开源定义或FSF自由软件定义。 [OSPS-LE-02.02]
    如果已发布软件资产包含不同的许可证,请确保它是开放源代码促进会(OSI)批准的许可证,或自由软件基金会(FSF)批准的自由许可证。此类许可证的示例包括MIT、BSD 2-Clause、BSD 3-Clause修订版、Apache 2.0、较宽松GNU通用公共许可证(LGPL)和GNU通用公共许可证(GPL)。请注意,已发布软件资产的许可证可能与源代码的许可证不同。

    The current @agentskit/playbook@0.1.1 software release declares and distributes the OSI-approved MIT License. npm latest resolves to this release.



    活跃期间,源代码的许可证必须保存在相应仓库的LICENSE文件、COPYING文件或LICENSE/目录中。 [OSPS-LE-03.01]
    将项目的源代码许可证包含在项目的LICENSE文件、COPYING文件或LICENSE/目录中,以提供许可条款的可见性和清晰性。文件名可以有扩展名。如果项目有多个仓库,请确保每个仓库都包含许可证文件。

    The authoritative repository contains a root LICENSE file with the complete MIT License text and a separate LICENSE-CONTENT file with the complete CC BY 4.0 terms and scope.



    活跃期间,已发布软件资产的许可证必须包含在已发布的源代码中,或包含在与相应发布资产一起的LICENSE文件、COPYING文件或LICENSE/目录中。 [OSPS-LE-03.02]
    将项目的已发布软件资产许可证包含在已发布的源代码中,或包含在与相应发布资产一起的LICENSE文件、COPYING文件或LICENSE/目录中,以提供许可条款的可见性和清晰性。文件名可以有扩展名。如果项目有多个仓库,请确保每个仓库都包含许可证文件。

    The @agentskit/playbook@0.1.1 npm tarball includes its complete MIT LICENSE alongside the software, and the corresponding immutable source tag contains the same package license.



    活跃期间,项目的源代码仓库必须在静态URL上可公开读取。 [OSPS-QA-01.01]
    使用常见的版本控制系统(VCS),如GitHub、GitLab或Bitbucket。确保仓库可公开读取。避免重复或镜像仓库,除非有高度可见的文档说明主要来源。避免频繁更改会影响仓库URL的仓库。确保仓库是公开的。

    The authoritative source repository is publicly readable at a stable HTTPS URL.



    版本控制系统必须包含所有更改的可公开读取的记录,包括谁进行了更改以及更改的时间。 [OSPS-QA-01.02]
    使用常见的版本控制系统(VCS),如GitHub、GitLab或Bitbucket来维护可公开读取的提交历史记录。避免压缩或重写提交,以免掩盖任何提交的作者。

    The public Git history and linked pull requests record every committed change, its author, and timestamp.



    当包管理系统支持时,源代码仓库必须包含一个依赖项列表,该列表涵盖直接的语言依赖项。 [OSPS-QA-02.01]
    这可以采用包管理器或语言依赖文件的形式,列举所有直接依赖项,如package.json、Gemfile或go.mod。

    Direct application dependencies are declared in package.json and exact transitive resolutions are committed in pnpm-lock.yaml. The released @agentskit/playbook CLI separately declares zero runtime dependencies.



    活跃期间,项目文档必须包含被视为子项目的任何代码库的列表。 [OSPS-QA-04.01]
    记录由项目生成并编译到发布版本中的任何附加子项目代码仓库。此文档应包括相应代码库的状态和意图。

    Not applicable to this assessment scope: Agents Playbook develops its documentation application, canonical corpus, deterministic discovery artifacts, and @agentskit/playbook CLI in one authoritative repository. External AgentsKit packages are declared dependencies rather than additional project codebases compiled into the release.



    活跃期间,版本控制系统中不得包含生成的可执行工件。 [OSPS-QA-05.01]
    删除项目版本控制系统中生成的可执行工件。建议在任何情况下,如果生成的可执行工件对测试等过程至关重要,应该在构建时生成,或单独存储并在特定的、有详细文档记录的管道步骤中获取。

    Generated executable application outputs are not committed. Next.js build output, node_modules, coverage, Playwright output, package archives, and temporary build directories are excluded; CI rebuilds the application and package from source.



    活跃期间,版本控制系统中不得包含无法审查的二进制工件。 [OSPS-QA-05.02]
    不要将任何无法审查的二进制工件添加到项目的版本控制系统中。这包括可执行应用程序二进制文件、库文件和类似的工件。这不包括资产,如图形图像、声音或音乐文件以及通常以二进制格式存储的类似内容。

    The 270 tracked repository files are reviewable source, configuration, Markdown/MDX, JSON, text, CSS, workflows, and SVG content assets. The tracked tree contains no executable application binaries, compiled libraries, package archives, fonts, or opaque binary artifacts.



    在活动期间,项目文档必须包含安全联系人。 [OSPS-VM-02.01]
    创建一个security.md(或类似名称)文件,其中包含项目的安全联系人。

    SECURITY.md identifies GitHub private vulnerability reporting as the security contact, requests reproduction and impact details, defines acknowledgement and assessment targets, explains supported versions, and describes coordinated disclosure.



该数据可在社区数据许可协议 – 许可性,版本 2.0 (CDLA-Permissive-2.0)下获取。这意味着数据接收方可以共享数据,无论是否经过修改,只要数据接收方在共享数据时提供本协议文本。请注明Emerson Braun和OpenSSF最佳实践徽章贡献者。

项目徽章条目拥有者: Emerson Braun.
最后更新于 2026-07-29 21:21:00 UTC, 最后更新于 2026-07-29 21:22:30 UTC。