Registro público
Informe de salud del softwareesquema 0.26.0 · métricas 1.13.0 · 2026-07-22 09:37 UTC

Nokia-Bell-Labs / declarative-agents

GoBSD-3-Clause★ 3 estrellas⑂ 0 forksdesde jul 2026Ver en GitHub ↗

Nokia-Bell-Labs/declarative-agents tiene un índice de salud de 46 sobre 100, lo que lo sitúa en la banda En riesgo. Su puntuación más alta es AI Readiness (83/100) y la más baja, Security (21/100). Se actualizó por última vez hoy. Una sola persona concentra la mayor parte del trabajo reciente.

46
global / 100
En riesgo

Í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.

46
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

Nokia Bell LabsOrganización
111 seguidores41 repositorios públicosdesde jul 2020

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/Nokia-Bell-Labs/declarative-agentsv0.20260721.0-9hace 0 días
Gogithub.com/Nokia-Bell-Labs/declarative-agents/agent-corev0.20260721.0-9hace 0 días
Gogithub.com/Nokia-Bell-Labs/declarative-agents/agent-profilesv0.20260721.0-9hace 0 días

Métricas por categoría

Vitalidad

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

70Bueno · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 0 días
4.2/36Cadencia de commits — 6/52 semanas con commits
18/18Volumen de commits — 950 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_year950
human_commit_share1
days_since_last_push0
active_weeks_last_year6
Cómo se puntúa
16.2/27Publica versiones — 9 etiquetas de versión (sin releases de GitHub)
36/36Recencia de las versiones — última versión hace 0 días
27/27Cadencia de publicación — una versión cada ~2,2 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count9
latest_release_tagv0.20260721.0
releases_from_tags
days_since_latest_release0
mean_days_between_releases2,2
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?

26Crítico · 18% del índice global
Cómo se puntúa
4.9/60Estrellas — 3 estrellas
0/25Forks — 0 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks0
stars3
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonbelow_threshold
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (BSD-3-Clause)
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?

60Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0.1/22.5Distribución de commits — el principal contribuyente firma el 100% de los commits
2.7/13.5Amplitud de contribuyentes — 2 contribuyentes
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Datos de entrada utilizados
bus_factor1
contributors_sampled2
top_contributor_share0,997
Cómo se puntúa
35/46.8Resolución de issues — 75% de issues cerradas
38.2/38.3Aceptación de PR — 145/145 PR decididos fusionados
0/15OpenSSF Scorecard: Code-Review — Found 0/4 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs145
open_issues126
closed_issues374
issue_closed_ratio0,748
closed_unmerged_prs0
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
14.7/25Alcance del propietario — 111 seguidores de Nokia-Bell-Labs
23.8/25Trayectoria — 41 repos públicos, cuenta de ~5 años
Datos de entrada utilizados
followers111
owner_typeOrganization
is_verified
owner_loginNokia-Bell-Labs
public_repos41
account_age_days2185
Cómo se puntúa
25/25Publicado y resoluble — 3 paquete(s) en go
35/35Recencia de publicación — última publicación hace 0 días
20/20Historial de versiones — 9 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesgithub.com/Nokia-Bell-Labs/declarative-agents, github.com/Nokia-Bell-Labs/declarative-agents/agent-core, github.com/Nokia-Bell-Labs/declarative-agents/agent-profiles
ecosystemsgo
any_deprecatedno
min_days_since_publish0

Calidad de Ingeniería

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

40En riesgo · 20% del índice global
Cómo se puntúa
0/24Flujos de trabajo de CI
24/24Pruebas presentes
16/16Configuración de linter — .golangci.yml
0/9.6Hooks de pre-commit
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 4 merged PRs checked by a CI test -- score normalized to 0
Datos de entrada utilizados
has_cino
has_tests
has_editorconfigno
has_linter_config
has_precommit_configno

Documentación

40En riesgo
Cómo se puntúa
30/30README
0/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
0/10Descripción del repositorio
0/10Topics
10/10Wiki
Datos de entrada utilizados
topics
has_wiki
homepage
has_readme
has_docs_dirno
has_descriptionno

Seguridad

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

21Crítico · 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 — 0 out of 4 merged PRs checked by a CI test -- score normalized to 0
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/4 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
0/10Dangerous-Workflow — sin datos
0/7.5Dependency-Update-Tool — no 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 — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — sin datos
5.2/7.5Vulnerabilities — 3 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated14
scorecard_versionv5.5.0
checks_inconclusive4
scorecard_aggregate2,1
Excluidos de la puntuación (sin datos o no aplicable): dangerous_workflow, packaging, signed_releases, token_permissions. 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.

83Bueno · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — agent-core/AGENTS.md, agent-core/CLAUDE.md, agent-profiles/AGENTS.md, agent-profiles/CLAUDE.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 99 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,99
agent_instruction_filesagent-core/AGENTS.md, agent-core/CLAUDE.md, agent-profiles/AGENTS.md, agent-profiles/CLAUDE.md
agent_instruction_max_bytes2113
Cómo se puntúa
12.6/18Arranque con un solo comando — agent-core/go.mod, agent-core/magefiles/go.mod, agent-profiles/go.mod (convención del toolchain, sin ejecutor de tareas)
22/22Pruebas automatizadas
11/11Configuración de lint / formato — .golangci.yml
11/11Verificación estática de tipos — agent-core/internal/evaluation/bench/ui/tsconfig.json, agent-core/internal/knowledge/documentation/ui/tsconfig.json, agent-profiles/agents/knowledge-manager/documentation-curator/ui/monitor/tsconfig.json, examples/chatbot-mesh/ux/app/tsconfig.json
10/10Entorno reproducible — Dockerfile, lockfile
10/10Práctica demostrada con agentes — 12 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan 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, package-lock.json
has_dockerfile
typed_language
bootstrap_files
has_devcontainerno
has_linter_config
typecheck_configsagent-core/internal/evaluation/bench/ui/tsconfig.json, agent-core/internal/knowledge/documentation/ui/tsconfig.json, agent-profiles/agents/knowledge-manager/documentation-curator/ui/monitor/tsconfig.json, examples/chatbot-mesh/ux/app/tsconfig.json
agent_commit_share0,12
toolchain_manifestsagent-core/go.mod, agent-core/magefiles/go.mod, agent-profiles/go.mod, agent-profiles/testdata/integration/rel07-bench-evaluator/samples/noop/workspace/go.mod, agent-profiles/testdata/integration/rel07-evaluator-generator/samples/greet/workspace/go.mod, agent-profiles/testdata/integration/rel07-planner-generator/workspace/go.mod, agent-profiles/testdata/integration/uc001-generator-coding/go.mod, agent-profiles/testdata/integration/uc002-evaluator-benchmark/samples/greet/workspace/go.mod, design-patterns/magefiles/go.mod, examples/chatbot-mesh/go.mod, magefiles/go.mod
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — Go (tipado estático)
55/55Tamaños de archivo manejables — 0/498 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageGo
largest_source_bytes44.862
source_files_sampled498
oversized_source_files0
Cómo se puntúa
40/40Esquema de API (OpenAPI/GraphQL/proto) — agent-core/internal/tools/rest/testdata/docs-runtime/openapi.yaml, agent-profiles/agents/knowledge-manager/documentation-curator/openapi.yaml
0/20Servidor MCP
40/40Ejemplos ejecutables — examples, samples
Datos de entrada utilizados
example_dirsexamples, samples
has_mcp_signalno
api_schema_filesagent-core/internal/tools/rest/testdata/docs-runtime/openapi.yaml, agent-profiles/agents/knowledge-manager/documentation-curator/openapi.yaml

Datos clave

3estrellas de GitHub
2contribuidores
950commits en los últimos 12 meses
0días desde el último push
9versiones publicadas
1factor bus
126issues 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

Historial de estrellas y forks 3 ★ / 0 ⇿
3Estrellas
4Versiones

Cuándo se añadió cada estrella y fork, recopilado de GitHub y agrupado por día. El crecimiento acumulado se sitúa justo encima de las adiciones diarias que lo componen, de modo que ambos se leen en conjunto: la acumulación orgánica sostenida no se parece en nada a un pico abrupto y efímero. Cuando esa diferencia es medible, se informa como autenticidad del crecimiento.

12233312026-072026-072026-07
Mayor 0Menor 4Parche 0
OpenSSF Scorecard 2.1 / 10
2.1agregado

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-22 09:37 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
0CI-Tests0 out of 4 merged PRs checked by a CI test -- score normalized to 0
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/4 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
n/dDangerous-Workflowno workflows found
0Dependency-Update-Toolno update 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
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
n/dSigned-Releasesno releases found
n/dToken-PermissionsNo tokens found
7Vulnerabilities3 existing vulnerabilities detected
Dependencias directas 21
RegistroPaqueteRestricción de versiónManifiesto
Gogithub.com/dominikbraun/graphv0.23.0agent-core/go.mod
Gogithub.com/getkin/kin-openapiv0.140.0agent-core/go.mod
Gogithub.com/go-sql-driver/mysqlv1.10.0agent-core/go.mod
Gogithub.com/spf13/cobrav1.10.2agent-core/go.mod
Gogithub.com/stretchr/testifyv1.11.1agent-core/go.mod
Gogo.opentelemetry.io/otelv1.44.0agent-core/go.mod
Gogo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpcv1.44.0agent-core/go.mod
Gogo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpcv1.44.0agent-core/go.mod
Gogo.opentelemetry.io/otel/exporters/stdout/stdoutmetricv1.44.0agent-core/go.mod
Gogo.opentelemetry.io/otel/exporters/stdout/stdouttracev1.44.0agent-core/go.mod
Gogo.opentelemetry.io/otel/metricv1.44.0agent-core/go.mod
Gogo.opentelemetry.io/otel/sdkv1.44.0agent-core/go.mod
Gogo.opentelemetry.io/otel/sdk/metricv1.44.0agent-core/go.mod
Gogo.opentelemetry.io/otel/tracev1.44.0agent-core/go.mod
Gogo.opentelemetry.io/proto/otlpv1.10.0agent-core/go.mod
Gogoogle.golang.org/grpcv1.81.1agent-core/go.mod
Gogoogle.golang.org/protobufv1.36.11agent-core/go.mod
Gogopkg.in/yaml.v3v3.0.1agent-core/go.mod
Gogopkg.in/yaml.v3v3.0.1agent-profiles/go.mod
Gogithub.com/magefile/magev1.17.2agent-profiles/go.mod
Gogithub.com/magefile/magev1.17.2magefiles/go.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": 61742,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "Go": 2201984,
        "CSS": 20770,
        "Lua": 6783,
        "TeX": 858,
        "HTML": 604,
        "Dockerfile": 2515,
        "TypeScript": 43853,
        "Go Template": 5922
      },
      "pushed_at": "2026-07-22T04:17:10Z",
      "created_at": "2026-07-01T08:37:58Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-22T03:53:05Z",
      "description": null,
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "BSD-3-Clause",
      "default_branch": "main",
      "license_spdx_raw": "BSD-3-Clause",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": "https://www.bell-labs.com/",
      "name": "Nokia Bell Labs",
      "type": "Organization",
      "login": "Nokia-Bell-Labs",
      "company": null,
      "location": null,
      "followers": 111,
      "avatar_url": "https://avatars.githubusercontent.com/u/68877130?v=4",
      "created_at": "2020-07-27T21:56:16Z",
      "is_verified": null,
      "public_repos": 41,
      "account_age_days": 2185
    },
    "license": {
      "state": "standard",
      "spdx_id": "BSD-3-Clause",
      "raw_spdx": "BSD-3-Clause",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.20260721.0",
          "kind": "minor",
          "published_at": "2026-07-21T10:25:26Z"
        },
        {
          "tag": "v0.20260720.0",
          "kind": "minor",
          "published_at": "2026-07-21T00:42:31Z"
        },
        {
          "tag": "v0.20260719.0",
          "kind": "minor",
          "published_at": "2026-07-20T03:16:47Z"
        },
        {
          "tag": "v0.20260717.0",
          "kind": "minor",
          "published_at": "2026-07-17T18:43:49Z"
        },
        {
          "tag": "v0.20260704.3",
          "kind": "patch",
          "published_at": "2026-07-05T02:40:20Z"
        },
        {
          "tag": "v0.20260704.2",
          "kind": "patch",
          "published_at": "2026-07-04T21:42:55Z"
        },
        {
          "tag": "v0.20260704.1",
          "kind": "patch",
          "published_at": "2026-07-04T18:54:21Z"
        },
        {
          "tag": "v0.20260704.0",
          "kind": "minor",
          "published_at": "2026-07-04T15:56:13Z"
        },
        {
          "tag": "v0.20260703.0",
          "kind": "minor",
          "published_at": "2026-07-04T02:51:13Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "58821a5addb7b0d61021d4274f7593d958571a05",
          "body": "…dings\n\nResolve recurring audit #397 findings (GH-521)",
          "is_bot": false,
          "headline": "Merge pull request #631 from Nokia-Bell-Labs/gh-521-resolve-audit-fin…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:52:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50313aaf85cb6fa8ec7d4cbe1f20f384099db363",
          "body": "…receipt contracts (GH-521)\n\nMerging current main surfaced three agent-profiles conformance failures that\nmain passes, all introduced by this branch's own work:\n\n- Resume compatibility (6a7c446) validated the restored state against\n  params.Table, but initFromMachine builds that table inside Loop, a\n[…]\nible, matching the mesh\n  await_*_control and stop_monitor_rest precedent.\n\nagent-core, agent-profiles (conformance included), the chatbot-mesh example,\nand mage audit all pass on the reconciled tree.",
          "is_bot": false,
          "headline": "Reconcile gh-521 with main: fix resume compatibility and conformance …",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:50:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3e7e9585436b66a6f3efd179d000f704625deec3",
          "body": "…findings",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into gh-521-resolve-audit-…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:35:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "080d9fdb66a984958b77c96af35e21e92bf3521a",
          "body": "…findings\n\n# Conflicts:\n#\tagent-core/docs/specs/test-suites/test-rel02.0-lifecycle.yaml\n#\tagent-core/docs/specs/test-suites/test-rel02.0-tool-contracts.yaml\n#\tagent-core/magefiles/build.go",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into gh-521-resolve-audit-…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:34:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4434e237c8a2587731df605370d3eca3de2f4b05",
          "body": "…ence-gaps\n\nGH-599: Mark planned evidence gaps in agent-core test suites",
          "is_bot": false,
          "headline": "Merge pull request #628 from Nokia-Bell-Labs/gh-599-mark-planned-evid…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:32:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "975124f622037a87f95228e52d6536a45887cc8a",
          "body": "The stale go_test evidence these three suites carried was corrected in #598,\nwhich also wired the go_test validator into mage audit. This closes GH-599's\nremaining requirement: mark the assertions that no current test proves as\nplanned rather than overclaiming executable proof.\n\n- test-rel01.0 'Gene\n[…]\nd-presence checks move from expected to\n  planned and status is downgraded from done to planned.\n\nDocs only, no Go changes. mage audit stays green.\n\nCloses #599\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Mark planned evidence gaps in agent-core test suites (GH-599)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:32:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0a3d2224582163779e65cf831a426c59535b88c4",
          "body": "…s into worktree\n\nSkill: gh-issue-pop\nCalled-by: user",
          "is_bot": false,
          "headline": "Pop GH-599: Correct stale formal Go test evidence in agent-core suite…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:30:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "acfbf2cdc97b45fc008abfa9eb224e070cb11e51",
          "body": "Closes #511\n\nThe chatbot and RAG-server programs lived as live released profiles in both the\nagent-profiles catalog and the extracted chatbot-mesh example, and had diverged:\nthe catalog copies' machine, rest, and UX config forked from the example, and\ntheir UI still targeted the removed provisioner.\n[…]\nts:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +140 (relocation pointers; -5900 removed config)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Remove the divergent catalog chatbot/RAG fork (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:25:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e69d2a19111cf95295372e11dc33399e8ced5abc",
          "body": "…evidence\n\nGH-598: Validate formal Go test evidence during mage audit",
          "is_bot": false,
          "headline": "Merge pull request #626 from Nokia-Bell-Labs/gh-598-validate-go-test-…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:24:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99e2477204e34afee1dbe3f59ae0d818a1cc51db",
          "body": "Add a validator that resolves every formal test suite's go_test evidence\nagainst the real Go test inventory, wired into agent-core mage audit so a suite\nthat cites a renamed, deleted, or zero-match test fails the audit instead of\npassing silently.\n\nValidator (pkg/spec/go_test_evidence.go):\n- Invento\n[…]\nest at all (OTLP config, TraceAdapter,\n  ReplayFile read path); added hermetic tests in\n  internal/observability/telemetry/formal_evidence_test.go.\n\nCloses #598\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Validate formal Go test evidence during mage audit (GH-598)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:23:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d027233553eeffadf5ecd69870d0e685a893b455",
          "body": "Closes #518\n\nShipped profiles serve checked-in frontend bundles, but no gate rebuilt them from\nsource, so served dist could silently diverge from the UI source. Add a\nrepository-wide mage uiDist target: it discovers every shipped profile UI (a\npackage-lock.json with a build script and a tracked dist\n[…]\nsts cover the tree diff and UI discovery.\n\nStats:\n  Lines of code (Go, production): +5\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +0\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Add a shipped-UI reproducibility gate (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:19:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cb57c14358f8d9de7980af3d885ac94b0b4d0de0",
          "body": "Closes #517\n\nThe go-style.yaml size limits (functions <= 40 lines, production files <= 500)\nwere enforced only package-locally in pkg/spec, so central runtime files grew\npast them without a gate. Add internal/gostyle/size_test.go: it walks every\nproduction Go file in the module (tests, generated, Ma\n[…]\nstill exceeds the limit.\n\nStats:\n  Lines of code (Go, production): +7 (package doc)\n  Lines of code (Go, tests):      +155\n  Words (documentation):          +60\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Add a repo-wide Go size-constitution gate (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:10:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e2f68526213dfd7e45a25cbf88b5cd07731927b2",
          "body": "…n (GH-521)\n\nCloses #508\n\nserve_documentation performed two opposite lifecycle operations from one word,\nbranching on the previous signal, so MachineSpec could not name the forward\noperation. Split it into launch_documentation (starts the host, emits\nServerLaunched, Undo tears it down as shutdown co\n[…]\nnt-core and\nagent-profiles audits pass.\n\nStats:\n  Lines of code (Go, production): +19\n  Lines of code (Go, tests):      +28\n  Words (documentation):          +0\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Split serve_documentation into launch_documentation/stop_documentatio…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T03:02:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6e05e9a0315131e03c7fbca8c5a0708f42e89c5e",
          "body": "…orktree\n\nSkill: gh-issue-pop\nCalled-by: user",
          "is_bot": false,
          "headline": "Pop GH-598: Validate formal Go test evidence during mage audit into w…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T02:52:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de6921defc7906d614157431cb043b7f0be44b02",
          "body": "…e-contract\n\nGH-597: Assert the jurist deterministic/read-only/provenance contract",
          "is_bot": false,
          "headline": "Merge pull request #616 from Nokia-Bell-Labs/gh-597-jurist-conformanc…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T02:46:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0ac11d52621d492ed9936153c7df92588dfe7ff",
          "body": "Replace the single-run, either-terminal jurist conformance test with the\nsrd005-jurist contract, split into named subtests the formal suites can cite:\n\n- CleanCorpusPasses: the shipped profile's tool pipeline is visible and a\n  clean corpus reaches the Passed terminal (R2, R3.1, R3.3).\n- FailingCorp\n[…]\n1.2).\n\nBoth outcomes are asserted by separate fixtures rather than one run accepting\neither terminal, restoring the deterministic-contract framing.\n\nCloses #597\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Assert the jurist deterministic/read-only/provenance contract (GH-597)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T02:45:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c94a2d36ea0caca1acb3906656d9c9fb6e8e9d97",
          "body": "…tract into worktree\n\nSkill: gh-issue-pop\nCalled-by: user",
          "is_bot": false,
          "headline": "Pop GH-597: Jurist conformance deterministic/read-only/provenance con…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T02:41:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "93624fae7b61edcffc1ae623d005b9b0ca827725",
          "body": "…H-521)\n\nCloses #487\n\nThe command-state restart evidence manually assembles Execution and an\nInMemoryCheckpoint and injects CommandStateView (or reconstructs the store from a\ncheckpoint load); it proves the rehydration logic but does not run core.Loop\nsuspend/resume in a fresh OS process. test-rel07\n[…]\nrestart\nlifecycle tracer remains to do.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +113\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Classify the command-state restart tracer as component integration (G…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T02:38:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "80601e3b423aa163b587e8b1b0689e054613546a",
          "body": "…H-521)\n\nCloses #500\n\nsrd003 R3.2 requires the add-RAG rollout to resume the chatbot from its Dolt\ncheckpoint via --dolt-dsn and --resume-checkpoint, but the chart renders only\n--dolt-dsn and Integration.HelmSwap asserts the rollout mechanics (re-render,\nrolled Deployment generation), not checkpoint\n[…]\ntored-after-rollout tracer remain to do.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +82\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Scope the Helm swap tracer as rollout proof, not checkpoint-resume (G…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T02:35:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dd11097a57c83c7ce892a32b0497590d612d0e21",
          "body": "…-521)\n\nCloses #504\n\nintegration:controlPlane runs the real coordinator and creator against a fake\ndeployment API; it proves the intent flow, request/response sequencing, and the\nauthority boundary, but not the behavioral lifecycle. test-rel05.0-control-plane\nnevertheless claimed real corpus-ingest \n[…]\n structurally, not as behavioral proof.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +139\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Scope the control-plane tracer as fake-backed, not full lifecycle (GH…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T02:32:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ae5727675103b6e2ac5b05806738686f61b54c8c",
          "body": "Advances #468 (raw file-read primitive; the distinct-HTTP-codes primitive is\nsplit to #615).\n\nThe read/file_read builtin line-numbers its output (\"%*d|%s\"), which corrupts a\nfile served verbatim as an HTTP body -- the executor's GET /provisioning/api/state\nreturning a JSON mesh view (#480) cannot us\n[…]\nfile guard. Documented in srd013 R1.1.\n\nStats:\n  Lines of code (Go, production): +21\n  Lines of code (Go, tests):      +14\n  Words (documentation):          +34\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Add a raw mode to the read builtin for verbatim file serving (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T02:20:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d850a9714190d355998ad8b4f9437e227266b82b",
          "body": "Closes #613\n\nGH-494's receipt-contract validation runs at agent startup (stricter than mage\naudit) and rejected 33 words across all six chatbot-mesh agents as \"reversible +\nstate-mutating with no receipt-consuming undo\", so no mesh agent could boot and\nintegration:controlPlane failed before the flow\n[…]\nests pass.\n\nStats:\n  Lines of code (Go, production): +9 (agent-core receipt contract)\n  Lines of code (Go, tests):      +39\n  Words (documentation):          +0\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Make mesh agents boot under the receipt contract (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T02:06:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6f90ec52ac5fd70359cd2ff1a78d3ffb5c438949",
          "body": "…(GH-521)\n\nCloses #608\n\nComplete the coordinator -> creator -> executor apply path under the Design A /\nfull-desired-state contract: the creator forwards the coordinator's decided\nvalues-plane document to the executor as {schema_version, content} instead of a\n{operation, role, collection} model, and\n[…]\nby this change.\n\nStats:\n  Lines of code (Go, production): +7 (integration fake/intent)\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +0\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Creator forwards the values content to the executor; fake mirrors it …",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T01:52:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9df1eeb1a470e2564804c8a5e976e115a2e2d7c6",
          "body": "Closes #609\n\nThe chart's ragUnits is a full list helm replaces wholesale on apply, so an\nadd-RAG delta cannot render a correct values document without reading current\nstate (the unbuilt /state endpoint). Per the full-desired-state decision, the\ncontrol plane carries the complete desired mesh: the op\n[…]\n\nserializing MeshView -> content (#502).\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +61\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Coordinator forwards the caller's full desired values document (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T01:38:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "70241be9a63a881651e4f1655bae7544709ae425",
          "body": "Closes #607\n\nImplementing the executor-renders contract (#606) revealed agent-core has no\nvalues-templating word and that rendering an operation delta needs a\ncurrent-state read (the unbuilt /state endpoint). Per the Design A decision,\nrevise the deployment_api_contract to the simpler, correct shape\n[…]\nutor image-script dependency is dropped.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          -13\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Adopt Design A: executor applies a decided values document (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T01:24:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "17f50d5419f3b6ad4a55b49ee45efb0b236f9524",
          "body": "Closes #606\n\nAdd deployment_api_contract (version 1) to srd006: a schema_version-tagged apply\nrequest (a values-plane operation model -- operation, role, collection), apply\nresponse (status, revision, error), and rollout response (phase, ready, desired,\nrevision, message). Add R1.4 requiring the exe\n[…]\n07, creator/fake + contract test #608).\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +384\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Define the versioned executor deployment-API schema in srd006 (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T01:10:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2d1f46582d680b1f689bf4602254844a865332f2",
          "body": "Closes #516\n\nFour reference-implementation known_uses presented design intent as shipped\nbehavior. Verified against the code: no shipped agent profile wires\ncheckpoint_rollback into a coding-agent validation flow or defines a\nRollbackRequested signal; the approval gate exists only as a conformance f\n[…]\nt for\npattern claims is follow-up #605.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +105\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Label unshipped pattern-language claims as design intent (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T01:00:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f7fa4445a12693d9d877643e66b2528824c273a6",
          "body": "…GH-521)\n\nCloses #480\n\nThe executor serves GET /provisioning/api/rollout but not\nGET /provisioning/api/state, so the provisioning panel cannot load its MeshView;\nyet srd006 listed both endpoints as planned under the closed #466. Correct the\nimplementation-status: the rollout read endpoint shipped (#\n[…]\ne fetch has no backing route until then.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +55\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Make srd006 status honest about the missing executor state endpoint (…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:56:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9f007404deee4b5c6c3652bf3de0e61c101a0f35",
          "body": "Closes #483\n\nThe executor validate/apply/verify/rollback flow has no behavioral tracer:\nmage integration:executor does not exist, and integration:controlPlane drives a\nfake deployment API without starting the executor. Keep the rel06.0 docs honest:\nthe test-rel06.0-executor tracer is planned and its\n[…]\n integration:executor is follow-up #602.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +68\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Stop overstating executor behavioral evidence in rel06 docs (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:54:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a4880c3126ad1f671fda05c2753211c55eaf8ca0",
          "body": "…(GH-521)\n\nCloses #478\n\nexamples/chatbot-mesh mage audit defaulted JURIST_PROFILE to a sibling\nagent-profiles checkout and returned success when the runtime or the validator\nwas absent, so a copied-out example (or `JURIST_PROFILE=/missing mage audit`)\nprinted SKIP and exited 0 — a false green for a \n[…]\nols the gate depends on in the README.\n\nStats:\n  Lines of code (Go, production): +11\n  Lines of code (Go, tests):      +57\n  Words (documentation):          +73\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Fail the example self-governance audit when its validator is missing …",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:52:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e90b0a1f3f3e850fe9c9c6b7c04e1e7aaefa6efd",
          "body": "Closes #506\n\nThe named proofs TestLifecycleProfilesValidateMachineWiring and\nTestCheckpointContractsCompileAndRoundTrip do not exist, and srd026's\nimplementation/test paths pointed at the removed internal/tools/stl package.\nRepoint them to the real current symbols and packages, and update the\nagent-\n[…]\npt-walk manual loop) are follow-up #600.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +41\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Fix lifecycle spec test symbols, paths, and receipt model (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:46:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9d47bfe4d372ca91561ebef112a9e0e9cb78b8a9",
          "body": "…GH-521)\n\nCloses #505\n\nRuntime implements modeled lifecycle_control: ValidateDefinition validates the\naction (exit, pause, rollback_request, resume, inject_signal) and the rollback\nselector, and the endpoint enqueues the lifecycle request event for MachineSpec\nrouting (TestRESTServer_LifecycleContro\n[…]\nted; only first_available is supported.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +133\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Document the actual REST lifecycle-control and read-policy boundary (…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:38:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "95ae5c3e816359db7bbcda75787ff84985b8ae7d",
          "body": "Closes #499\n\nagent-profiles ships no mage integration:chroma target after the mesh\nextraction; the relocated example target proves ingest count only over the\nexample's copied profile, not the knowledge-manager corpus-reader grounded-answer\npath. Correct the rel08.0 use cases, test suite, rel10.0 res\n[…]\nor lifecycle test) to the corpus paths.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +389\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Narrow the Chroma corpus release claims to the relocated proof (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:33:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "26711988a61266348f1bec2f2bba309629e3fd48",
          "body": "Closes #497\n\nconformance/jurist_test.go runs the shipped jurist once and accepts either\nterminal; it does not repeat identical input (determinism), snapshot the\nworkspace (read-only), run separate clean and failing corpora, or assert finding\nprovenance. Drop \"deterministic\" from the case name and th\n[…]\ning srd005 assertions as follow-up #597.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +75\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Relabel jurist conformance as single-run behavioral coverage (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:26:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "77075ebd2e28374794877423c11cb307542566dd",
          "body": "Closes #496\n\nconformance/rest_test.go runs the shipped rest sample REST config and\ndeclarations but drives them through a synthesized bounded launch/await/stop\nmachine and tools list, because the shipped machine's client read/create/await\nhead cannot run in a profile machine. Labeling that shipped-b\n[…]\nroven at the agent-core package level).\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +259\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Reclassify the base REST conformance case as bounded-behavioral (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:24:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bb8d9749485233d9befe420324f6342c0f1d2696",
          "body": "…H-521)\n\nCloses #495\n\nThe mage integration:plannerGenerator target drives graph load and task\nextraction with a Mage-side synthesized flow and a stub generator child; it does\nnot run the shipped planner profile machine end to end. Relabel the test-rel07.0\nentry as synthesized-component coverage and \n[…]\nnting it as full profile-boundary\nproof.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +42\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Classify the planner-generator integration as synthesized evidence (G…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:21:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b29c9101dafd0d7e497286ff1ba85cd4f85b0eb8",
          "body": "…H-521)\n\nCloses #481\n\n- how-it-works.md control-plane diagram: replace the Provisioner values-patch\n  node with the Executor (srd006) the creator drives; add the srd006 link to\n  the normative SRD list.\n- deploy/README.md: retire the stale runbook to a redirect pointing at the\n  example README, how-\n[…]\nled superseded.\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          -653 (retired stale runbook)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Retarget mesh walkthrough and runbook from the deleted provisioner (G…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:13:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c04415bb8af1c293287577b49deeda4324590039",
          "body": "Closes #479\n\n- Rewrite README scope/status: both planes implemented across six agents\n- Add coordinator, creator, executor to the README layout\n- Replace the bare `mage integration` example with named integration:* targets\n- Reassign three relocated test suites' asset ownership to the example\n- Turn\n[…]\ntion\" framing from four data-plane specs\n\nStats:\n  Lines of code (Go, production): +0\n  Lines of code (Go, tests):      +0\n  Words (documentation):          +85\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Reconcile chatbot-mesh docs with the implemented control plane (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-22T00:08:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4422201600ef248a388d998e61542f812e4fc3ab",
          "body": "GH-522: Audit Go tests for quality, coverage, and fidelity",
          "is_bot": false,
          "headline": "Merge pull request #593 from Nokia-Bell-Labs/gh-522-recurring-test-audit",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T23:58:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "858fcc3304a9623501e736eb82e1a1198723af99",
          "body": "Closes #527\n\n- Classified and ran root, agent-core, profile, conformance, and chatbot-mesh integration targets.\n- Distinguished shipped, copied, synthesized, fake-backed, load-only, container, live, pass, fail, and skipped evidence.\n- Filed findings #583 through #592 and linked them to #522; changed\n[…]\nction): 35803 (+0)\n  Lines of code (Go, tests):      28558 (+0)\n  Words (documentation):          unchanged (+0)\n\nSkill: do-work\nCalled-by: gh-issue-pop\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Audit integration fidelity skips fakes and module ownership (GH-522)",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T23:57:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "99412629cf79cc20daacf89a6c1f9e6369d2acca",
          "body": "…-521)\n\nCloses #498\n\nintegration_bench.go and integration_evaluator.go launched the removed\nagents/evaluator/profile.yaml after the rel10 evaluator->critic rename, so the\nbenchEvaluator and evaluatorGenerator live targets failed. go test masked it\nbecause it does not execute the live targets.\n\n- Rep\n[…]\nive target.\n\nStats:\n  Lines of code (Go, production): +6 (agent-profiles magefiles)\n  Lines of code (Go, tests):      +81\n  Words (documentation):          none\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Repoint bench/evaluator integration to the shipped critic profile (GH…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T23:02:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "76bf157aa306bf4e4b2d1708533242594dccc459",
          "body": "Closes #507\n\nThe extract, execute, and check phases never transitioned graph nodes, so a\ncompleted node stayed Pending: Graph.Ready kept returning it and the planner\nre-selected the same work until budget exhaustion. check_result even called\nMarkDone but discarded the error, and it failed anyway (Pe\n[…]\ns the real flow does.\n\nStats:\n  Lines of code (Go, production): 34896 (+77)\n  Lines of code (Go, tests):      27445 (+46)\n  Words (documentation):          none\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Advance planner graph nodes through their lifecycle (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T22:59:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d53740c575977ba0b34f67aadf0a94158b354dcd",
          "body": "Closes #525\n\n- Inventoried zero fuzz targets, one benchmark, fixture trees, generated UI assets, and reproducibility gates.\n- Probed parser, transition, selector, persistence, status-mapping, and argv invariants with temporary property checks.\n- Filed findings #567 through #582 and linked them to #5\n[…]\nction): 35803 (+0)\n  Lines of code (Go, tests):      28558 (+0)\n  Words (documentation):          unchanged (+0)\n\nSkill: do-work\nCalled-by: gh-issue-pop\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Audit fuzzing properties benchmarks fixtures and artifacts (GH-522)",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T22:56:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "471adbb54321ce4df1317acd6cf236d082b9d50d",
          "body": "…521)\n\nCloses #501\n\nThe rag-server query endpoint accepted and seeded n_results, but the collection\nresolution carried only query_embeddings and the Chroma query body hard-coded\nn_results: 5, so the request-supplied count was ignored.\n\n- rag_resolve_collection now maps and carries n_results forward \n[…]\ns the\nco-generated chatbot sends n_results. The live ragServer tracer runs in CI\n(needs a Chroma container and an Ollama embedding model, not provisioned here).\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Thread request-supplied n_results into the Chroma query (srd001) (GH-…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T22:51:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f882a24701ec6444b08f07d1b68dfbb27685e179",
          "body": "…522)\n\nCloses #526\n\n- Collected fresh package coverage across maintained Go modules and classified critical risk areas.\n- Audited formal evidence mappings, overlap, weak assertions, and sampled mutations across runtime, REST, lifecycle, and spec parsing.\n- Filed findings #547 through #566 and linked\n[…]\nction): 35803 (+0)\n  Lines of code (Go, tests):      28558 (+0)\n  Words (documentation):          unchanged (+0)\n\nSkill: do-work\nCalled-by: gh-issue-pop\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Audit coverage overlap regression value and mutation sensitivity (GH-…",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T22:06:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "477e144462a96ade5daf9e3b964142ca4bc2b997",
          "body": "…521)\n\nCloses #484\n\nThe executor exec declarations hard-coded release chatbot-mesh, namespace default,\nand deployment chatbot-mesh-chatbot, while the comment falsely claimed the chart\nrendered them from .Release.*. The chart copied the file verbatim, so an executor\ninstalled under any other release \n[…]\n(Go, production): +0 (chart/profile change; +78 test)\n  Lines of code (Go, tests):      +78\n  Words (documentation):          executor exec-declarations comment\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Render executor exec-word coordinates from the installed release (GH-…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T22:02:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "23b496d931169b35b8a9585bdd0def1d19d59fee",
          "body": "Closes #485\n\nstageSmokeChart copied chatbot, rag-server, coordinator, creator, and ux into the\nchart's profiles ConfigMap but omitted the executor, while the executor (srd006)\nDeployment mounts /profiles/agents/executor/profile.yaml. Enabling the executor\nwould mount a chart package with no executor\n[…]\nats:\n  Lines of code (Go, production): +18 (mesh magefiles; not in root mage stats)\n  Lines of code (Go, tests):      +75\n  Words (documentation):          none\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Stage the executor profile into the packaged chart (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T21:54:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2ef43b237924b88486c7dfe82b481e681d6daf94",
          "body": "… (GH-521)\n\nCloses #486\n\nREST definitions loaded with non-strict YAML unmarshal, so machine_request\nfields documented in rest-tool-format.yaml but absent from the MachineRequest\nstruct (error_responses, retain_trace, trace, tools, tool_declarations,\ninitial_state, and the response mapping's default_\n[…]\nts pass.\n\nStats:\n  Lines of code (Go, production): +15\n  Lines of code (Go, tests):      +100\n  Words (documentation):          rest-tool-format.yaml reconciled\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Strictly validate machine_request config; reconcile documented fields…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T19:26:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "473f37e6cb272a31f30826552af46f2428603b8e",
          "body": "Closes #510\n\nEndpoint.Binding was required but left unvalidated, so --validate-config approved\nroutes whose binding handleEndpoint does not dispatch — the runtime then returned\nHTTP 501. Validation now fails such routes up front.\n\n- Added handledServerBindings, the closed set of bindings handleEndpo\n[…]\nmesh audits all pass.\n\nStats:\n  Lines of code (Go, production): 34818 (+40)\n  Lines of code (Go, tests):      27299 (+56)\n  Words (documentation):          none\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Reject unknown/empty REST endpoint bindings at validation time (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T19:17:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cd1b956d3d3683afd01f9e5e740ecd8e01cbd3ba",
          "body": "Closes #523\n\n- Ran race, repetition, and shuffled-order matrices across runtime, REST, monitor, lifecycle, profile, and example tests.\n- Audited cancellation, timeout, cleanup, listener, partial-write, rollback, and process negative paths.\n- Filed findings #540 through #546 and linked them to #522; \n[…]\nction): 35803 (+0)\n  Lines of code (Go, tests):      28558 (+0)\n  Words (documentation):          unchanged (+0)\n\nSkill: do-work\nCalled-by: gh-issue-pop\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Audit determinism isolation race safety and negative paths (GH-522)",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T19:15:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "70da4ad6dd3be11c96dbb0b2041c2b4afb8ae606",
          "body": "… (srd026) (GH-521)\n\nCloses #493\n\ncheckpoint_history and checkpoint_rollback declared structured object output\nschemas but returned plain text, and rollback omitted the required reverted-entry\ncount and selected-run identity (srd026 R2.6, R3.8).\n\n- checkpoint_history now returns {run, history} JSON:\n[…]\n change is contained.\n\nStats:\n  Lines of code (Go, production): 34778 (+77)\n  Lines of code (Go, tests):      27243 (+81)\n  Words (documentation):          none\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Emit structured output for checkpoint_history and checkpoint_rollback…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T19:13:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "66496a6c2f30eb8c83ba9368e3fab9a70e6ef598",
          "body": "…(GH-521)\n\nCloses #494\n\nValidateReceiptPresence existed but had no production call site, so reversible\ntool declarations were never checked by mage audit / --validate-config (srd025\nR3.5 requires the lifecycle validator to check receipt presence for reversible\nstate-mutating tools).\n\n- Added Validat\n[…]\n\n  Lines of code (Go, production): 34718 (+60)\n  Lines of code (Go, tests):      27172 (+96)\n  Words (documentation):          monitor declarations reclassified\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Wire receipt-contract validation into the config/audit gate (srd025) …",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T19:06:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d2b80bc1bcb1a47f55d962215952cc6e6adef0e5",
          "body": "Closes #524\n\n- Inventoried 177 Go test files and 1,176 tests across repository modules.\n- Audited Testify semantics, table-driven structure, helpers, assertions, duplication, and maintained test quality.\n- Filed findings #528 through #539 and linked them to #522; changed no repository files.\n\nStats:\n[…]\nction): 35803 (+0)\n  Lines of code (Go, tests):      28558 (+0)\n  Words (documentation):          unchanged (+0)\n\nSkill: do-work\nCalled-by: gh-issue-pop\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Audit Testify parameterization and test-code quality (GH-522)",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T18:56:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6a7c446fed5c45f4b79a22f8eccffcdf5cfd349c",
          "body": "…d025) (GH-521)\n\nCloses #490\n\nLoadResume wrapped every Checkpoint.Load error as \"resume: load: %w\" with no\nclassification and did no compatibility validation, so operators could not tell\na nonexistent checkpoint from incompatible persisted state or a backend failure\n(srd025 R6.4, R6.5).\n\n- Added Err\n[…]\nis mutually distinct.\n\nStats:\n  Lines of code (Go, production): 34660 (+55)\n  Lines of code (Go, tests):      27076 (+83)\n  Words (documentation):          none\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Distinguish missing, incompatible, and load-failure resume errors (sr…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T18:50:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "77547f2725b942272a072b3d66f9bea7af5e55c4",
          "body": "Sub-issues: #523, #524, #525, #526, #527\n\nSkill: gh-issue-pop\nCalled-by: user\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Pop GH-522: Recurring Go test audit into worktree",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T18:46:57Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "03a9de4349f1e2650f0dca1a573ffe82f1566c46",
          "body": "…5) (GH-521)\n\nCloses #492\n\nsaveCheckpoint traced Save failures but did not alter run status, and\nstopForSuspend set StatusSuspended unconditionally — so a run could report a\nresumable suspended status with no persisted checkpoint (srd025 R5.3 requires\npersistence before StatusSuspended; srd035 R6.5 \n[…]\n ordinary suspension.\n\nStats:\n  Lines of code (Go, production): 34606 (+28)\n  Lines of code (Go, tests):      26993 (+50)\n  Words (documentation):          none\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Fail the run when suspend checkpoint Save fails, never suspend (srd02…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T18:46:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b7034db9cc4f1a133a4e1b4c860016b589eb9ec0",
          "body": "…26) (GH-521)\n\nCloses #491\n\nRollback wrote \"undo failed\" into the report text but rollbackViaReceipts\nalways returned nil, so checkpoint_rollback returned ToolDone even when a\nreceipt-walk Undo failed — a failed external-effect reversal read as a clean\nrollback (srd026 R3.7/R6.4 violation).\n\n- rollb\n[…]\nlean-rollback test.\n\nStats:\n  Lines of code (Go, production): 34586 (+103)\n  Lines of code (Go, tests):      26943 (+130)\n  Words (documentation):          none\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Report partial rollback as CommandError when receipt Undo fails (srd0…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T18:42:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "095894c199aaddda387e4b1dc8f326a63ab91606",
          "body": "Closes #474\n\n.golangci.yml is the v2 schema, but `mage lint` invoked whatever golangci-lint\nwas on PATH with no version check, so on a v1 binary the gate aborted mid-run\nwith a schema error and the .golangci.yml comment overclaimed reproducibility\n\"regardless of the installed golangci-lint version\".\n[…]\n\n\nStats:\n  Lines of code (Go, production): +40 (magefiles preflight)\n  Lines of code (Go, tests):      +55\n  Words (documentation):          config comment only\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Preflight golangci-lint major version in the lint gate (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T17:10:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d6313f870da17254841b4c002330904d4bd5f927",
          "body": "…-521)\n\nCloses #477\n\nThe documentation curator UI shipped DOMPurify 3.4.10 (transitive via mermaid),\naffected by GHSA-cmwh-pvxp-8882 (permanent ALLOWED_ATTR pollution). agent-core\nmage audit ran `npm install` but exited 0 while npm reported the moderate vuln.\n\n- Bump DOMPurify to 3.4.12 via npm audi\n[…]\nad of printing green.\n\nStats:\n  Lines of code (Go, production): +15 (magefiles gate)\n  Lines of code (Go, tests):      +0\n  Words (documentation):          none\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Patch DOMPurify and gate UI production dependency vulnerabilities (GH…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T17:08:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "888a81c2f4669db6cbd1e25d30fceaa8c2d9e304",
          "body": "Closes #476\n\nRoot mage audit/test iterated only agent-core, agent-profiles, and\ndesign-patterns, so the standalone chatbot-mesh module (6 SRDs, 8 use cases,\n7 test suites) could break while root gates passed green.\n\nAdd a capability-aware exampleModules list:\n- Audit() now dispatches over subModules\n[…]\nroduction): +29 (root magefiles, not in mage stats scope)\n  Lines of code (Go, tests):      +67 (example_modules_test.go)\n  Words (documentation):          none\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Add examples/chatbot-mesh to root audit and test gates (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T17:05:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6fc5b97d50043137527a950eca0c25728e88afef",
          "body": "Closes #475\n\nPR #469 deleted examples/chatbot-mesh/provisioner and moved deployment-plane\nauthority to the executor agent (srd006). Remove the two go-style.yaml\nexceptions that defended the deleted Go service:\n- the no-os.Getenv exemption for the provisioner (envexpand + magefiles retained)\n- the ex\n[…]\ntion.\n\nStats:\n  Lines of code (Go, production): 34494 (+0)\n  Lines of code (Go, tests):      26814 (+0)\n  Words (documentation):          constitution edit only\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Remove stale provisioner exceptions from go-style constitution (GH-521)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T16:59:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5f8d82d25d76df13ce74f6e94b61abdb4860a77a",
          "body": "Epic with 46 pre-existing sub-issues (audit #397 / PR #519 decomposition).\nSub-issues: #404 #474 #475 #476 #477 #478 #479 #480 #481 #482 #483 #484 #485 #486 #487 #488 #489 #490 #491 #492 #493 #494 #495 #496 #497 #498 #499 #500 #501 #502 #503 #504 #505 #506 #507 #508 #509 #510 #511 #512 #513 #514 #515 #516 #517 #518\n\nSkill: gh-issue-pop\nCalled-by: user",
          "is_bot": false,
          "headline": "Pop GH-521: Resolve recurring audit #397 findings into worktree",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T16:55:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8dfb40c3cd1dd3616c69b86c3a0d890e6d9edbb1",
          "body": "GH-397: Audit planned and finished work",
          "is_bot": false,
          "headline": "Merge pull request #519 from Nokia-Bell-Labs/gh-397-recurring-work-audit",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T16:40:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2af9811cb1a6d898ccd77ca99f73e1d039259e1",
          "body": "Closes #473\n\n- Reviewed module ownership, duplication, file/function boundaries, hidden workflows, generated assets, and design-pattern evidence.\n- Verified focused planning, REST, documentation, monitor, and profile tests and vet checks.\n- Filed findings #507 through #518; changed no repository fil\n[…]\nction): 35803 (+0)\n  Lines of code (Go, tests):      28558 (+0)\n  Words (documentation):          unchanged (+0)\n\nSkill: do-work\nCalled-by: gh-issue-pop\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Audit cross-repository quality ownership and reuse (GH-397)",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T16:39:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3ce4d02cdfb5d79a5c8f1b3d459615077ff0e5e9",
          "body": "Closes #472\n\n- Sampled runtime, REST, lifecycle, profile-family, and chatbot-mesh requirements against implementations and executable evidence.\n- Distinguished behavioral, synthesized, gated, skipped, and missing proof across the formal suites.\n- Filed findings #486 through #506; changed no reposito\n[…]\nction): 35803 (+0)\n  Lines of code (Go, tests):      28558 (+0)\n  Words (documentation):          unchanged (+0)\n\nSkill: do-work\nCalled-by: gh-issue-pop\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Audit behavioral conformance across specification corpora (GH-397)",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T16:21:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7c50911598ca68fb816340687e2ac99f18cc1420",
          "body": "Closes #470\n\n- Verified all 14 PRs merged after #396 against current source, config, docs, and tests.\n- Reproduced the deterministic control-plane integration and inspected stubs and adjacent status claims.\n- Filed findings #478, #479, #480, and #481; changed no repository files.\n\nStats:\n  Lines of \n[…]\nction): 35803 (+0)\n  Lines of code (Go, tests):      28558 (+0)\n  Words (documentation):          unchanged (+0)\n\nSkill: do-work\nCalled-by: gh-issue-pop\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Audit completed tracker claims since the prior pass (GH-397)",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T15:57:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "978bff39d995a2a67ed63f6d0b2a003b546402d2",
          "body": "Closes #471\n\n- Ran root and module audit, test, lint, conformance, validation, and stats gates.\n- Rechecked fixes #389-#395 and classified production environment access.\n- Filed findings #474, #475, #476, and #477; changed no repository files.\n\nStats:\n  Lines of code (Go, production): 35803 (+0)\n  Lines of code (Go, tests):      28558 (+0)\n  Words (documentation):          unchanged (+0)\n\nSkill: do-work\nCalled-by: gh-issue-pop\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Audit baseline gates and configuration hygiene (GH-397)",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T15:51:36Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "233049aa9fb5f99b27067149581c15613c046637",
          "body": "Sub-issues: #470, #471, #472, #473\n\nSkill: gh-issue-pop\nCalled-by: user\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Pop GH-397: Recurring audit of planned and finished work into worktree",
          "author_name": "djukic",
          "author_login": null,
          "committed_at": "2026-07-21T15:37:19Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7de956a64d9e9b24aaceb3a192212139dab17613",
          "body": "…ecutor\n\nGH-456: Transition the chatbot-mesh provisioner to a declarative executor agent",
          "is_bot": false,
          "headline": "Merge pull request #469 from Nokia-Bell-Labs/gh-456-provisioner-to-ex…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T10:25:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a194ea0e417e67e0a636695aa700a3e2ef7329f",
          "body": "…(srd006-executor) (GH-456)\n\nCloses #466\n\n- agents/executor: rollout-machine.yaml (Seed -> kubectl_rollout_poll -> Complete\n  or Progressing) and the kubectl_rollout_poll exec word (short --timeout 3s), plus\n  a GET /provisioning/api/rollout endpoint on executor_apply. kubectl computes the\n  phase; \n[…]\n(Go, production): unchanged (+0)\n  Lines of code (Go, tests):      unchanged (+0)\n  Words (documentation):          +~80 (rollout machine/word + packaging line)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Add the executor rollout read endpoint; package the executor profile …",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T03:22:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "aab03e2b2a5bffed684068b7205991e802b5ca81",
          "body": "… (srd006-executor) (GH-456)\n\nCloses #467\n\n- Delete helm/templates/provisioner.yaml; move the mesh-state ConfigMap into\n  executor.yaml (mounted read-only for the state read path, #466).\n- Migrate provisioner.params -> executor.params across values.yaml,\n  values.schema.json, _helpers.tpl meshView, \n[…]\n(Go, production): unchanged (+0)\n  Lines of code (Go, tests):      unchanged (+0)\n  Words (documentation):          ~net-neutral (provisioner prose -> executor)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Cut the chart, UX, and docs over from the provisioner to the executor…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T03:14:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "00d6e2466d5e1b5ba5af0bd41434bbe752e05e74",
          "body": "…-456)\n\nCloses #465\n\n- rag-units.yaml fails render when two ragUnits share a name, using sprig uniq.\n  JSON Schema cannot express uniqueness by a sub-key, so values.schema.json (#459)\n  does not catch a duplicate; without this guard the executor's helm --dry-run\n  (srd006 R2.1) would render two coll\n[…]\nLines of code (Go, production): unchanged (+0)\n  Lines of code (Go, tests):      unchanged (+0)\n  Words (documentation):          +~30 (guard comment + fixture)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Guard the chart against duplicate ragUnit names (srd006-executor) (GH…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T03:04:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f003804a659c821fca113e91e22638f00430a055",
          "body": "… (srd006-executor) (GH-456)\n\nCloses #464\n\n- Remove examples/chatbot-mesh/provisioner/ (main.go, server.go, mesh.go, tests,\n  go.mod; ~691 LOC) — the executor declarative agent (srd006) is the deployment\n  API now, so no imperative Go remains on the deployment plane.\n- Delete magefiles/integration_p\n[…]\n main/server/mesh removed)\n  Lines of code (Go, tests):      -~260 (provisioner + integration_provisioning removed)\n  Words (documentation):          ~unchanged\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Delete the standard-library Go provisioner module and its integration…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T03:02:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9fed2265d1c0f82c47a552fb303b5ae28fe2b1fd",
          "body": "… (srd006-executor) (GH-456)\n\nCloses #463\n\n- helm/templates/executor.yaml: the executor agent's ServiceAccount, Role\n  (helm-upgrade + read RBAC, from the provisioner), RoleBinding, Deployment\n  (runtime+helm+kubectl image, mounted executor profile, work dir), Service\n  (apply :18090 = the provision\n[…]\nStats:\n  Lines of code (Go, production): unchanged (+0)\n  Lines of code (Go, tests):      unchanged (+0)\n  Words (documentation):          +~90 (chart comments)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Add the executor Deployment, image, and network boundary to the chart…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T02:57:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5e3daf11782e437d7f6a3ea2e996983a591e5470",
          "body": "Closes #458\nCloses #461\n\n- agents/executor: profile, persistent lifecycle machine (launch apply/control/\n  monitor servers -> await -> exit, mirroring the creator), tools selection,\n  lifecycle declarations, rest servers, the apply request-machine\n  (write_overrides -> helm_dry_run -> helm_upgrade -\n[…]\nStats:\n  Lines of code (Go, production): unchanged (+0)\n  Lines of code (Go, tests):      unchanged (+0)\n  Words (documentation):          +~120 (profile prose)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Build the executor declarative agent (srd006-executor) (GH-456)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T02:51:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "18b4166c84ab319079c865b94a40ffe64c54c7ee",
          "body": "Refines the #460 declarations for the request-machine build (#458/#461):\n- Fully static arg lists (release/chart/namespace/deployment baked as chart\n  defaults) — agent-core exec has no env and maps params only from the previous\n  result by name, and properties is a Go map so multiple positionals wo\n[…]\ns:\n  Lines of code (Go, production): unchanged (+0)\n  Lines of code (Go, tests):      unchanged (+0)\n  Words (documentation):          +~60 (rationale comments)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Finalize executor exec tools to static args (srd006-executor) (GH-456)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T02:41:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dad3772c5e89c2a072f7a30c4f0898e4707cb023",
          "body": "…or) (GH-456)\n\nCloses #460\n\n- agents/executor/exec-declarations.yaml: four type: exec tool declarations in\n  the agent-core rich format (build.yaml shape) — helm_dry_run, helm_upgrade,\n  helm_rollback, kubectl_rollout_status — the CLIs the executor's container\n  carries, bound as agent-core exec too\n[…]\ns of code (Go, production): unchanged (+0)\n  Lines of code (Go, tests):      unchanged (+0)\n  Words (documentation):          +~40 (exec tool declaration prose)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Declare helm/kubectl exec tools for the executor agent (srd006-execut…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T02:24:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "47e2e86c75b3714926dc0e808ea7971f5f715db1",
          "body": "…(srd006-executor) (GH-456)\n\nCloses #459\n\n- Tighten values.schema.json to full MeshView.Validate parity: DNS-1035\n  letter-first rag name pattern, ollama.models.chat minItems 1, and a\n  provisioner.params block (nResults >= 1, chunkCap >= 0).\n- Add if/then conditionals: the in-cluster tier (ollama.e\n[…]\ne (Go, production): unchanged (+0)\n  Lines of code (Go, tests):      unchanged (+0)\n  Words (documentation):          +~150 (schema $comments + fixtures README)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Encode MeshView.Validate constraints in the chart values.schema.json …",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T02:18:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "596e460689f7f7f23dbc0cef339d0e368ecef7a1",
          "body": "Closes #457\nCloses #462\n\n- srd006-executor: the RA Executor role deployment-plane agent that replaces\n  the Go provisioner; validate-then-apply-then-verify with rollback, binding\n  helm/kubectl exec tools; authority boundary cross-references agent-core srd028 V30.\n- rel06.0-uc001-declarative-executo\n[…]\n production): unchanged (+0)\n  Lines of code (Go, tests):      unchanged (+0)\n  Words (documentation):          +~2600 (3 new spec files + 4 registration edits)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Add srd006-executor and rel06.0 executor spec set (GH-456)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T02:12:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "62b81d9a8402c0c3288afa8182cb525b21d48daf",
          "body": "…t into worktree\n\nSub-issues: #457, #458, #459, #460, #461, #462, #463, #464\n\nSkill: gh-issue-pop\nCalled-by: user",
          "is_bot": false,
          "headline": "Pop GH-456: Transition the provisioner to a declarative executor agen…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T02:01:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b72676fccb0e0d97db95def59e9cfbf53f471d21",
          "body": "GH-454: Add how-it-works.md walkthrough for the chatbot-mesh example",
          "is_bot": false,
          "headline": "Merge pull request #455 from Nokia-Bell-Labs/gh-454-how-it-works",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T01:12:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "771e282c3bc876a7088750cf95a2c92511883876",
          "body": "Prose companion to ARCHITECTURE.yaml: narrates the two-plane design with\nfour GitHub-rendered Mermaid figures (system overview, chat turn,\ncontrol-plane provisioning, deployment topology). Links the SRDs for\nnormative detail rather than duplicating them. README points to it.\n\nCloses #454\n\nSkill: do-work\nCalled-by: gh-issue-pop\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add how-it-works.md walkthrough for the chatbot-mesh example (GH-454)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T01:07:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2412c01b65536fa594c6d869e1965d839b6c1218",
          "body": "Skill: gh-issue-pop\nCalled-by: user",
          "is_bot": false,
          "headline": "Pop GH-454: how-it-works.md walkthrough into worktree",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T01:04:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83ff7ffa820dcac31ae0ab0ac3be2a4080137adf",
          "body": "GH-448: Object-format touchpoint parser + example corpus tightening",
          "is_bot": false,
          "headline": "Merge pull request #453 from Nokia-Bell-Labs/gh-448-touchpoint-parser",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T00:42:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a89e1cf2a548971a6ad06b65058e001b0c5776aa",
          "body": "Closes #452\n\ncheckUncoveredACs warns for each acceptance-criterion node with no incoming\ncovers edge; test cases build covers edges through 'traces: [srdNNN ACk]'. The\nexample test suites traced a representative subset, leaving 13 ACs uncovered.\nEach uncovered AC is attached to the existing test cas\n[…]\nsuccess-criterion (#451), and uncovered-ac (this issue) all\ncleared.\n\nStats:\n  docs only: +13 AC trace lines across 3 test suites, plus the SPECIFICATIONS note.\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Cover every example acceptance criterion with a test case (GH-448)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T00:41:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "48c0bc4bca2d4716ea17924a101f8c8ed460a6d4",
          "body": "Closes #451\n\ncheckUntracedSuccessCriteria requires each use-case success criterion to carry a\ntrace of the form 'srdNNN ACk'; the example criteria traced only to requirement\ngroups (srdNNN Rk.m). For each criterion we add the acceptance criterion whose\nR-group it already cites (ACk covers Rk; srd005\n[…]\n (only uncovered-ac remains, cleared by #452); no new\nbroken-citation or bare-touchpoint findings.\n\nStats:\n  docs only: +30 trace lines across 7 use-case specs.\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Trace example success criteria to acceptance criteria (GH-448)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-21T00:35:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dbdb93540ed04e4699a40049ccb1a1957baa9662",
          "body": "Closes #450\n\nUse-case touchpoints authored as objects ({id, target, reason}) were flattened\nby parseTaggedList into \"target: srdNNN AC1\" strings that parseTouchpoint could\nnot read, so no touches edge was built and every SRD was falsely orphaned.\n\n- parse.go: the touchpoints field now uses parseTouc\n[…]\n orphaned-srd\n(uncovered-ac and untraced-success-criterion remain, addressed by #451/#452).\n\nStats:\n  agent-core/pkg/spec: ~62 production, ~71 test lines added.\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Parse object-format touchpoints and recognize AC citations (GH-448)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T23:37:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b8e31413f5a451992c7b3ee2e66fdb84740ab841",
          "body": "…ng into worktree\n\nSub-issues: #450, #451, #452\n\nSkill: gh-issue-pop\nCalled-by: user",
          "is_bot": false,
          "headline": "Pop GH-448: object-format touchpoint parser + example corpus tighteni…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T23:29:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4530464a71b35115aca21d13b44539b658dec4bd",
          "body": "…position\n\nGH-447: Declarative decomposition — compound tools, executables-as-agents, docs validation",
          "is_bot": false,
          "headline": "Merge pull request #449 from Nokia-Bell-Labs/gh-447-declarative-decom…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T22:51:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7b2dc9a6443d1020a8028b1177b8c7975580bb4",
          "body": "Closes #428\n\nReplace agent-profiles/demo/call_lifecycle_exit/main.go with a declarative\nagent under agent-profiles/demo/call-lifecycle-exit/. A one-state machine binds\nthe rest tool: the post_exit word POSTs the fixed {\"reason\":\"demo\npresentation\"} body to /api/lifecycle/exit and reaches a terminal \n[…]\nembeds no agent behavior).\n\nStats:\n  agent-profiles/demo: +168 YAML (5 profile files), +315 README words,\n  -62 Go (call_lifecycle_exit/main.go), slide updated.\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Convert the lifecycle-exit demo binary to a declarative agent (GH-447)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T22:49:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "08b1692302c93447cfcb7bf8bf40eede557d008f",
          "body": "…s support (GH-447)\n\nCloses #426\n\n- find.go no longer imports os/exec or spawns ripgrep itself: the invocation runs\n  through internal/support/subprocess.Run (process-group managed, cwd + combined\n  output), so the tool holds only its search contract and the transport lives in one\n  place (tool-cont\n[…]\nproduction): find.go transport routed through shared support\n  Lines of code (Go, tests):      +131 (find_test.go, new)\n  Words (documentation):          0 (+0)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Route the find tool's ripgrep subprocess through the shared subproces…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T22:32:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4818e157d6fa6a0d211496c35e4a92e0a9c0321f",
          "body": "…e) (GH-447)\n\nCloses #427\n\nDecision: sanction, not decompose. internal/model/llm/ is a deliberate\npluggable-provider adapter layer, and the http.Client construction in\ninternal/tools/llm/invoke.go (line 375) that wires it is the sanctioned home for LLM\ntransport. LLM inference is a distinct transpor\n[…]\ned.\n\nStats:\n  Lines of code (Go, production): 0 (+0)\n  Lines of code (Go, tests):      0 (+0)\n  Words (documentation):          the LLM-transport exemption rule\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Record the LLM-transport exemption (internal/model/llm sanctioned hom…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T22:10:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2ae58e1166b1fe538bee62b685e517a4f7fcd5fc",
          "body": "…nts) (GH-447)\n\nCloses #429\n\nDecision: exempt, not convert. The examples/chatbot-mesh/provisioner is a\ndeployment-plane service (helm upgrade + kubectl behind an authenticated deployment\nAPI), not a model-driven agent. Its declarative front is the creator agent (srd005),\nwhich drives that API; the p\n[…]\ned.\n\nStats:\n  Lines of code (Go, production): 0 (+0)\n  Lines of code (Go, tests):      0 (+0)\n  Words (documentation):          the tool_language exemption rule\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Record the provisioner deployment-plane exemption (executables-as-age…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T19:11:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5dcbb1ac738f7695c97929549f4508848c87b809",
          "body": "…arse gap (GH-447)\n\nCloses #446\n\n- Validated examples/chatbot-mesh/docs with mage audit (the jurist over the corpus):\n  loads and validates with no errors (5 SRDs, 7 use cases, 6 test suites, 46 tool\n  declarations). Full output recorded on the issue.\n- Triaged the three warning classes (orphaned-sr\n[…]\n:\n  Lines of code (Go, production): 0 (+0)\n  Lines of code (Go, tests):      0 (+0)\n  Words (documentation):          validation note in SPECIFICATIONS overview\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Record jurist validation of the example corpus; file the touchpoint-p…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T18:08:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ddfcdf2ddf90814af93ed73d567327564660d168",
          "body": "Sub-issues: #426, #427, #428, #429, #446\n\nSkill: gh-issue-pop\nCalled-by: user",
          "is_bot": false,
          "headline": "Pop GH-447: declarative decomposition + docs validation into worktree",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T18:00:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1ecad2cdff60c7dc32244757f317e6093bcd2e3",
          "body": "GH-430: Add the control plane to examples/chatbot-mesh",
          "is_bot": false,
          "headline": "Merge pull request #445 from Nokia-Bell-Labs/gh-430-control-plane",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T17:45:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "249f7603a79ff885ffe191e559174ec31d6caf9e",
          "body": "Closes #438\n\n- example ARCHITECTURE.yaml: add the coordinator, creator, and provisioner\n  components and the delegation flow; the overview now spans data + control plane;\n  implementation_status marks the control plane done (rel05.0); related_documents\n  gain srd004/srd005; the ux panel list regains\n[…]\n or out of scope.\n\nStats:\n  Lines of code (Go, production): 0 (+0)\n  Lines of code (Go, tests):      0 (+0)\n  Words (documentation):          +563 (this change)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Fold the control plane into the example and root docs (GH-430)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T17:43:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6bdbb6d6f44d4b7a713bd05cf14967f81b7b352a",
          "body": "…5.0 implemented (GH-430)\n\nCloses #437\n\n- New examples/chatbot-mesh/magefiles/integration_controlplane.go: Integration.ControlPlane\n  proves the control-plane flow end to end without a cluster. It runs the real\n  coordinator and creator agents plus a fake deployment API on the provisioner's\n  addres\n[…]\n +261 (integration_controlplane.go)\n  Lines of code (Go, tests):      +36\n  Words (documentation):          status flips (use case, test suite, road-map, index)\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Realize the control-plane flow as Integration.ControlPlane; mark rel0…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T17:39:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ce1eb3f2b12481ab1b5812031888a94b7a113d0a",
          "body": "…GH-430)\n\nCloses #436\n\n- chatbot rest.yaml (packaged + the _chatbot-rest.tpl co-gen): a declared\n  coordinator client with a delegate_provision operation the provisioning panel\n  uses to delegate a provisioning intent (srd002 R5.1, srd004 R1). Fixed authority,\n  no runtime endpoint. Co-gen is gated \n[…]\ntions).\n\nStats:\n  Lines of code (Go, production): 0 (+0)\n  Lines of code (Go, tests):      0 (+0)\n  Words (documentation):          ~260 lines chart + REST YAML\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Wire chatbot->coordinator->creator delegation and the Helm topology (…",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T17:31:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "45506ef13518a7f8ef06062b74be22fb431118e7",
          "body": "Closes #435\n\n- New declarative agent examples/chatbot-mesh/agents/creator: a persistent\n  machine_request agent (host machine mirrors the coordinator) exposing an\n  instance-request endpoint (18110) plus control (18111) and monitor (18112)\n  servers with loopback-configurable binds\n- request-machine\n[…]\ndinator).\n\nStats:\n  Lines of code (Go, production): 0 (+0)\n  Lines of code (Go, tests):      0 (+0)\n  Words (documentation):          ~600 lines of profile YAML\n\nSkill: do-work\nCalled-by: gh-issue-pop",
          "is_bot": false,
          "headline": "Author the creator agent profile (srd005) (GH-430)",
          "author_name": "Petar Djukic",
          "author_login": "petar-djukic",
          "committed_at": "2026-07-20T17:16:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 9,
      "commits_last_year": 950,
      "latest_release_at": "2026-07-21T10:25:26Z",
      "latest_release_tag": "v0.20260721.0",
      "releases_from_tags": true,
      "days_since_last_push": 0,
      "active_weeks_last_year": 6,
      "days_since_latest_release": 0,
      "mean_days_between_releases": 2.2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": false,
      "has_contributing": false,
      "health_percentage": 37,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/Nokia-Bell-Labs/declarative-agents",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/Nokia-Bell-Labs/declarative-agents",
          "is_deprecated": false,
          "latest_version": "v0.20260721.0",
          "repository_url": "https://github.com/Nokia-Bell-Labs/declarative-agents",
          "versions_count": 9,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T10:25:26Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "github.com/Nokia-Bell-Labs/declarative-agents/agent-core",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/Nokia-Bell-Labs/declarative-agents/agent-core",
          "is_deprecated": false,
          "latest_version": "v0.20260721.0",
          "repository_url": "https://github.com/Nokia-Bell-Labs/declarative-agents",
          "versions_count": 9,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T10:25:26Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "github.com/Nokia-Bell-Labs/declarative-agents/agent-profiles",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/Nokia-Bell-Labs/declarative-agents/agent-profiles",
          "is_deprecated": false,
          "latest_version": "v0.20260721.0",
          "repository_url": "https://github.com/Nokia-Bell-Labs/declarative-agents",
          "versions_count": 9,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T10:25:26Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 3,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [
          {
            "date": "2026-07-10",
            "count": 1
          },
          {
            "date": "2026-07-11",
            "count": 1
          },
          {
            "date": "2026-07-22",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 3,
        "total_stars": 3
      },
      "open_issues_and_prs": 126
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples",
        "samples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [
        "agent-core/internal/tools/rest/testdata/docs-runtime/openapi.yaml",
        "agent-profiles/agents/knowledge-manager/documentation-curator/openapi.yaml"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [
        "agent-core/internal/evaluation/bench/ui/tsconfig.json",
        "agent-core/internal/knowledge/documentation/ui/tsconfig.json",
        "agent-profiles/agents/knowledge-manager/documentation-curator/ui/monitor/tsconfig.json",
        "examples/chatbot-mesh/ux/app/tsconfig.json"
      ],
      "toolchain_manifests": [
        "agent-core/go.mod",
        "agent-core/magefiles/go.mod",
        "agent-profiles/go.mod",
        "agent-profiles/testdata/integration/rel07-bench-evaluator/samples/noop/workspace/go.mod",
        "agent-profiles/testdata/integration/rel07-evaluator-generator/samples/greet/workspace/go.mod",
        "agent-profiles/testdata/integration/rel07-planner-generator/workspace/go.mod",
        "agent-profiles/testdata/integration/uc001-generator-coding/go.mod",
        "agent-profiles/testdata/integration/uc002-evaluator-benchmark/samples/greet/workspace/go.mod",
        "design-patterns/magefiles/go.mod",
        "examples/chatbot-mesh/go.mod",
        "magefiles/go.mod"
      ],
      "largest_source_bytes": 44862,
      "source_files_sampled": 498,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "agent-core/AGENTS.md",
        "agent-core/CLAUDE.md",
        "agent-profiles/AGENTS.md",
        "agent-profiles/CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 2113
    },
    "dependencies": {
      "manifests": [
        "agent-core/go.mod",
        "agent-profiles/go.mod",
        "magefiles/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/dominikbraun/graph",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.23.0"
        },
        {
          "name": "github.com/getkin/kin-openapi",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.140.0"
        },
        {
          "name": "github.com/go-sql-driver/mysql",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.0"
        },
        {
          "name": "github.com/spf13/cobra",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.2"
        },
        {
          "name": "github.com/stretchr/testify",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.11.1"
        },
        {
          "name": "go.opentelemetry.io/otel",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.44.0"
        },
        {
          "name": "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.44.0"
        },
        {
          "name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.44.0"
        },
        {
          "name": "go.opentelemetry.io/otel/exporters/stdout/stdoutmetric",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.44.0"
        },
        {
          "name": "go.opentelemetry.io/otel/exporters/stdout/stdouttrace",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.44.0"
        },
        {
          "name": "go.opentelemetry.io/otel/metric",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.44.0"
        },
        {
          "name": "go.opentelemetry.io/otel/sdk",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.44.0"
        },
        {
          "name": "go.opentelemetry.io/otel/sdk/metric",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.44.0"
        },
        {
          "name": "go.opentelemetry.io/otel/trace",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.44.0"
        },
        {
          "name": "go.opentelemetry.io/proto/otlp",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.0"
        },
        {
          "name": "google.golang.org/grpc",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.81.1"
        },
        {
          "name": "google.golang.org/protobuf",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.36.11"
        },
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "agent-core/go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        },
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "agent-profiles/go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        },
        {
          "name": "github.com/magefile/mage",
          "manifest": "agent-profiles/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.17.2"
        },
        {
          "name": "github.com/magefile/mage",
          "manifest": "magefiles/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.17.2"
        }
      ],
      "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": 145,
        "open_issues": 126,
        "closed_ratio": 0.748,
        "closed_issues": 374,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "petar-djukic",
          "commits": 291,
          "avatar_url": "https://avatars.githubusercontent.com/u/17832868?v=4"
        },
        {
          "type": "User",
          "login": "vargenau",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/378154?v=4"
        }
      ],
      "contributors_sampled": 2,
      "top_contributor_share": 0.997
    },
    "quality_signals": {
      "has_ci": false,
      "has_tests": true,
      "ci_workflows": [],
      "has_docs_dir": false,
      "linter_configs": [
        ".golangci.yml"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum",
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 0,
            "reason": "0 out of 4 merged PRs checked by a CI test -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/4 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "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": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 7,
            "reason": "3 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "58821a5addb7b0d61021d4274f7593d958571a05",
        "ran_at": "2026-07-22T09:37:08Z",
        "aggregate_score": 2.1,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": null,
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-22T03:52:10Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": [
        {
          "number": 228,
          "created_at": "2026-07-17T18:43:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 404,
          "created_at": "2026-07-20T02:39:56Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 408,
          "created_at": "2026-07-20T03:24:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 409,
          "created_at": "2026-07-20T03:25:10Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 410,
          "created_at": "2026-07-20T03:25:11Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 411,
          "created_at": "2026-07-20T03:25:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 412,
          "created_at": "2026-07-20T03:25:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 413,
          "created_at": "2026-07-20T03:25:15Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 414,
          "created_at": "2026-07-20T03:25:16Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 415,
          "created_at": "2026-07-20T03:25:18Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 416,
          "created_at": "2026-07-20T03:25:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 417,
          "created_at": "2026-07-20T03:53:13Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 488,
          "created_at": "2026-07-21T16:19:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 489,
          "created_at": "2026-07-21T16:19:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 502,
          "created_at": "2026-07-21T16:20:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 503,
          "created_at": "2026-07-21T16:20:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 509,
          "created_at": "2026-07-21T16:37:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 512,
          "created_at": "2026-07-21T16:38:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 513,
          "created_at": "2026-07-21T16:38:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 514,
          "created_at": "2026-07-21T16:38:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/Nokia-Bell-Labs/declarative-agents",
    "host": "github.com",
    "name": "declarative-agents",
    "owner": "Nokia-Bell-Labs"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 46,
      "inputs": {
        "security": 21,
        "vitality": 70,
        "community": 26,
        "governance": 60,
        "engineering": 40
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 70,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 58,
            "inputs": {
              "commits_last_year": 950,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 6
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "6/52 weeks with commits",
                "points": 4.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "950 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 950
                    }
                  }
                ],
                "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": 88,
            "inputs": {
              "releases_count": 9,
              "latest_release_tag": "v0.20260721.0",
              "releases_from_tags": true,
              "days_since_latest_release": 0,
              "mean_days_between_releases": 2.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "9 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~2.2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 2.2
                    }
                  }
                ],
                "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": 26,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 5,
            "inputs": {
              "forks": 0,
              "stars": 3,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "below_threshold"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "3 stars",
                "points": 4.9,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "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 (BSD-3-Clause)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "BSD-3-Clause"
                    }
                  }
                ],
                "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": 60,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 15,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 2,
              "top_contributor_share": 0.997
            },
            "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.1,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "2 contributors",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 73,
            "inputs": {
              "merged_prs": 145,
              "open_issues": 126,
              "closed_issues": 374,
              "issue_closed_ratio": 0.748,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "75% of issues closed",
                "points": 35,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 75
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "145/145 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 145,
                      "decided": 145
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/4 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "followers": 111,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "Nokia-Bell-Labs",
              "public_repos": 41,
              "account_age_days": 2185
            },
            "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": "111 followers of Nokia-Bell-Labs",
                "points": 14.7,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 111,
                      "login": "Nokia-Bell-Labs"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "41 public repos, account ~5 yr old",
                "points": 23.8,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 41
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 5
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/Nokia-Bell-Labs/declarative-agents",
                "github.com/Nokia-Bell-Labs/declarative-agents/agent-core",
                "github.com/Nokia-Bell-Labs/declarative-agents/agent-profiles"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 0
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "3 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 3,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 0 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "9 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "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": "at_risk",
        "name": "Engineering Quality",
        "value": 40,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_ci": false,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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.yml",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "0 out of 4 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "at_risk",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "critical",
        "name": "Security",
        "value": 21,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Dangerous-Workflow, Packaging, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "dangerous_workflow",
                    "packaging",
                    "signed_releases",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 21,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 14,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 4,
              "scorecard_aggregate": 2.1
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "0 out of 4 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/4 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "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": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "3 existing vulnerabilities detected",
                "points": 5.2,
                "status": "partial",
                "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": "good",
        "name": "AI Readiness",
        "value": 83,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.99,
              "agent_instruction_files": [
                "agent-core/AGENTS.md",
                "agent-core/CLAUDE.md",
                "agent-profiles/AGENTS.md",
                "agent-profiles/CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 2113
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "agent-core/AGENTS.md, agent-core/CLAUDE.md, agent-profiles/AGENTS.md, agent-profiles/CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "agent-core/AGENTS.md, agent-core/CLAUDE.md, agent-profiles/AGENTS.md, agent-profiles/CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "99 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 99,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum",
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "agent-core/internal/evaluation/bench/ui/tsconfig.json",
                "agent-core/internal/knowledge/documentation/ui/tsconfig.json",
                "agent-profiles/agents/knowledge-manager/documentation-curator/ui/monitor/tsconfig.json",
                "examples/chatbot-mesh/ux/app/tsconfig.json"
              ],
              "agent_commit_share": 0.12,
              "toolchain_manifests": [
                "agent-core/go.mod",
                "agent-core/magefiles/go.mod",
                "agent-profiles/go.mod",
                "agent-profiles/testdata/integration/rel07-bench-evaluator/samples/noop/workspace/go.mod",
                "agent-profiles/testdata/integration/rel07-evaluator-generator/samples/greet/workspace/go.mod",
                "agent-profiles/testdata/integration/rel07-planner-generator/workspace/go.mod",
                "agent-profiles/testdata/integration/uc001-generator-coding/go.mod",
                "agent-profiles/testdata/integration/uc002-evaluator-benchmark/samples/greet/workspace/go.mod",
                "design-patterns/magefiles/go.mod",
                "examples/chatbot-mesh/go.mod",
                "magefiles/go.mod"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "agent-core/go.mod, agent-core/magefiles/go.mod, agent-profiles/go.mod (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "agent-core/go.mod, agent-core/magefiles/go.mod, agent-profiles/go.mod"
                    }
                  }
                ],
                "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.yml",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "agent-core/internal/evaluation/bench/ui/tsconfig.json, agent-core/internal/knowledge/documentation/ui/tsconfig.json, agent-profiles/agents/knowledge-manager/documentation-curator/ui/monitor/tsconfig.json, examples/chatbot-mesh/ux/app/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "agent-core/internal/evaluation/bench/ui/tsconfig.json, agent-core/internal/knowledge/documentation/ui/tsconfig.json, agent-profiles/agents/knowledge-manager/documentation-curator/ui/monitor/tsconfig.json, examples/chatbot-mesh/ux/app/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "12 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 12,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 44862,
              "source_files_sampled": 498,
              "oversized_source_files": 0
            },
            "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": "0/498 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 498,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "good",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "example_dirs": [
                "examples",
                "samples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": [
                "agent-core/internal/tools/rest/testdata/docs-runtime/openapi.yaml",
                "agent-profiles/agents/knowledge-manager/documentation-curator/openapi.yaml"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "agent-core/internal/tools/rest/testdata/docs-runtime/openapi.yaml, agent-profiles/agents/knowledge-manager/documentation-curator/openapi.yaml",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "agent-core/internal/tools/rest/testdata/docs-runtime/openapi.yaml, agent-profiles/agents/knowledge-manager/documentation-curator/openapi.yaml"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples, samples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples, samples"
                    }
                  }
                ],
                "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-22T09:37:24.136478Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/n/Nokia-Bell-Labs/declarative-agents.svg",
  "full_name": "Nokia-Bell-Labs/declarative-agents",
  "license_state": "standard",
  "license_spdx": "BSD-3-Clause"
}

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.26.0 — metodología completa · wiki de métricas.

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