Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-25 00:12 UTC

ProductBuildersHQ / visionspec

Multi-domain specification orchestration for humans and AI agents. MultiSpec bridges the gap between organizational intent (MRD, PRD, UXD) and executable specifications for AI coding agents.

GoMIT★ 0 estrellas⑂ 0 forksdesde may 2026Ver en GitHub ↗

ProductBuildersHQ/visionspec tiene un índice de salud de 59 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es AI Readiness (85/100) y la más baja, Community & Adoption (24/100). Se actualizó por última vez hace 4 días. Una sola persona concentra la mayor parte del trabajo reciente.

59
global / 100
Moderado

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

59
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

ProductBuildersHQOrganización
0 seguidores9 repositorios públicosdesde feb 2026

Este repositorio está respaldado por una organización: una custodia compartida y responsable que puede sobrevivir a cualquier mantenedor individual.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicación
Gogithub.com/ProductBuildersHQ/visionspecv0.14.0-14hace 4 días

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

76Bueno · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 4 días
6.2/36Cadencia de commits — 9/52 semanas con commits
18/18Volumen de commits — 288 commits en el último año
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Datos de entrada utilizados
commits_last_year288
human_commit_share0,96
days_since_last_push4
active_weeks_last_year9
Cómo se puntúa
27/27Publica versiones — 14 versiones publicadas
36/36Recencia de las versiones — última versión hace 4 días
27/27Cadencia de publicación — una versión cada ~6,1 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count14
latest_release_tagv0.14.0
releases_from_tagsno
days_since_latest_release4
mean_days_between_releases6,1
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

24Crítico · 18% del índice global
Cómo se puntúa
0/60Estrellas — 0 estrellas
0/25Forks — 0 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

54Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0/22.5Distribución de commits — el principal contribuyente firma el 100% de los commits
1.4/13.5Amplitud de contribuyentes — 1 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 5 contributing companies or organizations
Datos de entrada utilizados
bus_factor1
contributors_sampled1
top_contributor_share1
Cómo se puntúa
0/46.8Resolución de issues — sin issues o sin datos
38.2/38.3Aceptación de PR — 4/4 PR decididos fusionados
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs4
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Excluidos de la puntuación (sin datos o no aplicable): Resolución de issues. Los pesos restantes se han renormalizado.
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
0/25Alcance del propietario — 0 seguidores de ProductBuildersHQ
8.2/25Trayectoria — 9 repos públicos, cuenta de ~0 años
Datos de entrada utilizados
followers0
owner_typeOrganization
is_verified
owner_loginProductBuildersHQ
public_repos9
account_age_days172
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en go
35/35Recencia de publicación — última publicación hace 4 días
20/20Historial de versiones — 14 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesgithub.com/ProductBuildersHQ/visionspec
ecosystemsgo
any_deprecatedno
min_days_since_publish4

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

84Bueno · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 3 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter — .golangci.yaml
0/9.6Hooks de pre-commit
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — sin datos
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_config
has_precommit_configno
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: CI-Tests. Los pesos restantes se han renormalizado.

Documentación

90Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — http://productbuildershq.com/visionspec/
10/10Descripción del repositorio
0/10Topics
10/10Wiki
Datos de entrada utilizados
topics
has_wiki
homepagehttp://productbuildershq.com/visionspec/
has_readme
has_docs_dir
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

49En riesgo · 16% del índice global
Cómo se puntúa
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 — sin datos
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 5 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.5/2.5Licencia — license file detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
0/5Packaging — sin datos
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — sin datos
6.8/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate4,9
Excluidos de la puntuación (sin datos o no aplicable): ci_tests, packaging, signed_releases. Los pesos restantes se han renormalizado.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

85Excelente · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — CLAUDE.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 96 de 96 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share1
agent_instruction_filesCLAUDE.md
agent_instruction_max_bytes6881
Cómo se puntúa
18/18Arranque con un solo comando — Makefile
22/22Pruebas automatizadas
11/11Configuración de lint / formato — .golangci.yaml
11/11Verificación estática de tipos — Go (tipado estático)
10/10Entorno reproducible — lockfile
10/10Práctica demostrada con agentes — 86 de los últimos 100 commits con autoría o crédito de agente
8/8Mantenimiento automatizado — 4 de los últimos 100 commits son actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
has_nixno
has_tests
lockfilesgo.sum
has_dockerfileno
typed_language
bootstrap_filesMakefile
has_devcontainerno
has_linter_config
typecheck_configs
agent_commit_share0,86
toolchain_manifestsgo.mod
dependency_bot_commit_share0,04
Cómo se puntúa
45/45Código verificable por tipos — Go (tipado estático)
54.3/55Tamaños de archivo manejables — 2/163 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageGo
largest_source_bytes153.218
source_files_sampled163
oversized_source_files2
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
20/20Servidor MCP
40/40Ejemplos ejecutables — examples
Datos de entrada utilizados
example_dirsexamples
has_mcp_signal
api_schema_files

Datos clave

0estrellas de GitHub
1contribuidores
288commits en los últimos 12 meses
4días desde el último push
14versiones publicadas
1factor bus
0issues abiertas
Goecosistemas de paquetes

Advertencias de recopilación de datos

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

Más detalle

OpenSSF Scorecard 4.9 / 10
4.9agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-25 00:12 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
n/dCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 5 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
n/dPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
n/dSigned-Releasesno releases found
9Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Dependencias directas 12
RegistroPaqueteRestricción de versiónManifiesto
Gogithub.com/bmatcuk/doublestar/v4v4.10.0go.mod
Gogithub.com/fsnotify/fsnotifyv1.10.1go.mod
Gogithub.com/grokify/oscompatv0.5.0go.mod
Gogithub.com/grokify/pidlv0.5.0go.mod
Gogithub.com/grokify/prism-roadmapv0.16.0go.mod
Gogithub.com/modelcontextprotocol/go-sdkv1.6.1go.mod
Gogithub.com/plexusone/graphfsv0.2.0go.mod
Gogithub.com/plexusone/graphizev0.4.0go.mod
Gogithub.com/plexusone/omnillm-corev0.18.0go.mod
Gogithub.com/plexusone/structured-evaluationv0.10.0go.mod
Gogithub.com/spf13/cobrav1.10.2go.mod
Gogopkg.in/yaml.v3v3.0.1go.mod
Todas las dependencias no recopilado

No fue posible recopilar el conjunto de dependencias resuelto para este informe: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 11743,
      "has_wiki": true,
      "homepage": "http://productbuildershq.com/visionspec/",
      "languages": {
        "Go": 1519470,
        "Makefile": 1196
      },
      "pushed_at": "2026-07-20T10:43:49Z",
      "created_at": "2026-05-23T14:20:39Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-20T10:40:44Z",
      "description": "Multi-domain specification orchestration for humans and AI agents. MultiSpec bridges the gap between organizational intent (MRD, PRD, UXD) and executable specifications for AI coding agents.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": "https://productbuildershq.com",
      "name": "ProductBuildersHQ",
      "type": "Organization",
      "login": "ProductBuildersHQ",
      "company": null,
      "location": null,
      "followers": 0,
      "avatar_url": "https://avatars.githubusercontent.com/u/258703354?v=4",
      "created_at": "2026-02-02T00:56:12Z",
      "is_verified": null,
      "public_repos": 9,
      "account_age_days": 172
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.14.0",
          "kind": "minor",
          "published_at": "2026-07-20T10:43:50Z"
        },
        {
          "tag": "v0.13.0",
          "kind": "minor",
          "published_at": "2026-07-18T20:18:18Z"
        },
        {
          "tag": "v0.12.0",
          "kind": "minor",
          "published_at": "2026-07-06T14:25:22Z"
        },
        {
          "tag": "v0.11.0",
          "kind": "minor",
          "published_at": "2026-07-06T13:06:32Z"
        },
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2026-06-13T18:53:55Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-06-08T09:27:37Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-06-07T18:22:38Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-06-01T14:41:07Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-06-01T09:01:30Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-05-26T13:11:26Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2026-05-25T13:37:07Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2026-05-24T23:50:28Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2026-05-24T16:10:22Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2026-05-24T13:51:14Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "295661bd0d0a5d55c823e64ccf20433e1f7375e1",
          "body": "Fold the project rubrics config feature (custom rubric files + pass-criteria\npolicy across all evaluation paths) into the v0.14.0 release: add highlights,\nAdded entries, and a \"Project Rubrics Config\" section. Regenerate CHANGELOG.md.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: include RubricsConfig in the v0.14.0 release notes and changelog",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T10:38:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f3e675daaf0cd4c3e9973134e8e7f0ed22aa255f",
          "body": "Note the overrides -> directory -> profile resolution order, project-relative\npath handling, and that strict_mode / max_* apply across all evaluation paths.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(config): document rubrics config resolution and effect",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T10:32:29Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f99db827573d2c1d117955f594f18b4f8cc70e94",
          "body": "Wire visionspec.yaml `rubrics` config into evaluation via\nEvaluator.ApplyProjectRubrics: custom rubric files (overrides then directory,\nresolved against the project) are chained ahead of the base loader, strict mode\nrequires every category to reach Acceptable, and configured max_* limits\noverride th\n[…]\ns — `eval`, `synthesize --eval`, and the MCP run_eval / eval_draft tools —\nso the previously-inert RubricsConfig now takes effect.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(eval): apply the project rubrics config across evaluation paths",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T10:32:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3263e15eda34f187b9eae03b2f35368dae59a3f8",
          "body": "Add a loader that maps spec types to specific rubric file paths, for a project's\nvisionspec.yaml `rubrics.overrides`.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(rubrics): add NewOverrideLoader for per-spec-type rubric overrides",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T10:32:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "bb8fb2e85969aff468e32ee0a17d13e72f51b848",
          "body": "… struct\n\nThe RubricYAML flat parser and VisionSpec-local RubricSet were removed in the\nv0.14.0 rubric migration; rubrics now parse directly into structured-evaluation's\nrubric.RubricSet. Update the RMI-221 roadmap item and the composability plan to\nreflect the canonical format.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(specs): update roadmap/plan references to the retired RubricYAML…",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T10:08:17Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6dc8cbad01d2eda01d6b9a3040b1f09c42673f06",
          "body": "Add the v0.14.0 entry (structured-evaluation RubricSet adoption, native rubric\nYAML, prism-roadmap canvas assets, richer judge prompts, tpd.md embed fix,\ndependency bumps) and regenerate CHANGELOG.md via schangelog.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(changelog): update changelog for v0.14.0",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T09:50:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c6846667d0de3168a88ba5f696f2c98a0a7b8b0f",
          "body": "Document the rubric standardization on structured-evaluation's RubricSet: the\npkg/rubrics breaking change, the native rubric YAML format, prism-roadmap canvas\nasset consumption, richer judge prompts, a migration guide, and the new\nstructured-evaluation v0.10.0 / prism-roadmap v0.16.0 dependencies. Add the\nrelease to the mkdocs nav.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add v0.14.0 release notes",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T09:48:36Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "161a5353aa726eea5fe5f9810abf1685a05b68b1",
          "body": "Update the custom-profiles, organization-customization, and org-cli example\nguides to the canonical structured-evaluation rubric format: spec type from\nthe filename (no spec_type field), categorical scale options for flat rubrics,\nweighted criteria with indicators for rich rubrics, and passCriteria\n(minCategoriesPassing / maxFindingsSeverity / scoreThresholds). Historical\nrelease notes are left as-is.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(rubrics): document the structured-evaluation rubric format",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T09:48:36Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7528882c4bfb52f7a77b59ee4feb2eca145de807",
          "body": "buildEvalPrompt previously sent only each category's name, weight, and\ndescription to the judge. Now it renders the actual scoring criteria — the\npayoff of adopting the shared rubric type:\n\n- flat rubrics: the categorical pass/partial/fail criteria as scoring guidance\n- rich rubrics: each weighted s\n[…]\nto the rubric total, so point-weighted and\nfraction-weighted rubrics render correctly. Prompt building now uses a\nstrings.Builder.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(eval): render rubric criteria and indicators in the judge prompt",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T09:48:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fd92f3e07367e497e1f91ee692f2648f8872a3f1",
          "body": "…h format\n\nassumption-map, discovery-snapshot, and shapeup-pitch were in an intermediate\nrich format where each criterion's `description` mapped to no structured-\nevaluation field (silently dropped on parse) and `thresholds`/`methodology`\nwere ignored — so they evaluated with empty criteria. Rewrite\n[…]\nreference -> metadata.basedOn,\ncategory and criterion names humanized. They now carry their intended\nweighted criteria (18/15/19).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(rubrics): author the 3 discovery/shapeup rubrics in canonical ric…",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T09:48:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ace36ff35456faac012b65ef5ccf419ddd7e3cce",
          "body": "…n native, drop flat parser\n\nRewrite the 80 legacy flat rubric YAMLs (criteria as a pass/partial/fail\nmap) into the canonical structured-evaluation format (categorical Scale\noptions, passCriteria.maxFindingsSeverity), via a committed, self-contained\nmigration tool (tools/migrate-rubric-yaml) that ro\n[…]\nnNative) walks\nevery *.rubric.yaml in the repo and fails if any is not native.\n\nLoader test fixtures updated to the native format.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(rubrics): migrate flat profile YAMLs to structured-evaluatio…",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T09:48:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "46e32f24453a6ae1483ea789b8e91f578c8e0935",
          "body": "…nical rubric type\n\nReplace visionspec's parallel flat rubric types (RubricSet, Category,\nCategoricalCriteria, PassCriteria) with structured-evaluation's\nrubric.RubricSet everywhere: the Go registry, all loaders, and the eval\nprompt/response path. The 21 Go-registered rubrics are regenerated as\nrubr\n[…]\nmod carries local replace directives for\nstructured-evaluation and prism-roadmap during development; these are\nremoved at release.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(rubrics)!: adopt structured-evaluation RubricSet as the cano…",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T09:48:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a22a38bac81eebd1a2e77ef4fae9d7401947c085",
          "body": "Import prism-roadmap's embedded templates and rubrics (via NewSubFSLoader\nover its FS) as a fallback in the profile template and rubric loaders, and\nremove the duplicated opportunity-spec and bmc templates and rubrics that\nwere copied across profile directories. prism-roadmap v0.15.0 is now the\nsingle source of truth for canonical canvas assets.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(profiles): consume canonical canvas assets from prism-roadmap",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-20T04:18:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f612b803de5c93a56ae9f9b18bba45f08c6bd6fe",
          "body": "The TPD template file was added with the TPD spec type but never included\nin the //go:embed directive or Available(), so templates.Get(SpecTypeTPD)\nfailed even though tpd.md exists on disk. This left big-tech-product — which\nrequires tpd — with no reachable template through the public API.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(templates): embed tpd.md and add it to Available",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-19T22:31:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7c6148c324734229a0ed97f2c80cb11ac928e0b5",
          "body": "…ubrics\n\nThe gosec G101 rule flags CategoricalCriteria fields (Pass, Partial, Fail)\nas potential hardcoded credentials. These are rubric evaluation criteria\ntext, not credentials. Applied the same nolint pattern used in existing\nrubrics (mrd.go, prd.go, etc.) to all 12 AIDLC rubric files.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(rubrics): add nolint comments for G101 false positives in AIDLC r…",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T16:51:08Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7a3a49f38c4479077d3cee5358c5f1bef7aa9aab",
          "body": "On Windows, system timer resolution is ~15.6ms (vs nanoseconds on Unix).\nOperations completing faster than this resolution return ElapsedTime of 0.\n\nChange assertion from `> 0` to `>= 0` to accommodate Windows behavior.\nThe test validates elapsed time isn't negative (error case), not that\ntime has definitely passed.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(aidlc): fix Windows CI test failure for timer resolution",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T16:36:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "107c13caf307f34310e446364a8eeefc8b958cf5",
          "body": "- Update installation version to v0.13.0 in README and docs/index.md\n- Update Go version requirement to 1.26.1\n- Add new v0.13.0 features to Key Capabilities:\n  - Dual-methodology system\n  - AIDLC workflow integration\n  - V2MOM strategic planning\n  - 1-5 numeric evaluation scoring\n- Update component status table with new features\n- Update release notes link to v0.13.0\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update documentation for v0.13.0 release",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T16:19:17Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d5ceca5de3bfd0968061f9a24803943a82a7ae60",
          "body": "- Add v0.13.0 release notes\n- Update CHANGELOG.json with v0.13.0 entries\n- Regenerate CHANGELOG.md via schangelog\n- Add AIDLC integration guide to mkdocs navigation\n- Add v0.13.0 to releases navigation\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: prepare v0.13.0 release",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T16:04:51Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ea8e6c0d247b3c745db7d2e623107a59978f06bf",
          "body": "- Update Go version from 1.26.0 to 1.26.1\n- Add github.com/grokify/pidl v0.5.0 for PIDL protocol export\n- Update golang.org/x/sys from v0.46.0 to v0.47.0\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "build(deps): update Go version and add pidl dependency",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:40:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f4abd3c0371fe4c18eb8f71fee4eae9a9df4ef80",
          "body": "Fix ASCII diagram box alignment in Open Source vs. Organization\narchitecture section for better readability.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: fix README diagram alignment",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:39:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c1004e5e29b65b23643faca0ea9d39d9b5682489",
          "body": "Add Phase 15 (AIDLC Workflow Integration v0.8.0) detailing:\n\n- AIDLC core types and workflow DAG\n- Evaluation integration with rubrics\n- Phase transition logic\n- Document templates\n- Sample project and testing\n- Daemon API integration\n- Frontend components\n- Next steps for follow-up work\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update ROADMAP with AIDLC integration phase",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:39:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b6f626d168562dc24535142c93c667a0d36ad23d",
          "body": "Add comprehensive guide for AWS AI DLC workflow integration:\n\n- Setup and configuration instructions\n- Workflow phases explanation (inception, construction, operations)\n- API reference and code examples\n- Update guides index to include new guide\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add AIDLC integration guide",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:39:26Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3baf7fcee3319f94c28c19b153ca00ee86d7fd21",
          "body": "Add sample AIDLC project demonstrating the workflow:\n\n- Pre-populated inception phase documents (vision, requirements, technical)\n- Construction phase document (implementation plan in progress)\n- Workflow state file (aidlc-state.md) with progress tracking\n- VisionSpec sync data (.visionspec/specs.json)\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(examples): add AIDLC demo project",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:39:18Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f4c6fcc858b004d24c219de6665141f922e9c672",
          "body": "Add V2MOM profiles for different organizational levels:\n\n- v2mom/: Generic V2MOM profile\n- v2mom-company/: Company-level strategic planning\n- v2mom-department/: Department-level V2MOM\n- v2mom-team/: Team-level V2MOM\n\nEach includes templates for vision, values, methods, obstacles,\nand measures with level-appropriate guidance.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(profiles): add V2MOM strategic planning profiles",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:39:00Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "398795a99908410e4d23bebafc7a8ec691d95205",
          "body": "Add LLM-as-judge rubrics for all 12 AIDLC document types:\n\n- aidlc_vision.go: clarity, completeness, alignment, feasibility\n- aidlc_requirements.go: testability, traceability, ambiguity\n- aidlc_technical.go: architecture, scalability, security\n- aidlc_architecture.go: ADR quality, component clarity\n\n[…]\noring.go: metrics, logs, alerts, SLOs\n- aidlc_disaster.go: RTO/RPO, procedures, testing\n- aidlc_slo.go: SLI definitions, targets, error budgets\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(rubrics): add AIDLC evaluation rubrics",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:38:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9310a4874afb2380ddf3ebdaf98145f16682f7ef",
          "body": "Implement AWS AI DLC workflow integration:\n\n- types.go: Phase, DocType, Document, QualityScore enums and structs\n- workflow.go: Workflow DAG with nodes, edges, and status tracking\n- sync.go: Bidirectional sync between VisionSpec and AIDLC directories\n- state.go: Parse and serialize aidlc-state.md fo\n[…]\nvalidation\n- templates.go: Document templates for all 12 AIDLC doc types\n- pidl_integration.go: PIDL protocol export for workflow visualization\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(aidlc): add AIDLC workflow package",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:38:04Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "24ba932cc7cd9f11dc74d4ed82e129e2ffa51844",
          "body": "Add strategic planning (V2MOM) and AWS AI DLC workflow spec types:\n\n- V2MOM: vision, values, methods, obstacles, measures, alignment, summary\n- AIDLC: 12 document types across inception, construction, operations phases\n\nInclude helper functions for spec type groupings by phase.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(types): add V2MOM and AIDLC spec types",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:37:23Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1407eca2c5ba6c1f6845ff55ca0d9c2085ae6d62",
          "body": "Add RequirementsMethodology and ImplementationMethodology fields\nto Project, deprecating the old Workflow field.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(types): add methodology fields to Project struct",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:33:19Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "18a18c79ac1b953416d6abaedb7581d9e132b965",
          "body": "Add MethodologyType and ImplementationMethodology types to support\nseparating requirements methodologies (WHAT to build) from\nimplementation methodologies (HOW to build).\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(types): add methodology types for dual-methodology system",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:32:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "cf4148171712d00f14adeef63360c096960e295f",
          "body": "Update all petstore-ai-agent evaluation files:\n- Add schemaVersion: \"v2\"\n- Add scoreV2 (1-5 integer)\n- Add confidence values\n- Add dimensions with per-category scores\n- Add blocking array\n- Update reason codes to category-prefix format (REQ-*, METRIC-*, etc.)\n\nFiles updated: mrd.json, prd.json, uxd.json, opportunity-spec.json\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(examples): update petstore eval files to v2 format",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:28:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "27d56a7b1b265c77d80d08ce50dd46df2ca2db52",
          "body": "- Update score scale description (1-5 instead of 0-10)\n- Add v2 evaluation result format with dimensions\n- Add reason codes section with category prefixes\n- Add confidence values and pass criteria\n- Link to reason codes reference\n- Add reason-codes.md to mkdocs navigation\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(cli): update eval command for v2 format",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:28:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1e32b1e8fb33856a0348cee0a3ef52cf5e2f2371",
          "body": "Add comprehensive documentation for reason codes:\n- Code format: {CATEGORY}-{ISSUE}\n- All 10 categories with their codes\n- Default severities for each code\n- AI-assisted repair workflow examples\n- Human review requirements by category\n- v2 evaluation result format\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(concepts): add reason codes reference",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:28:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "83401c6ff08afcef7cbb81ce005c778897728ca9",
          "body": "Update test assertions for v2 evaluation fields.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(eval): update integration tests for v2 schema",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:28:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d75feab61ce74033607f0363016c7e5c7ab7938b",
          "body": "Update evaluation types and rendering for v2 schema:\n- Add IntScore (1-5), Confidence, Blocking fields to Result\n- Add IntScore, Confidence, ReasonCodes to CategoryResult\n- Add Code, Location fields to Finding\n- Update renderers to display v2 scores with labels\n- Support both v1 (0-10) and v2 (1-5) score formats\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(eval): implement v2 evaluation schema with 1-5 scoring",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:28:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0528c4dc9a0444ab3e345e5b7b2d9aabdace7649",
          "body": "…thub.com/plexusone/structured-evaluation-0.9.0\n\nchore(deps): bump github.com/plexusone/structured-evaluation from 0.8.0 to 0.9.0",
          "is_bot": false,
          "headline": "Merge pull request #4 from ProductBuildersHQ/dependabot/go_modules/gi…",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:29:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d67053bc5ee724dd8eceaeaf5914a4efe6b562b",
          "body": "…thub.com/grokify/oscompat-0.5.0\n\nchore(deps): bump github.com/grokify/oscompat from 0.4.0 to 0.5.0",
          "is_bot": false,
          "headline": "Merge pull request #3 from ProductBuildersHQ/dependabot/go_modules/gi…",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-18T15:29:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3436cb5b56aa4b4dd20e6cac65925d37c4cbea54",
          "body": "Bumps [github.com/plexusone/structured-evaluation](https://github.com/plexusone/structured-evaluation) from 0.8.0 to 0.9.0.\n- [Release notes](https://github.com/plexusone/structured-evaluation/releases)\n- [Changelog](https://github.com/plexusone/structured-evaluation/blob/main/CHANGELOG.md)\n- [Commi\n[…]\ncom/plexusone/structured-evaluation\n  dependency-version: 0.9.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump github.com/plexusone/structured-evaluation",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-13T23:55:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e8181723455fc6f3dd12e914f25fac0c8065cc28",
          "body": "Bumps [github.com/grokify/oscompat](https://github.com/grokify/oscompat) from 0.4.0 to 0.5.0.\n- [Release notes](https://github.com/grokify/oscompat/releases)\n- [Changelog](https://github.com/grokify/oscompat/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/grokify/oscompat/compare/v0.4.0...v0.\n[…]\ny-name: github.com/grokify/oscompat\n  dependency-version: 0.5.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump github.com/grokify/oscompat from 0.4.0 to 0.5.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-13T23:54:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "830e869f07d15eed84593eae40a7237fdc19aa68",
          "body": "- Add docs/releases/v0.12.0.md release notes\n- Update mkdocs.yml navigation with v0.12.0\n- Update CHANGELOG.json with v0.12.0 entries\n- Regenerate CHANGELOG.md via schangelog\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: prepare v0.12.0 release documentation",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T14:15:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e02eb5c85b81ac3f950b3d5d6f9580e9796bed60",
          "body": "In true AWS Working Backwards, the 6-Pager is the leadership approval\ngate BEFORE investing in detailed PRD/UXD work. Leaders read the\n6-Pager to decide if the project should proceed.\n\nUpdated flow:\nMRD → Press → FAQ → 6-Pager → PRD → UXD → TRD → IRD → TPD → Spec\n\nAlso updated PRD synthesis to include narrative-6p as a source,\nensuring detailed requirements align with the approved narrative.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(workflow): place 6-Pager before PRD/UXD per AWS Working Backwards",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T13:54:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e302419835aca5bac908add1edc0d2775a6bdd65",
          "body": "Infrastructure Design is now required in the workflow, positioned\nbetween TRD and TPD. This supports teams with separate infra and\napp design responsibilities.\n\nIRD synthesis sources: trd, prd\nIRD guidance: deployment, scaling, cloud services, monitoring,\nsecurity, operational runbooks, cost estimates, capacity planning\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(profiles): add IRD as required spec in big-tech-product",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T13:50:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8ea9fc33d08962890e146493a1bb83d6451313a6",
          "body": "Change spec sorting from category-first (Source → GTM → Technical)\nto true AWS Working Backwards dependency order:\n\n1. Discovery: opportunity-spec, mrd\n2. Vision: press, faq (Working Backwards)\n3. Product: prd, uxd (informed by PR/FAQ)\n4. Narrative: narrative-6p, narrative-1p, bmc\n5. Technical: trd,\n[…]\nrd, tpd\n6. Output: spec, current-truth\n\nThis ensures the sidebar nav follows the actual synthesis flow\nrather than arbitrary category grouping.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(types): use true workflow order for spec sorting",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T13:44:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e0da8b1261d6588aadd849b914695e15de0428f2",
          "body": null,
          "is_bot": false,
          "headline": "docs: `mkdocs.yml`: update nav",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T13:02:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f54a66a912178c3b4d0dd682c2bf806e79f4b1f9",
          "body": "- Add docs/cli/workflow.md with usage, flags, and examples\n- Update docs/mcp/tools.md with get_workflow tool documentation\n- Add workflow.md to mkdocs.yml navigation\n- Add workflow command to README CLI table\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add workflow CLI command and MCP tool documentation",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T12:59:08Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9e78216b569eebca0a37baf949cc256154fb857d",
          "body": "- Add docs/releases/v0.11.0.md with workflow IR and specworkflow features\n- Update CHANGELOG.json with v0.11.0 release entry\n- Regenerate CHANGELOG.md via schangelog\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add v0.11.0 release notes and update changelog",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T12:44:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "cf9e5220db874ddec1415f0a557dde6e25a5ec44",
          "body": "- Add proper error handling helpers in workflow tests instead of discarding errors\n- Fix gofmt formatting in MCP server imports\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: address lint errors in workflow tests and MCP server",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T12:39:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c28c2ecd436cc905701119bc6c02586b10bdb445",
          "body": "Example project demonstrating visionspec workflow with specs in\nvarious states (pass, conditional, fail) for testing and demo.\nBased on OpenAPI Petstore with AI recommendation features.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add petstore-ai-agent example project",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T12:36:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ba46de45dc32ca6e67fe2d4e520908bc86b689e3",
          "body": "Adds 'workflow' CLI command and 'get_workflow' MCP tool to display\nproject workflow DAG with nodes, dependencies, phases, and progress.\nSupports JSON, Mermaid, and DOT output formats.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): add workflow command and MCP tool",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T12:35:38Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d9ab9a07eafe468157bc333ae85303414512f9db",
          "body": "Ensures consistent spec ordering in AllSpecs() by sorting by\ncategory (source, gtm, technical, output) then by workflow\nposition within each category. Fixes PR-FAQ ordering.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(types): sort specs by category and workflow order",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T12:35:24Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2933cc6bdfbf66fdbc6e9468dbe8c81d10c42d22",
          "body": "Adapts the generic workflow package for visionspec, generating\nworkflows from profiles by mapping spec types to nodes and\nsynthesis dependencies to edges.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(workflow): add specworkflow adapter for visionspec profiles",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T12:35:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a678d96f1a19eb57fff65d7f509fc6d9efdf0a8e",
          "body": "Introduces a generic workflow intermediate representation (IR) for\nmodeling directed acyclic graphs of work items with dependencies.\nIncludes builder pattern, topological sort, and Mermaid rendering.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(workflow): add workflow IR package for DAG modeling",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T12:34:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ae37cce5c40be771b79816ed46036556b20e29d5",
          "body": null,
          "is_bot": false,
          "headline": "docs: `README.md`: add hero link",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T07:34:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "adbc020f89f99f7dd43b3f333bcc575b31ba39a6",
          "body": null,
          "is_bot": false,
          "headline": "chore(deps): `go mod`: update dependencies",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-06T07:32:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "309ca8614d929300d016c8c0445896645321183d",
          "body": null,
          "is_bot": false,
          "headline": "docs: `README.md`: add hero image",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-05T18:13:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05cccfa2091f320acc94254c93e37a12f3be036d",
          "body": null,
          "is_bot": false,
          "headline": "docs: `README.md`: update shields",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-07-04T09:51:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22c7eaf72c0667f17dd412860e450ce5271c422a",
          "body": "…thub.com/plexusone/omnillm-core-0.17.0\n\nchore(deps): bump github.com/plexusone/omnillm-core from 0.16.0 to 0.17.0",
          "is_bot": false,
          "headline": "Merge pull request #1 from ProductBuildersHQ/dependabot/go_modules/gi…",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-29T08:01:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a6a2500a77e8ac104fb41f309cea6d336db9e7b",
          "body": "Bumps [github.com/plexusone/omnillm-core](https://github.com/plexusone/omnillm-core) from 0.16.0 to 0.17.0.\n- [Release notes](https://github.com/plexusone/omnillm-core/releases)\n- [Changelog](https://github.com/plexusone/omnillm-core/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/plexusone/o\n[…]\n github.com/plexusone/omnillm-core\n  dependency-version: 0.17.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump github.com/plexusone/omnillm-core",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-28T20:37:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "46ff8e5bffb22525c1a0b15d2bb1162e2b77f901",
          "body": "…thub.com/plexusone/structured-evaluation-0.8.0\n\nchore(deps): bump github.com/plexusone/structured-evaluation from 0.7.0 to 0.8.0",
          "is_bot": false,
          "headline": "Merge pull request #2 from ProductBuildersHQ/dependabot/go_modules/gi…",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-28T20:36:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51318bd7d87fdf2edc647e46a0e7184204a220b1",
          "body": "Bumps [github.com/plexusone/structured-evaluation](https://github.com/plexusone/structured-evaluation) from 0.7.0 to 0.8.0.\n- [Release notes](https://github.com/plexusone/structured-evaluation/releases)\n- [Changelog](https://github.com/plexusone/structured-evaluation/blob/main/CHANGELOG.md)\n- [Commi\n[…]\ncom/plexusone/structured-evaluation\n  dependency-version: 0.8.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump github.com/plexusone/structured-evaluation",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-22T23:54:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "13e161116c8535081322cb5c0fe88b8a1f20efaf",
          "body": "- Fix visualization badge URL (plexusone → ProductBuildersHQ)\n- Add Cross-Project Analysis section with search, reuse, patterns commands\n- Add workflows command to Context & Traceability section\n- Add get_execution_status and track_requirement MCP tools\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(readme): add missing CLI commands and MCP tools",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-14T13:30:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "03416dc980fe901f9c2f727b02559f6bb974bba7",
          "body": "- Update CHANGELOG.json with v0.10.0 entries\n- Regenerate CHANGELOG.md via schangelog\n- Add docs/releases/v0.10.0.md release notes\n- Update mkdocs.yml with v0.10.0 in releases nav\n- Update README.md current version to v0.10.0\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: prepare v0.10.0 release",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T17:18:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b865371bc4d62bf7b2d147faae6ef4552513c466",
          "body": "G115 (integer overflow): Replace string(rune(i)) with strconv.Itoa(i)\nin pairKey function to avoid potential integer overflow when converting\nint to rune.\n\nG122 (filepath.Walk TOCTOU): Add nolint comments for ReadFile calls\ninside filepath.Walk callbacks. These are internal spec-scanning tools\nwhere the user provides the directory - the security risk is minimal\nfor this use case.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: resolve gosec lint issues G115 and G122",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T17:04:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d5ad31a9eef936883fb1e1ae2409d3e723eaebfe",
          "body": "The JTBD canvas implementation in prism-roadmap includes:\n- JTBDCanvas with full methodology support\n- JobStatement, OutcomeExpectation, Force, HiringSolution types\n- ODI scoring with CalculateOpportunityScore\n- Job filtering (functional, emotional, social)\n- Opportunity analysis (top, underserved, overserved)\n- Switch interview tracking\n- Markdown renderer support\n- Comprehensive unit tests\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: mark RMI-494 JTBD profile Go structs as complete",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T16:29:51Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "aa457756368b1134eee85b6c3faf3b01f9979275",
          "body": "Update from commit-based pseudo-version to tagged release.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(deps): update oscompat to v0.4.0",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T16:20:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e2e5acdd845cd3968f59cfe10ef2bb16223cb93d",
          "body": "Replace Unix-specific mode bit checks (info.Mode()&0111) with\noscompat/fs.IsExecutable for cross-platform executable detection.\n\nThis fixes CI failures on Windows where the Unix executable bit\ncheck always fails since Windows doesn't use permission bits.\n\nThe oscompat abstraction:\n- Unix/macOS: checks execute permission bits\n- Windows: checks file extensions or no-extension (git hooks)\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(hooks): use oscompat for cross-platform executable detection",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T16:02:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "212aff40c8bc1497efe1fae80f2f3c0f1f65b439",
          "body": "Mark completed items with implementation details:\n- RMI-148: MkDocs graph embedding\n- RMI-350-352: Search, reuse, patterns packages and CLI\n- RMI-601/611/640/641: MCP execution tools and prompts\n- RMI-496: Core workflow documentation\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update ROADMAP with completed implementation items",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T15:16:36Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "412610e3147493b559bacaea02e0d4cea1971e54",
          "body": "Add framework-specific workflow documentation:\n- Shape Up flow (pitch → betting → scope → hill chart → build)\n- Continuous Discovery flow (touchpoints → OST → assumptions)\n- Combined Shape Up + Continuous Discovery workflow\n\nIncludes key principles for each framework and guidance\non combining them for ongoing discovery with execution cycles.\n\nImplements RMI-496.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(workflow): add Shape Up and Continuous Discovery flows",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T15:14:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b0e68c49eb7676f430ad9df240a2f3de1a9d0e10",
          "body": "Add MCP tools for execution status tracking:\n- get_execution_status - track requirement implementation progress\n- track_requirement - update requirement status with evidence\n\nAdd MCP prompts for guided implementation:\n- implement_requirement - guide requirement implementation\n- verify_acceptance - guide acceptance criteria verification\n- resolve_drift - guide drift resolution\n\nImplements RMI-601, RMI-611, RMI-640, RMI-641.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(mcp): add execution tracking tools and prompts",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T15:14:22Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5bb1c0ca811af331ffdaa0a6ff2c40f0b25cb1a9",
          "body": "Add CLI commands for cross-project analysis:\n- visionspec search <query> - full-text search with filters\n- visionspec reuse - analyze requirement reuse opportunities\n- visionspec patterns - detect patterns and anti-patterns\n\nCommands support --format flag for JSON/terminal output.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): add search, reuse, and patterns commands",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T15:11:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "98d0053ea5725eff7efe69c46615a84a1e081abb",
          "body": "Add patterns package for detecting patterns and anti-patterns:\n- Structural patterns (common sections across specs)\n- Content patterns (user stories, acceptance criteria, API refs)\n- Anti-patterns (empty sections, vague requirements, TODOs)\n- Quality scoring based on anti-pattern severity\n\nImplements RMI-352.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(patterns): add specification pattern detection",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T15:10:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5a7753a47e845e08fb2f68d926dbac3a3de7ee32",
          "body": "Add reuse package for identifying reusable requirements:\n- Extract requirements using RFC 2119 patterns\n- Find duplicate requirements across projects\n- Find similar requirements via keyword overlap\n- Suggest consolidation and template opportunities\n\nImplements RMI-351.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(reuse): add requirement reuse tracking across projects",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T15:09:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fcb04a68db5dec9f2a89c3c5d44a5d7a33c9b492",
          "body": "Add search package for searching across all spec files:\n- Searcher with configurable search options\n- Filter by project, spec type, with regex support\n- Ranked results with match counts and context\n- Faceted results by project and spec type\n\nImplements RMI-350.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(search): add full-text search across specification files",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T15:08:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "abef7b5ffdc8f9fe528d8be38cb671f4592699fa",
          "body": "Add functions to detect and embed graphize visualization output\nin MkDocs project documentation:\n- DetectGraphizeOutput() - finds graphize HTML output\n- GenerateProjectIndexWithGraph() - generates index with auto-detection\n- EmbedGraphizeInIndex() - embeds iframe or link for visualization\n\nImplements RMI-148.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(mkdocs): add graphize visualization embedding support",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T15:08:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f4b9b61013b30ec7b7f1ba9a69dddb542a30e6e1",
          "body": "Mark completed items:\n- RMI-036/037: align command and current-truth structure\n- RMI-090/091: OpenSpec adapter\n- RMI-103: Git hooks support\n- RMI-110/111: Cross-project deps and ROADMAP generation\n- RMI-120/121: Decision log and rationale graphs\n- RMI-130/131: Metrics dashboard\n- RMI-442/443: Contex\n[…]\nfy graphize integration:\n- RMI-148: MkDocs graph embedding uses graphize exporters\n- RMI-350-352: Search/reuse/patterns integrate with graphize\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update ROADMAP.md with implementation status",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T14:18:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d99bfc9ffe0440436fc5a356aff0dec41fe84c99",
          "body": "- Add docs/cli/align.md: alignment checking documentation\n- Add docs/cli/metrics.md: metrics dashboard documentation\n- Add docs/cli/hooks.md: Git hooks management documentation\n- Update docs/cli/index.md: add new commands to reference\n- Update mkdocs.yml: add new pages to navigation\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(cli): add documentation for align, metrics, and hooks commands",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T13:10:11Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2716a325805d94fd5c8d56e8650086aac9d413f8",
          "body": "- Add align, metrics, hooks commands to CLI reference\n- Update export targets: openspec, github, jira now implemented\n- Add new MCP tools: align_spec, get_metrics, install_hooks, etc.\n- Update project status: Phase 8 complete, Phase 14 complete\n- Update current version to v0.9.0\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update README with new commands and targets",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T07:25:06Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d67dbb271bcf850ec27f196fc2821d409e902857",
          "body": "- Extract loadContextForCommand helper to fix dupl lint\n- Fix gofmt formatting in hooks.go\n- Add nolint for gosec G306 (file permissions)\n  - hooks.go: Git hooks must be executable (0755)\n  - commands.go: Documentation file needs to be readable (0644)\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: resolve lint issues in cli and hooks",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T07:19:48Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "07dce9d6a54ef7d19324a5ebebeddc5a89192fcf",
          "body": "Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(deps): update go dependencies",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T06:55:26Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ebb4995263b24138f8d3068c3f12a3ae249984f3",
          "body": "Mark completed roadmap items:\n- RMI-036, RMI-037: Post-ship alignment (align command, current-truth)\n- RMI-090, RMI-091: OpenSpec adapter\n- RMI-103: Git hooks support\n- RMI-148: MkDocs graph embedding\n- RMI-110, RMI-111: Cross-project dependencies, ROADMAP generation\n- RMI-120, RMI-121: Decision log\n[…]\n: Evaluation metrics dashboard\n- RMI-442, RMI-443: Context flags on align command\n- RMI-621, RMI-630, RMI-631: Test mapping, GitHub/Jira export\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update ROADMAP.md with completion status",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T06:55:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9a1ca3321f4056ba82b726cff2ed520cc697c811",
          "body": "Add MCP tool handlers:\n- align_spec: Run alignment checking\n- get_alignment_status: Get alignment status\n- track_resolution: Track discrepancy resolution\n- get_metrics: Get evaluation metrics\n- install_hooks: Install git hooks\n- get_hooks_status: Get hooks status\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(mcp): add MCP tools for new features",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T06:55:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ebca7423d0d68d607fda2246481f95f8b33f1cdf",
          "body": "Add CLI commands for new packages:\n- visionspec align: Post-ship alignment checking\n- visionspec hooks install/uninstall/status: Git hooks management\n- visionspec metrics: Evaluation metrics dashboard\n- Context flags: --with-context, --context-file on align/drift\n\nUpdates to existing commands:\n- drift: Add --with-context and --context-file flags\n- Export: Support openspec, github, jira targets\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): integrate commands for new features",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T06:54:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9fd56cf9c05469f7612a18ab7fe9198e41434d10",
          "body": "GitHub Issues export (pkg/target/github_issues.go):\n- Export requirements as GitHub issues\n- Create milestones from phases\n- Link issues to specs via labels\n- Priority and label mapping\n\nJira export (pkg/target/jira.go):\n- Export as Jira epics/stories\n- Map priorities and labels\n- Create project boa\n[…]\nverage by requirement\n- Report uncovered requirements\n- Support multiple test frameworks\n\nImplements RMI-621, RMI-630, RMI-631 from ROADMAP.md.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add GitHub Issues, Jira export, and test mapping",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T06:54:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "110bce37abbb26ff9aa9f7b020a5f0edf858e262",
          "body": "Add pkg/metrics for tracking spec evaluation metrics:\n\n- Spec quality trends over time\n- Common failure patterns\n- Conflict frequency tracking\n- Resolution time metrics\n- Dashboard renderers: HTML, JSON, terminal\n- Reconciliation metrics\n\nImplements RMI-130, RMI-131 from ROADMAP.md (Analytics).\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(metrics): add evaluation metrics dashboard",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T06:53:48Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "62956a3cbd1750f90552d62e553e842e76dafe6f",
          "body": "Cross-project dependencies (pkg/deps):\n- Dependency graph between projects\n- Dependency cycle detection\n- Impact analysis for changes\n- Visualization support\n\nROADMAP.md generation (pkg/roadmap):\n- Aggregate project statuses\n- Priority-based ordering\n- Progress tracking\n- Milestone mapping\n\nDecision\n[…]\n Link decisions to requirements\n- Impact analysis\n- Searchable decision history\n\nImplements RMI-110, RMI-111, RMI-120, RMI-121 from ROADMAP.md.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add cross-project deps, roadmap generation, and decisions",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T06:51:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1443f4b3fd4435dc5177c5722d001610ecf2f0a5",
          "body": "Git hooks for automated spec validation:\n- pre-commit: Lint changed spec files\n- pre-push: Validate specs before push\n- commit-msg: Validate commit message format\n- post-commit: Update spec status after commit\n- Install/uninstall/status commands\n\nMkDocs graph embedding:\n- Embed graphize visualizatio\n[…]\nrt for inline SVG and linked HTML exports\n- Configurable graph options\n\nImplements RMI-103 (Git hooks), RMI-148 (MkDocs graph) from ROADMAP.md.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(hooks): add Git hooks and MkDocs graph embedding",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T06:50:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b6467350b3be2501a4c0519599fd20e828ac4a3a",
          "body": "Add OpenSpec target adapter for cross-tool compatibility:\n\n- Portable JSON/YAML schema for requirements\n- Standardized structure: metadata, sections, requirements, tasks\n- Acceptance criteria with test mapping\n- Dependency graph support\n- YAML and JSON output variants\n\nImplements RMI-090, RMI-091 from ROADMAP.md (OpenSpec Adapter).\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(target): add OpenSpec portable export format",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T06:47:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b07268a01b0e9a479ecbe583227e3ba51dd7d732",
          "body": "Add pkg/align package for comparing spec.md against actual implementation:\n\n- Discrepancy types: missing_feature, undocumented_code, diverged,\n  partial_implementation, behavior_mismatch\n- Severity levels: critical, high, medium, low, info\n- Alignment scoring (0-100%)\n- current-truth.md generation\n-\n[…]\nworkflow for tracking fixes\n- Multiple output formats: text, json, markdown\n\nImplements RMI-036, RMI-037 from ROADMAP.md (Post-Ship Alignment).\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(align): add post-ship alignment checking",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-13T06:47:04Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "988c6941316986d9a472146d3f07bac213713c4d",
          "body": "Update documentation to reflect new default rich output:\n- Add --basic flag for legacy simplified output\n- Document pipeline visualization with status icons\n- Add box-drawing table examples\n- Update JSON schema with pipeline and aggregate fields\n- Update markdown format examples\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(cli): update status command for rich output format",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T11:37:35Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "905283f516f3ea2ae4971df1a00272a5ab4b1885",
          "body": "Change status command to use rich output by default:\n- Pipeline visualization with status icons (✅/❌/🔄)\n- Box-drawing tables for summary display\n- Completion percentage and aggregate categories\n- Add --basic flag for legacy simplified output\n\nRich format is optimized for AI agents consuming CLI output.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): use rich status output as default for AI agents",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T10:11:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e34c103fc691cee7feb94c6c8f0cd862759fa287",
          "body": "Add tests for:\n- NewRichReport: pipeline building, aggregate categories\n- RichReport setters: highlights, findings, steps, decisions\n- RenderRichText: terminal output with box-drawing\n- RenderRichMarkdown: markdown output with tables\n- buildPipeline: stage status determination\n- formatFindings: finding string formatting\n- truncate: string truncation helper\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(status): add tests for rich report functionality",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T10:04:34Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "901ca7b06225a2a54c14d95ad240781124716c7c",
          "body": "Add RichReport type extending Report with:\n- Pipeline visualization with stage statuses\n- CategoryBreakdown for pass/partial/fail counts\n- LLM-fillable semantic fields (Highlights, MediumFindings,\n  NextSteps, KeyDecisions, ReadySummary)\n\nAdd deterministic renderers:\n- RenderRichText: terminal outpu\n[…]\nenderKeyDecisions: decision table\n\nThis enables LLMs to fill semantic fields while visionspec\nrenders the rich status format deterministically.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(status): add rich report JSON IR schema and renderers",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T09:58:45Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "73e84643f84bcc40bc5412f46bfa31990d0f79c4",
          "body": null,
          "is_bot": false,
          "headline": "docs: `mkdocs.yml`: add `v0.9.0` to nav",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T09:23:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0138dcddacb712ffc99a68b690dc0011b780b53b",
          "body": "- Update installation version to v0.9.0\n- Add spec-workflows integration section\n- Document workflow selection on init\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update README for v0.9.0",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T09:14:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7b6b68495e70881d5f4229eeb422fb5c5ab1f307",
          "body": "Add CLI documentation for the new workflows command.\nUpdate MkDocs navigation to include workflows page.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(cli): add workflows command documentation",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T09:13:41Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "baff3150ffd200b331f1bf64e97ab70c9c7b5b41",
          "body": "Add v0.9.0 release entry with spec-workflows integration features.\nRegenerate CHANGELOG.md using schangelog.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update changelog for v0.9.0",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T09:13:32Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "731da863cb45930426a501d38a985050aa7d67ae",
          "body": "Document spec-workflows integration features:\n- External repository loading and auto-discovery\n- workflows command for listing methodologies\n- init --workflow flag for methodology selection\n- Environment variable and search path configuration\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add v0.9.0 release notes",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T09:13:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "99581d44bc15a1af686a1adc82d9e3e6b4fe685d",
          "body": "Add persistent --workflows-repo flag to root command for explicit\nspec-workflows repository path specification.\n\nWhen set, overrides auto-discovery and uses the specified path.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): add --workflows-repo global flag",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T08:58:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7977b346345cb098f18ae7cd21c294bb8493e972",
          "body": "Add user-facing workflow features:\n\n- 'visionspec workflows' command lists available workflows\n  Shows repository path and grouped workflow IDs\n  Provides setup instructions if no repo found\n\n- 'visionspec init --workflow=<id>' flag\n  Validates workflow exists in discovered repo\n  Stores workflow ID in visionspec.yaml\n  Uses workflow-specific templates when --with-templates\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): add workflows command and init --workflow flag",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T08:58:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d6b4a600d2a16ccbee8256d9b4f735dbbc4b59bf",
          "body": "Add WorkflowsRepoPath field and helper methods to CLI Config:\n- GetWorkflowsRepo() - loads repo with auto-discovery\n- GetWorkflowsRepoPath() - returns discovered path\n- GetTemplateLoaderForWorkflow() - methodology-specific templates\n- GetRubricLoaderForWorkflow() - methodology-specific rubrics\n- Lis\n[…]\n) - lists all workflow IDs\n\nAuto-discovery allows visionspec to find spec-workflows repos\nwithout explicit --workflows-repo flag in most cases.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): add workflows repo support to Config",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T08:57:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "cb0d5143611b76a49d8597cdfa972328580e4741",
          "body": "Store the selected workflow (methodology/level) in project config.\nExample: \"aws-working-backwards/product\"\n\nThis enables projects to specify which spec-workflows methodology\nthey follow, affecting template and rubric selection.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(types): add Workflow field to Project",
          "author_name": "John Wang",
          "author_login": "grokify",
          "committed_at": "2026-06-08T08:57:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        }
      ],
      "releases_count": 14,
      "commits_last_year": 288,
      "latest_release_at": "2026-07-20T10:43:50Z",
      "latest_release_tag": "v0.14.0",
      "releases_from_tags": false,
      "days_since_last_push": 4,
      "active_weeks_last_year": 9,
      "days_since_latest_release": 4,
      "mean_days_between_releases": 6.1
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/ProductBuildersHQ/visionspec",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/ProductBuildersHQ/visionspec",
          "is_deprecated": false,
          "latest_version": "v0.14.0",
          "repository_url": "https://github.com/ProductBuildersHQ/visionspec",
          "versions_count": 14,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-20T10:38:02Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        }
      ]
    },
    "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": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": true,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 153218,
      "source_files_sampled": 163,
      "oversized_source_files": 2,
      "agent_instruction_files": [
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 6881
    },
    "dependencies": {
      "manifests": [
        "go.mod"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go"
      ],
      "dependencies": [
        {
          "name": "github.com/bmatcuk/doublestar/v4",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v4.10.0"
        },
        {
          "name": "github.com/fsnotify/fsnotify",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.1"
        },
        {
          "name": "github.com/grokify/oscompat",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.5.0"
        },
        {
          "name": "github.com/grokify/pidl",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.5.0"
        },
        {
          "name": "github.com/grokify/prism-roadmap",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.16.0"
        },
        {
          "name": "github.com/modelcontextprotocol/go-sdk",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.6.1"
        },
        {
          "name": "github.com/plexusone/graphfs",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.2.0"
        },
        {
          "name": "github.com/plexusone/graphize",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.4.0"
        },
        {
          "name": "github.com/plexusone/omnillm-core",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.18.0"
        },
        {
          "name": "github.com/plexusone/structured-evaluation",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.10.0"
        },
        {
          "name": "github.com/spf13/cobra",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.2"
        },
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        }
      ],
      "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": 0,
        "merged_prs": 4,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "grokify",
          "commits": 284,
          "avatar_url": "https://avatars.githubusercontent.com/u/209872?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "go-ci.yaml",
        "go-lint.yaml",
        "go-sast-codeql.yaml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".golangci.yaml"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 5 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": 10,
            "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": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 9,
            "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": "295661bd0d0a5d55c823e64ccf20433e1f7375e1",
        "ran_at": "2026-07-25T00:12:05Z",
        "aggregate_score": 4.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-24T23:53:35Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-18T15:29:40Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/ProductBuildersHQ/visionspec",
    "host": "github.com",
    "name": "visionspec",
    "owner": "ProductBuildersHQ"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 59,
      "inputs": {
        "security": 49,
        "vitality": 76,
        "community": 24,
        "governance": 54,
        "engineering": 84
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 76,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "commits_last_year": 288,
              "human_commit_share": 0.96,
              "days_since_last_push": 4,
              "active_weeks_last_year": 9
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 4 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "9/52 weeks with commits",
                "points": 6.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 9
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "288 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 288
                    }
                  }
                ],
                "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": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 14,
              "latest_release_tag": "v0.14.0",
              "releases_from_tags": false,
              "days_since_latest_release": 4,
              "mean_days_between_releases": 6.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "14 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 4 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~6.1 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 6.1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "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": "critical",
        "name": "Community & Adoption",
        "value": 24,
        "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": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 54,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 5 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": 4,
              "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": "4/4 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 4,
                      "decided": 4
                    }
                  }
                ],
                "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": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 38,
            "inputs": {
              "followers": 0,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "ProductBuildersHQ",
              "public_repos": 9,
              "account_age_days": 172
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "0 followers of ProductBuildersHQ",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 0,
                      "login": "ProductBuildersHQ"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "9 public repos, account ~0 yr old",
                "points": 8.2,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 9
                    }
                  },
                  {
                    "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": [
                "github.com/ProductBuildersHQ/visionspec"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 4
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 4 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "14 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "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": 84,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 80,
            "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": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".golangci.yaml",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yaml"
                    }
                  }
                ],
                "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": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": "http://productbuildershq.com/visionspec/",
              "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": "http://productbuildershq.com/visionspec/",
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 49,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 49,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 4.9
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 5 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.5,
                "status": "met",
                "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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 2
            },
            "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": "excellent",
        "name": "AI Readiness",
        "value": 85,
        "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": 1,
              "agent_instruction_files": [
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 6881
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "96 of 96 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 96,
                      "sampled": 96
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.86,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0.04
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "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": ".golangci.yaml",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yaml"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "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": "86 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 86,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "4 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 4,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 153218,
              "source_files_sampled": 163,
              "oversized_source_files": 2
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "2/163 source files over 60KB",
                "points": 54.3,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 163,
                      "oversized": 2
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": true,
              "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": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T00:12:10.304580Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/p/ProductBuildersHQ/visionspec.svg",
  "full_name": "ProductBuildersHQ/visionspec",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasGo.