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

wizzcomms / wizz-method

Método de agência orientado por IA, em PT-BR. Um maestro lê seu pedido e chama o agente certo. Fork independente do BMad Method.

JavaScript · HTMLВласна ліцензія★ 0 зірок⑂ 0 форківз черв. 2026 р.Переглянути на GitHub ↗

wizzcomms/wizz-method має індекс здоров’я 66 зі 100, що відповідає смузі «Помірний». Найвищий показник — Vitality (84/100), найнижчий — Community & Adoption (45/100). Останнє оновлення було 3 дні тому. Більшість нещодавньої роботи виконують 2 учасники.

66
загалом / 100
Помірний

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

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

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

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

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

Власність

Wizz! commsОсобистий обліковий запис
0 підписників7 публічних репозиторіївз лист. 2025 р.

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

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
npmwizz-method1.7.02 935185 днів томуagileaiorchestratordevelopmentmethodologyagentswizzwizzcomms

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

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

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

84Добрий · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 3 дн. тому
35.3/36Ритм комітів — 51/52 тижнів із комітами
18/18Обсяг комітів — 1 496 комітів за останній рік
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Використані вхідні дані
commits_last_year1 496
human_commit_share0,99
days_since_last_push3
active_weeks_last_year51
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 1 релізів
36/36Свіжість релізів — останній реліз 17 дн. тому
12.6/27Ритм релізів — ритм невідомий (єдиний реліз)
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Використані вхідні дані
releases_count1
latest_release_tagassets-v1
releases_from_tagsні
days_since_latest_release17
mean_days_between_releases

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

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

45У зоні ризику · 18% загального індексу
Як обчислюється оцінка
0/60Зірки — 0 зірок
0/25Форки — 0 форків
0/15Спостерігачі — 0 спостерігачів
Використані вхідні дані
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
16.9/22.5Ліцензія — файл ліцензії наявний, не є визнаною ліцензією
18/18Настанови CONTRIBUTING
13.5/13.5Кодекс поведінки
0/7.2Шаблон issue
6.3/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductтак
has_pull_request_templateтак
Як обчислюється оцінка
46.2/80Щомісячні завантаження — 2 935 завантажень/місяць у npm
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packageswizz-method
dependents
ecosystemsnpm
total_downloads
monthly_downloads2 935
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

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

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

62Помірний · 24% загального індексу
Як обчислюється оцінка
25.2/54Бас-фактор — на 2 контриб’ютор(ів) припадає половина всіх комітів
13.8/22.5Розподіл комітів — головний контриб’ютор — автор 39% комітів
13.5/13.5Широта контриб’юторів — 98 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 11 contributing companies or organizations
Використані вхідні дані
bus_factor2
contributors_sampled98
top_contributor_share0,386
Як обчислюється оцінка
0/46.8Вирішення issue — немає issue або даних
38.2/38.3Прийняття PR — злито 1/1 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs1
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Виключено з оцінювання (немає даних або не застосовно): Вирішення issue. Залишкові ваги перенормовано.
Як обчислюється оцінка
10/30Підтримка власника — особистий (користувацький) обліковий запис
0/20Верифікований домен — не застосовно до користувацьких облікових записів
0/25Охоплення власника — 0 підписників у wizzcomms
7.9/25Послужний список — 7 публічних репозиторіїв, вік облікового запису ~0 р.
Використані вхідні дані
followers0
owner_typeUser
is_verified
owner_loginwizzcomms
public_repos7
account_age_days244
Виключено з оцінювання (немає даних або не застосовно): Верифікований домен. Залишкові ваги перенормовано.

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у npm
35/35Свіжість публікацій — остання публікація 5 дн. тому
20/20Історія версій — 18 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packageswizz-method
ecosystemsnpm
any_deprecatedні
min_days_since_publish5

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

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

78Добрий · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 4 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера — eslint.config.mjs
0/9.6Pre-commit-хуки
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 1 merged PRs checked by a CI test -- score normalized to 0
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configтак
has_precommit_configні

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

100Відмінний
Як обчислюється оцінка
30/30README
25/25Каталог документації
15/15Сайт документації / домашня сторінка — https://method.wizzcomms.com
10/10Опис репозиторію
10/10Теми — 10 тем
10/10Wiki
Використані вхідні дані
topicsagency, agile, ai, ai-agents, bmad, claude-code, cursor, llm, methodology, portugues
has_wikiтак
homepagehttps://method.wizzcomms.com
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

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

54Помірний · 16% загального індексу

Стан безпеки

43У зоні ризику
Як обчислюється оцінка
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 out of 1 merged PRs checked by a CI test -- score normalized to 0
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 11 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.2/2.5Ліцензія — license file detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
0/5Packaging — немає даних
1/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
5/5Security-Policy — security policy file 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_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4,3
Виключено з оцінювання (немає даних або не застосовно): packaging. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
25/25Непрямі залежності без відомих сповіщень — жодна непряма залежність не має відомих сповіщень
0/40Немає задавнених сповіщень — жодне сповіщення не має дати публікації
Використані вхідні дані
sourceosv
advisories0
affected_packages0
assessed_packages98
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Виключено з оцінювання (немає даних або не застосовно): Немає задавнених сповіщень. Залишкові ваги перенормовано. Звірено з runtime-замиканням залежностей npm:wizz-method@1.7.0 — тим, що тягне за собою встановлення опублікованого пакета, — 98 пакетів. Досяжність не аналізується.

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

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

64Помірний · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — AGENTS.md, docs/reference/agents.md, src/skills-lib/supabase-postgres-best-practices/AGENTS.md
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 97 з 99 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,98
agent_instruction_filesAGENTS.md, docs/reference/agents.md, src/skills-lib/supabase-postgres-best-practices/AGENTS.md
agent_instruction_max_bytes4 965
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — eslint.config.mjs
0/11Статична перевірка типів
10/10Відтворюване середовище — lockfile
10/10Підтверджена практика роботи з агентами — 22 з останніх 100 комітів створено агентом або з його зазначенням
5/8Автоматизоване супроводження — автоматизацію залежностей налаштовано, але у вибірці комітів її не видно
2/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
Використані вхідні дані
has_nixні
has_testsтак
lockfilespackage-lock.json
has_dockerfileні
typed_languageні
bootstrap_files
has_devcontainerні
has_linter_configтак
typecheck_configs
agent_commit_share0,22
toolchain_manifests
dependency_bot_commit_share0
Як обчислюється оцінка
0/45Типізований код — JavaScript без конфігурації перевірки типів
53.6/55Керовані розміри файлів — 4/157 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageJavaScript
largest_source_bytes190 536
source_files_sampled157
oversized_source_files4
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
0/20Сервер MCP
40/40Придатні до запуску приклади — demos, examples
Використані вхідні дані
example_dirsdemos, examples
has_mcp_signalні
api_schema_files

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

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

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

  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Докладніше

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

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

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
0CI-Tests0 out of 1 merged PRs checked by a CI test -- score normalized to 0
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 11 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
9Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
н/дPackagingpackaging workflow not detected
2Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 2
0SASTSAST tool is not run on all commits -- score normalized to 0
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Прямі залежності 13
РеєстрПакетОбмеження версіїМаніфест
npm@clack/core^1.3.1package.json
npm@clack/prompts^1.4.0package.json
npm@kayvan/markdown-tree-parser^1.6.1package.json
npmchalk^4.1.2package.json
npmcommander^14.0.0package.json
npmcsv-parse^6.1.0package.json
npmglob^11.0.3package.json
npmignore^7.0.5package.json
npmjs-yaml^4.3.0package.json
npmpicocolors^1.1.1package.json
npmsemver^7.6.3package.json
npmxml2js^0.6.2package.json
npmyaml^2.7.0package.json
Усі залежності не зібрано

Не вдалося зібрати розв'язаний набір залежностей для цього звіту: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Сповіщення про залежності 0

Встановлення npm:wizz-method@1.7.0 тягне 98 пакетів, прямих і транзитивних: 0 мають відомі сповіщення, з них 0 — прямі залежності.

Жодне відоме сповіщення не стосується оцінених залежностей.

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "agency",
        "agile",
        "ai",
        "ai-agents",
        "bmad",
        "claude-code",
        "cursor",
        "llm",
        "methodology",
        "portugues"
      ],
      "is_fork": false,
      "size_kb": 80345,
      "has_wiki": true,
      "homepage": "https://method.wizzcomms.com",
      "languages": {
        "CSS": 18633,
        "HTML": 1346216,
        "Astro": 5970,
        "Shell": 37159,
        "Python": 223792,
        "JavaScript": 1516940,
        "TypeScript": 33400
      },
      "pushed_at": "2026-07-21T22:07:54Z",
      "created_at": "2026-06-19T07:19:07Z",
      "owner_type": "User",
      "updated_at": "2026-07-19T09:19:13Z",
      "description": "Método de agência orientado por IA, em PT-BR. Um maestro lê seu pedido e chama o agente certo. Fork independente do BMad Method.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "JavaScript",
      "significant_languages": [
        "JavaScript",
        "HTML"
      ]
    },
    "owner": {
      "blog": "agencywizz.com",
      "name": "Wizz! comms",
      "type": "User",
      "login": "wizzcomms",
      "company": null,
      "location": null,
      "followers": 0,
      "avatar_url": "https://avatars.githubusercontent.com/u/245509532?v=4",
      "created_at": "2025-11-22T06:53:13Z",
      "is_verified": null,
      "public_repos": 7,
      "account_age_days": 244
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "assets-v1",
          "kind": "other",
          "published_at": "2026-07-07T17:15:38Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "fd461ba3b2dd6cfd79b2d878a41e5f35a377a2cf",
          "body": "…design\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(release): v1.7.0 — Bklit UI, GSAP e anime.js como libraries de …",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-19T09:18:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4ef19f9cfab855cda69636442ca13b3274a122cc",
          "body": "… nas skills premium-landing-ui-researcher e motion-3d-director\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Bklit UI (charts shadcn), GSAP e anime.js como fontes de design…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-19T09:17:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "93bd5c5bd5a38c0ce0c7e4d258b8408c7e02d548",
          "body": "…lect de CLIs, fontes da premium-landing atualizadas\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(release): v1.6.0 — 21st CLI no registry, recommended no multise…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-11T04:04:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6f02750859eddf1a4170efac37f19304bb7fa6e4",
          "body": "… no installer + fontes da landing skill (21st CLI, Componentry MCP, Refero Styles)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 21st CLI na área de design + flag recommended (rtk pré-marcado)…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-11T04:01:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "af1365f6ebdad2d3870e6c09ed999dba1e907a6a",
          "body": "…ea não instalavam via npx)\n\nlistAvailable() só listava core/bmm; agora descobre módulos bundled em\nsrc/modules/<code>/module.yaml, então o módulo wizz (default_selected: true)\nentra no picker e nos defaults do --yes.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(release): v1.5.2 — fix módulo wizz órfão (maestro/agentes de ár…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T23:33:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ca66944170f69a4090251a0f062dc3603c9502b8",
          "body": "… add\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(release): v1.5.1 — fix do pin de SHA no install dos CLIs skills…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T23:10:41Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5a1ea0aaa4d18c3e5ab0cff4afedd3e918d8af04",
          "body": "…o fragmento #<sha> era tratado como branch); check do hyperframes testa a skill instalada\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: pin de SHA dos CLIs skills add via clone temporário + checkout (…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T23:09:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2fb8a52d7b503edfd00ba6fe8b9d0530ad91c20c",
          "body": "…i do versionamento\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(release): v1.5.0 — consolida fases 1-3 da auditoria; _audit/ sa…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T21:01:54Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0576eea3f9a8162c6f2e0ae4cb0bc6984b6f6b8b",
          "body": "….5c)\n\n- 3.8-E1: install pergunta opt-in do medidor de roteamento; se sim grava env.WIZZ_TRACE=\"1\" em .claude/settings.local.json via persistProjectEnv; --yes/sem TTY nunca liga; resumo mostra a escolha e como desligar\n- rename tools/installer/cli-utils.js → banner.js (desfaz confusão com modules/cli-config.js)\n- testes diretos de selectMcps/selectClis e parsing de --mcps/--clis (suítes 52-53)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: fase 3 da auditoria, onda B4 (3.8-E1 trace opt-in + residuais 3…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T20:07:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8bbc1b99e9f25ffc78a0be3a9515400e59fbc921",
          "body": "- novo modules/env-vars.js: extractEnvPlaceholders, resolveEnvVars (process.env → .env), persistEnvValues/persistProjectEnv (settings.local.json chave env, merge sem sobrescrever, chmod 600), promptMissingEnvVars\n- integrado entre prepareMcps e writeMcpConfig, só em toWrite; skip em --yes/sem TTY; .\n[…]\n o placeholder\n- password() com valor nunca ecoado; resumo por var no fim do install\n- test/test-env-vars.js (46 asserts, checklist E7 completo)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: fase 3 da auditoria, onda B3 (3.3 env vars de MCP no install)",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T19:53:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "af04af919de99882cad32ba92ff67e32134458c8",
          "body": "…stall)\n\n- fresh install escreve em _wizz.tmp-<pid>/ e faz swap atômico só após generateManifests\n- merge do .mcp.json movido para depois do swap (dryRun antes)\n- catch remove só o tmp; _wizz/ real nunca chega a existir em falha\n- fix: skill-manifest.csv não baka mais o nome do dir tmp (wizzFolderName)\n- teste novo: falha simulada em generateManifests → zero resíduo\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: fase 3 da auditoria, onda B2 (3.2 install atômico para fresh in…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T19:39:18Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c72c82e6de09c076421e89679cf43362ecafb1b3",
          "body": "….6 smoke MCP real no CI)\n\n- 3.1: installer.js 1870→1280 linhas; extraídos user-file-preservation, module-config-writer, help-catalog, quick-update (composição, API pública intacta; manifest byte-idêntico antes/depois)\n- 3.6: test:install-smoke-mcp (fora do agregado) + workflow install-smoke-mcp.yaml (manual + cron semanal, não é gate)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: fase 3 da auditoria, onda B1 (3.1 extração do installer + 3…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T19:14:11Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "895671ce84b10d1699cc2c53517f080fbda23959",
          "body": "- 3.4: progressive disclosure em 19 skills + índice huashu-design + blueprint lazy no wizz-social\n- 3.5: dedup graphify, cross-refs da tríade de review, baixos remanescentes das partes 1-2\n- 3.7: metadata.version opcional no validador + PR template + governança\n- 3.8-doc: seção \"Gatilhos de reavaliação\" em docs/governance.md\n- 3.8-E2: comando npx wizz-method trace-report + teste\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: fase 3 da auditoria, onda A (3.4, 3.5, 3.7, 3.8-doc, 3.8-E2)",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T18:57:54Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9bb762943cde03f4073dd79601a7637b8c11f41f",
          "body": "…-org\n\nOpção (a) do A4: os 6 módulos de wizz-modules.yaml que vivem em repos da\nbmad-code-org passam de type: wizz-org (enganoso) para upstream-org, com\na confiança delegada documentada no cabeçalho do yaml e em\ndocs/governance.md. Sem forks; reavaliar se o upstream mudar de dono ou\ncomportamento. Nenhum código ramifica no valor do type.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: decisão 2.10 da auditoria — módulos externos rotulados upstream…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T18:00:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ed0cc01bf89015d844655c0061591c70edc01ad0",
          "body": "2.3 (A1/M1): regra de dispatch em 2 cláusulas (2+ áreas → maestro,\nsempre; senão 2+ dos 3 fatores → maestro) nas 4 cópias (router, maestro,\nhook, quick-dev EN); exemplos de borda calibrados do dataset;\ntest:dispatch-rule extrai os parâmetros normativos das 4 fontes e falha\nem divergência.\n2.6 (A6/A1\n[…]\nall --yes (test:install-smoke,\n~3s, sem rede); checklist de evals no template de PR.\nCHANGELOG 1.4.2 atualizado com o pacote completo da Fase 2.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: fase 2 da auditoria, onda 3 (2.3, 2.6) + changelog",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T17:30:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "09ea42b668040fc5e04f921f63cd6b7ff53013cd",
          "body": "2.2 (A2/A12/M2): protocolo de handoff em src/core-skills/_shared/\nhandoff-protocol.md (origem anti-loop, cérebro consultado 1x, decisões\nda cadeia, seção relevante da skill, model_hint opcional); referenciado\npor router, maestro, 7 agentes de área, party-mode e swarm.\n2.5 (M27/M14/A13): min_version \n[…]\ntrução clara offline.\n2.9 (M20): platform: [darwin, linux] em claude-video/voicebox/distribb/\narcads; suporte oficial declarado macOS/Linux/WSL.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: fase 2 da auditoria, onda 2 (2.2, 2.5, 2.8, 2.9)",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T17:12:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "016e0492592930509a86496b22489faaf2ab5e8d",
          "body": "2.1 (A11/M17): include opcional no resolve_customization.py +\n_shared/communication-rules.md como fonte única da regra de comunicação;\n15 cópias colapsadas (9 customize.toml + 6 overrides). test:resolver.\n2.4 (A16/M15): registry-resolve.js unifica resolveMcps/resolveClis/\nresolveSkillIds; tools/lib/\n[…]\na com backoff em erro\ntransitório nos fetches do installer (manifest, channel-resolver,\nexternal-manager); sem lib genérica. test:network-retry.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: fase 2 da auditoria, onda 1 (2.1, 2.4, 2.7, 2.12)",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T16:45:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "af38194c31a494fbe96d2236bed7da2f93adb9ed",
          "body": "Entregas da Fase 1 (_audit/2026-07-07-parte4, seção 9): files allowlist,\nCI = npm test completo, schema do registry, dependabot, RTK governado\n(pin+checksum+hook forkado+test:rtk-hook), supabase MCP read-only, pins\npor SHA, Quick Update comunicado, hardening do installer (M23-M26),\ngovernance.md + P\n[…]\nresente no 0.43.0; fork mantido.\ngovernance.md: frontmatter Starlight + links externos via GitHub;\nvalidate-doc-links agora ignora URLs http(s).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: fase 1 da auditoria 360 (13 tarefas) + compat rtk 0.43.0 no hook",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T16:16:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fb1d8e545b1f5cb33ae7bea99c082f02d64d747c",
          "body": "- .gitignore: adiciona patterns para .env, tokens, secrets, certificados\n- tools/skills-catalog.md: catálogo unificado de 116 skills com localização\n  por plataforma (Claude/OpenCode/Obsidian), 60 duplicadas identificadas\n- Referenciado pelo routing-table-flat.md para verificação de existência",
          "is_bot": false,
          "headline": "fix: auditoria 360 — .gitignore secrets + skills catalog unificado",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T09:39:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3459cbf471d320e5131a2db47894941eba6cb03d",
          "body": null,
          "is_bot": false,
          "headline": "fix: validate wizz method references",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T07:19:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88e1ce9da9bdf35b6b089b830d958f5047803805",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 1.4.1",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T06:04:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d91b8b51a1d554947882dac8ac70c1867aaddc73",
          "body": "Reduz o overhead por pedido e o custo fixo por sessão sem perder cobertura.\n\nHooks (nova fonte de verdade em tools/hooks/, instala via npm run sync:global):\n- wizz-router-enforce v2: detecta projeto Wizz (_wizz/) e injeta dica curta de\n  delegação direta (maestro/agente) em vez do mandato completo d\n[…]\ndataset de 48 prompts rotulados + runner deterministico/LLM)\n- test:hooks cobre isTrivial e o contexto por modo, entra no npm test\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(tokens): dieta de roteamento e memória do method",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-07T05:58:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ab39e7fd31e7590d0e78d59ab0343d5e4d1947e6",
          "body": "…s melhoradas e dieta de 3 monólitos\n\nSecurity: npm audit 26→2 vulns (js-yaml corrigido); pins de versão/SHA para terceiros do registry (buttercut/voicebox/arcads/MCPs); remoção de caches com path pessoal; correção de metadata BMAD herdada (marketplace.json, README, build-docs).\n\nToken economy: wizz\n[…]\nagora safeStorage) e adicionou hardening de navegação.\n\nSuíte de testes completa verde (refs, install, audit, eslint, markdownlint, prettier).\n\nCo-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(security,tokens): audit de dependências, supply chain pins, skill…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-06T18:41:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0be64550913342a9be13da8ccf6cd999218487dd",
          "body": "…ip de CSV de skills-lib, scrub de path absoluto\n\n- mapInstalledToSource: {project-root}/_wizz/skills-registry.yaml resolve pra raiz do repo (não src/), eliminando 9 falsos-positivos de \"broken ref\" nos agentes wizz-*\n- extractCsvRefs: ignora CSVs de dados sob skills-lib/ (icons/stacks têm código co\n[…]\n remove ruído de CSV-PARSE-ERROR\n- ray-dalio.md: remove bloco de lixo de geração com path absoluto /Users/rafa/... vazado\n\nO job \"Quality & Validation / validate\" agora passa (0 broken refs, 0 leaks).",
          "is_bot": false,
          "headline": "fix(ci): validate:refs verde — mapeamento de skills-registry.yaml, sk…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-05T14:10:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8eb2837baa0f84b1e0af142e643212a93ca6cac2",
          "body": "… asset, ai-product-design)\n\nSegurança (web-security, auth-and-secrets):\n- Tabela de triagem de falhas recorrentes de pentest rankeada por severidade\n- CORS refletindo Origin -> allowlist explícita\n- Vazamento de PII/hash na resposta -> allowlist de saída (DTO)\n- Enumeração de usuário -> mensagem ge\n[…]\nithmic-art (visual generativo)\n- ai-product-design: bundle de 44 padrões de design de agente/IA,\n  arquitetura de prompt e trust/safety (base Owl-Listener/ai-design-skills, MIT)\n\nVersão 1.3.2 -> 1.4.0",
          "is_bot": false,
          "headline": "feat(security+skills): cobertura de pentest + 5 skills novas (motion,…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-05T14:03:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "915f39b5055d7b221938bcc4bd73d08cee35fafb",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 1.3.2",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-05T10:39:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dff95923c7f5f9e1e55add747e8c551999f011bc",
          "body": "…rto em todos os agentes\n\nInjeta regra padrão de comunicação como 1a linha de activation_steps_append\nnos 9 agentes e 6 overrides, e atualiza a seção Output de _shared/token-economy.md.\nVale para qualquer projeto que instale o wizz-method.",
          "is_bot": false,
          "headline": "feat(wizz): comunicação sem narração, pausa no importante e resumo cu…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-05T10:38:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5011627629dd8d1d0ed374c378ecf2f2fd62e1a",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 1.3.1",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T23:19:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0fd8104827bfa2c6f1fba66cf6c04742408791c",
          "body": "…ver .mcp.json\n\nCorrige o bug do MCP scrapling que gerava config quebrada (ENOENT): o\ninstaller escrevia `command:\"scrapling\"` (relativo) mas nunca instalava o\npacote `scrapling[ai]` (onde vive o servidor MCP) nem os browsers, e o\nsubprocesso do MCP nem sempre herda ~/.local/bin no PATH.\n\n- skills-r\n[…]\nactos\n- test-mcp-config.js: +20 testes (exec injetado + HOME temporário p/ hermeticidade)\n\nDoutrina: qualquer MCP futuro cujo command seja binário externo (não npx) deve\ndeclarar `setup:` no registry.",
          "is_bot": false,
          "headline": "fix(installer): MCP com binário externo instala+valida antes de escre…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T23:19:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9cf18fd84d80aeb206d9bfecdad8c7a75cd6548d",
          "body": "feat(wizz-social): esteira de conteúdo (roteiro→prompts→imagem) + doutrina de instalação",
          "is_bot": false,
          "headline": "Merge pull request #1 from wizzcomms/feat/wizz-social-esteira-conteudo",
          "author_name": "Wizz! comms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T19:11:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "483b5192f87b553ed4615b1bf5262505722e1b13",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 1.3.0",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T19:06:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f57f40b4f7db99f2f237f47d88bb4aa3005a636",
          "body": "…ivação\n\nRevisão de eficiência aplicada:\n- persistent_facts 11→7: remove regras já cobertas por principles (briefing, hook)\n  e communication_style (bordão), e a nota de formato já dita no SKILL.md\n- SKILL.md \"Regras de criação\": deixa de duplicar principles, vira ponteiro\n- adiciona IMG e copy-editing à tabela de roteamento do SKILL.md\n- desambiguação explícita PROMPT (esteira) vs IMG (avulso)",
          "is_bot": false,
          "headline": "refactor(wizz-social): elimina redundância de tokens no caminho de at…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T19:05:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "232b24bf1c790b82d3a723ec2dd99978d35b2e17",
          "body": "…em) + doutrina de instalação\n\nAgente wizz-social (persona Rafa) vira uma esteira de produção de conteúdo:\n- Seção 12 do blueprint: formato 3D-personagem-falante (2 etapas, tabela de cenas, regras de fala)\n- knowledge/prompts-imagem-video.md: roteiro aprovado vira prompts de imagem + animação (Veo3)\n[…]\njeto, auto-deps NPX/CLI/MCP no install-time com cache\n- tradeoff install-time vs runtime com recomendação, auto-update, escolha inteligente de ferramenta\n- deps-cache.js (manifest passivo) + 26 testes",
          "is_bot": false,
          "headline": "feat(wizz-social): esteira de conteúdo completa (roteiro→prompts→imag…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T19:01:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2f737d7b1b4914e7f877dcb378d605ab5e45f0e7",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 1.2.2",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T12:55:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1517ea8cfa976398335891fe899d18ccafe21629",
          "body": "Os gates da skills-lib, seletor de áreas, MCP e CLI dependiam do módulo\n'wizz', que não é oferecido em official-modules.js listAvailable() (só\ncore e bmm). Resultado: wizz-router e as 62 skills da biblioteca nunca\ninstalavam via npx. Migra os 4 gates para 'bmm' (Wizz Method), que todo\ninstall marca e já carrega os agentes de área.",
          "is_bot": false,
          "headline": "fix(installer): instala wizz-router/skills-lib no módulo bmm",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T12:55:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6e204298635effc326ee0b1cf10ae438fe7af65",
          "body": "As 62 skills em src/skills-lib/ são skills globais/de terceiros vendorizadas que\nmantêm o nome upstream de propósito (ab-test-setup, agent-browser...). A regra\nSKILL-04 (name deve começar com wizz-) as marcava como HIGH — 61 alarmes falsos.\nAgora skills sob skills-lib são isentas do prefixo; SKILL-05 (name = pasta) segue\nvalendo. validate:skills passa de 61 HIGH para 0.",
          "is_bot": false,
          "headline": "fix(validate-skills): exempt src/skills-lib from wizz- prefix rule",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T09:00:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d813025e0aa9933b024c79a568bc3dff77fbad32",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 1.2.1",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T08:43:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce1abd5127905e99a098582157ec5163fbe80180",
          "body": "…ry-aware\n\nResolve a colisão de papéis (router e maestro ambos \"orquestrador\") que fazia\nparecer dois chefes. Cadeia única: Diretor → (agente da área | maestro) → skills.\n\n- wizz-router vira DIRETOR / porta de entrada: só triagem+delegação, não orquestra.\n  Em projeto Wizz: 2+ áreas OU 2+ fatores al\n[…]\n-registry.yaml e oferecem TUDO que casar\n  (skills/clis/mcps por `when:`, respeitando `platform:`), pegando novidades\n  automático (ex. tools de vídeo no designer, arcads em ads, scrapling em growth).",
          "is_bot": false,
          "headline": "refactor(wizz): Diretor→Gerente→trabalhadores; agentes de área regist…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T08:42:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7634da7cd8e103234aaae91b31b77e15e594e00a",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 1.2.0",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T08:04:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25f87a7241e8a61378e5f8bda3dec08b9d58a63f",
          "body": "Integra tools de vídeo/social no skills-registry.yaml por área, como\nclis:/mcps: (upstream install, roteado pelo maestro/router via `when:`):\n- designer.clis: hyperframes, claude-video, buttercut, voicebox\n- ads.clis: arcads\n- growth.mcps: scrapling\n- seo.clis: distribb\n\nAdiciona gate de plataforma \n[…]\nopt-in.\n\nEnsina maestro e wizz-router a considerar clis:/cli_utility: no roteamento\n(antes só skills:/mcps:), respeitando o platform gate.\n\nTestes: test-cli-config cobre o platform gate (32 passando).",
          "is_bot": false,
          "headline": "feat(registry): video/social tools + platform-gated CLI suggestions",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-07-03T07:20:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "09dd9930b98f0558530ff847c89d9d93eb96f5ae",
          "body": "Skills consolidation + registry-driven installer (MCP/CLI per area) + 12 squads.",
          "is_bot": false,
          "headline": "chore: bump version to 1.1.0",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-29T19:59:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f235f6ecbea17cfefd6d9d0d0379672637315d5",
          "body": "…ry-driven installer (MCP/CLI per area) + 12 squads",
          "is_bot": false,
          "headline": "Merge feat/skills-consolidation-phase0: skills consolidation + regist…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-29T19:59:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c241ee2c2fd288ade604ded98f523ffc5d54aca0",
          "body": "Add a CLI step mirroring the MCP step, for the command-line tools agents\nshell out to (agent-browser for browser verification, rtk for token\neconomy) — distinct from MCP servers. skills-registry.yaml stays the\nsingle source of truth: areas declare `clis:`, plus top-level\n`cli_utility:` for cross-cut\n[…]\ni.js selectClis + --clis flag; config.js cliPlan; installer.js runs\n  chosen installs and prints `install` commands for the rest.\n\nSeeds: qa->agent-browser (npm), cross-cutting->rtk (curl install.sh).",
          "is_bot": false,
          "headline": "feat(installer): registry-driven CLI install per area",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-29T19:32:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "088a06c64c5f68fbbdd45b8e61094c13fb0edef5",
          "body": "Declare recommended MCP servers per area in skills-registry.yaml (mcps:\n+ cross-cutting mcp_utility:) as the single source of truth, alongside\nskills. The installer resolves the chosen areas to a deduped MCP set,\nsplits them into write-vs-recommend, and additively merges the chosen\nones into the pro\n[…]\ny missing capability as skill (know-how) vs MCP (live access).\n\nBrowser verification stays on agent-browser (CLI/skill, already\ninstalled), not an MCP. The Playwright MCP is intentionally not offered.",
          "is_bot": false,
          "headline": "feat(installer): registry-driven MCP setup per area",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-29T19:07:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "025c9a38c566d95b4a1e34a87f119f52ba5b17af",
          "body": "Phase 3: squads (advisory persona panels) now run through wizz-party-mode.\n\n- src/squads/<id>/: archived persona source (agents/*.md + squad.yaml),\n  migrated from wizzbranding/squads; BMAD scaffolding (tasks/workflows/\n  checklists) intentionally left out — party-mode does not consume it.\n- wizz-pa\n[…]\nd content,\n  mirrors src/skills-lib handling).\n\nVerified: TOML parses, 120 members no duplicate codes, all group members\nresolve, resolve_party.py lists/resolves every squad, 15 party-mode tests pass.",
          "is_bot": false,
          "headline": "feat(squads): migrate 12 consultative squads into party-mode",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-29T16:13:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ca683941bcf6b419585e395b3d422c971b13dd47",
          "body": "- new modules/skills-lib.js: reads skills-registry.yaml, resolves chosen\n  areas to skill ids (+ utilities always), copies only those into\n  _wizz/skills-lib, and installs the registry into _wizz/_config so the\n  maestro reads the same source at runtime. No-op when sources absent.\n- manifest-generat\n[…]\non wizz module, additive (warns on failure, never aborts).\n\nVerified end-to-end: install copies area skills to .claude/skills,\nregistry persists for the maestro, cleanup is uniform with engine skills.",
          "is_bot": false,
          "headline": "feat(installer): install skills-lib by area from skills-registry.yaml",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-29T15:34:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "236e67b62d53284c4213258534832cc22557f09a",
          "body": "- wizz-maestro: replace hardcoded routing table with registry read\n  (menu dispatches the agent, skills-registry.yaml enriches with\n  global skills + squads + when); graceful fallback when registry absent\n- shared complexity signal (areas, steps, planning, artifact+memory)\n  defines router->maestro \n[…]\nmotion\n- wizz-router: escalate to wizz-maestro on 2+ high factors inside a\n  Wizz Method project; stays flat/global otherwise\n- wizz-quick-dev: escalate up to maestro when scope balloons to multi-goal",
          "is_bot": false,
          "headline": "feat(skills): registry-driven maestro routing + bidirectional handoff",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-29T15:16:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "deae04fe3123ae48ccf4e8ca068c337755a5c9c5",
          "body": "Phase 1 of the consolidation.\n\n- skills-registry.yaml: single source of truth mapping each of the 62 skills\n  to an area (owned by a wizz agent), each of the 12 squads to a consulting\n  domain, with a \"when\" gloss per skill to disambiguate overlapping ones.\n  Read by both the installer (what to copy\n[…]\n name and reads name/\ndescription from frontmatter, so per-skill sidecars would be redundant.\nVerified all 62 SKILL.md have valid name+description frontmatter so the\ngenerator won't silently skip any.",
          "is_bot": false,
          "headline": "feat(skills): add skills-registry.yaml + align skill names to dir ids",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-29T14:59:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e2a8638260609cee5665e56535841608bcf32b92",
          "body": "Bring the 62-skill library into src/skills-lib/ as the foundation for the\nsingle-repo consolidation (per-project install target). Excludes the two\nskills cut in Phase 0. Vendored library is excluded from md/prettier/eslint.\n\nPhase 0 cleanup (redundancy validated by grep, engine untouched):\n- remove \n[…]\n adversarial-reviewer; markdown-list output (Blind Hunter) preserved\n- decision-maker: hand its four prompts to the wizz executor agents when\n  running inside the method; standalone behavior unchanged",
          "is_bot": false,
          "headline": "feat(skills): consolidate skills-lib into monorepo + Phase 0 cleanup",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-29T14:34:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bcf9f8ae8a04847da72c95b4df1837ddd0b52b54",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 1.0.3",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-27T18:19:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "780e2dc37c0c8b8a7cd3e4276fee1be7c0bae8ff",
          "body": "…nally\n\nParty agents still think and clash in full behind the scenes, but the\noutput to the user is tightened: bulleted/comparative summaries instead\nof replaying the whole debate, and decision/action points presented as a\ncompact comparative block. Read-back at wrap-up is also concise.",
          "is_bot": false,
          "headline": "feat(party-mode): surface concise summaries, keep analysis deep inter…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-27T18:18:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eea39da0a1812072ca8761377eccba2460d36334",
          "body": "Mirror the architect's Context7 integration into the dev agent (Amelia) and\nthe technical-research workflow via persistent_facts. Both consult Context7\n(resolve-library-id then query-docs) for current library docs/APIs before\nrelying on training data, with web-research fallback and an 'npx ctx7 setup'\nhint when the MCP is unavailable.",
          "is_bot": false,
          "headline": "feat(dev,research): add Context7 directive for live library docs",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-25T21:56:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c148e7bd80d1a950026b1ee2805ec24105cc83c",
          "body": "…brary docs\n\nArchitect now consults Context7 (resolve-library-id then query-docs) before\nweb search for current library/framework docs, APIs, and versions. Falls back\nto web research and suggests 'npx ctx7 setup' when the MCP is unavailable.",
          "is_bot": false,
          "headline": "feat(architect): add Context7 to external-source registry for live li…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-25T21:54:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52ea6aa89e435a7abf6f640bc060593321e3591e",
          "body": "- Rebranded all occurrences of 'bmad' to 'wizz' where applicable.\n- Preserved trademark references and external URLs.\n- Renamed project CLI, modules, and relevant filenames.\n- Translated Wizz specific agent descriptions to English for better LLM routing.\n- Added Portuguese trigger phrases to skill validator logic.\n- Deprecated skills updated with 'Use when' clauses.",
          "is_bot": false,
          "headline": "refactor: rename BMad to Wizz Method across codebase",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-24T08:14:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "89d4a56088ef9f5dd8574c377b8d419388796384",
          "body": "…ps optional feature slug\n\nAn explicit `default: \"\"` (e.g. active_feature in bmm module.yaml) means\n\"defaults to blank\", not \"required, must prompt\". The installer conflated\nempty string with undefined/null in 4 default-detection predicates, so\nExpress Setup interrupted to ask the BMM feature slug.\n\n[…]\nng) and route all 4 sites through it, keeping the\nquestionsWithoutDefaults / questionsWithDefaults partition complementary.\n\nAdd Test Suite 48 covering undefined/null/''/string/0/false. Bump to 1.0.2.",
          "is_bot": false,
          "headline": "fix: treat empty-string default as valid default so Express Setup ski…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-20T00:16:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "47291021ecbad28d2236e459c1676d296f8cca40",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 1.0.1 (rebranded Wizz installer ready to publish)",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T23:49:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9ad2f6be72f738a28e38fdaaf0a665b86f896d1",
          "body": "…ommand\n\n- Rewrite home (docs/index.md) PT-BR -> English to match the rest of the site\n- Remove orphaned BMAD community locales (vi-vn, cs, zh-cn, fr) + drop from locales.mjs\n- Fix stale install command in root docs: npx bmad-method install -> npx wizz-method install",
          "is_bot": false,
          "headline": "docs: English-only site, remove BMAD community locales, fix install c…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T23:47:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0db95f4e0f9a609bb7cd03f06a5407c0006e6b8",
          "body": "…ngs)\n\n- Replace ASCII install banner BMAD METHOD -> WIZZ METHOD\n- install-messages.yaml: Wizz links, keep discreet 'Built on BMAD Core' credit\n- CLI/command descriptions, status, uninstall, python-check, errors -> Wizz\n- packageName now derived from package.json; upgrade hint uses npx wizz-method\n- Keep BMAD engine internals: env vars, migration markers, _wizz folder, comments",
          "is_bot": false,
          "headline": "fix: rebrand installer shell BMAD -> Wizz (banner, messages, CLI stri…",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T23:30:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf75b8b342c071888691ee00ffc3bdb4ecee31fd",
          "body": null,
          "is_bot": false,
          "headline": "Merge: rebrand commands/folders to wizz + port set-feature & be-concise",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T11:33:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c39b09c626cc896f83cef6b4974eb96a65b1549c",
          "body": "…+ be-concise\n\nRename all 46 bmad-* engine skills to wizz-* (commands now /wizz-*) and\nruntime/output folders _bmad -> _wizz, _bmad-output -> _wizz-output.\nExact-token rename (perl lookbehind/lookahead) so BMad attribution\n(bmad-method.org, bmad-code-org), external module names, and test\nfixtures st\n[…]\n artifact agents.\n- BE CONCISE directive in wizz-dev-story and wizz-quick-dev.\n\nValidated: validate:skills, validate:refs (0 broken), test:install 394/0,\ntest:channels 83/0, format/lint/lint:md clean.",
          "is_bot": false,
          "headline": "feat: rebrand commands and runtime folders to wizz, port set-feature …",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T11:32:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0cbed41abaa61908fedc833110b310426ad1b7a6",
          "body": null,
          "is_bot": false,
          "headline": "docs: replace logo banner with designed Wizz banner",
          "author_name": "wizzcomms",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T10:50:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03877132309293889e1a838f95515d4cf187f051",
          "body": null,
          "is_bot": false,
          "headline": "docs: rebrand workflow-map diagram BMad -> Wizz Method",
          "author_name": "agencywizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T09:47:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46d792f8ec714ddc061ab923e645e0f5ec59aa18",
          "body": "…iers kept)",
          "is_bot": false,
          "headline": "docs: rebrand docs content BMad Method -> Wizz Method (engine identif…",
          "author_name": "agencywizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T09:46:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8cbae92f76491f58386546d0d9ee0634ab31f65c",
          "body": "…nge)",
          "is_bot": false,
          "headline": "chore: rename references agencywizz -> wizzcomms (GitHub username cha…",
          "author_name": "agencywizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T09:04:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8aa8724de7ac913cbf32b5936cb29f72b4485de",
          "body": "…adge",
          "is_bot": false,
          "headline": "docs(readme): copywriting polish - stronger headline, benefits, npm b…",
          "author_name": "agencywizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T08:38:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "593cc8fe3fdb8317a1e814718dfea41d924509bf",
          "body": "- validate-skills: allow wizz- skill namespace (not only bmad-), fixes 11 HIGH findings on wizz agents\n- remove BMAD-only workflows (discord, publish, coderabbit) that depend on BMAD secrets\n- keep docs + quality; GitHub Pages enabled (source=Actions)",
          "is_bot": false,
          "headline": "ci: fix deploys for standalone repo",
          "author_name": "agencywizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T08:36:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d28f6d92cb2699d630737a3f947b45b969c5800f",
          "body": "…for CI, PT-BR default)",
          "is_bot": false,
          "headline": "feat(wizz-init): prompt for communication language (--lang/WIZZ_LANG …",
          "author_name": "agencywizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T08:27:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d943e40314abb0bd1e6ec27e62cb9a7653ccd96f",
          "body": null,
          "is_bot": false,
          "headline": "chore: switch docs domain to method.wizzcomms.com, remove orphan favicon",
          "author_name": "agencywizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T08:18:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "627381a264e7a8e6864cc2e2050030dbdd8bd074",
          "body": "- package.json: name wizz-method, v1.0.0, author/repo/homepage Wizz, bin wizz/wizz-method\n- README, docs home, AGENTS, CONTRIBUTING, SECURITY, CONTRIBUTORS rebranded to Wizz (PT-BR)\n- website: Wizz palette (#FF4500), Space Grotesk, agencywizz links, BMAD ecosystem/banner removed, builds clean (182 pages)\n- CNAME docs.wizz-method.org, banner-wizz-method.png, favicon wizz-icon-orange.svg\n- CHANGELOG reset to 1.0.0\n- BMAD engine kept intact and credited in TRADEMARK.md",
          "is_bot": false,
          "headline": "chore: rebrand fork to Wizz Method standalone",
          "author_name": "agencywizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-19T07:17:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "543c4cc61e145fba7656fcc87cbcdcae4483e43c",
          "body": "- systematic-debugging embutido no wizz-dev e wizz-qa (causa raiz, não chute)\n- verificação goal-backward no wizz-qa (atende o objetivo, não só 'roda')\n- subagent-driven no wizz-maestro (paraleliza tarefas grandes)\n- map-codebase no analista/arquiteto via graphify + fallback inline\n\nTudo inline: funciona com ou sem GSD/superpowers instalados, então os\nframeworks podem ser desinstalados sem perda.",
          "is_bot": false,
          "headline": "feat(wizz): garimpa 4 disciplinas de GSD/superpowers (self-contained)",
          "author_name": "wizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-18T21:16:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c8edfac82c9aa24a8c7a92655429bbdfa38309d",
          "body": "QA dedicado que roda depois do dev: testes, E2E, revisão adversarial,\nacceptance criteria. Roteia para e2e-runner, adversarial-reviewer, code-reviewer.\nRegistrado no roster (module.yaml) e no roteamento/menu do maestro.",
          "is_bot": false,
          "headline": "feat(wizz): adiciona agente wizz-qa (8º agente)",
          "author_name": "wizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-18T21:10:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2c485b77d68152155ace323d4725d5ddb441852",
          "body": "… do wizz-init\n\nfindModuleSource agora checa src/modules/<code>/module.yaml antes dos externos,\npermitindo instalar o módulo wizz via --modules wizz. Testado: install completo\ncom core,bmm,wizz, config PT-BR e 7 agentes wizz deployados como skills.",
          "is_bot": false,
          "headline": "fix(installer): resolver módulos bundled em src/modules/<code> + lint…",
          "author_name": "wizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-18T20:52:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69c9273cdc1ea878baf6ffac8292ea4169d24c78",
          "body": "…e overrides BMAD\n\n- 7 agentes wizz (maestro, designer, copy, seo, growth, ads, memoria) em src/modules/wizz/agents\n- camada compartilhada _shared (encerramento ✅/➡️/🎯, economia de token, cerebro)\n- 6 overrides PT-BR dos agentes BMAD (analyst, pm, architect, dev, ux-designer, tech-writer)\n- wizz-init.mjs: seta idioma PT-BR + copia overrides para _bmad/custom (idempotente)\n- module.yaml bundled em src/modules/wizz (auto-descoberto pelo instalador)",
          "is_bot": false,
          "headline": "feat(wizz): módulo de agência PT-BR com 7 agentes, router dissolvido …",
          "author_name": "wizz",
          "author_login": "wizzcomms",
          "committed_at": "2026-06-18T20:36:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d5739d9920bfe892e683a750e388996306082fd",
          "body": "…xplainer (#2479)\n\n* Add configurable parties to bmad-party-mode\n\nParty mode gains a customize.toml config surface and a guided\nauthoring flow, while the out-of-the-box default room is unchanged.\n\n- customize.toml: party_members (custom personas), party_groups\n  (named rooms with an optional freefor\n[…]\noutput_dir}; step 2 resolves\n  {output_folder} and {date}\n- customize.toml: add output_dir = {output_folder}/party-mode, overridable\n  in team/user TOML (matches the bmad-brainstorming output pattern)",
          "is_bot": false,
          "headline": "Party Mode: configurable custom parties, run modes, and a rewritten e…",
          "author_name": "Brian",
          "author_login": "bmadcode",
          "committed_at": "2026-06-18T05:57:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "606ad6063baa74916bea98ef26da6253216a2dd0",
          "body": "* fix: update marketplace metadata\n\n* fix: update marketplace metadata\n\n* fix: include architecture skill in marketplace",
          "is_bot": false,
          "headline": "fix: update Claude marketplace metadata (#2457)",
          "author_name": "Loic Duong",
          "author_login": "loicduong",
          "committed_at": "2026-06-18T03:35:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cfafc89cf6c82de7cb539012a85ef1814db4ec88",
          "body": "Retrospective Step 12 appends agreed action items to a new action_items\nsection in sprint-status.yaml and updates the previous epic's entries from\nthe Step 4 follow-through. Sprint-status parses the section, validates its\nstatuses, and surfaces open items in the summary and data mode.\nSprint-planning preserves the section when regenerating the file.",
          "is_bot": false,
          "headline": "feat(skills): track retrospective action items in sprint-status (#2465)",
          "author_name": "Dov Benyomin Sohacheski",
          "author_login": "bdsoha",
          "committed_at": "2026-06-18T03:34:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "07d34fb43a97162bb1643746e5dde39489637550",
          "body": null,
          "is_bot": false,
          "headline": "fix: adjust nav height for dual announcement banners (#2473)",
          "author_name": "SLUR",
          "author_login": "slur16105",
          "committed_at": "2026-06-18T03:28:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5bcc235cdb3ef5eb9e4403ee3479577f8091dbe9",
          "body": null,
          "is_bot": false,
          "headline": "fix(installer): guard WSL installs from Windows Node (#2470)",
          "author_name": "Davor Racic",
          "author_login": "dracic",
          "committed_at": "2026-06-18T03:19:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2417f0048daa9b668239423789640fb7212850e7",
          "body": "…e template (#2475)\n\n* bmad-architecture: breadth coverage + lean directives; reviewer reports to subfolder\n\n- Inline forward-readiness (inherit upstream silently; thin input -> suggest bmad-spec or hybrid-capture) and brownfield (ratify, don't re-tell) directives in place of a standalone spine-chec\n[…]\nd rows,\nfenced headings, renamed heading, and reordered columns (28 passing).\n\nReword stale 'unpinned deps' / 'unpinned dependency versions' to 'unpinned\nStack versions' to match the body-table model.",
          "is_bot": false,
          "headline": "bmad-architecture: lean directives, breadth coverage, redesigned spin…",
          "author_name": "Brian",
          "author_login": "bmadcode",
          "committed_at": "2026-06-17T21:00:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "242dc6ef759ce252420c7393e2b9683cea9608e1",
          "body": "…n spine skill (#2467)\n\n* Rework solutioning architecture skill into bmad-architecture (spine)\n\n- Rename canonical skill bmad-tech-plan -> bmad-architecture; output is ARCHITECTURE-SPINE.md\n- Convert bmad-create-architecture to a deprecated husk forwarding to bmad-architecture (create intent); strip\n[…]\nanions,\n  matching the \"omit keys for artifacts not produced\" contract (coderabbit)\n\n* bmad-architecture: ask deliverable purpose up front, offer presentable renderings, lead next-steps with bmad-spec",
          "is_bot": false,
          "headline": "bmad-architecture part 1: replace bmad-create-architecture with a lea…",
          "author_name": "Brian",
          "author_login": "bmadcode",
          "committed_at": "2026-06-14T20:42:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "560a2e3a6fbd9087765cb569bb860379117e2249",
          "body": "… is missing (#2466)\n\n* feat: installer detects Python version and warns when 3.11+ (tomllib) is missing\n\nSeveral BMAD features need Python at runtime: memlog (3.8+) and the TOML\nconfig resolution scripts (3.11+ for stdlib tomllib). Users install into\nvaried environments (Linux, Windows, WSL, Docker\n[…]\nINVAL (CVE-2024-27980 hardening\n  rejects .bat/.cmd shims like pyenv-win's without a shell).\n- Add Suite 46 branch tests for checkPythonEnvironment with stubbed\n  detection, prompts, and process.exit.",
          "is_bot": false,
          "headline": "feat: installer detects Python version and warns when 3.11+ (tomllib)…",
          "author_name": "Brian",
          "author_login": "bmadcode",
          "committed_at": "2026-06-12T02:27:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fbb48ed711c3381aede1497ca107b97dd2172210",
          "body": "* fix: remove empty skill-group dirs left in _bmad after install\n\nSkill cleanup removed each skill's own directory but never pruned the\nnow-empty grouping folders above it (e.g. _bmad/bmm/1-analysis), leaving\nempty dirs behind after every install. Walk up from each removed skill\ndir and drop empty p\n[…]\no a dir that vanishes or fills in mid-walk never aborts the install.\nMove the test fixture cleanup into finally so failures don't leak temp\ndirs.\n\n---------\n\nCo-authored-by: Brian <bmadcode@gmail.com>",
          "is_bot": false,
          "headline": "fix: remove empty skill-group dirs left in _bmad after install (#2461)",
          "author_name": "Dov Benyomin Sohacheski",
          "author_login": "bdsoha",
          "committed_at": "2026-06-11T13:29:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b9431d6d99e0a70e6f0179634310d1b6fecb861d",
          "body": "… first consumer (#2462)\n\n* bmad-spec: make the memlog canonical, SPEC.md a derived view\n\nReplace the bespoke .decision-log.md with the shared memlog script\n(_bmad/scripts/memlog.py, same location as resolve_customization.py).\nThe append-only memlog becomes the single source of truth; SPEC.md and\nsp\n[…]\n\n  below 3.10. Correct the requires-python header to >=3.8.\n- installer.js: filter tests/, __pycache__/, .pytest_cache/, and *.pyc\n  out of _installSharedScripts so dev-only files never ship to users.",
          "is_bot": false,
          "headline": "Shared canonical memlog script (src/scripts/memlog.py) + bmad-spec as…",
          "author_name": "Brian",
          "author_login": "bmadcode",
          "committed_at": "2026-06-11T13:17:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fdd65dc3d92b0a570996f778076c4753c896d906",
          "body": "…463)\n\nThe Blind Hunter subagent intentionally has no tool access, but the\nreview steps never said how {diff_output} should be delivered. Orchestrators\ntypically wrote the diff to a temp file and asked the agent to read it,\nwhich silently fails (0 tool calls), and the 10-finding requirement then\npus\n[…]\nt never saw.\n\nState explicitly that the diff is passed inline in the subagent prompt,\nin both bmad-code-review step 2 and bmad-quick-dev step 4.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(skills): pass diff output inline to the blind-hunter reviewer (#2…",
          "author_name": "PinkyD",
          "author_login": "pbean",
          "committed_at": "2026-06-10T16:23:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "397b2a5c876d443d298aa44dab582520dbf094c8",
          "body": "CodeWhale uses .codewhale/skills/ (project) and\n~/.codewhale/skills/ (global) for skill directories,\nmatching the existing config-driven installer pattern.\n\n- platform-codes.yaml: codewhale entry after codex\n- test: Test 12b validates install target and setup",
          "is_bot": false,
          "headline": "feat: add CodeWhale as supported installer platform (#2459)",
          "author_name": "Aristo Rinjuang",
          "author_login": "aristorinjuang",
          "committed_at": "2026-06-09T03:29:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "072d0a74587ef1ea744d51f2dd4436ee2895758d",
          "body": "Co-authored-by: Brian <bmadcode@gmail.com>",
          "is_bot": false,
          "headline": "fix(skills): renumber retrospective workflow steps (#2448)",
          "author_name": "Oneby Wang",
          "author_login": "oneby-wang",
          "committed_at": "2026-06-07T01:37:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "717a84f2e8627ba250db6a307ab2c0af96b6c8ab",
          "body": "… anchor validation (#2408)\n\n* docs(fr): translation of install-custom-modules\n\nReference commit 97d32405\n\n* docs(fr): refinement of forensic-investigation\n\n* docs(fr): translation of customize-bmad TOML customization rewrite\n\nReference commits 0dbfae67, 4405b817, ffdd9bc6, b63086f2\"\n\n* fix(docs): h\n[…]\nection with\n  link to customize-bmad how-to\n- party-mode.md: replace stale \"BMad Master orchestre\" with \"Le Party\n  Mode orchestre la discussion\"\n\n---------\n\nCo-authored-by: Brian <bmadcode@gmail.com>",
          "is_bot": false,
          "headline": "docs(fr): sync French docs with latest English source + fix non-ASCII…",
          "author_name": "Emmanuel Atsé",
          "author_login": "eatse21",
          "committed_at": "2026-06-07T01:34:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "faffffedbbc46369a9f5ecd7ad66b11c8e9c15fe",
          "body": null,
          "is_bot": false,
          "headline": "docs: update planning workflow diagram (#2444)",
          "author_name": "Loic Duong",
          "author_login": "loicduong",
          "committed_at": "2026-06-07T01:33:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b178f27c01f8e2979cccb033d6720daf50230d46",
          "body": "…2446)",
          "is_bot": false,
          "headline": "fix(bmad-create-epics-and-stories): discover bmad-ux spine outputs (#…",
          "author_name": "duliangang",
          "author_login": "duliangang",
          "committed_at": "2026-06-07T01:32:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9d9316e9736fb0c95dccd303902961dfb551ad8",
          "body": "* fix: clarify quick dev subagent use\n\n* fix: clarify subagent use in more workflows",
          "is_bot": false,
          "headline": "fix: clarify quick dev subagent use (#2450)",
          "author_name": "Alex Verkhovsky",
          "author_login": "alexeyv",
          "committed_at": "2026-06-04T11:49:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "feab3d5e4e73d908fe539f39760b4664e0718293",
          "body": "…ual session composer (#2445)\n\n* Initial draft: brainstorming improved\n\n* bmad-brainstorming: apply quality-analysis fixes\n\n- Add ## Overview heading (prose was already present)\n- Fix resume scan to glob output_dir/*/session.md (per-session subfolders);\n  handle multiple in-progress sessions\n- Ancho\n[…]\nwith logic and fallbacks staying in code (8 new icons added, full coverage)\n\nDocs:\n- Add analysis/ (catalog-analysis.md + method-matrix.csv): the 4-axis review behind these changes\n\nAll 52 tests pass.",
          "is_bot": false,
          "headline": "bmad-brainstorming: facilitation modes, append-only memlog, and a vis…",
          "author_name": "Brian",
          "author_login": "bmadcode",
          "committed_at": "2026-06-03T03:54:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fae70152266659061bf57e8b08b2a50a7981fc9c",
          "body": "…441)\n\nReframes the party-mode skill around outcomes instead of a rigid\nsubagent script, addressing issue #2280.\n\n- Voicing the room is the default; subagents become opt-in (--subagents)\n  for rounds that genuinely need independent thinking.\n- Removes the lossy 400-word context cap and the 'Do NOT u\n[…]\nus, brevity by default.\n- Adds orchestrator weaving so independently-produced turns read as one\n  conversation without altering what any persona actually argued.\n- Slims SKILL.md from 128 to 75 lines.",
          "is_bot": false,
          "headline": "Redesign party-mode skill as conversation-first, subagents opt-in (#2…",
          "author_name": "Brian",
          "author_login": "bmadcode",
          "committed_at": "2026-05-30T05:39:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e74dd8040d74f0d44073bd88f1449d3ca76ed5e1",
          "body": "* docs: refresh skill metadata references\n\n* docs: link BMad customization guide",
          "is_bot": false,
          "headline": "docs: refresh skill metadata references (#2439)",
          "author_name": "Loic Duong",
          "author_login": "loicduong",
          "committed_at": "2026-05-30T03:34:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3bcd6c3cce6e381b759e23185b099081496567a5",
          "body": null,
          "is_bot": true,
          "headline": "chore(release): v6.8.0 [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-25T21:47:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "62c836ee6139f6549d2cf0a272ba10ed3c083684",
          "body": null,
          "is_bot": false,
          "headline": "docs(changelog): v6.8.0 release notes (#2427)",
          "author_name": "Brian",
          "author_login": "bmadcode",
          "committed_at": "2026-05-25T21:46:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db744d405fa2e3c92e3d118df0de01a9a3e74090",
          "body": "Co-authored-by: Brian <bmadcode@gmail.com>",
          "is_bot": false,
          "headline": "fix: support nested group paths in SSH Git URLs (#2379)",
          "author_name": "hanhnt2-hblab",
          "author_login": "hanhnt2-hblab",
          "committed_at": "2026-05-25T19:15:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b31b1accd52c63da0ac008ec54cf2c8fb203c40",
          "body": "Adds 19 new elicitation methods across 7 categories including a new\n'framing' category. All existing 50 methods preserved. Entries sorted\nalphabetically by category then method name.\n\nNew methods added:\n- advanced: Chain-of-Thought Scaffolding, Few-Shot Exemplar Priming\n- collaboration: Six Thinking\n[…]\ntion Audit, Cascading Failure Simulation\n- technical: Boundary & Edge Case Sweep\n\nCloses #2061\n\nCo-authored-by: Brian <bmadcode@gmail.com>\nCo-authored-by: Alex Verkhovsky <alexey.verkhovsky@gmail.com>",
          "is_bot": false,
          "headline": "feat: expand advanced elicitation methods with 19 new techniques (#2062)",
          "author_name": "Jacob du Toit",
          "author_login": "devilliersdutoit",
          "committed_at": "2026-05-25T19:09:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9c291b7ca9e834122e35164de50cc478b2457396",
          "body": "…ustom modules (#2332)\n\nWith shallow clones (--depth 1), `origin/HEAD` becomes stale after the\ninitial clone. The update path used `git reset --hard origin/HEAD` which\nnever picked up new commits pushed to the default branch.\n\nResolve the default branch name via `git symbolic-ref refs/remotes/origin/HEAD`,\nthen fetch and reset against `origin/<branch>` explicitly. Falls back to\n`main` if origin/HEAD is not set.\n\nCo-authored-by: Brian <bmadcode@gmail.com>",
          "is_bot": false,
          "headline": "fix: resolve default branch explicitly when updating shallow-cloned c…",
          "author_name": "Jérôme Revillard",
          "author_login": "jrevillard",
          "committed_at": "2026-05-25T19:05:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fea431fd2e1e5648091895d76d99bf290a56e22d",
          "body": "…er-scoped answers) are preserved as defaults (#2411)\n\nloadExistingConfig only read from legacy _bmad/<module>/config.yaml files, but\nthe installer writes user-scoped answers (user_name, communication_language, etc.)\nto _bmad/config.user.toml. On every subsequent reinstall those values were not\nload\n[…]\ne kept as a fallback for pre-v6 installations.\n\nCo-authored-by: RobertOcsko <robert.ocsko@;seon.io>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: Brian <bmadcode@gmail.com>",
          "is_bot": false,
          "headline": "fix(installer): read config.toml on re-run so user_name (and other us…",
          "author_name": "robertocsko-seon",
          "author_login": "robertocsko-seon",
          "committed_at": "2026-05-25T18:56:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9a2fba97a381e82b7e734b51d7c1bce8de40a80b",
          "body": "Co-authored-by: Brian <bmadcode@gmail.com>",
          "is_bot": false,
          "headline": "fix: capture dev story baseline commits (#2403)",
          "author_name": "SevenSteven",
          "author_login": "seven-steven",
          "committed_at": "2026-05-25T18:50:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 1,
      "commits_last_year": 1496,
      "latest_release_at": "2026-07-07T17:15:38Z",
      "latest_release_tag": "assets-v1",
      "releases_from_tags": false,
      "days_since_last_push": 3,
      "active_weeks_last_year": 51,
      "days_since_latest_release": 17,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 100,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "wizz-method",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "agile",
            "ai",
            "orchestrator",
            "development",
            "methodology",
            "agents",
            "wizz",
            "wizzcomms"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/wizz-method",
          "is_deprecated": false,
          "latest_version": "1.7.0",
          "repository_url": "https://github.com/wizzcomms/wizz-method",
          "versions_count": 18,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 2935,
          "first_published_at": "2026-06-19T09:18:12.167000Z",
          "latest_published_at": "2026-07-19T09:19:22.713000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 10
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "demos",
        "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": 190536,
      "source_files_sampled": 157,
      "oversized_source_files": 4,
      "agent_instruction_files": [
        "AGENTS.md",
        "docs/reference/agents.md",
        "src/skills-lib/supabase-postgres-best-practices/AGENTS.md"
      ],
      "agent_instruction_max_bytes": 4965
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 98,
        "malicious_count": 0,
        "assessed_package": "npm:wizz-method@1.7.0",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@clack/core",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.3.1"
        },
        {
          "name": "@clack/prompts",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.4.0"
        },
        {
          "name": "@kayvan/markdown-tree-parser",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.6.1"
        },
        {
          "name": "chalk",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.2"
        },
        {
          "name": "commander",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^14.0.0"
        },
        {
          "name": "csv-parse",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.1.0"
        },
        {
          "name": "glob",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.0.3"
        },
        {
          "name": "ignore",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.5"
        },
        {
          "name": "js-yaml",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.3.0"
        },
        {
          "name": "picocolors",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "semver",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.6.3"
        },
        {
          "name": "xml2js",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.6.2"
        },
        {
          "name": "yaml",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.7.0"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 10,
        "merged_prs": 1,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 2,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "alexeyv",
          "commits": 402,
          "avatar_url": "https://avatars.githubusercontent.com/u/20280?v=4"
        },
        {
          "type": "User",
          "login": "bmadcode",
          "commits": 161,
          "avatar_url": "https://avatars.githubusercontent.com/u/195515201?v=4"
        },
        {
          "type": "User",
          "login": "semantic-release-bot",
          "commits": 91,
          "avatar_url": "https://avatars.githubusercontent.com/u/32174276?v=4"
        },
        {
          "type": "User",
          "login": "wizzcomms",
          "commits": 73,
          "avatar_url": "https://avatars.githubusercontent.com/u/245509532?v=4"
        },
        {
          "type": "User",
          "login": "muratkeremozcan",
          "commits": 61,
          "avatar_url": "https://avatars.githubusercontent.com/u/34237651?v=4"
        },
        {
          "type": "User",
          "login": "dracic",
          "commits": 22,
          "avatar_url": "https://avatars.githubusercontent.com/u/4533263?v=4"
        },
        {
          "type": "User",
          "login": "lrliang",
          "commits": 14,
          "avatar_url": "https://avatars.githubusercontent.com/u/20784515?v=4"
        },
        {
          "type": "User",
          "login": "ksylvan",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/1226059?v=4"
        },
        {
          "type": "User",
          "login": "forcetrainer",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/13531525?v=4"
        },
        {
          "type": "User",
          "login": "arcaven",
          "commits": 12,
          "avatar_url": "https://avatars.githubusercontent.com/u/2000551?v=4"
        }
      ],
      "contributors_sampled": 98,
      "top_contributor_share": 0.386
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "docs.yaml",
        "install-smoke-mcp.yaml",
        "quality.yaml",
        "routing-eval-llm.yaml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "eslint.config.mjs"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "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": 0,
            "reason": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
            "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 11 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": 10,
            "reason": "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": "project was created within the last 90 days. Please review its contents carefully",
            "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": 2,
            "reason": "dependency not pinned by hash detected -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file 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": "fd461ba3b2dd6cfd79b2d878a41e5f35a377a2cf",
        "ran_at": "2026-07-25T06:20:05Z",
        "aggregate_score": 4.3,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-21T22:07:56Z",
      "oldest_open_prs": [
        {
          "number": 2,
          "created_at": "2026-07-07T18:03:55Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 3,
          "created_at": "2026-07-07T18:04:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 4,
          "created_at": "2026-07-07T18:04:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 5,
          "created_at": "2026-07-07T18:04:11Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 6,
          "created_at": "2026-07-07T18:04:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 7,
          "created_at": "2026-07-07T18:04:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 8,
          "created_at": "2026-07-07T18:04:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 9,
          "created_at": "2026-07-07T18:04:27Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 10,
          "created_at": "2026-07-07T18:04:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 11,
          "created_at": "2026-07-14T22:05:18Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-03T19:11:45Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/wizzcomms/wizz-method",
    "host": "github.com",
    "name": "wizz-method",
    "owner": "wizzcomms"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 66,
      "inputs": {
        "security": 54,
        "vitality": 84,
        "community": 45,
        "governance": 62,
        "engineering": 78
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 84,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 89,
            "inputs": {
              "commits_last_year": 1496,
              "human_commit_share": 0.99,
              "days_since_last_push": 3,
              "active_weeks_last_year": 51
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 3 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "51/52 weeks with commits",
                "points": 35.3,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 51
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1496 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1496
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "releases_count": 1,
              "latest_release_tag": "assets-v1",
              "releases_from_tags": false,
              "days_since_latest_release": 17,
              "mean_days_between_releases": null
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "1 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 17 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 17
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "cadence unknown (single release)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence_unknown",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "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": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 45,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "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": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "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": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 58,
            "inputs": {
              "packages": [
                "wizz-method"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 2935
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "2,935 downloads/month across npm",
                "points": 46.2,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 2935,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 62,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 98,
              "top_contributor_share": 0.386
            },
            "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 39% of commits",
                "points": 13.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 39
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "98 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 98
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 11 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "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": 72,
            "inputs": {
              "merged_prs": 1,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "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": "1/1 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 1,
                      "decided": 1
                    }
                  }
                ],
                "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": "critical",
            "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": 22,
            "inputs": {
              "followers": 0,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "wizzcomms",
              "public_repos": 7,
              "account_age_days": 244
            },
            "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": "0 followers of wizzcomms",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 0,
                      "login": "wizzcomms"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "7 public repos, account ~0 yr old",
                "points": 7.9,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 7
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "wizz-method"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "18 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 18
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 78,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "4 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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": "eslint.config.mjs",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.mjs"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "agency",
                "agile",
                "ai",
                "ai-agents",
                "bmad",
                "claude-code",
                "cursor",
                "llm",
                "methodology",
                "portugues"
              ],
              "has_wiki": true,
              "homepage": "https://method.wizzcomms.com",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://method.wizzcomms.com",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "10 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "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": "moderate",
        "name": "Security",
        "value": 54,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 43,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 4.3
            },
            "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": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "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 11 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": "update tool detected",
                "points": 7.5,
                "status": "met",
                "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": "project was created within the last 90 days. Please review its contents carefully",
                "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 2",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "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": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:wizz-method@1.7.0 runtime dependency closure — what installing the published package pulls in — 98 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:wizz-method@1.7.0",
                  "assessed": 98
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 98,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 98,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 7
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 64,
        "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.98,
              "agent_instruction_files": [
                "AGENTS.md",
                "docs/reference/agents.md",
                "src/skills-lib/supabase-postgres-best-practices/AGENTS.md"
              ],
              "agent_instruction_max_bytes": 4965
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, docs/reference/agents.md, src/skills-lib/supabase-postgres-best-practices/AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, docs/reference/agents.md, src/skills-lib/supabase-postgres-best-practices/AGENTS.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": "97 of 99 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 97,
                      "sampled": 99
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.22,
              "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": "eslint.config.mjs",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.mjs"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "22 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 22,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "dependency automation configured, none observed in the sampled commits",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "dependency_bot_config_only",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "primary_language": "JavaScript",
              "largest_source_bytes": 190536,
              "source_files_sampled": 157,
              "oversized_source_files": 4
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "JavaScript without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "JavaScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "4/157 source files over 60KB",
                "points": 53.6,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 157,
                      "oversized": 4
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "demos",
                "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": "demos, examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "demos, 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": [
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T06:20:26.201442Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/w/wizzcomms/wizz-method.svg",
  "full_name": "wizzcomms/wizz-method",
  "license_state": "custom",
  "license_spdx": null
}

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

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

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