Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 1.13.0 · 2026-07-26 19:33 UTC

csyonghe / slang

Making it easier to work with shaders

C++ · SlangВласна ліцензія★ 1 зірка⑂ 0 форківз лист. 2017 р.форкПереглянути на GitHub ↗

csyonghe/slang має індекс здоров’я 44 зі 100, що відповідає смузі «У зоні ризику». Найвищий показник — AI Readiness (67/100), найнижчий — Community & Adoption (9/100). Останнє оновлення було 8 днів тому. Більшість нещодавньої роботи виконують 2 учасники.

44
загалом / 100
У зоні ризику

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

44
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

Yong HeОсобистий обліковий запис
203 підписники25 публічних репозиторіївз жовт. 2012 р.

Цей репозиторій належить особистому обліковому запису. Проєкт з єдиним власником несе більший ризик безперервності, ніж підтримуваний організацією.

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

50Помірний · 22% загального індексу
Як обчислюється оцінка
28.8/36Свіжість push — останній push 8 дн. тому
4.8/36Ритм комітів — 7/52 тижнів із комітами
18/18Обсяг комітів — 173 комітів за останній рік
0/10OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Використані вхідні дані
commits_last_year173
human_commit_share1
days_since_last_push8
active_weeks_last_year7

Дисципліна релізів

47У зоні ризику
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 27 релізів
0/36Свіжість релізів — останній реліз 745 дн. тому
19.8/27Ритм релізів — реліз кожні ~112,7 дн.
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Використані вхідні дані
releases_count27
latest_release_tagv0.test.11
releases_from_tagsні
days_since_latest_release745
mean_days_between_releases112,7

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

9Критичний · 18% загального індексу
Як обчислюється оцінка
0/60Зірки — 1 зірок
0/25Форки — 0 форків
0/15Спостерігачі — 0 спостерігачів
Використані вхідні дані
forks0
stars1
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
0/22.5README
16.9/22.5Ліцензія — файл ліцензії наявний, не є визнаною ліцензією
0/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeні
has_licenseні
has_contributingні
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

64Помірний · 24% загального індексу
Як обчислюється оцінка
25.2/54Бас-фактор — на 2 контриб’ютор(ів) припадає половина всіх комітів
14.7/22.5Розподіл комітів — головний контриб’ютор — автор 35% комітів
13.5/13.5Широта контриб’юторів — 99 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 4 contributing companies or organizations
Використані вхідні дані
bus_factor2
contributors_sampled99
top_contributor_share0,347
Як обчислюється оцінка
0/46.8Вирішення issue — немає issue або даних
35.9/38.3Прийняття PR — злито 45/48 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs45
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs3
Виключено з оцінювання (немає даних або не застосовно): Вирішення issue. Залишкові ваги перенормовано.
Як обчислюється оцінка
10/30Підтримка власника — особистий (користувацький) обліковий запис
0/20Верифікований домен — не застосовно до користувацьких облікових записів
16.6/25Охоплення власника — 203 підписників у csyonghe
22.3/25Послужний список — 25 публічних репозиторіїв, вік облікового запису ~13 р.
Використані вхідні дані
followers203
owner_typeUser
is_verified
owner_logincsyonghe
public_repos25
account_age_days5 021
Виключено з оцінювання (немає даних або не застосовно): Верифікований домен. Залишкові ваги перенормовано.

Інженерна якість

Чи наявні базові інженерні практики та документація?

55Помірний · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 23 процес(ів) CI
24/24Наявні тести
0/16Конфігурація лінтера
0/9.6Pre-commit-хуки
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — немає даних
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigтак
has_linter_configні
has_precommit_configні
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: CI-Tests. Залишкові ваги перенормовано.

Документація

35У зоні ризику
Як обчислюється оцінка
0/30README
25/25Каталог документації
0/15Сайт документації / домашня сторінка
0/10Опис репозиторію
0/10Теми
10/10Wiki
Використані вхідні дані
topics
has_wikiтак
homepage
has_readmeні
has_docs_dirтак
has_descriptionні

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

30У зоні ризику · 16% загального індексу

Стан безпеки

30У зоні ризику
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — немає даних
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 4 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.2/2.5Ліцензія — license file detected
0/7.5Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
0/5Packaging — немає даних
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3,1
Виключено з оцінювання (немає даних або не застосовно): ci_tests, packaging. Залишкові ваги перенормовано.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

67Помірний · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — .github/copilot-instructions.md, CLAUDE.md
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 99 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,99
agent_instruction_files.github/copilot-instructions.md, CLAUDE.md
agent_instruction_max_bytes13 636
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
11/11Статична перевірка типів — C++ (статично типізована)
10/10Відтворюване середовище — Nix
8/10Підтверджена практика роботи з агентами — 4 з останніх 100 комітів створено агентом або з його зазначенням
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Використані вхідні дані
has_nixтак
has_testsтак
lockfiles
has_dockerfileні
typed_languageтак
bootstrap_files
has_devcontainerні
has_linter_configні
typecheck_configs
agent_commit_share0,04
toolchain_manifests
dependency_bot_commit_share0
Як обчислюється оцінка
45/45Типізований код — C++ (статично типізована)
52.5/55Керовані розміри файлів — 65/1 413 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageC++
largest_source_bytes811 328
source_files_sampled1 413
oversized_source_files65
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
0/20Сервер MCP
40/40Придатні до запуску приклади — examples
Використані вхідні дані
example_dirsexamples
has_mcp_signalні
api_schema_files

Ключові факти

1зірок GitHub
99контриб'юторів
173комітів за останні 12 місяців
8днів від останнього пушу
27релізів
2бас-фактор
0відкритих issue
пакетних екосистем

Попередження щодо збору даних

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Community profile unavailable

Докладніше

OpenSSF Scorecard 3.1 / 10
3.1сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-26 19:32 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
н/дCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 4 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
9Licenselicense file detected
0Maintained0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
н/дPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Усі залежності 0

Повний розв'язаний набір залежностей із графа залежностей GitHub: 0 прямих і 0 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

РеєстрПакетВерсіяЗв'язок
Сповіщення про залежності не оцінено

Звірка сповіщень не відбулася для цього звіту: No resolved dependencies to assess

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": true,
      "size_kb": 116459,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "C": 84515,
        "C++": 18414406,
        "Lua": 116183,
        "Nix": 2107,
        "Cuda": 176,
        "GLSL": 49608,
        "HLSL": 76023,
        "CMake": 104176,
        "Shell": 19276,
        "Slang": 4808241,
        "Python": 55663,
        "Batchfile": 526,
        "JavaScript": 4531,
        "Objective-C++": 16778
      },
      "pushed_at": "2026-07-18T01:04:33Z",
      "created_at": "2017-11-08T14:24:42Z",
      "owner_type": "User",
      "updated_at": "2025-09-14T05:56:46Z",
      "description": "Making it easier to work with shaders",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "master",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "C++",
      "significant_languages": [
        "C++",
        "Slang"
      ]
    },
    "owner": {
      "blog": "http://www.csyong.net",
      "name": "Yong He",
      "type": "User",
      "login": "csyonghe",
      "company": null,
      "location": null,
      "followers": 203,
      "avatar_url": "https://avatars.githubusercontent.com/u/2652293?v=4",
      "created_at": "2012-10-25T20:48:41Z",
      "is_verified": null,
      "public_repos": 25,
      "account_age_days": 5021
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": false
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.test.11",
          "kind": "other",
          "published_at": "2024-07-10T23:55:07Z"
        },
        {
          "tag": "v2024.1.11-test",
          "kind": "prerelease",
          "published_at": "2024-05-04T01:18:31Z"
        },
        {
          "tag": "v0.01.2004",
          "kind": "patch",
          "published_at": "2022-09-28T22:14:01Z"
        },
        {
          "tag": "v0.01.2003",
          "kind": "patch",
          "published_at": "2022-09-28T21:57:48Z"
        },
        {
          "tag": "v0.01.2002",
          "kind": "patch",
          "published_at": "2022-09-28T19:58:12Z"
        },
        {
          "tag": "v0.01.2001",
          "kind": "patch",
          "published_at": "2022-09-28T19:49:27Z"
        },
        {
          "tag": "v0.01.2000",
          "kind": "patch",
          "published_at": "2022-09-28T19:14:41Z"
        },
        {
          "tag": "v0.01.1239",
          "kind": "patch",
          "published_at": "2021-11-22T20:59:20Z"
        },
        {
          "tag": "v0.0x093020216",
          "kind": "other",
          "published_at": "2021-10-01T01:29:40Z"
        },
        {
          "tag": "v0.0x093020215",
          "kind": "other",
          "published_at": "2021-10-01T00:17:46Z"
        },
        {
          "tag": "v0.0x093020214",
          "kind": "other",
          "published_at": "2021-09-30T23:19:46Z"
        },
        {
          "tag": "v0.0x093020213",
          "kind": "other",
          "published_at": "2021-09-30T22:01:41Z"
        },
        {
          "tag": "v0.0x093020212",
          "kind": "other",
          "published_at": "2021-09-30T20:48:46Z"
        },
        {
          "tag": "v0.x093020210",
          "kind": "other",
          "published_at": "2021-09-30T19:17:05Z"
        },
        {
          "tag": "build-test-093020212",
          "kind": "other",
          "published_at": "2021-09-30T19:06:43Z"
        },
        {
          "tag": "v0.19.8",
          "kind": "patch",
          "published_at": "2021-09-13T07:35:06Z"
        },
        {
          "tag": "v0.0017",
          "kind": "other",
          "published_at": "2020-12-03T22:39:20Z"
        },
        {
          "tag": "v0.0016",
          "kind": "other",
          "published_at": "2020-12-03T22:23:58Z"
        },
        {
          "tag": "v0.0015",
          "kind": "other",
          "published_at": "2020-12-03T22:05:42Z"
        },
        {
          "tag": "v0.0014",
          "kind": "other",
          "published_at": "2020-12-03T21:46:54Z"
        },
        {
          "tag": "v0.0013",
          "kind": "other",
          "published_at": "2020-12-03T21:43:50Z"
        },
        {
          "tag": "v0.0011",
          "kind": "other",
          "published_at": "2020-12-03T21:23:08Z"
        },
        {
          "tag": "v0.001",
          "kind": "other",
          "published_at": "2020-12-03T21:15:18Z"
        },
        {
          "tag": "v0.01.7",
          "kind": "patch",
          "published_at": "2020-11-16T21:00:28Z"
        },
        {
          "tag": "v0.01.6",
          "kind": "patch",
          "published_at": "2020-11-16T20:50:31Z"
        },
        {
          "tag": "v0.01.5",
          "kind": "patch",
          "published_at": "2020-11-16T20:42:57Z"
        },
        {
          "tag": "build-test-093020211",
          "kind": "other",
          "published_at": "2021-09-30T19:03:36Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "8bcf6c443bbd24498e67ae54f06c2ad933421738",
          "body": "…8428)\n\nThe `SpirvInstructionHelper::loadBlob()` method could segfault when\ncalling `m_headerWords.addRange()` if the SPIR-V blob contained\ninsufficient data for the required 5-word header.\n\nTo reproduce, run \n```\n./build/Debug/bin/slangc.exe tests/modules/environment.slang -o tests/modules/environm\n[…]\nblob has at least\n`SPV_INDEX_INSTRUCTION_START * sizeof(SpvWord)` bytes (20 bytes minimum)\nbefore attempting to process the header words.\n\nRelated to: https://github.com/shader-slang/slang/issues/7547",
          "is_bot": false,
          "headline": "Fix segfault in SPIR-V header processing in SpirvInstructionHelper (#…",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-10T23:25:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f3e26754c4b63fee419407752b771ecf0bb8ed5a",
          "body": "Add `findModifier` for `DeclReflection` so pattern like `extern struct\nfoo;` can be properly reflected.\n\nCloses #8009",
          "is_bot": false,
          "headline": "Add FindModifier for Declarations (#8308)",
          "author_name": "Xuanda Yang",
          "author_login": "TH3CHARLie",
          "committed_at": "2025-09-10T22:55:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5607e9d68e9082ada9441f1949937f6b16d5c7f",
          "body": "…static const decl. (#8392)\n\nCloses #8184.\n\nWe fixed three issues with this regression test:\n1. After generating IR for a `SpecializeComponentType`, we should also\nstrip the frontend\ndecorations from the IR so there is no HighLevelDeclDecoration that will\ngo into the backend.\n2. When lowering a stat\n[…]\nuplicate\nExport/Import decorations with different mangle names, and confuses the\nlinker.\n3. Make sure internal exceptions does not leak through\n    `IComponentType::getEntryPointCode`/`getTargetCode`.",
          "is_bot": false,
          "headline": "Fix crash when compiling specialized generic entrypoint containing a …",
          "author_name": "Yong He",
          "author_login": "csyonghe",
          "committed_at": "2025-09-10T18:50:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ec42c4a20facbcae441cd172bfd607614e761907",
          "body": "Closes #8409, but ended up being more about fixing another bug. While\nthe issue itself seems to only be a simple typo fix (see second commit\nin this PR), I found out during writing a test that pointers never got\ncorrect locations regardless of layout. Their locations were always\nassigned to zero due\n[…]\nn, so I went ahead and added\nthat too.\n\nI can split this up into two separate PRs if that's preferred; both\naspects just share a test right now and fix a similar-looking issue in\nthe resulting SPIR-V.",
          "is_bot": false,
          "headline": "Fix pointers and C-like layout in varying parameters (#8425)",
          "author_name": "Julius Ikkala",
          "author_login": "juliusikkala",
          "committed_at": "2025-09-10T18:41:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b03cbb02c6486274d46865f3995953f2105cefc9",
          "body": null,
          "is_bot": false,
          "headline": "Squash warnings on gcc 14 (#8377)",
          "author_name": "Ellie Hermaszewska",
          "author_login": "expipiplus1",
          "committed_at": "2025-09-10T13:26:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d0f5ee55788dca324641ae9268ee37dc4d7d9d5",
          "body": "…… (#8380)\n\n…function-parameter.slang #8315\n\nRoot Cause:\nCUDA compilation crashed with `assert failure:\n!seenFinalUnsizedArrayField` because unsized arrays like\n`RWStructuredBuffer<uint> globalBuffer[]` were not the final field in\ngenerated parameter structs, violating the layout constraint in\nslang\n[…]\nest\nfile\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
          "is_bot": false,
          "headline": "CUDA: Fix compiler crash with unsized array field - nonuniformres-as-…",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-09-10T12:01:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2020a102e9e0ea2f39a0f2b2a75085c3607ce734",
          "body": "…8326)\n\n## Problem\nWhen generic functions with debug variables were specialized with\nconcrete types containing non-debuggable fields (e.g.,\n`StructuredBuffer`), the IR cloning process would create invalid\n`DebugVar` instructions without checking if the substituted types\nremained debuggable.\n\n## Solu\n[…]\nthat removes\nthe debugVar created for the non-debuggable types.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Check if debugVar for is debuggable types in the legalization pass (#…",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-10T07:14:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "43dffcde78227113a0e62b02857eaf4ed6ea6e7e",
          "body": "Fixes this regression:\n\n```slang\nstruct MyType\n{\n    // Regression Condition 1: there must be more than one member in the lookup scope.\n    float v;\n    int getSum() { return 0; }\n}\n\nvoid m(MyType t)\n{\n    // Regression condition 2: the completion must be in an init expression.\n    // Regression con\n[…]\n Texture2D x = t.;  // completion request after . here\n}\n```\n\nThe root cause is that we shouldn't be applying candidate filtering on\nthe candidate list when in completion checking mode.\n\nCloses #8417.",
          "is_bot": false,
          "headline": "Fix language server auto-complete regression in debug build. (#8416)",
          "author_name": "Yong He",
          "author_login": "csyonghe",
          "committed_at": "2025-09-10T05:14:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7026dec790ab0c239c58ebf72b17633e9e8765c3",
          "body": "This updates SPIRV submodules.\nUnfortunately we cannot use the latest because one of PRs in SPIRV-Tools\ncauses VVL errors on our slang-tests. The issue is tracked in\n- https://github.com/KhronosGroup/SPIRV-Tools/issues/6316\n- https://github.com/shader-slang/slang/issues/8414\n\nThis PR also updates/simplifies the document of updating SPIRV process.",
          "is_bot": false,
          "headline": "Update SPIRV-{Tools,Headers} (#8415)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-09-10T02:34:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e554e1b726814535565f0619a868b96b6f2fb525",
          "body": null,
          "is_bot": false,
          "headline": "Send notification only on scheduled CTS runs (#8418)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-10T02:31:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8aa63073c1be2cdc0c34e71601cb28255e92a805",
          "body": "- Enable ccache in slang bulid for CTS test\n- Allow manual CI dispatch",
          "is_bot": false,
          "headline": "Enable ccache in slang bulid for CTS test (#8413)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-10T00:08:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3745d75543ded3bc457ff5aba152141d382ba306",
          "body": "This fixes an issue where non-raytracing kernels couldn't contain any\nRaytracingAccelerationStructure resources even when not used.",
          "is_bot": false,
          "headline": "Always define OptixTraversableHandle (#8411)",
          "author_name": "Simon Kallweit",
          "author_login": "skallweitNV",
          "committed_at": "2025-09-09T15:55:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "35b78082565b79125473c6fbd628541ecfa386eb",
          "body": "macos 15.6 includes python 3.9.6 with Xcode, which doesn't understand\nmatch/case. Changing it to to the less spiffy if/elif.\n\nCo-authored-by: Yong He <yonghe@outlook.com>\nCo-authored-by: Sam Estep <sam@samestep.com>",
          "is_bot": false,
          "headline": "Enable slang_lldb.py on macos (#8327)",
          "author_name": "James Helferty (NVIDIA)",
          "author_login": "jhelferty-nv",
          "committed_at": "2025-09-09T14:35:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63676c5e51d9d58d3cde7e296f82250b71538b85",
          "body": "…408)\n\nThe test can be enabled",
          "is_bot": false,
          "headline": "Fix #8314 - Enable tests/compute/texture-subscript.slang for CUDA (#8…",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-09-09T11:16:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3aff764c2b5d613f766538d27e0b9f448e7ed5ca",
          "body": "This PR modernizes the Windows-specific code by replacing ANSI Windows\nAPI functions with their Unicode (wide character) counterparts. This\nchange ensures proper handling of Unicode file paths and strings on\nWindows systems.\n\n### File Operations (`source/core/slang-io.cpp`)\n- `DeleteFileA` → `Delete\n[…]\nhub.com>\nCo-authored-by: Gangzheng Tong <gtong-nv@users.noreply.github.com>\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Use wide char version of Windows API (#8390)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-08T17:24:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8b512c49d163af1df33e940acc3c4a230f0d00b7",
          "body": "Fixes #8396 by not emitting the `ArrayStride` when it would've been\nzero. The problem is caused by #7848, more details in the issue\ndescription.\n\nI checked that with equivalent GLSL code, glslangValidator does not emit\nany `ArrayStride`. I assume that the addition of `storageClass ==\nSpvStorageClass\n[…]\nce to have GPUs from multiple vendors in the\nCI to avoid this kind of thing happening again. Or even just llvmpipe;\nthat doesn't even require a GPU and would add at least one more driver\nto test with.",
          "is_bot": false,
          "headline": "Don't emit ArrayStride 0 for RWStructuredBuffer pointers (#8397)",
          "author_name": "Julius Ikkala",
          "author_login": "juliusikkala",
          "committed_at": "2025-09-08T17:07:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c0d7405d831faa6208b27fe56bf66fb0b138dcc5",
          "body": "1. Adds retry logic - Implements 3-attempt retry mechanism for\nintermittent test failures\n2. Reduces parallelism for Linux - Changes server counts back to 1 for\nmore stable execution, given the test is short in Linux for now\n3. Adds detailed error logging - Enhanced diagnostic information for\ntest p\n[…]\nts consolidated CI status for simplified\nbranch protection rule\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Enhances CI reliability and debug logging (#8393)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-07T17:07:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bc6b82666fa4deda932c36cea93ee2059e0992b2",
          "body": "…387)\n\nThis change relaxes a previous restriction on link-time types and\nconstants, so that we now allow them to be used to define shader\nparameters.\n\nDoing so will result in a parameter layout that is incomplete prior to\nlinking. The PR added a test to call the reflection API on a fully\nlinked program and ensure that we can report correct binding info.",
          "is_bot": false,
          "headline": "Relax restriction on using link-time types for shader parameters. (#8…",
          "author_name": "Yong He",
          "author_login": "csyonghe",
          "committed_at": "2025-09-06T05:37:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe87a39e453b64e94446181a9ae5cbfc0f62bf0c",
          "body": "- This PR removes \"wasm\" check from the test job, since there is no test\njob for \"wasm\" yet.\n- Also, move the check for slang-rhi and slangpy test to the job level\nto skip the setup etc. if no run is needed.\n- Update the macos compiler version in building.md to match the clang\ncompiler used in CI.\n-\n[…]\n\n- Run slangpy test with `-n auto --maxprocesses=4` to speed up\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Remove unnecessary check and adust server count etc. in CI (#8374)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-06T03:31:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4856da26e188c28bf691d0210ce8016264c00940",
          "body": "The header execinfo.h and the related backtrace functionality is not\navailable on all linux platforms. In particular it's missing on musl\nlinux and on Android before API version 33. This causes compilation\nerrors on those platforms.\n\nWith this change, we first check if backtrace functionality is ava\n[…]\nre using glibc or a compatible Android version.\n\nTested on manylinux_2_28 with glibc 2.28 and musllinux_1_2 with musl\n1.2, has not been tested on Android.\n\nCo-authored-by: Yong He <yonghe@outlook.com>",
          "is_bot": false,
          "headline": "Add check for backtrace availability (#8329)",
          "author_name": "Dario Mylonopoulos",
          "author_login": "ramenguy99",
          "committed_at": "2025-09-06T02:38:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ffd58977b4e64af5a83ebc5478555fd667f58e51",
          "body": "WGSL requires Wave functions to be used only in uniform control flow.\n\nThe latest compiler, Tint, started to error out when Wave functions are\nused in a dynamic control flow.\n\nThis commit disables some of tests using Wave functions in dynamic\nbranches. If possible, they are altered to call Wave functions in\nuniform control flows.",
          "is_bot": false,
          "headline": "Disable a few WGSL testing using Wave functions in branches (#8386)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-09-06T01:51:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5055de0bb1cf3f9aac63a60217f2dbde5533c557",
          "body": "The code int x4 = 0xFFFFFFFFFFFFFFFF previously did not produce a\nwarning due to the value being too large for the type. This patch now\nchecks for this and similar issues during parsing.",
          "is_bot": false,
          "headline": "Add warnings for overflows of integer types (#8281)",
          "author_name": "jarcherNV",
          "author_login": "jarcherNV",
          "committed_at": "2025-09-05T23:03:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5500f11768d4d93eef4dfcecf0821fee747bf1a4",
          "body": "If a given library cannot be found using LoadLibraryExA then try again\nusing LoadLibraryA. Return an error only if both of these failed.",
          "is_bot": false,
          "headline": "Try both LoadLibrary functions on Windows (#8368)",
          "author_name": "jarcherNV",
          "author_login": "jarcherNV",
          "committed_at": "2025-09-05T04:35:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e1ff8a1254c114f261271ffe5580183b8402e32",
          "body": "Previously we are missing `ccache --set-config=cache_dir=\"$ccache_dir\"`\nand the build was using the default cache_dir.\nThis PR fixed that and the cache are hit in reruns.\n\n```\n📊 ccache statistics (post-build):\nCacheable calls:    1198 / 1198 (100.0%)\n  Hits:             1195 / 1198 (99.75%)\n    Dire\n[…]\n2 / 1195 ( 0.17%)\n  Misses:              3 / 1198 ( 0.25%)\nLocal storage:\n  Cache size (GiB):  0.6 /  5.0 (11.11%)\n  Hits:             1195 / 1198 (99.75%)\n  Misses:              3 / 1198 ( 0.25%)\n```",
          "is_bot": false,
          "headline": "Fix cache_dir path for ccache config (#8370)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-05T02:46:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0fb62524bc8beda70694f6c58570ad8096bbe698",
          "body": "The CI has been re-organized with the following:\n```\nci.yml (Main Orchestrator)\n├── filter job\n│   ├── Documentation Only? → Yes → Skip CI\n│   └── Documentation Only? → No → Continue CI\n│\n├── Build Jobs\n│   └── ci-slang-build.yml\n│       ├── common-setup action\n│       ├── Build & Package\n│       └─\n[…]\nig.\n\n\nCloses: https://github.com/shader-slang/slang/issues/6728\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Split CI to build and test jobs (#8359)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-04T20:08:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "20373ad01d09d46646d4de0a8cc7a78a4c8f6638",
          "body": "Update intrinsics signature as per the nvapi header",
          "is_bot": false,
          "headline": "Fix#8128 LSS and sphere hit object intrinsics fail to compile (#8339)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-09-04T05:31:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ec41675d817f82a7ce3c4d79c68548db0bd4227",
          "body": "Enable CUDA support for additional HLSL intrinsic tests by implementing\nmissing functionality and fixing compiler bugs affecting CUDA targets.\n\n- Fix critical bug in InterlockedCompareStore64 where division used /4\ninstead of /8 for 64-bit types, causing incorrect memory addressing for\nall signed in\n[…]\nAny/_slang_quadAll helper functions to CUDA prelude\n- Enable tests: quad-control-comp-functionality.slang,\nsubgroup-quad.slang\n\n---------\n\nCo-authored-by: szihs <675653+szihs@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Enable CUDA support for additional HLSL intrinsic tests (#8293)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-09-04T05:28:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b45706b3f532f85525de5746f1f607ba2e57fc88",
          "body": "Before this PR only the following was a valid line without any\nwhite-space character nor additional `/` character,\n```\n//TEST:\n```\n\nThis PR is to allow slang-test to handle the following variants of the\ntest command comments,\n```\n///TEST:\n// TEST:\n//    TEST:\n////// TEST:\n```\n\nThis PR revealed a reg\n[…]\n tests/cpp-compiler/cpp-compile-shared-library.cpp (cpu)\n\nThey are disabled as a part of this PR.\nAnd there is a new github issue to track it later,\n- https://github.com/shader-slang/slang/issues/8362",
          "is_bot": false,
          "headline": "Handle slang-test command comments better (#8363)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-09-04T03:13:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a766d27447aa0fcf69334c0467d9b1124892e180",
          "body": "closes https://github.com/shader-slang/slang/issues/3313",
          "is_bot": false,
          "headline": "Diagnose on structured buffers containing resources (#8222)",
          "author_name": "Ellie Hermaszewska",
          "author_login": "expipiplus1",
          "committed_at": "2025-09-03T20:05:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf607e2f3fa183e9a2b18c7a98438a05247d6ed3",
          "body": null,
          "is_bot": false,
          "headline": "Fix#8085: Batch-9: Enable cuda tests (#8269)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-09-03T16:06:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f5fae010863c0c836a5a80e659673bcd58010dba",
          "body": "Add 29 intrinsics to the list by new test",
          "is_bot": false,
          "headline": "Add Optix Intrinsics Coverage (#8159) (#8310)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-09-03T05:16:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "639978008de3a74c00e03451cd9fc74452766fcd",
          "body": null,
          "is_bot": false,
          "headline": "Fix#8086: Batch-10: Enable cuda tests (#8270)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-09-03T05:15:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4886bf95fcf6e7f38f48a346f4112fe340a453c8",
          "body": "This avoids uploading the ccache to github and take the cache storage.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "manually config ccache locally (#8351)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-03T06:26:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d15d388d7e92547f1cc8ca47748b79589701051",
          "body": "Related to https://github.com/shader-slang/slang/issues/6728\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Enable ccache for self-hosted runner (#8345)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-09-03T00:07:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f02b08490aa905f42a8d90381db84b1f8e409c0c",
          "body": "Changes default for render-test to sm_6_5.\nSince sm_6_5 is the new default, remove the -use-dxil option, add\n-use-dxcb option\nRemove -use-dxil option from all test cases.\nAdd -use-dxcb to two tests that needed it.\n\nFixes #7611",
          "is_bot": false,
          "headline": "render-test: Change D3D12 default to sm_6_5 (#8320)",
          "author_name": "James Helferty (NVIDIA)",
          "author_login": "jhelferty-nv",
          "committed_at": "2025-09-02T23:43:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21693abbd0579107e3c03d1e5090b2653722b5de",
          "body": "This commit is to emit the debug-info for the entry point parameters.\n\nTwo things are implemented/fixed in this PR:\n- We were not emitting the `DebugVar` and `DebugValue` at the IR\nlowering level when the type of the entry point parameter is `ConstRef`.\nThis commit handles the `ConstRef` case in a s\n[…]\ng level.\n- Two types for Geometry shaders were incorrectly treated as not valid\ntypes for the DebugInfo. They are `InputPatch` and `OutputPatch`. This\ncommit handles them as valid types for DebugInfo.",
          "is_bot": false,
          "headline": "Emit DebugInfo for the legalized entry point parameters (#7703)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-09-02T19:51:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b46f46c5e8603fdafca258028227adf25f95807f",
          "body": "…ion (#8225)\n\nThe link-time specialization documentation contained an incorrect\nexample that used `[ForceUnroll]` with a link-time type method call,\nwhich would cause a compilation error. The issue was that\n`[ForceUnroll]` requires loop bounds to be known at compile time, but\n`sampler.getSampleCount\n[…]\nagent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: bmillsNV <163073245+bmillsNV@users.noreply.github.com>\nCo-authored-by: expipiplus1 <857308+expipiplus1@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Remove ForceUnroll attribute from link-time specialization documentat…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2025-09-01T06:51:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "288a63dea8c441df6edc4f8fae10d340c20e1ba3",
          "body": null,
          "is_bot": false,
          "headline": "Remove unused variable in slangc::main (#8325)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-08-30T01:59:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7758625d3fea67e55e98e7e4103d56c9918365be",
          "body": "Resolves #7628\nResolves: #8197\n\nPrimary Goals:\n1. Add `Access` to pointer\n2. AddressSpace::GroupShared support for pointers (SPIR-V)\n3. Add `__getAddress()` to replace `&`\n* `&` is not updated to `require(cpu)` since slangpy uses `&`. This\nmeans we must: (1) merge PR; (2) replace `&` with `__getAddr\n[…]\n` of `Ptr` will now have to account for\nthe `Access` argument\n* we disallow various syntax paired with `Ptr` and `T*`\n\n---------\n\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "[CBP] Pointer frontend changes + groupshared pointer support (#7848)",
          "author_name": "ArielG-NV",
          "author_login": "ArielG-NV",
          "committed_at": "2025-08-29T22:52:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "450ef7934c1adfdf4a3a3c72967de3c5798a020d",
          "body": "This PR enables slang-rhi and slangpy tests in the slang CI for MacOS.\n\n* exclude the slang-rhi `sampler-array` test for mac; issue tracked in\nhttps://github.com/shader-slang/slang/issues/8246\n* update slang-rhi for fix of `nested-parameter-block-2`\n* for slangpy test, install the required python pa\n[…]\nun.\n\n\nCloses: https://github.com/shader-slang/slang/issues/7330\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Enable slangpy and slang-rhi tests for Mac (#8297)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-08-29T21:15:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "74c39eaa3dbd6ca55a383afca51ec18962838f08",
          "body": "This cause the pthread not found issue on old glibc build. \nThis reverts commit 113327194d4cf750af6265a560615850a8e7e6fb.",
          "is_bot": false,
          "headline": "Revert \"Reduce the dependency to thread library (#8216)\" (#8319)",
          "author_name": "kaizhangNV",
          "author_login": "kaizhangNV",
          "committed_at": "2025-08-28T22:36:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c19e2e92ae8e713225262a17f39a438cd511d416",
          "body": "When `SIMPLE` type test is used with `-g[1-3]` option, the filecheck\npattern will most likely to match to the string itself on the embedded\nsource code rather than match to the emitted spirv-asm code.\n\nThis commit avoids the problem by removing the embedded source code.\n\nThis commit also provides an\n[…]\ntly\nfailing, and it will pass once DebugLocalVariable instruction missing\nfor parameter of the entry point function #7693 is resolved.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>",
          "is_bot": false,
          "headline": "Remove the embedded source to avoid self-matching in slang-test (#8305)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-08-28T17:45:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3dc466487d489f09c835bdd872eb130cdc5784ea",
          "body": "Update docs/shader-execution-reordering.md with additional intrinsics\nAdd correct capability `LoadLocalRootTableConstant`",
          "is_bot": false,
          "headline": "[Documentation] optix test coverage #463 (#8311)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-08-28T11:01:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80ddf40274fdca93f2ae95a247ff3af122aec6ac",
          "body": "Emits the appropriate OpCapability for 8- and 16-bit type usage:\n- UniformAndStorageBuffer8BitAccess: for 16-bit types in\nSpvStorageClassUniform and SpvStorageClassStorageBuffer\n- UniformAndStorageBuffer16BitAccess: for 16-bit types in\nSpvStorageClassUniform and SpvStorageClassStorageBuffer\n- Storag\n[…]\n282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: James Helferty (NVIDIA) <jhelferty-nv@users.noreply.github.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add SPIRV OpCapability for 8/16bit use in storage (#8194)",
          "author_name": "James Helferty (NVIDIA)",
          "author_login": "jhelferty-nv",
          "committed_at": "2025-08-28T03:08:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1681bc67fbae57b54b66c5dcfcbf315d1efa831b",
          "body": "fixes https://github.com/shader-slang/slang/issues/8271\n\nThis PR does the following,\n- Fail slang-test when there are VVL error messages.\n- VVL error for `gfx-unit-test-tool/` were not captured properly by the\ndebug callback.\n- Set an environment variable,\n`VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_valida\n[…]\nal` and\n`gfx-unit-test-tool/linkTimeTypeLayoutNested.internal`.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fail slang-test when VVL printed errors (#8280)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-08-26T21:38:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4e9ee1dc80ce353640c1e2134249a1f93da9229a",
          "body": "…uint8_t (#8223)\n\nThe Metal backend was generating incorrect type names for 8-bit vector\ntypes, causing compilation failures when targeting Metal. According to\nthe Metal specification, 8-bit vector types should be named `charN` and\n`ucharN` (e.g., `char2`, `uchar3`) rather than `int8_tN` and `uint8_\n[…]\nt-coding-agent-tips) in the docs.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: bmillsNV <163073245+bmillsNV@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix Metal 8-bit vector type names: emit char/uchar instead of int8_t/…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2025-08-26T18:58:44Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0b87355f946b9a0f8b7fa9225369dade3d5bf84a",
          "body": "This PR marks the `slang-rhi` a required dependecy for `platform` and\n`gfx-unit-test`, and only build them when `SLANG_ENABLE_SLANG_RHI=ON`.\nThis should allow the slang still to be built without those tests\ncomponents when `SLANG_ENABLE_SLANG_RHI=OFF`.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Update slang-rhi deps for gfx-unit-test (#8237)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-08-26T18:01:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b36659eca38be716bee43c01c6584bda5f91166a",
          "body": "Fixes: #8018\n\nChanges:\n* Do not emit true for `shouldEmitSPIRVDirectly` with a GLSL target",
          "is_bot": false,
          "headline": "Fix `shouldEmitSPIRVDirectly` (#8019)",
          "author_name": "ArielG-NV",
          "author_login": "ArielG-NV",
          "committed_at": "2025-08-26T17:48:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70d70c1d315a91ed414892fb70974026082bcc99",
          "body": "CMake 3.31 (released [last\nNovember](https://www.kitware.com/cmake-3-31-0-available-for-download/))\ndeprecated compatibility with CMake versions older than 3.10, causing\nwarnings when running commands like `cmake --preset default` in the\nSlang repo:\n\n```\nCMake Deprecation Warning at external/miniz/C\n[…]\nequired` calls in\nlz4/lz4#1601 and richgel999/miniz#344 respectively to fix those\nwarnings, so this PR bumps them both to include those changes.\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
          "is_bot": false,
          "headline": "Fix warnings from CMake version 3.31 (#8227)",
          "author_name": "Sam Estep",
          "author_login": "samestep",
          "committed_at": "2025-08-26T17:41:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5060042bb63cbf42063f5e81c58881e1e8323857",
          "body": "close #8068.\n\nCurrently the AutoDiff aggressively scan every IR inst in searching the\ndifferentiable IR. This is not efficient and could have bug, details in\nhttps://github.com/shader-slang/slang/issues/8068#issuecomment-3214856668.\n\nThis PR change the behavior. It will do a initial filter to only g\n[…]\nonly when it's used in other generic function\n(it's only useful when dealing with dynamic dispatch).\n\nThen we will start searching reachable insts from this IR list by using\nthe same method as before.",
          "is_bot": false,
          "headline": "fix a autodiff crash (#8259)",
          "author_name": "kaizhangNV",
          "author_login": "kaizhangNV",
          "committed_at": "2025-08-26T16:56:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7b30ad489198ecedb16a0265f290c1e32772514c",
          "body": "This is a first pass at adding WASM builds to releases. ~~I haven't\ntested the outputs yet but it appears to build successfully in my fork\nat least.~~\n\nEdit: Made a fake release in my fork for testing, seems to be working\nwell for my use case at least:\nhttps://github.com/davidar/slang/releases/tag/v2025.999\n\nFixes #8207",
          "is_bot": false,
          "headline": "Add WASM platform support to release workflow (#8264)",
          "author_name": "David A Roberts",
          "author_login": "davidar",
          "committed_at": "2025-08-25T22:54:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "404a8635f4e5a1c7872b8c1cca322904f2ed1579",
          "body": "This commit prints an additional information of GPU version while\nrunning CI.yml.\nThis can help us to debug when things don't work as expected.",
          "is_bot": false,
          "headline": "Print GPU driver version in CI.yml (#8275)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-08-25T16:08:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1562f98c07954ae17f9e7ef186f6c8eb029740ab",
          "body": null,
          "is_bot": false,
          "headline": "Fix#8084: Batch-8: Enable cuda tests (#8268)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-08-25T05:20:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b4d02803344d52af8d979da1d0f42936d360f00",
          "body": null,
          "is_bot": false,
          "headline": "Fix#8083: Batch-7: Enable cuda tests (#8267)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-08-25T05:19:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "53fa12e1b522a229006595001421caa62e22eba8",
          "body": null,
          "is_bot": false,
          "headline": "Fix#8082: Batch-6: Enable cuda tests (#8266)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-08-25T05:19:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "67cf1403496ed80edd26c2e0368ddd851e09103a",
          "body": null,
          "is_bot": false,
          "headline": "Fix#8081: Batch-5: Enable cuda tests (#8263)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-08-25T05:19:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ae655c2a17636718eea6182dcc918a3920c5660",
          "body": null,
          "is_bot": false,
          "headline": "Fix#8080: Batch-4: Enable cuda tests (#8261)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-08-25T05:18:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd9e1f67184c1361558e18993e5cb392dc1131f0",
          "body": "…ccessor (#7929)\n\nFixes the Slang compiler internal error \"subscript had no getter\" when\nreading from mesh shader output index arrays (e.g., `triangles[0].x`).\n\n## Problem\nThe `OutputIndices` struct was missing a `ref` accessor in its\n`__subscript` implementation, causing the compiler to fail when t\n[…]\ngithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix mesh shader OutputIndices subscript error by adding missing ref a…",
          "author_name": "Lujin Wang",
          "author_login": "lujinwangnv",
          "committed_at": "2025-08-22T20:48:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3ca2e47514e3fce133a6ac7d1aca88a3b679c551",
          "body": "On Linux, `slang-platform.cpp` compiles with libstdc++ only because\n`unistd.h` is being transitively included. It fails to compile with\nstandard libraries that don't include `unistd.h` like libc++.\n\nThis is the how it's being transitively included with libstdc++:\n```\n/home/mcvm/dev/slang/source/core\n[…]\natomic_base.h\n/usr/lib64/gcc/x86_64-unknown-linux-gnu/15.1.0/../../../../include/c++/15.1.0/bits/atomic_wait.h\n/usr/include/unistd.h\n```\n\nTested building with `-stdlib=libc++` and `-stdlib=libstdc++`.",
          "is_bot": false,
          "headline": "Fix readlink missing include (#8260)",
          "author_name": "TheGoldMonkey",
          "author_login": "TheGoldMonkey",
          "committed_at": "2025-08-22T17:57:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a5e6ddd006ecf72ad9a41961811e93e1e2f72e64",
          "body": "Add record and replay support for the IComponentType2 struct and its\nfunctions getTargetCompileResult and getEntryPointCompileResult.",
          "is_bot": false,
          "headline": "Add record and replay support for IComponentType2 (#8215)",
          "author_name": "jarcherNV",
          "author_login": "jarcherNV",
          "committed_at": "2025-08-21T18:42:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44815ba48c1d149137a2210ca3fccfe3bda2626e",
          "body": "This patch changes the order of searching slangc executable. This bug\naffects the following scenario: let's assume that user has a binary\nrelease of slang package and wants to use it via `find_package(slang\nCONFIG HINTS <path to binary release>)`, but there is also an\nenvironment variable that point\n[…]\n check environment variable first, and in the\nresult SLANGC_EXECUTABLE will point to slangc from Vulkan SDK and not\nfrom the downloaded package.\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
          "is_bot": false,
          "headline": "Fix SLANGC_EXECUTABLE search path in slangConfig.cmake (#8200)",
          "author_name": "Sergei Kachkov",
          "author_login": "kachkov98",
          "committed_at": "2025-08-21T17:41:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c45f02579076fcf559f92be501d8293d308db34e",
          "body": "… (#8210)\n\n`emitReflectionVarLayoutJSON` will output the `userAttribs` section\ntwice as it gets output by `emitReflectionModifierInfoJSON` first before\nbeing output again by a direct call to `emitUserAttributes`.\n\nIt seems the answer here is to just remove the extra explicit call to\n`emitUserAttributes` and rely on the call in\n`emitReflectionModifierInfoJSON`?",
          "is_bot": false,
          "headline": "Fix reflection JSON writing userAttribs section twice for some cases.…",
          "author_name": "MindSpunk",
          "author_login": "nathanvoglsam",
          "committed_at": "2025-08-21T17:00:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "35f8e092f2aa3ed5e3cf03387e712f798ff4850e",
          "body": "Closes #8112. ~~The issue asks for a \"C layout\", but in this PR I use\nthe term \"CPU layout\" because this naming was pre-existing in the\ncodebase as `kCPULayoutRulesImpl_`. The primary purpose of this layout\nis to match CPU-side struct definitions with the shader side. I'm open\nto better naming sugge\n[…]\nut rules of existing CPU layout\nrules, but they're incompatible with actual shaders. So a new\n`kCLayoutRulesImpl_` was needed anyway.\n\n---------\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
          "is_bot": false,
          "headline": "Introduce CDataLayout & -fvk-use-c-layout (#8136)",
          "author_name": "Julius Ikkala",
          "author_login": "juliusikkala",
          "committed_at": "2025-08-21T05:47:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "05f0f5603561daed2c134e13bc64649362759968",
          "body": "-Adds semantic SV_VulkanSamplePosition that emits corresponding\ngl_SamplePosition and SpvBuiltinSamplePosition\n-Adds gl_SamplePosition property to glsl.meta.slang\n-Adds SPIRV and GLSL tests for the semantic and property\n-Plan is to later implement SV_SamplePosition that follows HLSL range of\n-0.5 to\n[…]\nerTargetSamplePosition(SV_SampleIndex) which needs more\ncomplicated IR manipulation for HLSL and Metal\n\nFixes #7906\n\n---------\n\nCo-authored-by: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Implement SV_VulkanSamplePosition (#8236)",
          "author_name": "davli-nv",
          "author_login": "davli-nv",
          "committed_at": "2025-08-21T00:30:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cbd73dde3dd2da790bb663385a229ce22965c43c",
          "body": "Fixes #8185. The previous implementation is incorrect and basically only\nworks in the `x = 0` case. `delta` was the smallest possible positive\nvalue representable as a float, but that's below the rounding error of\naddition with almost all reasonably sized floats.\n\nThis fixed implementation is based on bit twiddling instead. I've\nchecked the float case against the C++ `nextafterf` with both a -inf ->\ninf and inf -> -inf sweep, in addition to the test included in this PR.",
          "is_bot": false,
          "headline": "Fix nextafter() (#8195)",
          "author_name": "Julius Ikkala",
          "author_login": "juliusikkala",
          "committed_at": "2025-08-20T22:13:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "619de903b70e08a7ca8471419e8eb7e4dd43ca9d",
          "body": "Allows opt-in for sourcing the following dependencies from the system,\ninstead of using the vendored ones:\n\n- miniz\n- lz4\n- vulkan-headers\n- spirv-tools\n- glslang\n\n(some of these already had options that weren't working, as either it\nexpected them to be static libraries or it was expecting to be emb\n[…]\nicts with new slang releases, it would be nice to see\nget\nthis upstream.\n\n---------\n\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>\nCo-authored-by: Sam Estep <sam@samestep.com>",
          "is_bot": false,
          "headline": "Add more system dependency options to CMake (#7987)",
          "author_name": "Niklas Korz",
          "author_login": "niklaskorz",
          "committed_at": "2025-08-20T19:52:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "82e3fc9c1064f06780f6449154c7cf8f663fceac",
          "body": "## Summary\n\n- Add Metal platform support for `WaveGetActiveMask()` and\n`WaveActiveCountBits()` wave intrinsics\n- Update capability requirements to include Metal platform for subgroup\nballot operations\n- Implement Metal-specific intrinsic assembly using `simd_ballot()` and\n`simd_vote` APIs\n\n  ## Chan\n[…]\nfrom `cuda_glsl_hlsl_spirv` to\n`cuda_glsl_hlsl_metal_spirv` for wave ballot functions\n  - **source/slang/slang-capabilities.capdef**:\n    - Add `metal` to `subgroup_ballot_activemask` capability alias",
          "is_bot": false,
          "headline": "Add Metal support for WaveGetActiveMask and WaveActiveCountBits (#8218)",
          "author_name": "Tianyu Li",
          "author_login": "WeakKnight",
          "committed_at": "2025-08-20T17:32:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a26a11ff5c3f14401bbbbbc4b6e3731056618138",
          "body": "There was a case where a PR passed CI test a long time ago, and when it\nis merged, it caused a regression. We like to run via-glsl test when it\ngets merged to prevent it.",
          "is_bot": false,
          "headline": "Enabling via-glsl test for \"merge\" event (#8133)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-08-20T16:34:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "113327194d4cf750af6265a560615850a8e7e6fb",
          "body": "Slang compiler doesn't use thread and we should declare the dependency\nto the thread library when we don't need it.\n\nThe use of Thread is limited to the tools such as slang-test.",
          "is_bot": false,
          "headline": "Reduce the dependency to thread library (#8216)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-08-20T16:28:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0c20a076f2ec84586b6508664df4f59273c6aaf",
          "body": "Enable CUDA support for batch 3 tests\n    - Enhanced wave operations with exclusive support\n    - Added proper identity values for min/max operations\n    - Fixed intrinsic name mapping issues\n    - Updated test configurations\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
          "is_bot": false,
          "headline": "Updated support to enable batch3  (#8219)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-08-20T09:11:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4a7129b84692ddc3c586f0d0dde95e80e173ed8",
          "body": "Commit bdda8a9 from PR #7862 had to disable some slangy tests in ci.yml",
          "is_bot": false,
          "headline": "Fix#8076 - Re-enable slangpy test (#8087)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-08-20T05:39:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "785548a49538a8dfc1ee5d7e650b27c5607e43c1",
          "body": "Added a note section under the Installation section that warns users\nabout potential conflicts when multiple Slang installations are present\non the system. The note specifically addresses:\n* The scenario where Slang from Vulkan SDK might conflict with a\nstandalone installation\n* How LD_LIBRARY_PATH on Linux overrides the RUNPATH in the slangc\nexecutable\n\nCloses https://github.com/shader-slang/slang/issues/7405",
          "is_bot": false,
          "headline": "Add multiple slang installations note to doc (#8231)",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-08-19T22:52:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6321bf07f701692b82bb3a767071e68fc7e19bbf",
          "body": "Don't include the VULKAN_HEADERS and SPIRV-Headers submodule if they are\nalready included.\nFix for the https://github.com/shader-slang/slang/issues/7898.\n\n---------\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>\nCo-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>",
          "is_bot": false,
          "headline": "CMake: Guard inclusion of VULKAN_HEADERS and SPIRV-Headers (#8124)",
          "author_name": "Sergei Popov",
          "author_login": "sergeiepopov",
          "committed_at": "2025-08-19T18:03:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae1a93b579ed276d2455e1b97ca65ad4727d56d0",
          "body": "… (#8206)\n\nIn Metal, if `ParameterBlock` contains `DescriptorHandle` directly, it\nwould be emitted as DescriptorHandle literal, which is not valid Metal\ncode,\n\nThis fix adds a case for `kIROp_DescriptorHandleType` and directs it to\nthe Parent's `emitType` function to handle it.",
          "is_bot": false,
          "headline": "Emit descriptor handle correctly for ParameterBlock<DescriptorHandle>…",
          "author_name": "Gangzheng Tong",
          "author_login": "gtong-nv",
          "committed_at": "2025-08-19T04:19:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9a309678f55a59bb012a931af2c1b734968a13d",
          "body": "#7644 added a script that gets run in CI to display a human-readable\ndiff if `source/slang/slang-ir-insts-stable-names.lua` needs to be\nupdated. However, the `git diff` commands in that script are wrong,\ncausing it to instead just display the man page for the `git diff`\ncommand; [here's an\nexample](\n[…]\n\nhttps://github.com/shader-slang/slang/actions/runs/16578977233/job/46890240012\n- https://github.com/shader-slang/slang/actions/runs/16578977233\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
          "is_bot": false,
          "headline": "Fix error in IR stable names Git diff CI script (#7954)",
          "author_name": "Sam Estep",
          "author_login": "samestep",
          "committed_at": "2025-08-18T16:02:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d9851d4e45d2344e0e220ef6199ef4e117066f0f",
          "body": "This is a followup on #7828 to fix bugs that were causing CodeLLDB to\ngive wrong values and hang (see vadimcn/codelldb#1302) because I didn't\nrealize that these data formatters can be passed _either_ a value of a\ngiven type _or_ a pointer to a value of that type, and need to handle\nboth cases. I als\n[…]\n..\n     def GetVTable(self): ...\n```\n\nHowever, that makes the debugger run _significantly_ slower, so I'm\nchoosing not do do it here.\n\n---------\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
          "is_bot": false,
          "headline": "Make LLDB IR data formatters more robust (#7927)",
          "author_name": "Sam Estep",
          "author_login": "samestep",
          "committed_at": "2025-08-18T15:29:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "09054bff3d0874a92958b514ae2a9ff2b32483e5",
          "body": "The documentation added by #6844 included instructions to make sure that\nthe Fiddle `#include` in a file comes after all the other `#include`s,\nbut it's easy to accidentally violate this via `clang-format`, as\nhappened for `source/slang/slang-ast-modifier.h` in #7559. This PR\nguards against this sor\n[…]\nabout\nthis in `tools/slang-fiddle/README.md`.\n\nAs a bonus, I also enabled Markdown syntax highlighting for all the code\nblocks in that doc file.\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
          "is_bot": false,
          "headline": "Don't let clang-format reorder Fiddle `#include`s (#7887)",
          "author_name": "Sam Estep",
          "author_login": "samestep",
          "committed_at": "2025-08-18T15:10:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2f68f98a3d7d41c1daac07afab622c34f5c1b8d4",
          "body": "Close #8054.\nFor detailed root cause is at:\nhttps://github.com/shader-slang/slang/issues/8054#issuecomment-3189579508",
          "is_bot": false,
          "headline": "Fix issue of double lowering issue a differentiable function (#8182)",
          "author_name": "kaizhangNV",
          "author_login": "kaizhangNV",
          "committed_at": "2025-08-18T16:30:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc93e2c3523f558ee85281f7fe98e220f058f5ed",
          "body": "…(#8109)\n\nClose #8090.\n\nWhen we do type coerce, we use a cache to store the conversion cost\nof different type. The key of the cache is defined by\nstruct BasicTypeKey\n{\n    uint32_t baseType : 8;\n    uint32_t dim1 : 4;\n    uint32_t dim2 : 4;\n    ...\n}\n\nwhere dim1 and dim2 is used for dimension of vec\n[…]\ny extending it to 8 bit.\n\nAlso to make the hash key still within 32 bits, we adjust baseType to 5 bits,\nand knownConstantBitCount to 6 bits.\n\n---------\n\nCo-authored-by: kaizhangNV <kazhang@nvidia.com>",
          "is_bot": false,
          "headline": "Fix constructor overload ambiguity with scalar and vector parameters …",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2025-08-18T16:29:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1a4ccba64a140bd404cbd22a9ae0a8e9e5f425d8",
          "body": "Similar to #7887, this PR improves the Fiddle docs a bit by showing how\nthe `FIDDLE TEMPLATE` example would actually need to include `FIDDLE\nEND` at some point after `FIDDLE OUTPUT`.",
          "is_bot": false,
          "headline": "Show usage of `FIDDLE END` in Fiddle doc example (#7888)",
          "author_name": "Sam Estep",
          "author_login": "samestep",
          "committed_at": "2025-08-18T13:56:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3df36043c67a94ea51cd7b1ce10a84e52f8d744",
          "body": null,
          "is_bot": false,
          "headline": "Enable CUDA Test Enablement - Batch 1: Autodiff Tests (1-16)  (#8139)",
          "author_name": "Harsh Aggarwal (NVIDIA)",
          "author_login": "szihs",
          "committed_at": "2025-08-18T05:16:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ba38bcd6e64bc922bc62843375eaa9ef01b6675",
          "body": "This file is automatically overwritten by the build:\n\n\nhttps://github.com/shader-slang/slang/blob/b7df3c7aa27301f88e31ed0a7bbf230688adab6a/source/slang/CMakeLists.txt#L68-L78\n\nIt is currently out of date (running the build gives rise to unstaged\nchanges), so this PR updates it.",
          "is_bot": false,
          "headline": "Update capability atoms reference page (#8138)",
          "author_name": "Sam Estep",
          "author_login": "samestep",
          "committed_at": "2025-08-17T09:07:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3639e71dfcb7e5284949a98d1fefddda118338be",
          "body": "Update cuda context creation to support both cuda 12 and cuda 13.",
          "is_bot": false,
          "headline": "Update cuda context creation to support cuda 13 (#8181)",
          "author_name": "jarcherNV",
          "author_login": "jarcherNV",
          "committed_at": "2025-08-15T22:16:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af27de01532904508e6a630c213249e93fdd1c66",
          "body": "Add helper functions to create ISlangBlob and load module data from\nsource.\n\n---------\n\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add static functions to create blobs from data (#8179)",
          "author_name": "jarcherNV",
          "author_login": "jarcherNV",
          "committed_at": "2025-08-15T20:16:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dcda42e7dcdb5e260013757763bf5dbf67d69568",
          "body": "Metal's popcount prototype is `T popcount(T x)` but we want to use it to\nimplement `countbits` where the prototype always returns `uint`.\n\nUsing `popcount` directly would implicitly cast successfully to the\n32-bit return value in all cases except when the argument is a 64-bit\ntype. Thus, this change always explicitly casts the result to `$TR`,\nwhich should be one of the `uint[N]` types, and should always be able to\nhold the number of bits in the type.\n\nAddresses #6877",
          "is_bot": false,
          "headline": "Use 64bit int instead of emulation on metal (#8180)",
          "author_name": "James Helferty (NVIDIA)",
          "author_login": "jhelferty-nv",
          "committed_at": "2025-08-15T16:21:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f75bf474ef87737c87ef6dcb431bd0b87faee0a8",
          "body": "…ting logic (#8168)\n\nFixes: #8167\n\nCurrent emitting logic does not work, this has been corrected.\nThe provided test ensures our CUDA code is valid by compiling PTX from\nit.\n\n`m_writer->emit(\"OptixTraversableHandle\");` should be `out <<` since\n`out` adds to type-name-cache; otherwise using a type twice will produce\nbad type-names (since we filled type-name cache with \"\" instead of\n\"typeName\")",
          "is_bot": false,
          "headline": "[CUDA] Fix incorrect `kIROp_RaytracingAccelerationStructureType` emit…",
          "author_name": "ArielG-NV",
          "author_login": "ArielG-NV",
          "committed_at": "2025-08-15T15:24:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "feb1569d972f294ce482ea8b1645da6cde4e982d",
          "body": "Fixes #7011",
          "is_bot": false,
          "headline": "Prohibit use of buffer.GetDimensions on metal (#8156)",
          "author_name": "James Helferty (NVIDIA)",
          "author_login": "jhelferty-nv",
          "committed_at": "2025-08-15T13:02:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cfd08da1036cf72b8e6c6f661260b968f79667e7",
          "body": "…` debugging (#8192)\n\nfixes: #8188\n\nChanges:\n* Fix Indentation\n* Add a visualizer for `NodeBase` based on changes to `slang-fiddle`\n\n---------\n\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Clean up `natvis` and use fiddle to generate info needed for `.natvis…",
          "author_name": "ArielG-NV",
          "author_login": "ArielG-NV",
          "committed_at": "2025-08-14T21:43:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd06524f523cdac9c753801ce9c3992f66ae5576",
          "body": "…gate if AST-parent has target+set the AST-child does not (#8175)\n\nFixes: #8174\n\nChanges:\n* To determine if we propagate capabilities, we need to ensure that a\n`join` will do nothing (optimization since `join` is expensive + caching\ndata for the `join` adds up to be expensive). This logic was change\n[…]\nd have\n`glsl`. In this case, we will not remove `metal` from the parent since\n`{metal+glsl}.implies({glsl})` is true.\n\n---------\n\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "[Capability System] Fix bug where capabilities do not correctly prope…",
          "author_name": "ArielG-NV",
          "author_login": "ArielG-NV",
          "committed_at": "2025-08-14T19:27:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ceb2e8d04885d55dd9685a38977a55c4f53f202f",
          "body": null,
          "is_bot": false,
          "headline": "Fix typo in \"compilation ceased\" error identifier (#8189)",
          "author_name": "Sam Estep",
          "author_login": "samestep",
          "committed_at": "2025-08-14T18:29:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90a9515fcbc7e362c05341c2ca65fbe78bc1106a",
          "body": "Fixes #6785",
          "is_bot": false,
          "headline": "Handle SV_Barycentrics on metal (#8163)",
          "author_name": "James Helferty (NVIDIA)",
          "author_login": "jhelferty-nv",
          "committed_at": "2025-08-13T20:45:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80b46bd2124b3ead963ae977fef3d010049beb9a",
          "body": "#1729 renamed `Val::_toStringOverride` to `Val::_toTextOverride` but did\nnot update the error message for when it is not overridden. This PR\nfixes that.",
          "is_bot": false,
          "headline": "Fix error for not defining `Val::_toTextOverride` (#8177)",
          "author_name": "Sam Estep",
          "author_login": "samestep",
          "committed_at": "2025-08-13T20:19:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7e2bac2df176af4cd3955e6df02e2ddcbc059d8",
          "body": "When we legalize the entry point param, there are cases where we need to\nreconstruct a struct for the parameter and the original struct wouldn't\nbe used. But if the user tries to use the origianl struct as a type for\na function parameter, we will end up using both the original struct and\nthe synthes\n[…]\nixes https://github.com/shader-slang/slang/issues/8141\nRelated to https://github.com/shader-slang/slang/issues/7693\n\n---------\n\nCo-authored-by: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Remove the semantic decoration from the original entry struct (#8146)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-08-13T15:37:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "047b8af4881e1fc90aa1004d17e32bdffd53bdcf",
          "body": "Currently the issue template makes the subtitle \"bold\". It is a little\nhard to navigate between the subtitle because the bold is not very\nobvious.\n\nThis commit makes them to use a bigger font.\n\nBefore the change,\n<img width=\"839\" height=\"488\" alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/08abec42-8389-4404-89a1-5a70670000cd\"\n/>\n\nAfter the change,\n<img width=\"840\" height=\"544\" alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/e2ffdac1-f8dc-40fa-a317-8dda965f3377\"\n/>",
          "is_bot": false,
          "headline": "Make the issue headings bigger (#8143)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-08-12T19:39:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3618f7a4c35de32405e6ebe458bae835869e2876",
          "body": "Enable CUDA for the tests listed in issue #8078\nThis requires a minor CUDA prelude change, adding some math functions.",
          "is_bot": false,
          "headline": "Enable CUDA testing for batch 2 (#8147)",
          "author_name": "jarcherNV",
          "author_login": "jarcherNV",
          "committed_at": "2025-08-12T18:19:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "719ecf3bf6ce50a8f1d02c6f96ae65e6f492321a",
          "body": "This PR puts the [Khronos official Vulkan\nLoader](https://github.com/NixOS/nixpkgs/blob/6027c30c8e9810896b92429f0092f624f7b1aace/pkgs/by-name/vu/vulkan-loader/package.nix#L22-L27)\nin `LD_LIBRARY_PATH` for the `flake.nix` dev shell, allowing Vulkan\ntests to run.\n\nFor example, before this PR:\n\n```\n$ b\n[…]\ne/array-param.slang.2 (dx11)' \nignored test: 'tests/compute/array-param.slang.3 (dx12)' \npassed test: 'tests/compute/array-param.slang.4 (vk)' \n\n===\n100% of tests passed (2/2), 3 tests ignored\n===\n```",
          "is_bot": false,
          "headline": "Allow `flake.nix` users to run Vulkan tests (#8152)",
          "author_name": "Sam Estep",
          "author_login": "samestep",
          "committed_at": "2025-08-12T15:50:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5b64150cdf0dfd6e068cdf27c5ea857c2d967d15",
          "body": "Related to #7969\n\nIn the slangc help text we have two categories, the option category\n`Target` and the values category `target`, where the names only differ\nby case. The help parser finds the category in the list by the\ncase-insensitive name, so `slangc -h Target` and `slangc -h target` will\nboth pr\n[…]\nill get the\nhelp text for `capability` as before as a fallback.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Do case-sensitive search for category first in slangc -h (#8142)",
          "author_name": "aidanfnv",
          "author_login": "aidanfnv",
          "committed_at": "2025-08-11T18:54:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dcdebc1a76a0a6ffbfd6a5805354f8f679c60202",
          "body": "…pes from API (#8119)\n\nCloses #8110.\nCloses #8011.",
          "is_bot": false,
          "headline": "Allow specializing entrypoints with generic value args or variadic ty…",
          "author_name": "Yong He",
          "author_login": "csyonghe",
          "committed_at": "2025-08-09T16:43:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc6aea37483446372425aca8471f0e8bf7c3a910",
          "body": "Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "[SPIR-V] Emit control flags for `branch/flatten` decorations (#8134)",
          "author_name": "amidescent",
          "author_login": null,
          "committed_at": "2025-08-09T15:30:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d54b66ca633e1890fd4db4c6d90dfe90b9aa4fb",
          "body": "Fixes https://github.com/shader-slang/slang/issues/8098",
          "is_bot": false,
          "headline": "Be conservative for checking if PR is doc changes only (#8130)",
          "author_name": "Jay Kwak",
          "author_login": "jkwak-work",
          "committed_at": "2025-08-09T15:26:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 27,
      "commits_last_year": 173,
      "latest_release_at": "2024-07-10T23:55:07Z",
      "latest_release_tag": "v0.test.11",
      "releases_from_tags": false,
      "days_since_last_push": 8,
      "active_weeks_last_year": 7,
      "days_since_latest_release": 745,
      "mean_days_between_releases": 112.7
    },
    "community": {
      "has_readme": false,
      "has_license": false,
      "has_description": false,
      "has_contributing": false,
      "health_percentage": null,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 0,
      "stars": 1,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": true,
      "example_dirs": [
        "examples"
      ],
      "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": 811328,
      "source_files_sampled": 1413,
      "oversized_source_files": 65,
      "agent_instruction_files": [
        ".github/copilot-instructions.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 13636
    },
    "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": 0,
        "merged_prs": 45,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 3
      },
      "bus_factor": 2,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "csyonghe",
          "commits": 1534,
          "avatar_url": "https://avatars.githubusercontent.com/u/2652293?v=4"
        },
        {
          "type": "User",
          "login": "jsmall-zzz",
          "commits": 821,
          "avatar_url": "https://avatars.githubusercontent.com/u/14912361?v=4"
        },
        {
          "type": "User",
          "login": "tangent-vector",
          "commits": 287,
          "avatar_url": "https://avatars.githubusercontent.com/u/10618364?v=4"
        },
        {
          "type": "User",
          "login": "expipiplus1",
          "commits": 277,
          "avatar_url": "https://avatars.githubusercontent.com/u/857308?v=4"
        },
        {
          "type": "User",
          "login": "jkwak-work",
          "commits": 244,
          "avatar_url": "https://avatars.githubusercontent.com/u/82421531?v=4"
        },
        {
          "type": "User",
          "login": "saipraveenb25",
          "commits": 175,
          "avatar_url": "https://avatars.githubusercontent.com/u/31557731?v=4"
        },
        {
          "type": "User",
          "login": "kaizhangNV",
          "commits": 133,
          "avatar_url": "https://avatars.githubusercontent.com/u/149626564?v=4"
        },
        {
          "type": "User",
          "login": "ArielG-NV",
          "commits": 113,
          "avatar_url": "https://avatars.githubusercontent.com/u/159081215?v=4"
        },
        {
          "type": "User",
          "login": "aleino-nv",
          "commits": 81,
          "avatar_url": "https://avatars.githubusercontent.com/u/30037074?v=4"
        },
        {
          "type": "User",
          "login": "skallweitNV",
          "commits": 80,
          "avatar_url": "https://avatars.githubusercontent.com/u/64953474?v=4"
        }
      ],
      "contributors_sampled": 99,
      "top_contributor_share": 0.347
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "add-issue-labels.yml",
        "benchmark.yml",
        "check-cmdline-ref.yml",
        "check-formatting.yml",
        "check-toc.yml",
        "ci-slang-build.yml",
        "ci-slang-test.yml",
        "ci.yml",
        "claude.yml",
        "comment-ir-version-check.yml",
        "compile-regression-test.yml",
        "copilot-setup-steps.yml",
        "ensure-pr-label.yml",
        "falcor-compiler-perf-test.yml",
        "falcor-test.yml",
        "format.yml",
        "push-benchmark-results.yml",
        "regenerate-cmdline-ref.yml",
        "regenerate-toc.yml",
        "release-linux-glibc-2-27.yml",
        "release.yml",
        "slash-command-dispatch.yml",
        "vk-gl-cts-nightly.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "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": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "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": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 4 contributing companies or organizations",
            "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": 9,
            "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": "no SAST tool detected",
            "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": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "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": "8bcf6c443bbd24498e67ae54f06c2ad933421738",
        "ran_at": "2026-07-26T19:32:49Z",
        "aggregate_score": 3.1,
        "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-26T09:11:44Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-02-27T23:26:23Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/csyonghe/slang",
    "host": "github.com",
    "name": "slang",
    "owner": "csyonghe"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 44,
      "inputs": {
        "security": 30,
        "vitality": 50,
        "community": 9,
        "governance": 64,
        "engineering": 55
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 50,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 52,
            "inputs": {
              "commits_last_year": 173,
              "human_commit_share": 1,
              "days_since_last_push": 8,
              "active_weeks_last_year": 7
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 8 days ago",
                "points": 28.8,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 8
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "7/52 weeks with commits",
                "points": 4.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "173 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 173
                    }
                  }
                ],
                "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": null,
            "notes": [],
            "value": 47,
            "inputs": {
              "releases_count": 27,
              "latest_release_tag": "v0.test.11",
              "releases_from_tags": false,
              "days_since_latest_release": 745,
              "mean_days_between_releases": 112.7
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "27 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 745 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 745
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~112.7 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 112.7
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "dormant",
              "guards": [
                "no_open_demand"
              ],
              "signals": [
                "release_stall",
                "scorecard_unmaintained"
              ],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": 0,
              "unanswered_open_issues": 0,
              "days_since_last_merged_pr": 148,
              "days_since_last_human_commit": 318,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "no human commit for 318 days, with nothing left unanswered; held at dormant by nothing open to answer",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_quiet",
                    "params": {
                      "days": 318
                    }
                  },
                  {
                    "code": "abandonment_guarded",
                    "params": {
                      "guards": "nothing open to answer"
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "critical",
        "name": "Community & Adoption",
        "value": 9,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 1,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "critical",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 19,
            "inputs": {
              "has_readme": false,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file present, not a recognized license",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "license_custom",
                    "params": {}
                  }
                ],
                "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": 0,
                "status": "missed",
                "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": 64,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 63,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 99,
              "top_contributor_share": 0.347
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 35% of commits",
                "points": 14.7,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 35
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "99 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 99
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 67,
            "inputs": {
              "merged_prs": 45,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 3
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "45/48 decided PRs merged",
                "points": 35.9,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 45,
                      "decided": 48
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 61,
            "inputs": {
              "followers": 203,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "csyonghe",
              "public_repos": 25,
              "account_age_days": 5021
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "203 followers of csyonghe",
                "points": 16.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 203,
                      "login": "csyonghe"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "25 public repos, account ~13 yr old",
                "points": 22.3,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 25
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 13
                    }
                  }
                ],
                "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": 55,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "23 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 23
                    }
                  }
                ],
                "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": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "at_risk",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 35,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": false,
              "has_docs_dir": true,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 30,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 30,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 3.1
            },
            "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 not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "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.2,
                "status": "partial",
                "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": "no SAST tool detected",
                "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": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "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": 3
            },
            "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": "moderate",
        "name": "AI Readiness",
        "value": 67,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.99,
              "agent_instruction_files": [
                ".github/copilot-instructions.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 13636
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".github/copilot-instructions.md, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".github/copilot-instructions.md, CLAUDE.md"
                    }
                  }
                ],
                "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": "99 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 99,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 51,
            "inputs": {
              "has_nix": true,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.04,
              "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": "C++ (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C++"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Nix",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Nix"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "4 of the last 100 commits agent-authored or agent-credited",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 4,
                      "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
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "primary_language": "C++",
              "largest_source_bytes": 811328,
              "source_files_sampled": 1413,
              "oversized_source_files": 65
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C++ (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C++"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "65/1413 source files over 60KB",
                "points": 52.5,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 1413,
                      "oversized": 65
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "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": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Community profile unavailable"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-26T19:33:09.282472Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/c/csyonghe/slang.svg",
  "full_name": "csyonghe/slang",
  "license_state": "custom",
  "license_spdx": null
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.27.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистика.