Public record
Software health reportschema 0.27.0 · metrics 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 stars⑂ 704 forkssince Aug 2020View on GitHub ↗

FuelLabs/fuel-specs holds a health index of 54 out of 100, placing it in the Moderate band. It scores highest on Community & Adoption (72/100) and lowest on Vitality (29/100). It was last updated 102 days ago. A single contributor accounts for most of its recent work.

54
overall / 100
Moderate

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

54
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

Fuel LabsOrganization
6,521 followers208 public repossince Sep 2019

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

29Critical · 22% of overall
How it's scored
9.9/36Push recency — last push 102 days ago
2.8/36Commit cadence — 4/52 weeks with commits
6.3/18Commit volume — 4 commits in the last year
0/10OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Inputs used
commits_last_year4
human_commit_share1
days_since_last_push102
active_weeks_last_year4
How it's scored
27/27Ships releases — 1 releases published
0/36Release recency — latest release 940 days ago
12.6/27Release cadence — cadence unknown (single release)
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count1
latest_release_tagv0.5.0
releases_from_tagsno
days_since_latest_release940
mean_days_between_releases
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

72Good · 18% of overall
How it's scored
52.7/60Stars — 1,782 stars
23.7/25Forks — 704 forks
8.8/15Watchers — 40 watchers
Inputs used
forks704
stars1,782
watchers40
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (Apache-2.0)
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateyes

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

69Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
9.7/22.5Commit distribution — top contributor authored 57% of commits
13.5/13.5Contributor breadth — 36 contributors
10/10OpenSSF Scorecard: Contributors — project has 3 contributing companies or organizations -- score normalized to 10
Inputs used
bus_factor1
contributors_sampled36
top_contributor_share0.567
How it's scored
37.5/46.8Issue resolution — 80% of issues closed
36.2/38.3PR acceptance — 368/389 decided PRs merged
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Inputs used
merged_prs368
open_issues47
closed_issues191
issue_closed_ratio0.803
closed_unmerged_prs21
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
25/25Owner reach — 6,521 followers of FuelLabs
25/25Track record — 208 public repos, account ~6 yr old
Inputs used
followers6,521
owner_typeOrganization
is_verified
owner_loginFuelLabs
public_repos208
account_age_days2,490

Engineering Quality

Are baseline engineering and documentation practices in place?

56Moderate · 20% of overall
How it's scored
24/24CI workflows — 3 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
0/6.4.editorconfig
2/20OpenSSF Scorecard: CI-Tests — 4 out of 30 merged PRs checked by a CI test -- score normalized to 1
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentation

65Moderate
How it's scored
30/30README
0/25Documentation directory
15/15Documentation / homepage site — https://fuellabs.github.io/fuel-specs/master
10/10Repository description
10/10Topics — 3 topics
0/10Wiki
Inputs used
topicsfuel, blockchain, fuelvm
has_wikino
homepagehttps://fuellabs.github.io/fuel-specs/master
has_readmeyes
has_docs_dirno
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

44At risk · 16% of overall
How it's scored
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.5License — 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 — no data
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 — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate4.4
Excluded from scoring (no data or not applicable): packaging, signed_releases. Remaining weights renormalized.

AI Readiness

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.

30At risk · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 97 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.97
agent_instruction_files
agent_instruction_max_bytes
How it's scored
0/18One-command bootstrap
22/22Automated tests
0/11Lint / format config
0/11Static type checking
0/10Reproducible environment
0/10Demonstrated agent practice — no agent-authored commits among the last 100
0/8Automated maintenance — no automated dependency updates observed
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfiles
has_dockerfileno
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0

Key facts

1,782GitHub stars
36contributors
4commits, last 12 months
102days since last push
1releases
1bus factor
47open issues
package ecosystems

Data collection warnings

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

More detail

Star and fork history 0 ★ / 704 ⇿
0Stars
704Forks
1Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

01252503755006257506871232022-022024-012025-11
Major 0Minor 1Patch 0

Each point covers 4 days.

OpenSSF Scorecard 4.4 / 10
4.4aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).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
n/aPackagingpackaging 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
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
All dependencies 0

Full resolved dependency set from the GitHub dependency graph: 0 direct and 0 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
Dependency advisories not assessed

Advisory matching could not run for this report: No resolved dependencies to assess

Raw JSON report machine-readable
{
  "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"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statistics.