公开记录
软件健康报告模式 0.27.0 · 指标 1.13.0 · 2026-07-26 07:06 UTC

FuelLabs / fuel-specs

📝 Specifications for the Fuel protocol and the FuelVM, a blazingly fast blockchain VM.

Apache-2.0★ 1,782 星标⑂ 704 复刻始于 2020年8月在 GitHub 上查看 ↗

FuelLabs/fuel-specs 的健康指数为 100 分中的 54 分,处于「中等」区间。 其得分最高的类别是Community & Adoption(72/100),最低的是Vitality(29/100)。 最近一次更新在 102 天前。 近期的大部分工作由 1 位贡献者完成。

54
总分 / 100
中等

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 49(有风险)的上限。AI 就绪度不计入总体分。

54
优秀85-100堪称典范;基本满足所有检验标准
良好70-84健康;仅有轻微不足
中等50-69可接受,但存在明显不足;建议进行审查
存在风险30-49存在重大薄弱环节;采用时应保持审慎
危急1-29问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

所有权

Fuel Labs组织
6,521 关注者208 个公开仓库始于 2019年9月

该仓库由组织支持——共同承担、可问责的托管责任,可延续于任何单一维护者之后。

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

29危急 · 占总体的 22%
评分方式
9.9/36推送新近度 — 最近一次推送于 102 天前
2.8/36提交节奏 — 52 周中有 4 周有提交
6.3/18提交量 — 最近一年 4 次提交
0/10OpenSSF Scorecard:Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
所用输入
commits_last_year4
human_commit_share1
days_since_last_push102
active_weeks_last_year4

发布纪律

44存在风险
评分方式
27/27有发布版本 — 已发布 1 个发布版本
0/36发布时效 — 最近一次发布版本于 940 天前
12.6/27发布节奏 — 节奏未知(仅一次发布)
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count1
latest_release_tagv0.5.0
releases_from_tags
days_since_latest_release940
mean_days_between_releases
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

72良好 · 占总体的 18%
评分方式
52.7/60星标 — 1,782 个星标
23.7/25复刻 — 704 个复刻
8.8/15关注者 — 40 位关注者
所用输入
forks704
stars1,782
watchers40
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

57中等
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(Apache-2.0)
0/18CONTRIBUTING 指南
0/13.5行为准则
0/7.2议题模板
6.3/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

69中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
9.7/22.5提交分布 — 头号贡献者编写了 57% 的提交
13.5/13.5贡献者广度 — 36 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 3 contributing companies or organizations -- score normalized to 10
所用输入
bus_factor1
contributors_sampled36
top_contributor_share0.567
评分方式
37.5/46.8议题解决 — 80% 的议题已关闭
36.2/38.3PR 接受 — 已裁定的 PR 中 368/389 已合并
15/15OpenSSF Scorecard:Code-Review — all changesets reviewed
所用输入
merged_prs368
open_issues47
closed_issues191
issue_closed_ratio0.803
closed_unmerged_prs21
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
25/25所有者影响力 — FuelLabs 有 6,521 位关注者
25/25既往记录 — 208 个公开仓库,账户约 6 年
所用输入
followers6,521
owner_typeOrganization
is_verified
owner_loginFuelLabs
public_repos208
account_age_days2,490

工程质量

基础的工程与文档实践是否到位?

56中等 · 占总体的 20%

工程实践

50中等
评分方式
24/24CI 工作流 — 3 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
0/6.4.editorconfig
2/20OpenSSF Scorecard:CI-Tests — 4 out of 30 merged PRs checked by a CI test -- score normalized to 1
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

65中等
评分方式
30/30README
0/25文档目录
15/15文档 / 主页站点 — https://fuellabs.github.io/fuel-specs/master
10/10仓库描述
10/10主题标签 — 3 个主题标签
0/10Wiki
所用输入
topicsfuel, blockchain, fuelvm
has_wiki
homepagehttps://fuellabs.github.io/fuel-specs/master
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

44存在风险 · 占总体的 16%

安全态势

44存在风险
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
3/7.5Branch-Protection — branch protection is not maximal on development and all release branches
0.2/2.5CI-Tests — 4 out of 30 merged PRs checked by a CI test -- score normalized to 1
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
2.5/2.5Contributors — project has 3 contributing companies or organizations -- score normalized to 10
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
0/7.5Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
0/5Packaging — 无数据
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — 无数据
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate4.4
已排除计分(无数据或不适用):packaging, signed_releases。 其余权重已重新归一化。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?这是一枚独立的实验性徽章——权重为 0.0,因此单独呈现,不影响总体健康评分。

30存在风险 · 占总体的 0%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 100 次人类提交中有 97 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.97
agent_instruction_files
agent_instruction_max_bytes
评分方式
0/18一条命令的引导启动
22/22自动化测试
0/11Lint / 格式化配置
0/11静态类型检查
0/10可复现环境
0/10已体现的代理实践 — 最近 100 次提交中没有代理编写的提交
0/8自动化维护 — 未观察到自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfiles
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0

关键数据

1,782GitHub 星标
36贡献者
4最近 12 个月提交数
102距最近推送天数
1发布版本数
1巴士系数(bus factor)
47开放议题
软件包生态系统数

数据采集警告

  • Language breakdown unavailable
  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

更多细节

Star 与 Fork 历史 0 ★ / 704 ⇿
0Star
704Fork
1发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

01252503755006257506871232022-022024-012025-11
主版本 0次版本 1修订 0

每个点涵盖 4 天。

OpenSSF Scorecard 4.4 / 10
4.4综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-07-26 07:06 UTC

10Binary-Artifactsno binaries found in the repo
4Branch-Protectionbranch protection is not maximal on development and all release branches
1CI-Tests4 out of 30 merged PRs checked by a CI test -- score normalized to 1
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
10Contributorsproject has 3 contributing companies or organizations -- score normalized to 10
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintained0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
不适用Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
不适用Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
全部依赖 0

来自 GitHub 依赖图的完整解析依赖集合:0 个直接依赖与 0 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
依赖安全公告 未评估

本报告未能完成公告比对:No resolved dependencies to assess

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [
        "fuel",
        "blockchain",
        "fuelvm"
      ],
      "is_fork": false,
      "size_kb": 7866,
      "has_wiki": false,
      "homepage": "https://fuellabs.github.io/fuel-specs/master",
      "languages": {},
      "pushed_at": "2026-04-14T08:54:16Z",
      "created_at": "2020-08-27T21:08:42Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-24T05:28:56Z",
      "description": "📝 Specifications for the Fuel protocol and the FuelVM, a blazingly fast blockchain VM.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "master",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": null,
      "significant_languages": []
    },
    "owner": {
      "blog": "https://fuel.network",
      "name": "Fuel Labs",
      "type": "Organization",
      "login": "FuelLabs",
      "company": null,
      "location": "Ethereum",
      "followers": 6521,
      "avatar_url": "https://avatars.githubusercontent.com/u/55993183?v=4",
      "created_at": "2019-09-30T15:56:25Z",
      "is_verified": null,
      "public_repos": 208,
      "account_age_days": 2490
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2023-12-28T18:13:54Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "dd11147b8d7f0ba9d6ae3bbdab8909a4027619f6",
          "body": "Discussed in #517. VM impl PR:\nhttps://github.com/FuelLabs/fuel-vm/pull/982\n\nAdds a minimal set of opcodes required to operate with dynamic\n(variable-sized) storage slots. More instructions can be added later to\nspeed up common operations, as discussed in #517.\n\nThis PR marks sequential bulk read an\n[…]\n sized slots.\n\n### Before requesting review\n- [x] I have reviewed the code myself\n\n---------\n\nCo-authored-by: Brandon Kite <brandonkite92@gmail.com>\nCo-authored-by: Igor Rončević <ironcev@hotmail.com>",
          "is_bot": false,
          "headline": "Dynamic storage opcodes: base instructions (#640)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2026-04-14T08:53:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2f7abd93b3751dcdbe07fe9e5259af2cb96f0be2",
          "body": "https://github.com/FuelLabs/fuel-specs/issues/617\n\nVM PR : https://github.com/FuelLabs/fuel-vm/pull/872\n\n### Before requesting review\n- [x] I have reviewed the code myself\n\n### After merging, notify other teams\n\n[Add or remove entries as needed]\n\n- [ ] [Rust SDK](https://github.com/FuelLabs/fuels-rs\n[…]\nQUEST.yml&title=%5BRequest%5D%3A+)\n(for out-of-organization contributors, the person merging the PR will do\nthis)\n- [ ] Someone else?\n\n---------\n\nCo-authored-by: Brandon Kite <brandonkite92@gmail.com>",
          "is_bot": false,
          "headline": "Add owner policy (#618)",
          "author_name": "AurelienFT",
          "author_login": "AurelienFT",
          "committed_at": "2025-09-26T13:42:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "de99ceb81d0ba8a13b670690e27d876806db7e1a",
          "body": "Introduce a new GM flag to retrieve the gas price of the block, enabling\nthe functionality for gas price access inside of scripts or contracts.\n\ncloses #631",
          "is_bot": false,
          "headline": "Add GM flag to fetch the current gas price (#634)",
          "author_name": "Brandon Kite",
          "author_login": "Voxelot",
          "committed_at": "2025-09-11T01:21:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2869996dd52c2381f879dfc23f458e64f01750c0",
          "body": "Closes #627. VM issue: https://github.com/FuelLabs/fuel-vm/issues/857.\nVM PR: https://github.com/FuelLabs/fuel-vm/pull/925.\n\nThe design is quite similar of the RISC-V of the same name. `JAL $ra $rb\nimm` stores the address of the next instruction to `$ra`, so that\nregister can be used as a return add\n[…]\nhere jnzf jumps to\npopl 0b11110 // Restore return_address and local{1,2,3}\njal $zero $return_addr 0 // Return from subroutine\n```\n\n### Before requesting review\n- [x] I have reviewed the changes myself",
          "is_bot": false,
          "headline": "Jump-and-link instruction (#630)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2025-07-28T15:56:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "64bfa19477d80ce8c7f23b3b1841cebdb4c9c44a",
          "body": "When implemention `niop`, I discovered that the subtraction via `sub`\ninstruction doesn't work for narrower integer types, as the result will\nnot be properly truncated if the operation overflows. This PR adds\nsubtraction mode, corresponding the the commit\nhttps://github.com/FuelLabs/fuel-vm/pull/922\n[…]\nin the fuel-vm branch. SInce the `niop` isn't implemented yet, we can\nfreely change the operation table to keep it more consistent.\n\n\n### Before requesting review\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Add SUB operation to NIOP (#637)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2025-05-19T08:28:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fbc14c73205651653ca9d1999f06ee98bd4c29f2",
          "body": "Add documentation for the new GTF expiration policy field in the\ntransaction format.\n\nrelated: #616\n\nCo-authored-by: Anderson Arboleya <anderson@arboleya.me>",
          "is_bot": false,
          "headline": "Document GTF for expiration policy (#636)",
          "author_name": "Brandon Kite",
          "author_login": "Voxelot",
          "committed_at": "2025-04-18T11:04:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bfbc667f1a0e26d61bc52d04de9bd136ea5b5597",
          "body": null,
          "is_bot": false,
          "headline": "Add new GTF arguments for upload, upgrade, and blob transactions (#635)",
          "author_name": "Brandon Kite",
          "author_login": "Voxelot",
          "committed_at": "2025-04-17T22:42:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d22608f317b940f5164d1a50a5ca5e87a50051a",
          "body": null,
          "is_bot": false,
          "headline": "Changed `message_id` to `messageId` in the `messageTypes` (#633)",
          "author_name": "Peter Smith",
          "author_login": "petertonysmith94",
          "committed_at": "2025-04-11T14:12:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5825aaff2e7df14703df6c0b8bfc945516cf2b3b",
          "body": null,
          "is_bot": false,
          "headline": "chore: fix BLDD instruction table (#625)",
          "author_name": "Luiz Estácio | stacio.eth",
          "author_login": "luizstacio",
          "committed_at": "2025-03-17T20:40:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cad8e69789173f7f56a20a54c5eea4f1f0854b60",
          "body": "Closes #626. VM PRs: https://github.com/FuelLabs/fuel-vm/pull/922 and\nhttps://github.com/FuelLabs/fuel-vm/pull/923.\n\nImplementing correct overflow handling for narrow integer types (`u8`,\n`u16`, `u32`) is tedious, error prone, and needs lots of instructions.\nLikewise, memory load/store operations wi\n[…]\nLabs/devrel-requests/issues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+)\n(for out-of-organization contributors, the person merging the PR will do\nthis)",
          "is_bot": false,
          "headline": "Narrow integer instructions (#628)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2025-03-11T13:39:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6be5f5b8443f034eb76321329cc68c2c57fd634f",
          "body": "Some minor adjustments that arose from code review done with @rafal-ch.\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Improve notes on RET, RETD, GTF opcodes (#624)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2025-02-10T10:58:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cca2e8cd2e475263c909cb902620b5ff143713ec",
          "body": "https://github.com/FuelLabs/fuel-specs/issues/615\n\nVM PR : https://github.com/FuelLabs/fuel-vm/pull/870\n\n### Before requesting review\n- [x] I have reviewed the code myself\n\n### After merging, notify other teams\n\n[Add or remove entries as needed]\n\n- [ ] [Rust SDK](https://github.com/FuelLabs/fuels-rs\n[…]\nllani <43716372+rymnc@users.noreply.github.com>\nCo-authored-by: Hannes Karppila <2204863+Dentosal@users.noreply.github.com>\nCo-authored-by: Rafał Chabowski <88321181+rafal-ch@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add ZK opcodes definition (#619)",
          "author_name": "AurelienFT",
          "author_login": "AurelienFT",
          "committed_at": "2025-01-16T15:23:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cebd4c56072180433f52140a4374800b5da393d1",
          "body": "In the ABI spec, a `typeArgument` is missing the `name` property, as\r\nshown\r\n[here](https://github.com/FuelLabs/sway/blob/0ccf47bbf991617af4e7f238f704a8ab5de5d184/forc-plugins/forc-client/test/data/deployed_script/deployed_script-loader-abi.json#L168-L173).\r\n\r\n### Before requesting review\r\n- [x] I h\n[…]\nsues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+)\r\n(for out-of-organization contributors, the person merging the PR will do\r\nthis)\r\n- [ ] Someone else?",
          "is_bot": false,
          "headline": "Add missing type argument name from ABI spec (#620)",
          "author_name": "Daniel Bate",
          "author_login": "danielbate",
          "committed_at": "2024-12-06T11:05:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7a2aa80c7d8f19e2eb6e5ee94171a40eab44c3c0",
          "body": "https://github.com/FuelLabs/fuel-specs/issues/593\n\nVM PR : https://github.com/FuelLabs/fuel-vm/pull/871\n\n### Before requesting review\n- [x] I have reviewed the code myself\n\n### After merging, notify other teams\n\n[Add or remove entries as needed]\n\n- [ ] [Rust SDK](https://github.com/FuelLabs/fuels-rs\n[…]\n/issues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+)\n(for out-of-organization contributors, the person merging the PR will do\nthis)\n- [ ] Someone else?",
          "is_bot": false,
          "headline": "Add policy expiration (#616)",
          "author_name": "AurelienFT",
          "author_login": "AurelienFT",
          "committed_at": "2024-11-28T13:17:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f9e6b9e42d0375e5d9200adbfe714264e175b27b",
          "body": "### Description\n\nThis PR fixes the documentation of the `SUB` and `SUBI` instructions and\nmakes it follow the same pattern as the `ADD` and `ADDI` instructions.\n\nThe documentation was wrongly using the term \"overflow\" in the \"Notes\"\nof those two instructions, instead of \"underflow\" (as used in the l\n[…]\nw the instruction).\n\nThe PR simply removes the erroneous description from the \"Notes\" and\nleaves them empty, as in `ADD` and `ADDI`.\n\n### Before requesting review\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Remove erroneous \"Notes\" from `SUB` and `SUBI` instructions (#613)",
          "author_name": "Igor Rončević",
          "author_login": "ironcev",
          "committed_at": "2024-10-23T22:25:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6d91f86215ad7f2660412b93b7e3755a2a6a7adb",
          "body": "Closes https://github.com/FuelLabs/fuel-specs/issues/456\r\n\r\nRequires #611\r\nVM PR https://github.com/FuelLabs/fuel-vm/pull/848\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself\r\n\r\n---------\r\n\r\nCo-authored-by: Brandon Kite <brandonkite92@gmail.com>",
          "is_bot": false,
          "headline": "LDC support in predicates (#612)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-10-23T13:00:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0b29bc17a860a9793b974d490bbbf86d06f1dd8",
          "body": "VM PR https://github.com/FuelLabs/fuel-vm/pull/849",
          "is_bot": false,
          "headline": "Add LDC mode 2, which allows code from memory (#611)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-10-15T13:37:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "799d6aec5eb4725e268d841264f9d8ebc45b7469",
          "body": "### Before requesting review\r\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Use right naming for receipts as in the implementation (#610)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2024-09-16T15:10:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b35a2bfdb88a3e5309e0c7746d253aa815e02260",
          "body": "The main reason for removing it from canonical serialization is to avoid\r\naffecting the block ID for different panic reasons. The primary goal is\r\njust to know that some operation was done incorrectly; what exactly\r\nfailed is less important. It reduces the chance of getting different\r\nblocks within one panic.\r\n\r\nRelated VM change: https://github.com/FuelLabs/fuel-vm/pull/826\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Skip panic reason in the canonical form (#609)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2024-09-13T11:38:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aece3d369e93210aa318e3d9a0366792d28e3ec1",
          "body": "### Description\r\n\r\nSome of the `wqxx` and `wdxx` instructions had a wrong documentation,\r\nvery likely due the copy-pasting of the documentation of `wdxx`\r\ninstructions when documenting their `wqxx` counterparts.\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Fix wrong documentation of some `wq/wdxx` instructions (#604)",
          "author_name": "Igor Rončević",
          "author_login": "ironcev",
          "committed_at": "2024-08-31T12:53:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f182c5525cc5d0394c235f28f2a93a622ec75f2d",
          "body": "Work towards https://github.com/FuelLabs/fuel-specs/issues/589. The VM\r\nPR https://github.com/FuelLabs/fuel-vm/pull/780 contains a working\r\nimplementation.\r\n\r\nTo allow contracts larger than the contract size limit, and to allow\r\nupgradability, we'll be adding a new tx type that's just a bunch of\r\nby\n[…]\nZ` and `BLDD` and the new blob mode\r\nfor `LDC` closely follow how `CSIZ`, `LDC` and `CCP` work, but only\r\noperation on blob data.\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Blob tx and instructions (#592)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-07-31T16:20:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6ebbe21dce65e19c93e4bf87317c265c9e13d565",
          "body": "When using EdDSA (Ed25519) to verify a signature, the payload is not\r\nlimited by 32 bytes.\r\n\r\n### After merging, notify other teams\r\n\r\n- [ ] [Rust SDK](https://github.com/FuelLabs/fuels-rs/)\r\n- [ ] [Sway compiler](https://github.com/FuelLabs/sway/)\r\n- [ ] [Platform\r\ndocumentation](https://github.com\n[…]\n](https://github.com/FuelLabs/fuel-connectors/)\r\n\r\n---------\r\n\r\nCo-authored-by: Hannes Karppila <2204863+Dentosal@users.noreply.github.com>\r\nCo-authored-by: Hannes Karppila <hannes.karppila@gmail.com>",
          "is_bot": false,
          "headline": "change ed19 verify operator, to comply with ed spec (#600)",
          "author_name": "Luiz Estácio | stacio.eth",
          "author_login": "luizstacio",
          "committed_at": "2024-07-29T21:24:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "afb3c8e79053ce654df913bf379794c054960aec",
          "body": "Found while reviewing https://github.com/FuelLabs/fuels-rs/pull/1472.\n\n### Before requesting review\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Fix `cfei -> cfe` typo in `instruction-set.md` (#601)",
          "author_name": "Oleksii Filonenko",
          "author_login": "Br1ght0ne",
          "committed_at": "2024-07-25T10:20:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b095eb2bea53cc760ab66b337aeec928ba72f842",
          "body": "https://github.com/FuelLabs/sway/issues/5151\r\nhttps://github.com/FuelLabs/sway/issues/5952\r\nhttps://github.com/FuelLabs/sway/issues/5954\r\n\r\n[Rendered\r\nfile](https://github.com/FuelLabs/fuel-specs/blob/882a860a4aa11ba8c6f91085a0ab4d483c6ce3fb/src/abi/json-abi-format.md)\r\n\r\nWith the changes proposed i\n[…]\nsues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+)\r\n(for out-of-organization contributors, the person merging the PR will do\r\nthis)\r\n- [ ] Someone else?",
          "is_bot": false,
          "headline": "Adds concrete types distinction to JSON ABI. (#599)",
          "author_name": "Marcos Henrich",
          "author_login": "esdrubal",
          "committed_at": "2024-07-24T14:17:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "63844b515363a96c0cf58e6dffb6385966948cf6",
          "body": "[#5151](https://github.com/FuelLabs/sway/issues/5151)\r\n[#5952](https://github.com/FuelLabs/sway/issues/5952)\r\n[#5954](https://github.com/FuelLabs/sway/issues/5954)\r\n\r\nAdds specification for how hashes based ids are generated from a string\r\nrepresentation of types.\r\n\r\nUpdates `json-abi-format.md` wit\n[…]\nsues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+)\r\n(for out-of-organization contributors, the person merging the PR will do\r\nthis)\r\n- [ ] Someone else?",
          "is_bot": false,
          "headline": "Updates ABI spec with hash based ids, versions and program type. (#596)",
          "author_name": "Marcos Henrich",
          "author_login": "esdrubal",
          "committed_at": "2024-07-13T08:38:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b40d87d2515727188b9ae2dd23602316c50519c0",
          "body": "Clarifies for all operations that pointer operation overflow (over\r\n`Word::MAX`) and over `VM_MAX_RAM` both panic. Unifies the formatting\r\nfor this.\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself\r\n\r\nCo-authored-by: Green Baneling <XgreenX9999@gmail.com>",
          "is_bot": false,
          "headline": "Clean up overflow conditions (#588)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-07-01T18:48:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c778d521b9a689aaea5ce5eccdc292e046d81aad",
          "body": "Clarify inaccessible memory part.\r\n\r\n---------\r\n\r\nCo-authored-by: Hannes Karppila <2204863+Dentosal@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix confusion regarding inaccessible memory (#594)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2024-06-28T14:53:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "092a5e80dfa6b2984bd0f9839d9a04c7904c38a5",
          "body": null,
          "is_bot": false,
          "headline": "Fix wording where \"unspecified\" was used for defined behavior (#586)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-06-03T08:16:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7637befac0fe3f6fa3adb6a979ed74bba2cdda65",
          "body": "VM PR: https://github.com/FuelLabs/fuel-vm/pull/743\r\n\r\nCalled contracts shouldn't inherit the `$flag` register.\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Zero $flag on call (#585)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-06-03T07:58:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc3623c461ae1ecc66317a3cbe7786c63a0b1f2a",
          "body": "Introduced here: https://github.com/FuelLabs/fuel-vm/pull/736\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Pad CallFrame::codesize to word boundary (#584)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-05-28T17:46:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ed5c58c4aad718409888869e2da44f573a1fa8e",
          "body": "… (#583)\n\nVM PR: https://github.com/FuelLabs/fuel-vm/pull/737\r\n\r\nWhat is says on the tin. This is a small but breaking change. It's\r\nunlikely to cause any breakage, as no Sway code or code constructed\r\nusing the fuel-asm helper functions is affected.\r\n\r\nThis change is originating from an audit repor\n[…]\ny unintentional behavior of the unused part of instruction is\r\nignored.\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself\r\n\r\nCo-authored-by: Green Baneling <XgreenX9999@gmail.com>",
          "is_bot": false,
          "headline": "Clarify that non-zero reserved part of an instruction causes vm panic…",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-05-27T12:29:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "525f6a61ee87b2552a5e5f42ec8e5108ebb26074",
          "body": "### Before requesting review\r\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Fix some types and wordings (#582)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-05-27T12:28:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9788fffb48119a4a8f1915aef6e2583b67f5f083",
          "body": "The `TxPointer.txIndex` is `u16`, so `txCount` can't be more than `u16`.\r\n\r\n<img width=\"444\" alt=\"image\"\r\nsrc=\"https://github.com/FuelLabs/fuel-specs/assets/18346821/abfaedd5-f475-4b64-a43e-d3c4e886b53a\">\r\n\r\nThe maximum number of receipts is limited to `255` per transaction.\r\nAllowing only `u16` tra\n[…]\nns we can have a maximum\r\nof `255 * u16::MAX` that is less than `u32`.\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself\r\n\r\n### After merging, notify other teams\r\n\r\n- [x] [Bridge]",
          "is_bot": false,
          "headline": "Use `u16` for `txCount` and `u32` for `message_receipt_count` (#578)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2024-04-29T10:48:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b7c1a7e8ed5b069a40b27ab6369a92ef364c7cb7",
          "body": "Something was missed in this\r\n[PR](https://github.com/FuelLabs/fuel-specs/pull/571) and this fixes it.\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself\r\n\r\n### After merging, notify other teams\r\n\r\n- [ ] [Rust SDK](https://github.com/FuelLabs/fuels-rs/)\r\n- [ ] [Sway compiler](htt\n[…]\nsues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+)\r\n(for out-of-organization contributors, the person merging the PR will do\r\nthis)\r\n- [ ] Someone else?",
          "is_bot": false,
          "headline": "Fix false claim that message count is included on header (#577)",
          "author_name": "Mitchell Turner",
          "author_login": "MitchTurner",
          "committed_at": "2024-04-26T03:58:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e09a271abda1705a2ce045e64d1e26bbe21ae62f",
          "body": null,
          "is_bot": false,
          "headline": "Add info about `event_inbox_root` on the header (#571)",
          "author_name": "Mitchell Turner",
          "author_login": "MitchTurner",
          "committed_at": "2024-04-23T17:14:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0dbcea0967a95c135d838afa305d24e4ecc8680e",
          "body": "What is says on the tin.\r\n\r\n### Before requesting review\r\n- [x] I have reviewed the code myself",
          "is_bot": false,
          "headline": "Remove unused MEM_MAX_ACCESS_SIZE constant (#574)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-04-22T16:55:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0cb0a4528567c1c7a59b3da3c72e6456c2ba9261",
          "body": "Part of https://github.com/FuelLabs/fuel-core/issues/1804\r\n\r\nAdds a template for the PR description, containing a handy checklist.",
          "is_bot": false,
          "headline": "Add PR template (#569)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-04-15T16:39:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aa06d95d60705c5f56002d1c26e8f05c40553c83",
          "body": "…#570)\n\nCorresponding implementation:\r\nhttps://github.com/FuelLabs/fuel-vm/pull/720\r\nThe change adds a new `Upload` transaction that allows uploading huge\r\nbyte code on chain subsection by subsection.\r\n\r\nThe `Upload` transaction is chargeable and is twice as expensive as the\r\n`Create` transaction. Anyone can submit this transaction.\r\n\r\nThe specification contains more description about the flow.",
          "is_bot": false,
          "headline": "A new `Upload` transaction to upload the huge bytecode on the chain (…",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2024-04-15T15:22:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f50504ada016f9075631fb5379c269231c7f611",
          "body": "Corresponding implementation:\r\nhttps://github.com/FuelLabs/fuel-vm/pull/707\r\n\r\nThe change adds a new `Upgrade` transaction that allows upgrading either\r\nconsensus parameters or state transition function used by the network to\r\nproduce future blocks.\r\n\r\nThe purpose of the upgrade is defined by the `U\n[…]\nr a predicate.\r\n\r\nWe use postcard algorithm to serialize and deserialize consensus\r\nparameters during the upgrade. This algorithm works with numbers in a\r\nmore sufficient way and compresses them well.",
          "is_bot": false,
          "headline": "Added a new `Upgrade` transaction to perform a network upgrade (#567)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2024-04-09T13:46:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "722eedc5d1d87470c80e2eaf97b76d4cc709a286",
          "body": "VM PR: https://github.com/FuelLabs/fuel-vm/pull/697",
          "is_bot": false,
          "headline": "Add new access rules from stack-heap separation (#566)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-04-05T10:05:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c34165264ace17eddd3876be91f667d45583b24c",
          "body": "…om the witness (#563)\n\nCorresponding change on VM side\r\nhttps://github.com/FuelLabs/fuel-vm/pull/709.\r\n\r\nRemoved the `bytecodeLength` field since this information is available\r\nfrom the witness. The transaction still will be unique and unchanged\r\nbecause of the `contract_id` from `Output::ContractCreated`.",
          "is_bot": false,
          "headline": "Removed `bytecodeLength` field since this information is available fr…",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2024-03-26T14:37:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4acab694833802fb50614909ea4e32914a6e5c8",
          "body": "Soon, we will add several more transaction variants that are also\r\nchargeable. Because of that, I've decided to move unique fields of the\r\ntransaction to the top while keeping the common part at the end.\r\n\r\nImplementation part with description of how it can be used\r\nhttps://github.com/FuelLabs/fuel-vm/pull/703#issue-2202505020",
          "is_bot": false,
          "headline": "Grouped unique fields for transactions at the beginning (#562)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2024-03-26T08:31:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "184f86fba7ee5aa24da3cff8e43b72a5736738f8",
          "body": "Closes #559\r\n\r\nVM PR: https://github.com/FuelLabs/fuel-vm/pull/700",
          "is_bot": false,
          "headline": "Add GM_BASE_ASSET_ID (#561)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-03-21T21:57:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3f228e7fc90283b6fd85752f7b6002867fa42f85",
          "body": "Closes https://github.com/FuelLabs/fuel-specs/issues/553\r\n\r\nVM PR: https://github.com/FuelLabs/fuel-vm/pull/698",
          "is_bot": false,
          "headline": "Increase size of inputs, outputs and witnesses to uint16 (#558)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-03-14T14:38:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e236148569725bbef84315ca984378c9dba6374",
          "body": "https://github.com/FuelLabs/fuel-specs/pull/546\r\n\r\nThis includes the changes for:\r\n- Remove`gas_price` from tx\r\n- Include `gas_price` on `Mint` tx\r\n- Remove `GasPrice` policy\r\n- Add `Tip` policy\r\n- Make `MaxFee` mandatory\r\n\r\nSince there is no concept of the client API in these specs, and also the\r\ni\n[…]\ndon't want the scope of the VM to include those sort\r\nof things, but it's not clear to me _what_ these specs are constrained\r\nby.\r\n\r\n---------\r\n\r\nCo-authored-by: Green Baneling <XgreenX9999@gmail.com>",
          "is_bot": false,
          "headline": "Update Specs to Include Gas Price changes (#546)",
          "author_name": "Mitchell Turner",
          "author_login": "MitchTurner",
          "committed_at": "2024-03-13T18:30:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d2ae22cf30e42c426c01f7fd86bfeb487d83f429",
          "body": "Closes https://github.com/FuelLabs/fuel-specs/issues/554\r\n\r\nVM PR: https://github.com/FuelLabs/fuel-vm/pull/692",
          "is_bot": false,
          "headline": "Add GTF getters for tx bytes size and address (#556)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-03-08T14:51:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b13a9206cd6db434bbcff5499ccc0dfe23b377a6",
          "body": "Closes #552\r\n\r\nHopefully I caught everything.",
          "is_bot": false,
          "headline": "Change vec lengths to uint64 to match vm behavior (#555)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-03-06T16:36:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2742f30f963f4bcd9b165165606f51a218b812ee",
          "body": "Closes #542.\r\n\r\nAlso changes `tx.receiptsRoot` to only be updated after the tx has\r\nterminated, as the intermediate values are no longer useful. The speeds\r\nup and simplifies implementation of receipt-pushing opcodes.",
          "is_bot": false,
          "headline": "Zero all malleable fields before execution (#545)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-02-22T09:27:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7b6f7f5639e4914ef537f62e75ab1e2a6abe00a",
          "body": "Follow-up to #545.",
          "is_bot": false,
          "headline": "Remove maturity field from InputCoin (#548)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-02-21T17:26:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1eafbe265f0e46e0c04d78fbc5c3f2c17fc1e975",
          "body": null,
          "is_bot": false,
          "headline": "Clarify meaning of the bitmask of push and pop opcodes (#543)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2024-02-12T13:21:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6cd7270d82cb1c128e9cbef92e69d36bf0dac73b",
          "body": "This PR has the first version of the documentation of the new encoding\r\nversion 1.",
          "is_bot": false,
          "headline": "Encoding version 1 documentation (#541)",
          "author_name": "Daniel Frederico Lins Leite",
          "author_login": "xunilrj",
          "committed_at": "2024-01-24T16:23:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a44cacd2fc74b6caa9adcd2e2f7080eccc6531cc",
          "body": "This PR configures the spell-check added to the docs workflow in the\r\ngithub-actions repo: https://github.com/FuelLabs/github-actions/pull/23\r\n\r\nThe files checked are configured in `.spellcheck.yml`. This is also\r\nwhere you can configure what types of elements are ignored.\r\n\r\nRight now it ignores:\r\n\n[…]\nand add\r\n\"ing\" to the custom words list. Instead, rewrite the sentence as\r\n\"locking with the `lock` method\".\r\n- If it otherwise should be ignored, you can configure the pipeline in\r\n`.spellcheck.yml`.",
          "is_bot": false,
          "headline": "docs: configure spell check (#539)",
          "author_name": "Sarah Schwartz",
          "author_login": "sarahschwartz",
          "committed_at": "2023-12-12T22:02:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d7e18fc59656132cf6b311ce318deee0cf770e0f",
          "body": "…yte costs (#529)\n\ncloses: https://github.com/FuelLabs/fuel-specs/issues/461\r\n\r\nIncreases the granularity of how the base fee for a transaction is\r\ncomputed. These base fee components are referred to as intrinsic costs,\r\nwhich are intended to cover the overhead of operations such as:\r\n\r\n- read, inse\n[…]\neenX9999@gmail.com>\r\nCo-authored-by: Brandon Vrooman <brandon.vrooman@gmail.com>\r\nCo-authored-by: Brandon Vrooman <brandon.vrooman@fuel.sh>\r\nCo-authored-by: Hannes Karppila <hannes.karppila@gmail.com>",
          "is_bot": false,
          "headline": "Introduce intrinsic fees for transaction validation beyond script & b…",
          "author_name": "Brandon Kite",
          "author_login": "Voxelot",
          "committed_at": "2023-12-12T02:12:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0904457888801e10c3271ebde80268a5583ae8b2",
          "body": "Findings after implementation\r\nhttps://github.com/FuelLabs/fuel-vm/pull/623",
          "is_bot": false,
          "headline": "Some clarification after implementation (#533)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2023-11-30T22:01:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6bdea627421452eedaad1ca1efc5da8c773c1c14",
          "body": "See this issue for context:\r\nhttps://github.com/FuelLabs/fuel-vm/issues/602\r\nFuelVM PR: https://github.com/FuelLabs/fuel-vm/pull/634",
          "is_bot": false,
          "headline": "Charge for new storage slots (#536)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-11-17T11:40:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "640390108a0441906327cdf9750901233ba4f6bd",
          "body": "Increases the receipt limit from `u8::MAX` to `u16::MAX`, leaving space\r\nfor panic and script result. The old limit was not enforced, but\r\nhttps://github.com/FuelLabs/fuel-vm/pull/633 is going to enforce the new\r\nrules defined here.\r\n\r\nThe number of receipts is limited separtely from gas, since adding more\r\nreceipts slows down all instructions that operate on them. Moreover,\r\nthis change makes the upper bound for memory use clear.",
          "is_bot": false,
          "headline": "Limit the number of receipts to u16::MAX (#535)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-11-10T14:32:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b3b772a824c276c686434f39bbdb0e8e91edaed",
          "body": "See https://github.com/FuelLabs/fuel-vm/issues/616",
          "is_bot": false,
          "headline": "Add memory executability permissions (#530)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-10-31T11:14:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a841c59dc39d75a1a8e37ecc7ea3c9a54301bc8",
          "body": "# Summary\r\n\r\nUse a dynamic set of policies for transaction validation requirements\r\nsuch as gaslimit & maturity. This will reduce the size of transactions\r\nthat always leave these fields unset, and also future proof the\r\ntransaction format for later requirements such as multi-dimensional\r\npricing.\r\n\n[…]\nce kind. By abstracting these limits\r\ninto a dynamic set of policies, new resource types can be added in the\r\nfuture more easily.\r\n\r\n---------\r\n\r\nCo-authored-by: Green Baneling <XgreenX9999@gmail.com>",
          "is_bot": false,
          "headline": "Transaction Policies (#514)",
          "author_name": "Brandon Kite",
          "author_login": "Voxelot",
          "committed_at": "2023-10-26T17:16:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "89b2a2a2644bc3da41321409f53b49aa46d054a5",
          "body": "Related issues:\r\n- Progresses https://github.com/FuelLabs/fuel-vm/issues/384\r\n\r\nThis PR specifies the maximum size of a transaction and that a\r\ntransaction that exceeds the maximum size is invalid.\r\n\r\nThis PR also renames the `constants.md` file to\r\n`consensus_parameters.md` to better reflect how th\n[…]\ns are not constants outlined by the specification, this\r\nchange proposes to remove the `value` column altogether, allowing the\r\ncurrent definition of consensus parameters to be decided by maintainers.",
          "is_bot": false,
          "headline": "docs: Specify max transaction size (#525)",
          "author_name": "Brandon Vrooman",
          "author_login": null,
          "committed_at": "2023-10-19T15:25:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "efc31b0cc210bb0f7df62da1de71c01734aae026",
          "body": "Closes #505 partially.\r\n\r\nCo-authored-by: Brandon Kite <brandonkite92@gmail.com>\r\nCo-authored-by: Hannes Karppila <hannes.karppila@gmail.com>",
          "is_bot": false,
          "headline": "specs: add encoding specs for vectors, tuples and u128/u256 (#520)",
          "author_name": "iqdecay",
          "author_login": "iqdecay",
          "committed_at": "2023-10-18T16:11:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "822f13a2b85fd3487352c8cef4c59d088e454f32",
          "body": "Closes https://github.com/FuelLabs/fuel-specs/issues/521",
          "is_bot": false,
          "headline": "Add ECAL instruction (#523)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-10-12T06:04:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fffabbaa7d86af1fc68f7f7c4f0be46f2adf5a90",
          "body": "ChainId was previously added to the predicate ID calculation (see #462)\r\nto avoid replay attacks with predicates. However, replay attacks are\r\nalready not a significant issue due to Fuel's architecture, and the\r\ninclusion of the ChainId causes other issues.\r\n\r\n## Replay attacks\r\n\r\nGenerally, predica\n[…]\n(https://www.coindesk.com/tech/2022/06/09/15m-of-optimism-tokens-stolen-by-an-attacker-after-wintermute-sent-wrong-wallet-address/),\r\nwhen in reality that address was only the expected multisig on L1.",
          "is_bot": false,
          "headline": "Remove CHAIN_ID from predicate ID calculation (#519)",
          "author_name": "David Mihal",
          "author_login": "dmihal",
          "committed_at": "2023-10-09T13:53:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "80d0c298501194e7b88e93ec97bfe06b43af6021",
          "body": "…#518)\n\nImplementation: https://github.com/FuelLabs/fuel-vm/pull/593",
          "is_bot": false,
          "headline": "Minor simplification to `Mint` transaction after the implementation (…",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2023-10-03T16:32:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ec799b913e974fbdf098fe09673c324c908b6d1d",
          "body": "I had to read the current phrase a couple of times to understand it.\r\n\r\nAlternatively, we could say \"There is given a\" or \"It is given a\".",
          "is_bot": false,
          "headline": "docs: polish \"balanceOfStart\" explanation (#516)",
          "author_name": "Paul Razvan Berg",
          "author_login": "PaulRBerg",
          "committed_at": "2023-09-14T02:14:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "762b35dad38050e2a8c58128ba02e5c93f97142f",
          "body": "…n (#511)\n\nThe mint transaction is no longer allowed to create coin outputs, and\r\ninstead performs an intrinsic contract balance increase.\r\n\r\nThis is lighterweight compared to using a script transaction as a\r\ncoinbase, as no VM execution needs to occur. This prevents dust\r\naccumulation of low-value coinbase coin outputs compared to the previous\r\ndesign.\r\n\r\n---------\r\n\r\nCo-authored-by: Green Baneling <XgreenX9999@gmail.com>\r\nCo-authored-by: Hannes Karppila <hannes.karppila@gmail.com>",
          "is_bot": false,
          "headline": "Change mint tx format and coinbase rules to mitigate dust accumulatio…",
          "author_name": "Brandon Kite",
          "author_login": "Voxelot",
          "committed_at": "2023-08-28T17:48:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b1c5dccec7277cdfaebf5ee1c0aff40e463288e",
          "body": null,
          "is_bot": false,
          "headline": "`ecr` opcode is no longer supported (#513)",
          "author_name": "Braqzen",
          "author_login": "Braqzen",
          "committed_at": "2023-08-24T17:23:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b805991bf022337a06e5ca76f09665c57e032a3",
          "body": null,
          "is_bot": false,
          "headline": "update docs CI (#507)",
          "author_name": "Sarah Schwartz",
          "author_login": "sarahschwartz",
          "committed_at": "2023-08-07T21:47:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b241dc9c39be62a43af477bd34c79abd6038cecf",
          "body": "### Abstract\r\n\r\nThis PR introduces granular asset minting which would enable sub\r\nidentifiers to be included at asset creation. These sub identifiers can\r\ninclude important metadata and be used to enable native level NFTs.\r\n\r\n**This adds:**\r\n- A new asset ID construction (which incorporates the cont\n[…]\nbs/fuel-indexer/issues/1012\r\n- https://github.com/FuelLabs/sway/pull/4651\r\n\r\n---------\r\n\r\nCo-authored-by: Brandon Kite <brandonkite92@gmail.com>\r\nCo-authored-by: Green Baneling <XgreenX9999@gmail.com>",
          "is_bot": false,
          "headline": "Granular Asset Minting (#491)",
          "author_name": "Nick",
          "author_login": "SilentCicero",
          "committed_at": "2023-08-07T21:40:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "117651517d08432e8a2d14486b0f54b3baf56b9d",
          "body": "The configuration value for it was fixed to `MEM_MAX_ACCESS_SIZE =\r\nVM_MAX_RAM`. The rule against exceeding `VM_MAX_RAM` always triggers\r\nfirst. See\r\nhttps://github.com/FuelLabs/fuel-vm/pull/511#discussion_r1276819690 and\r\nthe PR in general for the removal from `fuel-vm`.",
          "is_bot": false,
          "headline": "Remove unused MEM_MAX_ACCESS_SIZE (#508)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-08-03T21:06:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7b9da6ede906fbe69e8766f5ed7c00c24aa3af6",
          "body": "Causes this issue https://github.com/FuelLabs/sway/issues/4828",
          "is_bot": false,
          "headline": "Do not restore $hp when returning from a context (#506)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-07-26T20:13:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e29fcd9267fe192a8472ed7a9333a8218b2ed827",
          "body": "Related issues:\r\n- https://github.com/FuelLabs/fuel-vm/issues/501#issue-1792237720\r\n\r\nThis PR gives the Fuel specs its own Merkle tree specification, and\r\nremoves links to the archived Celestia spec. This gives Fuel ownership\r\nover its own Merkle tree specification and allows us to adapt it to our\r\n\n[…]\nf format.\r\n\r\nLastly, this PR removes the specification for the binary Merkle sum tree\r\n(BMST). The BMST is currently not supported by Fuel and does not fall\r\nunder the Fuel specification at this time.",
          "is_bot": false,
          "headline": "docs: Add Merkle tree specs to cryptographic primitives (#504)",
          "author_name": "Brandon Vrooman",
          "author_login": null,
          "committed_at": "2023-07-14T04:19:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6d93912004de826c858abe375fa3969c541c6047",
          "body": null,
          "is_bot": false,
          "headline": "Add scattered push/pop operations (#499)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-07-12T16:24:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cec6e3781249053a65420355dfa438375d8cdceb",
          "body": "### Abstract\r\nAdd additional signature recovery operations for Edwards 25519 and\r\nSecp256r1 (or P256) and renames `ERC` to `ECK1` for consistency.\r\n\r\n### Opcodes\r\n- `ECK1` for [Secp256k1](https://en.bitcoin.it/wiki/Secp256k1) signature\r\nrecovery (non recoverable compressed signature)\r\n- `ECR1` for [\n[…]\nsecp256r1)\r\nsignature recovery (non recoverable compressed signature)\r\n- `ED19` for [ED25519](https://ed25519.cr.yp.to/) verification.\r\n\r\n---------\r\n\r\nCo-authored-by: Voxelot <brandonkite92@gmail.com>",
          "is_bot": false,
          "headline": "Add ED25519 and Secp256r1 (#484)",
          "author_name": "Nick",
          "author_login": "SilentCicero",
          "committed_at": "2023-07-12T03:36:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7310128720bb17621d6b4cb6cf8ff251fd39fc1d",
          "body": "The opcode mnemonics were incorrect. The correct ones were always used\r\nin fuel-vm. The semantics and all other details are correct.",
          "is_bot": false,
          "headline": "Use correct mnemonics for jnef and jneb instructions (#503)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-07-11T08:12:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "714cc7d03faacf703dc739930d9aad241e7e005b",
          "body": null,
          "is_bot": false,
          "headline": "Fix broken links (#500)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-07-10T22:56:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eec1bb883e2c416be24a9c805fc79702e1fa9f93",
          "body": "The `WQOP` opcode interpretation of the immediate value currently refers\r\nto itself. This should instead refer to the `WDOP` opcode which has the\r\ndefinition for the interpretation.\r\n\r\nCo-authored-by: bitzoic <bitzoic.eth@gmail.com>",
          "is_bot": false,
          "headline": "Fix typo in instruction-set.md (#502)",
          "author_name": "Cameron Carstens",
          "author_login": "bitzoic",
          "committed_at": "2023-07-10T14:06:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1cc31e71fbbe55c8c53c886e58f366faf19d8bfd",
          "body": "Related to https://github.com/FuelLabs/fuel-vm/pull/503",
          "is_bot": false,
          "headline": "Clarify the gas forwarded field in call receipt (#501)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-07-10T11:58:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0cb3920646b1769ce5ced1197d6f45d9d22ed6f",
          "body": "This PR helps to standardize the Specs docs with other Fuel\r\ndocumentation and fix issues in the development of the Fuel docs hub.\r\n\r\n- removes any nested subfolders in the navigation\r\n- renames folders & files to match navigation\r\n- updates links as needed for new structure/names\r\n- forwards old urls to new ones",
          "is_bot": false,
          "headline": "refactor: remove nested folders in nav (#497)",
          "author_name": "sarahschwartz",
          "author_login": "sarahschwartz",
          "committed_at": "2023-06-23T16:37:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "927f194f4423ba42669e5bcf6c9a3e02f51aa2d4",
          "body": "We use SMT in two places for contract balances and contract state. While\r\nit is not a huge problem for balances SMT root(because `AssetId` is\r\nrandomly derived from `sha256`), it is a massive problem for contract\r\nstate root. Each leaf key is specified by the user/developer for the\r\nstorage key-valu\n[…]\ncause of the randomness\r\nleafs are distributed in a better way preventing a huge number of empty\r\nside nodes.\r\n\r\nThis PR proposes to hash each leaf key of any SMT to prevent any kind of\r\nmanipulation.",
          "is_bot": false,
          "headline": "Hash the SMT leaf key to prevent tree structure manipulation (#496)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2023-06-12T22:30:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "57260c70639b6cb5e00f745e51d750d5e653d6cd",
          "body": "Part of the https://github.com/FuelLabs/fuel-specs/pull/466",
          "is_bot": false,
          "headline": "Minor fix of the vm initialization description (#493)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2023-06-12T13:28:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "365b07614a940f397ff72f657203336fccc2d531",
          "body": null,
          "is_bot": false,
          "headline": "Add link to Predicate page (#494)",
          "author_name": "David Mihal",
          "author_login": "dmihal",
          "committed_at": "2023-06-12T11:56:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cfdc0b5ae6b267ddb5ef5ebb64fcb6185c65db99",
          "body": "Actualize the specification for inputs with the\r\nhttps://github.com/FuelLabs/fuel-vm/pull/386.\r\n- Moved `predicateGasUsed` into the static section before dynamic data.\r\n- During execution, `TxPointer` and `predicateGasUsed` are set, but\r\nduring the predicate phase, they are empty.\r\n\r\n---------\r\n\r\nCo-authored-by: Brandon Vrooman <brandon.vrooman@gmail.com>",
          "is_bot": false,
          "headline": "Actualize the specification for inputs with the implementation (#487)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2023-05-25T16:35:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a937dac06f6eda0905c2e3bcbee6038d39748b32",
          "body": "Calculating the merkle root of across every instruction pair is turning\r\nout to be quite cost prohibitive, as noted in this issue:\r\nhttps://github.com/FuelLabs/fuel-vm/issues/385\r\n\r\nIncreasing the leaf size when computing a code root drastically reduces\r\nthe sha256 overhead. I assume the original de\n[…]\nexecution.\r\n\r\nI also made a benchmarking framework to experiment with various leaf\r\nsizes, making it easy to verify the improvement due to leaf size\r\nincreases: https://github.com/Voxelot/merkle-bench",
          "is_bot": false,
          "headline": "increase code root merkle leaf size to 16KiB (#476)",
          "author_name": "Brandon Kite",
          "author_login": "Voxelot",
          "committed_at": "2023-05-02T03:09:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6786e8a9e51237bf856e5c2007c13742420784fa",
          "body": "Bit shift to right was documented to set `$of` in case of underflow.\r\nThis behavior is both unintuitive and different from the current\r\nimplementation.",
          "is_bot": false,
          "headline": "Bitshift should discard overflow (#486)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-05-01T19:47:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9784735daa0556bcc8e43069348d7a65f2467438",
          "body": "Progress towards https://github.com/FuelLabs/fuel-specs/issues/478.\r\nImplementation PR: https://github.com/FuelLabs/fuel-vm/pull/424\r\n\r\nThis PR adds instructions for handling wideint types, specifically\r\nmemory-stored 128- and 256-bit unsigned integers. The following opcodes\r\nare added:\r\n\r\n* MLDV - \n[…]\nommitted to backwards compatibility of the current ops even now.\r\n\r\n---------\r\n\r\nCo-authored-by: Mitch Martin <111294749+mitch-fuel@users.noreply.github.com>\r\nCo-authored-by: Tom <tomrgowan@gmail.com>",
          "is_bot": false,
          "headline": "Wideint instructions (#483)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-04-28T18:24:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5c78c43bd88a2545ae7786809c08957d6eb4b0c1",
          "body": "Clarify the purpose of flags. The current wording has caused by some\r\nconfusion, for instance\r\nhttps://github.com/FuelLabs/fuel-vm/pull/424#discussion_r1178550425.",
          "is_bot": false,
          "headline": "Clarify flag behaviour regarding panics (#485)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-04-27T23:07:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "813faf0b94bc45cd5e9b55826b57831d27bed394",
          "body": "The previous description was somewhat ambiguous about whether the `CB`\r\nopcode returns the address for the block producer or it's coinbase\r\naddress (which can be a distinct cold wallet for collecting fees).",
          "is_bot": false,
          "headline": "clarify the description of the coinbase instruction (#477)",
          "author_name": "Brandon Kite",
          "author_login": "Voxelot",
          "committed_at": "2023-04-05T23:10:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee158347e211409e4b13d58efc64e702f7b9be88",
          "body": "Predicates previously used the tx.gasLimit for initialization but could\r\nnever be more than MAX_GAS_PER_PREDICATE so they should also be\r\ninitialized to that value if tx.gasLimit is greater than\r\nMAX_GAS_PER_PREDICATE.",
          "is_bot": false,
          "headline": "Update gas initialization for predicate estimation (#474)",
          "author_name": "Mitch Martin",
          "author_login": null,
          "committed_at": "2023-04-04T17:38:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1ff912fb89b656af8dfdd7562e1f56068b89971",
          "body": "See https://github.com/FuelLabs/fuel-specs/issues/430 for discussion on\r\nthis\r\n\r\nFuelVM implementation PR: https://github.com/FuelLabs/fuel-vm/pull/381",
          "is_bot": false,
          "headline": "Add relative jump opcodes (#470)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-03-20T23:11:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4eb0e8dd5ae86f8b36c8082cb1564fba50df5ed",
          "body": "FuelVM now supports unlimited nested calls, so this limit is removed.\r\n\r\nSee  https://github.com/FuelLabs/fuel-vm/pull/399",
          "is_bot": false,
          "headline": "Remove nested call limit (#473)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-03-20T23:10:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70774baa1b85ecdda2d00613fbd7c66bfb9af358",
          "body": "The specs say that the `Nonce` is a 32 bytes array but the current code\r\nuses `Word`. In the follow-up PR in `fuel-vm` we will replace `Word`\r\nwith a 32-byte array.\r\n\r\n---------\r\n\r\nCo-authored-by: Voxelot <brandonkite92@gmail.com>",
          "is_bot": false,
          "headline": "Make `Nonce` as 32 bytes array (#472)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2023-03-18T13:25:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8257ff4108c4621b155ff54fa8e9a107f45ce7a8",
          "body": "… true (#469)\n\nThis is the current VM bevior",
          "is_bot": false,
          "headline": "Conditional jumps only check for address validity if the condition is…",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-03-17T16:11:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94953e699ff55775752172f029cb9cec9cd64912",
          "body": "closes: https://github.com/FuelLabs/fuel-specs/issues/346\r\n\r\nAdds the ability to perform a dynamic cfe",
          "is_bot": false,
          "headline": "add dynamic cfe & cfs (#471)",
          "author_name": "Brandon Kite",
          "author_login": "Voxelot",
          "committed_at": "2023-03-17T00:50:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e02d131a13d58b86a9b79a44fe736a41d2f01e86",
          "body": "Accessing invalid memory regions panics, but this was not documented.",
          "is_bot": false,
          "headline": "Document the panic conditions of logd (#468)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-03-15T23:14:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51de8eab8eeaa83f2d9a58877ea30ed0a4a16204",
          "body": "This follow-up PR removes the `MessageId` from the receipt. Previously\r\nwe removed it from the `Input` in the\r\nhttps://github.com/FuelLabs/fuel-specs/pull/443",
          "is_bot": false,
          "headline": "Remove the `messageId` field from the MessageOut Receipt (#467)",
          "author_name": "Green Baneling",
          "author_login": "xgreenx",
          "committed_at": "2023-03-13T22:19:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2821d155a146323ac64584cc587cd206da6741f1",
          "body": "… it (#466)\n\nSee https://github.com/FuelLabs/fuel-vm/pull/377",
          "is_bot": false,
          "headline": "Make $hp point to the first available byte, instead of the one before…",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-03-10T21:06:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "884701ac8103caccf468cd8dfca7cbaf770a3157",
          "body": "Closes #340\r\n\r\nRather than adding chain ID as a new field to the transaction, this\r\napproach includes chain id as part of our identifier hashing procedures.\r\nThis means predicates, contracts and transactions will be innately chain\r\nspecific, preventing cross-chain replay.\r\n\r\nConsider the scenario wh\n[…]\ne current bridging designs, this should already be covered for the\r\nmajority of use-cases.\r\n\r\n---------\r\n\r\nCo-authored-by: ControlCplusControlV <44706811+ControlCplusControlV@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Chain Identifier (#462)",
          "author_name": "Brandon Kite",
          "author_login": "Voxelot",
          "committed_at": "2023-03-10T17:28:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "03d4f4811c5942de265f6222aa94398e073e229f",
          "body": "This updates the description of script gas to explicitly mention that it\r\nincludes predicate gas costs and removes comments mentioning that gas is\r\nnot charged for predicates.\r\n\r\nCloses https://github.com/FuelLabs/fuel-specs/issues/440\r\n\r\n---------\r\n\r\nCo-authored-by: Brandon Kite <brandonkite92@gmail.com>\r\nCo-authored-by: Green Baneling <XgreenX9999@gmail.com>",
          "is_bot": false,
          "headline": "Changes for predicate gas metering (#448)",
          "author_name": "Mitch Martin",
          "author_login": null,
          "committed_at": "2023-03-06T18:04:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d7c95a588948f69daf2cbd9008620481f17e0f6",
          "body": "See https://github.com/FuelLabs/fuel-vm/pull/370",
          "is_bot": false,
          "headline": "Add nested call limit (#465)",
          "author_name": "Hannes Karppila",
          "author_login": "Dentosal",
          "committed_at": "2023-03-01T20:43:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8805f192da944956f63a50bedf798686ea3bd29e",
          "body": "Fixes #322",
          "is_bot": false,
          "headline": "Make `$hp` point to immediately after usable memory. (#464)",
          "author_name": "John Adler",
          "author_login": "adlerjohn",
          "committed_at": "2023-03-01T15:01:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 1,
      "commits_last_year": 4,
      "latest_release_at": "2023-12-28T18:13:54Z",
      "latest_release_tag": "v0.5.0",
      "releases_from_tags": false,
      "days_since_last_push": 102,
      "active_weeks_last_year": 4,
      "days_since_latest_release": 940,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 704,
      "stars": 1782,
      "watchers": 40,
      "fork_history": {
        "days": [
          {
            "date": "2022-02-11",
            "count": 1
          },
          {
            "date": "2022-05-21",
            "count": 1
          },
          {
            "date": "2022-06-01",
            "count": 1
          },
          {
            "date": "2022-07-08",
            "count": 1
          },
          {
            "date": "2022-07-14",
            "count": 1
          },
          {
            "date": "2022-09-14",
            "count": 1
          },
          {
            "date": "2022-10-16",
            "count": 1
          },
          {
            "date": "2022-11-07",
            "count": 1
          },
          {
            "date": "2022-11-30",
            "count": 1
          },
          {
            "date": "2022-12-11",
            "count": 1
          },
          {
            "date": "2023-04-01",
            "count": 1
          },
          {
            "date": "2023-04-03",
            "count": 1
          },
          {
            "date": "2023-04-11",
            "count": 1
          },
          {
            "date": "2023-06-01",
            "count": 1
          },
          {
            "date": "2023-06-20",
            "count": 1
          },
          {
            "date": "2023-06-27",
            "count": 1
          },
          {
            "date": "2023-06-28",
            "count": 1
          },
          {
            "date": "2023-07-02",
            "count": 1
          },
          {
            "date": "2023-07-03",
            "count": 3
          },
          {
            "date": "2023-07-04",
            "count": 2
          },
          {
            "date": "2023-07-06",
            "count": 2
          },
          {
            "date": "2023-07-08",
            "count": 1
          },
          {
            "date": "2023-07-11",
            "count": 2
          },
          {
            "date": "2023-07-13",
            "count": 2
          },
          {
            "date": "2023-07-14",
            "count": 1
          },
          {
            "date": "2023-07-16",
            "count": 2
          },
          {
            "date": "2023-07-18",
            "count": 1
          },
          {
            "date": "2023-07-19",
            "count": 1
          },
          {
            "date": "2023-07-20",
            "count": 1
          },
          {
            "date": "2023-07-23",
            "count": 1
          },
          {
            "date": "2023-07-26",
            "count": 1
          },
          {
            "date": "2023-07-27",
            "count": 10
          },
          {
            "date": "2023-07-28",
            "count": 2
          },
          {
            "date": "2023-07-29",
            "count": 1
          },
          {
            "date": "2023-07-30",
            "count": 1
          },
          {
            "date": "2023-07-31",
            "count": 3
          },
          {
            "date": "2023-08-01",
            "count": 4
          },
          {
            "date": "2023-08-03",
            "count": 2
          },
          {
            "date": "2023-08-04",
            "count": 2
          },
          {
            "date": "2023-08-05",
            "count": 1
          },
          {
            "date": "2023-08-11",
            "count": 1
          },
          {
            "date": "2023-08-16",
            "count": 1
          },
          {
            "date": "2023-08-19",
            "count": 1
          },
          {
            "date": "2023-08-20",
            "count": 1
          },
          {
            "date": "2023-08-24",
            "count": 1
          },
          {
            "date": "2023-08-25",
            "count": 1
          },
          {
            "date": "2023-09-02",
            "count": 5
          },
          {
            "date": "2023-09-04",
            "count": 1
          },
          {
            "date": "2023-09-07",
            "count": 1
          },
          {
            "date": "2023-09-11",
            "count": 1
          },
          {
            "date": "2023-09-23",
            "count": 2
          },
          {
            "date": "2023-09-29",
            "count": 2
          },
          {
            "date": "2023-10-05",
            "count": 1
          },
          {
            "date": "2023-10-06",
            "count": 1
          },
          {
            "date": "2023-10-09",
            "count": 16
          },
          {
            "date": "2023-10-10",
            "count": 27
          },
          {
            "date": "2023-10-11",
            "count": 5
          },
          {
            "date": "2023-10-12",
            "count": 1
          },
          {
            "date": "2023-10-13",
            "count": 1
          },
          {
            "date": "2023-10-17",
            "count": 2
          },
          {
            "date": "2023-10-20",
            "count": 2
          },
          {
            "date": "2023-10-22",
            "count": 1
          },
          {
            "date": "2023-10-24",
            "count": 2
          },
          {
            "date": "2023-10-26",
            "count": 1
          },
          {
            "date": "2023-10-27",
            "count": 2
          },
          {
            "date": "2023-11-07",
            "count": 1
          },
          {
            "date": "2023-11-10",
            "count": 1
          },
          {
            "date": "2023-11-12",
            "count": 1
          },
          {
            "date": "2023-11-14",
            "count": 1
          },
          {
            "date": "2023-11-16",
            "count": 1
          },
          {
            "date": "2023-11-18",
            "count": 1
          },
          {
            "date": "2023-11-19",
            "count": 3
          },
          {
            "date": "2023-11-20",
            "count": 1
          },
          {
            "date": "2023-11-22",
            "count": 1
          },
          {
            "date": "2023-11-24",
            "count": 1
          },
          {
            "date": "2023-11-25",
            "count": 1
          },
          {
            "date": "2023-11-26",
            "count": 2
          },
          {
            "date": "2023-11-27",
            "count": 1
          },
          {
            "date": "2023-11-28",
            "count": 1
          },
          {
            "date": "2023-12-01",
            "count": 1
          },
          {
            "date": "2023-12-02",
            "count": 1
          },
          {
            "date": "2023-12-06",
            "count": 3
          },
          {
            "date": "2023-12-12",
            "count": 2
          },
          {
            "date": "2023-12-14",
            "count": 2
          },
          {
            "date": "2023-12-16",
            "count": 1
          },
          {
            "date": "2023-12-17",
            "count": 2
          },
          {
            "date": "2023-12-18",
            "count": 1
          },
          {
            "date": "2023-12-20",
            "count": 2
          },
          {
            "date": "2023-12-25",
            "count": 1
          },
          {
            "date": "2024-01-04",
            "count": 1
          },
          {
            "date": "2024-01-14",
            "count": 1
          },
          {
            "date": "2024-01-15",
            "count": 1
          },
          {
            "date": "2024-01-20",
            "count": 1
          },
          {
            "date": "2024-01-28",
            "count": 1
          },
          {
            "date": "2024-02-09",
            "count": 2
          },
          {
            "date": "2024-02-13",
            "count": 5
          },
          {
            "date": "2024-02-14",
            "count": 1
          },
          {
            "date": "2024-02-15",
            "count": 2
          },
          {
            "date": "2024-02-16",
            "count": 1
          },
          {
            "date": "2024-02-18",
            "count": 2
          },
          {
            "date": "2024-02-19",
            "count": 1
          },
          {
            "date": "2024-02-20",
            "count": 1
          },
          {
            "date": "2024-02-21",
            "count": 3
          },
          {
            "date": "2024-02-22",
            "count": 1
          },
          {
            "date": "2024-02-25",
            "count": 6
          },
          {
            "date": "2024-02-26",
            "count": 49
          },
          {
            "date": "2024-02-27",
            "count": 16
          },
          {
            "date": "2024-02-28",
            "count": 8
          },
          {
            "date": "2024-02-29",
            "count": 5
          },
          {
            "date": "2024-03-01",
            "count": 16
          },
          {
            "date": "2024-03-02",
            "count": 5
          },
          {
            "date": "2024-03-03",
            "count": 11
          },
          {
            "date": "2024-03-04",
            "count": 30
          },
          {
            "date": "2024-03-05",
            "count": 51
          },
          {
            "date": "2024-03-06",
            "count": 31
          },
          {
            "date": "2024-03-07",
            "count": 11
          },
          {
            "date": "2024-03-08",
            "count": 15
          },
          {
            "date": "2024-03-09",
            "count": 13
          },
          {
            "date": "2024-03-10",
            "count": 10
          },
          {
            "date": "2024-03-11",
            "count": 2
          },
          {
            "date": "2024-03-12",
            "count": 7
          },
          {
            "date": "2024-03-13",
            "count": 10
          },
          {
            "date": "2024-03-14",
            "count": 3
          },
          {
            "date": "2024-03-15",
            "count": 2
          },
          {
            "date": "2024-03-16",
            "count": 2
          },
          {
            "date": "2024-03-17",
            "count": 3
          },
          {
            "date": "2024-03-19",
            "count": 2
          },
          {
            "date": "2024-03-20",
            "count": 16
          },
          {
            "date": "2024-03-21",
            "count": 4
          },
          {
            "date": "2024-03-22",
            "count": 3
          },
          {
            "date": "2024-03-23",
            "count": 1
          },
          {
            "date": "2024-03-25",
            "count": 1
          },
          {
            "date": "2024-03-28",
            "count": 2
          },
          {
            "date": "2024-03-30",
            "count": 1
          },
          {
            "date": "2024-04-01",
            "count": 2
          },
          {
            "date": "2024-04-02",
            "count": 1
          },
          {
            "date": "2024-04-03",
            "count": 1
          },
          {
            "date": "2024-04-04",
            "count": 5
          },
          {
            "date": "2024-04-05",
            "count": 2
          },
          {
            "date": "2024-04-06",
            "count": 3
          },
          {
            "date": "2024-04-07",
            "count": 1
          },
          {
            "date": "2024-04-13",
            "count": 1
          },
          {
            "date": "2024-04-18",
            "count": 2
          },
          {
            "date": "2024-04-19",
            "count": 4
          },
          {
            "date": "2024-04-20",
            "count": 2
          },
          {
            "date": "2024-04-22",
            "count": 29
          },
          {
            "date": "2024-04-23",
            "count": 1
          },
          {
            "date": "2024-04-24",
            "count": 1
          },
          {
            "date": "2024-04-25",
            "count": 1
          },
          {
            "date": "2024-04-28",
            "count": 4
          },
          {
            "date": "2024-04-29",
            "count": 1
          },
          {
            "date": "2024-05-04",
            "count": 1
          },
          {
            "date": "2024-05-06",
            "count": 3
          },
          {
            "date": "2024-05-07",
            "count": 4
          },
          {
            "date": "2024-05-08",
            "count": 3
          },
          {
            "date": "2024-05-13",
            "count": 1
          },
          {
            "date": "2024-05-17",
            "count": 1
          },
          {
            "date": "2024-05-18",
            "count": 1
          },
          {
            "date": "2024-05-21",
            "count": 1
          },
          {
            "date": "2024-05-23",
            "count": 2
          },
          {
            "date": "2024-05-27",
            "count": 1
          },
          {
            "date": "2024-05-28",
            "count": 1
          },
          {
            "date": "2024-06-01",
            "count": 1
          },
          {
            "date": "2024-06-02",
            "count": 2
          },
          {
            "date": "2024-06-03",
            "count": 3
          },
          {
            "date": "2024-06-05",
            "count": 2
          },
          {
            "date": "2024-06-06",
            "count": 1
          },
          {
            "date": "2024-06-09",
            "count": 3
          },
          {
            "date": "2024-06-10",
            "count": 5
          },
          {
            "date": "2024-06-11",
            "count": 4
          },
          {
            "date": "2024-06-12",
            "count": 1
          },
          {
            "date": "2024-06-15",
            "count": 2
          },
          {
            "date": "2024-06-17",
            "count": 1
          },
          {
            "date": "2024-06-19",
            "count": 1
          },
          {
            "date": "2024-06-21",
            "count": 1
          },
          {
            "date": "2024-06-22",
            "count": 1
          },
          {
            "date": "2024-06-26",
            "count": 2
          },
          {
            "date": "2024-06-29",
            "count": 1
          },
          {
            "date": "2024-06-30",
            "count": 1
          },
          {
            "date": "2024-07-01",
            "count": 1
          },
          {
            "date": "2024-07-03",
            "count": 2
          },
          {
            "date": "2024-07-05",
            "count": 7
          },
          {
            "date": "2024-07-08",
            "count": 2
          },
          {
            "date": "2024-07-19",
            "count": 2
          },
          {
            "date": "2024-07-25",
            "count": 2
          },
          {
            "date": "2024-07-26",
            "count": 1
          },
          {
            "date": "2024-07-27",
            "count": 1
          },
          {
            "date": "2024-08-04",
            "count": 1
          },
          {
            "date": "2024-08-27",
            "count": 1
          },
          {
            "date": "2024-09-02",
            "count": 2
          },
          {
            "date": "2024-09-07",
            "count": 1
          },
          {
            "date": "2024-09-14",
            "count": 1
          },
          {
            "date": "2024-09-19",
            "count": 1
          },
          {
            "date": "2024-09-30",
            "count": 1
          },
          {
            "date": "2024-10-22",
            "count": 1
          },
          {
            "date": "2024-10-29",
            "count": 1
          },
          {
            "date": "2024-12-11",
            "count": 2
          },
          {
            "date": "2024-12-12",
            "count": 2
          },
          {
            "date": "2024-12-16",
            "count": 2
          },
          {
            "date": "2025-01-11",
            "count": 1
          },
          {
            "date": "2025-01-21",
            "count": 1
          },
          {
            "date": "2025-04-29",
            "count": 1
          },
          {
            "date": "2025-11-30",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 687,
        "total_forks": 704
      },
      "star_history": null,
      "open_issues_and_prs": 52
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": null,
      "source_files_sampled": 0,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [],
      "advisories": {
        "error": "No resolved dependencies to assess",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [],
        "collected": true,
        "truncated": false,
        "total_count": 0,
        "direct_count": 0,
        "indirect_count": 0
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 5,
        "merged_prs": 368,
        "open_issues": 47,
        "closed_ratio": 0.803,
        "closed_issues": 191,
        "closed_unmerged_prs": 21
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "adlerjohn",
          "commits": 258,
          "avatar_url": "https://avatars.githubusercontent.com/u/3290375?v=4"
        },
        {
          "type": "User",
          "login": "Dentosal",
          "commits": 47,
          "avatar_url": "https://avatars.githubusercontent.com/u/2204863?v=4"
        },
        {
          "type": "User",
          "login": "shahankhatch",
          "commits": 28,
          "avatar_url": "https://avatars.githubusercontent.com/u/14043935?v=4"
        },
        {
          "type": "User",
          "login": "Voxelot",
          "commits": 19,
          "avatar_url": "https://avatars.githubusercontent.com/u/794823?v=4"
        },
        {
          "type": "User",
          "login": "xgreenx",
          "commits": 17,
          "avatar_url": "https://avatars.githubusercontent.com/u/18346821?v=4"
        },
        {
          "type": "User",
          "login": "mohammadfawaz",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/59666792?v=4"
        },
        {
          "type": "User",
          "login": "pixelcircuits",
          "commits": 9,
          "avatar_url": "https://avatars.githubusercontent.com/u/28695548?v=4"
        },
        {
          "type": "User",
          "login": "iqdecay",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/32623452?v=4"
        },
        {
          "type": "User",
          "login": "wolflo",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/33909953?v=4"
        },
        {
          "type": "User",
          "login": "digorithm",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/3484025?v=4"
        }
      ],
      "contributors_sampled": 36,
      "top_contributor_share": 0.567
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "docs.yml",
        "gh-pages.yml",
        "mdbook.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 4,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 1,
            "reason": "4 out of 30 merged PRs checked by a CI test -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 3 contributing companies or organizations -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "dd11147b8d7f0ba9d6ae3bbdab8909a4027619f6",
        "ran_at": "2026-07-26T07:06:15Z",
        "aggregate_score": 4.4,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-24T20:21:32Z",
      "oldest_open_prs": [
        {
          "number": 492,
          "created_at": "2023-06-06T10:14:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 498,
          "created_at": "2023-06-20T21:14:47Z",
          "last_comment_at": "2023-07-07T15:30:26Z",
          "last_comment_author": "SilentCicero"
        },
        {
          "number": 531,
          "created_at": "2023-11-04T14:52:39Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 579,
          "created_at": "2024-05-02T12:23:45Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 639,
          "created_at": "2025-09-24T17:16:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-04-14T08:53:59Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 40,
          "created_at": "2021-01-29T21:00:05Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 88,
          "created_at": "2021-02-18T16:05:59Z",
          "last_comment_at": "2021-02-18T20:43:45Z",
          "last_comment_author": "adlerjohn"
        },
        {
          "number": 90,
          "created_at": "2021-02-20T21:09:50Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 111,
          "created_at": "2021-02-23T15:56:30Z",
          "last_comment_at": "2021-02-23T16:12:32Z",
          "last_comment_author": "SilentCicero"
        },
        {
          "number": 119,
          "created_at": "2021-02-27T16:23:48Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 146,
          "created_at": "2021-03-25T14:24:54Z",
          "last_comment_at": "2021-03-31T21:12:50Z",
          "last_comment_author": "SilentCicero"
        },
        {
          "number": 148,
          "created_at": "2021-04-05T22:51:15Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 231,
          "created_at": "2021-12-01T18:42:03Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 242,
          "created_at": "2021-12-10T01:38:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 271,
          "created_at": "2022-01-17T03:21:05Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 280,
          "created_at": "2022-02-06T18:10:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 320,
          "created_at": "2022-05-23T22:12:43Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 358,
          "created_at": "2022-06-20T19:00:11Z",
          "last_comment_at": "2022-06-20T19:04:42Z",
          "last_comment_author": "mohammadfawaz"
        },
        {
          "number": 362,
          "created_at": "2022-06-21T20:17:54Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 404,
          "created_at": "2022-09-12T21:14:35Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 412,
          "created_at": "2022-10-04T19:01:29Z",
          "last_comment_at": "2022-12-09T05:05:41Z",
          "last_comment_author": "Voxelot"
        },
        {
          "number": 429,
          "created_at": "2022-11-05T19:02:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 436,
          "created_at": "2022-11-30T16:31:22Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 451,
          "created_at": "2023-02-04T03:56:30Z",
          "last_comment_at": "2023-02-16T23:37:06Z",
          "last_comment_author": "otrho"
        },
        {
          "number": 455,
          "created_at": "2023-02-17T18:59:44Z",
          "last_comment_at": "2023-06-19T11:30:52Z",
          "last_comment_author": "SilentCicero"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/FuelLabs/fuel-specs",
    "host": "github.com",
    "name": "fuel-specs",
    "owner": "FuelLabs"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 54,
      "inputs": {
        "security": 44,
        "vitality": 29,
        "community": 72,
        "governance": 69,
        "engineering": 56
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "critical",
        "name": "Vitality",
        "value": 29,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "critical",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 19,
            "inputs": {
              "commits_last_year": 4,
              "human_commit_share": 1,
              "days_since_last_push": 102,
              "active_weeks_last_year": 4
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 102 days ago",
                "points": 9.9,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 102
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "4/52 weeks with commits",
                "points": 2.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 4
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "4 commits in the last year",
                "points": 6.3,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "at_risk",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 44,
            "inputs": {
              "releases_count": 1,
              "latest_release_tag": "v0.5.0",
              "releases_from_tags": false,
              "days_since_latest_release": 940,
              "mean_days_between_releases": null
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "1 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 940 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 940
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "cadence unknown (single release)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence_unknown",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 102,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 102 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 102
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 72,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "forks": 704,
              "stars": 1782,
              "watchers": 40,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1,782 stars",
                "points": 52.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1782
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "704 forks",
                "points": 23.7,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 704
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "40 watchers",
                "points": 8.8,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 40
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 69,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 42,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 36,
              "top_contributor_share": 0.567
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 57% of commits",
                "points": 9.7,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 57
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "36 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 36
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 3 contributing companies or organizations -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 89,
            "inputs": {
              "merged_prs": 368,
              "open_issues": 47,
              "closed_issues": 191,
              "issue_closed_ratio": 0.803,
              "closed_unmerged_prs": 21
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "80% of issues closed",
                "points": 37.5,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 80
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "368/389 decided PRs merged",
                "points": 36.2,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 368,
                      "decided": 389
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "followers": 6521,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "FuelLabs",
              "public_repos": 208,
              "account_age_days": 2490
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "6,521 followers of FuelLabs",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 6521,
                      "login": "FuelLabs"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "208 public repos, account ~6 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 208
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 6
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 56,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "4 out of 30 merged PRs checked by a CI test -- score normalized to 1",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [
                "fuel",
                "blockchain",
                "fuelvm"
              ],
              "has_wiki": false,
              "homepage": "https://fuellabs.github.io/fuel-specs/master",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://fuellabs.github.io/fuel-specs/master",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "3 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 44,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 44,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 4.4
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "4 out of 30 merged PRs checked by a CI test -- score normalized to 1",
                "points": 0.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 3 contributing companies or organizations -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 7
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "at_risk",
        "name": "AI Readiness",
        "value": 30,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.97,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "97 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 97,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "critical",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 22,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Language breakdown unavailable",
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-26T07:06:41.622026Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/f/FuelLabs/fuel-specs.svg",
  "full_name": "FuelLabs/fuel-specs",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v1.13.0、模式 v0.27.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计.