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

AIDD-Projects / harness

Production-grade Harness Engineering Framework for multi-developer AI coding agents — guardrails, state persistence, direction alignment, and self-correction across 6 IDEs. Zero dependencies.

JavaScript · ShellMIT★ 1 estrella⑂ 0 forksdesde abr 2026Ver en GitHub ↗

AIDD-Projects/harness tiene un índice de salud de 55 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Engineering Quality (76/100) y la más baja, AI Readiness (29/100). Se actualizó por última vez hace 63 días. Una sola persona concentra la mayor parte del trabajo reciente.

55
global / 100
Moderado

Índice de salud del software

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

55
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

AIDD-ProjectsOrganización
0 seguidores1 repositorio públicodesde abr 2026

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

Ecosistemas de paquetes

Métricas por categoría

Vitalidad

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

71Bueno · 22% del índice global
Cómo se puntúa
18/36Recencia de push — último push hace 63 días
4.8/36Cadencia de commits — 7/52 semanas con commits
18/18Volumen de commits — 122 commits en el último año
10/10OpenSSF Scorecard: Maintained — 21 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year122
human_commit_share1
days_since_last_push63
active_weeks_last_year7
Cómo se puntúa
27/27Publica versiones — 3 versiones publicadas
36/36Recencia de las versiones — última versión hace 83 días
27/27Cadencia de publicación — una versión cada ~4 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count3
latest_release_tagv0.9.6
releases_from_tagsno
days_since_latest_release83
mean_days_between_releases4
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?

47En riesgo · 18% del índice global
Cómo se puntúa
0/60Estrellas — 1 estrellas
0/25Forks — 0 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks0
stars1
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
18/18Guía CONTRIBUTING
13.5/13.5Código de conducta
0/7.2Plantilla de issues
6.3/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributing
has_issue_templateno
has_code_of_conduct
has_pull_request_template
Cómo se puntúa
47.5/80Descargas mensuales — 3652 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packages@kodevibe/harness
dependents
ecosystemsnpm
total_downloads
monthly_downloads3652
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

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

38En riesgo · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0/22.5Distribución de commits — el principal contribuyente firma el 100% de los commits
1.4/13.5Amplitud de contribuyentes — 1 contribuyentes
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Datos de entrada utilizados
bus_factor1
contributors_sampled1
top_contributor_share1
Cómo se puntúa
15.6/46.8Resolución de issues — 33% de issues cerradas
0/38.3Aceptación de PR — sin PR decididos o sin datos
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs0
open_issues2
closed_issues1
issue_closed_ratio0,333
closed_unmerged_prs0
Excluidos de la puntuación (sin datos o no aplicable): Aceptación de PR. Los pesos restantes se han renormalizado.
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
0/25Alcance del propietario — 0 seguidores de AIDD-Projects
2.7/25Trayectoria — 1 repos públicos, cuenta de ~0 años
Datos de entrada utilizados
followers0
owner_typeOrganization
is_verified
owner_loginAIDD-Projects
public_repos1
account_age_days100
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en npm
35/35Recencia de publicación — última publicación hace 5 días
20/20Historial de versiones — 33 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packages@kodevibe/harness
ecosystemsnpm
any_deprecatedno
min_days_since_publish5

Calidad de Ingeniería

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

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

Documentación

100Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://www.npmjs.com/package/musher-engineering
10/10Descripción del repositorio
10/10Topics — 20 topics
10/10Wiki
Datos de entrada utilizados
topicsai, cursor, harness, harness-engineering, llm, vscode, ai-agent, ai-coding, cli, codex, copilot, developer-tools, multi-developer, windsurf, claude, ai-agents, copilot-instructions, cursor-rules, guardrails, llm-orchestration
has_wiki
homepagehttps://www.npmjs.com/package/musher-engineering
has_readme
has_docs_dir
has_description

Seguridad

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

44En riesgo · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — sin datos
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Licencia — license file detected
7.5/7.5Maintained — 21 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — sin datos
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — no SAST tool detected
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate4,4
Excluidos de la puntuación (sin datos o no aplicable): ci_tests, packaging, signed_releases. Los pesos restantes se han renormalizado.

Preparación para IA

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

29Crítico · 0% del índice global
Cómo se puntúa
0/45Instrucciones para agentes — sin CLAUDE.md / AGENTS.md / reglas de editor
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 91 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,91
agent_instruction_files
agent_instruction_max_bytes
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
0/11Configuración de lint / formato
0/11Verificación estática de tipos
0/10Entorno reproducible
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 100
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
lockfiles
has_dockerfileno
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Cómo se puntúa
0/45Código verificable por tipos — JavaScript sin configuración de verificación de tipos
27.5/55Tamaños de archivo manejables — 2/4 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageJavaScript
largest_source_bytes76.445
source_files_sampled4
oversized_source_files2

Datos clave

1estrellas de GitHub
1contribuidores
122commits en los últimos 12 meses
63días desde el último push
3versiones publicadas
1factor bus
2issues abiertas
npmecosistemas de paquetes

Advertencias de recopilación de datos

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository
  • deps.dev does not index npm:@kodevibe/harness@0.11.28; advisories assessed against the repository dependency graph instead

Más detalle

OpenSSF Scorecard 4.4 / 10
4.4agregado

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 14:32 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
n/dCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained21 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
n/dPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTno SAST tool detected
10Security-Policysecurity policy file detected
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
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": [
        "ai",
        "cursor",
        "harness",
        "harness-engineering",
        "llm",
        "vscode",
        "ai-agent",
        "ai-coding",
        "cli",
        "codex",
        "copilot",
        "developer-tools",
        "multi-developer",
        "windsurf",
        "claude",
        "ai-agents",
        "copilot-instructions",
        "cursor-rules",
        "guardrails",
        "llm-orchestration"
      ],
      "is_fork": false,
      "size_kb": 1610,
      "has_wiki": true,
      "homepage": "https://www.npmjs.com/package/musher-engineering",
      "languages": {
        "Shell": 26091,
        "JavaScript": 142586
      },
      "pushed_at": "2026-05-20T06:55:43Z",
      "created_at": "2026-04-13T01:40:48Z",
      "owner_type": "Organization",
      "updated_at": "2026-05-20T06:55:47Z",
      "description": "Production-grade Harness Engineering Framework for multi-developer AI coding agents — guardrails, state persistence, direction alignment, and self-correction across 6 IDEs. Zero dependencies.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "JavaScript",
      "significant_languages": [
        "JavaScript",
        "Shell"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "Organization",
      "login": "AIDD-Projects",
      "company": null,
      "location": null,
      "followers": 0,
      "avatar_url": "https://avatars.githubusercontent.com/u/275578807?v=4",
      "created_at": "2026-04-13T01:40:20Z",
      "is_verified": null,
      "public_repos": 1,
      "account_age_days": 100
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.9.6",
          "kind": "patch",
          "published_at": "2026-04-30T01:48:33Z"
        },
        {
          "tag": "v0.9.5",
          "kind": "patch",
          "published_at": "2026-04-30T01:00:59Z"
        },
        {
          "tag": "v0.8.3",
          "kind": "patch",
          "published_at": "2026-04-22T02:25:14Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "3fd251fbf3e0abe525b51f9573a5f7651834231c",
          "body": null,
          "is_bot": false,
          "headline": "chore: release v0.11.1 and remove source self-bootstrap",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-05-20T06:55:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5908bbae7afe4c55a88610a93c143547b7963793",
          "body": null,
          "is_bot": false,
          "headline": "v0.11.0: harden proof-first release gates",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-05-12T02:38:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e174dcb7d529a7e9a1177b060880ba253bd492ab",
          "body": null,
          "is_bot": false,
          "headline": "v0.11.0: enforce proof-first common mode",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-05-11T08:25:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2de9637cb77364c4d885a133ae0cbd5339f964c3",
          "body": null,
          "is_bot": false,
          "headline": "v0.10.0: add confidence loop navigator",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-05-04T04:27:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0902207ce08e12392de28d8cb3a4d59a592fc24a",
          "body": null,
          "is_bot": false,
          "headline": "S1-3: Add v0.9.7 drift guard and proof gate",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-05-04T00:25:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "698915e505fee2661cb693cce689ca4341b140b5",
          "body": "- Add init overwrite backups: existing IDE files are copied to .harness/init-backups/<timestamp>/... before overwrite.\n- Clean up shipped pm naming by replacing legacy Planner labels in user-facing files.\n- Replace legacy LICENSE copyright branding with kode:harness contributors.\n- QA: 175/175 tests PASS; qa-check.sh PASS; npm pack --dry-run PASS.",
          "is_bot": false,
          "headline": "release(v0.9.6): add init overwrite backups and branding cleanup",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-30T01:43:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61c109250098f84914e19a85103aad7d634e7a05",
          "body": "Patch release focused on real defects, not slim-for-slim's-sake.\n\nFixed (real consistency bugs):\n- harness/agents/reviewer.md: removed stale 8-law Iron Laws copy that was\n  missing #9 (Common First) and #10 (Self-Verify); replaced with single\n  reference to harness/core-rules.md § Iron Laws (canonic\n[…]\n PASS\n  - §10 IDE 어댑터 경로 회귀 4/4 PASS\n\nWord counts (before → after):\n  reviewer.md 2333 → 2270 (-63)\n  setup.md    2389 → 2264 (-125)\n  pm.md       2704 → 2488 (-216)\n  total       35010 → 34518 tokens",
          "is_bot": false,
          "headline": "release(v0.9.5): consistency fixes + lightness budget recalibration",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-29T07:32:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cb59ea875b9579811aacce903dac44cd9cb89e13",
          "body": "…ates\n\nMusher → kode:harness (residual references in self-applied files):\n- .github/copilot-instructions.md: title + intro\n- .github/skills/setup/SKILL.md: 'Musher' → 'kode:harness', 'musher init' → 'harness init'\n- .github/skills/wrap-up/SKILL.md: 'Musher's memory' → 'kode:harness's memory'\n\n(Kept \n[…]\noved self-bootstrap residue at repo root:\n- project-state.md, project-brief.md, dependency-map.md,\n  features.md, failure-patterns.md (already gitignored)\n\nTests: 174/174 PASS  |  qa-check.sh §10 PASS",
          "is_bot": false,
          "headline": "chore(v0.9.4): purge Musher remnants + add IDE adapter verification g…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-29T06:17:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "415ce7a49e7766275c49c805fd70cae29a3d54a8",
          "body": "k-harness develops the framework. Projects elsewhere consume it.\nRemove self-applied state byproducts and stale README paths.\n\n- Delete docs/agent-memory/ (self-installed agent memory)\n- Gitignore docs/{project-state,project-brief,features,dependency-map,failure-patterns}.md\n- Gitignore docs/agent-m\n[…]\n - Cursor: .cursor/rules/<agent>.mdc + cross-tool .agents/skills/\n  - Codex: .codex/agents/*.toml\n  - Antigravity: AGENTS.md + .agents/rules/<agent>.md (no .gemini/, no GEMINI.md)\n\nTests: 174/174 PASS",
          "is_bot": false,
          "headline": "chore: stop self-bootstrapping the framework on itself",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-29T05:58:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ff029c4b0d7b467062f3bff1f54b1d30937ca231",
          "body": "Verified each IDE generator against fetched official documentation:\n\n- VS Code (.github/skills/, .github/agents/*.agent.md) — official ✓\n- Claude Code (.claude/skills/, .claude/agents/, .claude/rules/) — official ✓\n- Cursor (.cursor/rules/*.mdc + .agents/skills/) — replaced unofficial\n  .cursor/skil\n[…]\noved project-root\n  GEMINI.md (global-only per spec); kept AGENTS.md for cross-tool compat.\n\nDoctor and detectExistingInstall markers updated to match new layout.\nTests updated; all 172 tests passing.",
          "is_bot": false,
          "headline": "fix(ide): align all 6 IDE adapters with official docs (v0.9.4)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-29T05:46:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "74b1f2a24489fd39aa9b104b82418ecade93b435",
          "body": "- harness/core-rules.md: # Musher → # kode:harness\n- harness/project-brief.md: musher init → @kodevibe/harness init\n- harness/skills/setup.md: Musher/musher init → kode:harness/@kodevibe/harness init (4 spots)\n- harness/skills/wrap-up.md: Musher's → kode:harness's\n\nExisting users can run 'npx @kodevibe/harness@latest init --overwrite'\nto refresh their templates with the corrected branding.\n\nBump: 0.9.2 → 0.9.3",
          "is_bot": false,
          "headline": "fix(templates): replace legacy Musher references with kode:harness",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-29T04:42:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "002ca017ae191dd86971f6a25373fc0ed794165f",
          "body": null,
          "is_bot": false,
          "headline": "docs: sync version references to v0.9.2 in README/CHANGELOG",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-28T08:18:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16d205219df434e50970fb66481722c8c5e04a55",
          "body": "- state-check skill: deterministic state file consistency verification\n  - Required files exist with non-placeholder content\n  - features.md ↔ project-state.md Story consistency\n  - dependency-map.md vs src/ directory drift detection (±20%)\n  - Agent-memory legacy name detection (planner→pm, sprint-\n[…]\n\n  - Phase 1 Step 6 detects planner.md/sprint-manager.md/navigator.md/builder.md\n  - Offers rename to v0.9 names with conflict handling\n\nTests: 168/168 (was 162) — added 5 state-check generation tests",
          "is_bot": false,
          "headline": "feat(v0.9.2): state-check skill + Default-Action Policy + Iron Law #10",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-28T08:05:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ce39aa005c4138f63b3a48db4fc61856dfc972bd",
          "body": "…ny CI standards\n\n- reviewer Step 2.5 (crew only): surface CI guide URLs when build files change\n- release skill Step 3.5: add CI standards check to deployment checklist\n- project-brief.md: CI Artifact Index template (crew only)\n- setup skill: prompt user to fill CI index in 🟣 pipeline\n- core-rules.\n[…]\nment CI reference layer in 🟣 pipeline section\n- All logic wrapped in CREW_MODE markers — non-crew installs are unaffected\n- Tests: verify CI Artifact Index is stripped without --crew, kept with --crew",
          "is_bot": false,
          "headline": "feat(v0.9.2): CI Artifact Index — crew-mode reference layer for compa…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-28T08:01:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ff92801d04bc3e8241363e6d40fc58ce3e31687d",
          "body": "Investigated official format requirements for each non-VS Code IDE\nand fixed the generators so files actually get loaded by the IDEs.\n\nPer-IDE fixes\n- Claude Code: add canonical 'CLAUDE.md' at project root (Claude Code's\n  primary auto-loaded memory file). '.claude/rules/core.md' is kept for\n  the I\n[…]\n.\n\nVerified\n- npm test: 162/162 passing (was 149).\n- Smoke test in /tmp for all 6 IDEs: vscode 25, claude 26, cursor 26,\n  codex 25, windsurf 25, antigravity 26 files; doctor detects each\n  correctly.",
          "is_bot": false,
          "headline": "fix: multi-IDE installation support — Cursor, Claude, Codex, Antigravity",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-28T07:59:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d4a6f4260079ff0578ad42e1aae1e85bbb81b284",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to v0.9.1",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-28T02:05:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "27e5220f760a936e3bc024712c4948ef499730c2",
          "body": "- pm Step 0.7: Feature Roadmap Draft & Correct 추가\n  - Goals + scan 데이터 기반 Phase별 Roadmap 초안 자동 생성\n  - 사용자가 교정 (인터뷰 아님)\n  - project-brief.md에 Feature Roadmap 섹션으로 기록\n\n- Sprint Completion Checkpoint 추가\n  - Sprint 완료 시 Phase별 진척 현황 표시\n  - Selection Forcing: Yes/No 대신 구체적 기능 선택 강제\n  - '마무리' 명시적 선택지 포함\n\n- Chaining Map 업데이트\n  - reviewer (pass, sprint all done) → pm checkpoint → lead or wrap-up",
          "is_bot": false,
          "headline": "feat: pm Roadmap Planning + Progress Checkpoint — no-crew 무한 루프 방지",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-28T01:57:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5f9fff117a462134e59889761a29481c0aaa4e7",
          "body": null,
          "is_bot": false,
          "headline": "docs: remove demo GIF placeholders",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-28T00:15:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a91d1d1be797776e703894bdc5c06a61a8f260e",
          "body": "…rot framing, why-not differentiation",
          "is_bot": false,
          "headline": "docs: restructure README for OSS visibility — 5-second rule, context …",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-28T00:13:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a0d4e32cadf3f3a971007e7d72f15c21334c923",
          "body": "Skills renamed:\n- bootstrap → setup\n- feature-breakdown → breakdown\n- code-review-pr → pr-review\n- investigate → debug\n- impact-analysis → check-impact\n- test-integrity → sync-tests\n- security-checklist → secure\n- deployment → release\n- learn → wrap-up\n\nAgents renamed:\n- planner → pm\n- sprint-manager → lead\n\nUnchanged: architect, reviewer, pivot\n\nAll 6 IDE generators, tests, docs, and QA scripts updated.\n149 tests pass, 0 fail.",
          "is_bot": false,
          "headline": "feat: v0.9.0 naming redesign — clearer skill/agent names",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-27T10:32:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b5b587d7d3b8d277cf3b4de097c1a32d446d8838",
          "body": "- New module change type for external process/service dependencies\n- Guides LLM to define mock boundary interfaces before implementation\n- Version bump 0.8.3 → 0.8.4 with README/CHANGELOG sync",
          "is_bot": false,
          "headline": "feat: add EXTERNAL_DEP classification to feature-breakdown (v0.8.4)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-26T11:20:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf4708b1804b959961b7e38a80812acf51909ada",
          "body": "- Rename npm package to @kodevibe/harness (scoped under kodevibe org)\n- Update all CLI output text: Musher → kode:harness\n- Add hasFrameworkMarker() for multi-pattern backward-compat detection\n- Add hasIdeLayout() for directory-structure-based IDE detection\n- Update README.md, README.ko.md, CONTRIBUTING.md, SECURITY.md\n- Update qa-check.sh §8 to strip CREW_MODE blocks before keyword scan\n- Update tests to reflect new branding\n- Published as @kodevibe/harness@0.8.3 on npm",
          "is_bot": false,
          "headline": "chore: rebrand musher-engineering → @kodevibe/harness",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-23T00:05:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69723027d052887be0867f9aeea9d27c47cb880a",
          "body": "- Replace kode:crew with generic terms across all files (README, harness templates, generated files)\n- Hide --crew flag from --help output (functionality preserved)\n- Add scripts/qa-check.sh: automated QA validation (12 categories, macOS/Linux)\n- Add Crew Integration Architecture section to copilot-\n[…]\ndd §7 Crew Integration compatibility checklist to release-checklist.md\n- Restructure release-checklist.md (judgment-only items, automated → qa-check.sh)\n\nTests: 149/149 passed | qa-check.sh: all clear",
          "is_bot": false,
          "headline": "chore: sanitize internal service keywords, add qa-check.sh",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-22T04:28:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5549cbcd63182eda7167eaeb22723c7c3957087b",
          "body": "…as no package-lock.json)",
          "is_bot": false,
          "headline": "fix(ci): use npm install instead of npm ci (zero-dependency project h…",
          "author_name": "HADES",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-22T02:30:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9fc2fef70d39632ea30d1f72cca8844bb897d115",
          "body": "- README.md: v0.9.2 → v0.8.3, remove IDE Expansion roadmap phase\n- README.ko.md: v0.9.2 → v0.8.3, sync with English README\n- CHANGELOG.md: remove phantom versions (0.8.4~0.9.2), correct 0.8.3 content",
          "is_bot": false,
          "headline": "fix: correct version to v0.8.3 (was incorrectly set to v0.9.2)",
          "author_name": "HADES",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-22T02:27:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6449ec3e9aab3b1bf1bb3fc8484bc95a9cf377d0",
          "body": "- Version bump v0.8.0 → v0.9.2 in header and Roadmap\n- Add GitHub Actions CI badge\n- Add IDE Expansion phase (v0.9.x) to Roadmap table\n- Update Navigation phase to Done, set Validation target to v1.0",
          "is_bot": false,
          "headline": "docs: update README to v0.9.2, add CI badge, update Roadmap",
          "author_name": "HADES",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-22T02:03:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "158288e1490651ee417a0a9252d047b05ae05430",
          "body": "- GitHub Actions CI workflow (Node 18/20/22)\n- Pull Request template with checklist\n- Contributor Covenant Code of Conduct v2.1\n- Security policy with vulnerability reporting guide\n- Changelog covering v0.5.0 through v0.9.2",
          "is_bot": false,
          "headline": "chore: add community files (CI, PR template, CoC, Security, Changelog)",
          "author_name": "HADES",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-22T02:02:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15659ad089b0632285eaf29db347182eebcbc2da",
          "body": "- README.md, README.ko.md: update '42-line/42줄' → '136-line/136줄' (4 occurrences)\n- harness/dependency-map.md: add TEAM_MODE_START/END block for owner-aware dependencies\n- Also fixed in gitignored docs: framework-flow.md, skill-spec.md, file-structure.md",
          "is_bot": false,
          "headline": "docs: fix dispatcher line count 42→136, add TEAM_MODE to dependency-map",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-16T01:25:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d521f71e51bf033fc3e979d246eb5536bef6e9c",
          "body": "- .gitignore: add docs/guide.md, docs/experiment/\n- git rm --cached: 3 files with ktspace.atlassian.net URLs\n- Local files preserved, only removed from git tracking",
          "is_bot": false,
          "headline": "security: remove internal Confluence URLs from OSS tracking",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-16T00:35:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9778d71a2ce7dea4fee36ca4608ed6fb99b4835",
          "body": null,
          "is_bot": false,
          "headline": "0.8.3",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-15T08:39:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5a4c089c3c520f864175fa4a222d84654cb1880",
          "body": "… Agent Chaining 용어 통일\n\n- S1: 구조화된 출력 포맷 (state file 변경 시 diff-only)\n- S2: 중복 컨텍스트 제거 (agent/skill 간 반복 지시 통합)\n- S3: 조건부 로딩 (필요 시에만 파일 읽기)\n- S4: Completion 체크리스트 간소화\n- 🔴#1: reviewer Step 8 FR Coverage validation (blocker)\n- 🔴#2: learn Step 2.5 MANDATORY + Completion Gate\n- 🔴#3: sprint-manager/core-rules Agent Chaining 새 채팅 통일\n- G1-G5: cross-agent 용어 일관성, QA 스크립트 동기화, Severity 분류",
          "is_bot": false,
          "headline": "fix: Token Efficiency S1-S4, FR Coverage 교차검증, learn Completion Gate,…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-15T08:39:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9249b4225bb853c5ca5056725208b6ec9001bab",
          "body": "- S1-4 [FR-003] PDF 생성 및 저장 결과 추가 (22035e7, 36파일, 19 tests)\n- 중간점검 결과 (Iron Law 7/8, 8건 이슈, 등급 B+)\n- Learn 1차/2차 비교 분석 (2차에서 Step 2.5/3 실행 확인)\n- 실험 결론 + 실험 #1 → #2 비교 종합\n- dev 브랜치 전략 기재 (main 원본 유지 / dev에서 작업)\n- 하니스 개선 항목 8건 (reviewer 교차검증, learn MANDATORY, agent-to-agent 프롬프트)\n- Confluence 업데이트 필요 (토큰 만료 — 수동 재인증 후 push)",
          "is_bot": false,
          "headline": "docs: 실험 #2 최종 결과 — S1-4 완료, dev 브랜치 전략, B+ 등급, v0.8.3 개선 8건",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-15T06:41:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1697fae746a59a9703da78aac34c67fee286eb1",
          "body": null,
          "is_bot": false,
          "headline": "docs: add Confluence link to experiment #2 doc (page 717786374)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-15T06:05:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "934d38678860ff9abf435c1ca8f77cca23130480",
          "body": null,
          "is_bot": false,
          "headline": "docs: add crew-pilot experiment #2 (seo-joonho) progress doc",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-15T06:01:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9a7eb000fdf66c3eb9e2ab1a20391f6a51c71f6",
          "body": "- Add CREW_MODE_START/END markers to 8 harness files\n  (core-rules, bootstrap, planner, reviewer, learn,\n   sprint-manager, architect, project-brief)\n- resolveContent() strips crew blocks unless --crew specified\n- All 6 IDE generators + 5 shared writers pass crew param\n- parseArgs: --crew flag, showHelp: --crew documented\n- 19 marker pairs (START=END count verified)\n- Tests: 149/149 pass (7 new CREW_MODE tests added)\n- Keyword leak verification: solo output CLEAN",
          "is_bot": false,
          "headline": "v0.8.2: add --crew flag for conditional crew pipeline content",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-15T02:05:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "34f9337ba42ffd98519cf134ab3f65cc4fc7d688",
          "body": null,
          "is_bot": false,
          "headline": "docs: add Confluence link to guide.md (pageId 709658498)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-15T00:43:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fbb3a3e4e9f04d6c9bbc8aa80864bf9060f3349c",
          "body": "- Added Confluence page reference (pageId: 714575770) to crew-pilot-seongho.md\n- All 8 Confluence pages updated to v0.8.1 (sync complete)",
          "is_bot": false,
          "headline": "docs: add Confluence link to seongho experiment doc",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-15T00:40:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "517260568f4f09c2302239575f62f8b7d51aa1f1",
          "body": "- reviewer: add Step 9 Commit Guidance (Story ID format, push recommendation)\n- learn: add Step 5.7 Git Push Check (unpushed commit detection)\n- sprint-manager: add commit/push reminder on story done\n- core-rules: update pipeline steps to include commit→push flow\n- project-brief: add branch strategy\n[…]\ns\n- experiment doc: restructure with Executive Summary + detailed sections\n- experiment doc: add Phase 4.9 seongho dev branch push record\n- experiment doc: add Insight 8 (git commit/push guidance gap)",
          "is_bot": false,
          "headline": "v0.9.0-prep: add git commit/push guidance + restructure experiment doc",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-15T00:18:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f73ddef223cf588290a275da6115c7e5b6de74db",
          "body": "…nager plan handler\n\n- Fix: → Call: → → Next: (with IDE operation guidance) across all 16 harness/template files\n- Fix: Prompt example: → Prompt: unified across 13 files\n- Fix: Planner MANDATORY Post-Approval State File Write section added\n- Fix: Sprint-manager 'plan approved' handler for planner→sp\n[…]\nll false positive on non-Musher AGENTS.md\n- Fix: Overwrite prompt shows categorized file list and scope guidance\n- Add: Experiment journal (docs/experiment/crew-pilot-seongho.md)\n- Tests: 140/140 pass",
          "is_bot": false,
          "headline": "v0.8.1: fix navigation UX, planner state-write enforcement, sprint-ma…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T08:40:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6a0db8df1fd4e655af4faec29d44c33a43d6aad2",
          "body": "…ew Integration",
          "is_bot": false,
          "headline": "Merge feature/navigation-dispatcher: v0.8.0 Navigation, Pipelines, Cr…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T06:57:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ee4924b86b35af01c0b1c7b8b945eee5d9a85eb",
          "body": "- README.md/ko: v0.8.0 banner, 5 pipelines, Crew Artifact Integration, Navigation Dispatcher\n- guide.md: 5-pipeline table, Crew-Driven scenario, Confirm-First/Wave-Level/Recalculating FAQ, updated flow diagrams\n- package.json: version bump to 0.8.0",
          "is_bot": false,
          "headline": "docs: comprehensive v0.8.0 documentation update",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T06:56:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "747a66bcf17fb16aded327c8a23b83af6a596310",
          "body": "- planner/sprint-manager/reviewer/architect: add 'Invoked By' sections\n- learn/pivot/investigate: add 'Invoked By' sections\n- deployment: add Rollback Procedure (4-step recovery)\n- features.md: add Write Precedence (planner→sprint-manager→reviewer→learn)\n\nCross-Reference criterion: 7 missing 'Invoke\n[…]\ns now present\nProduction Readiness: rollback procedure addresses deployment failure recovery\nData Consistency: features.md multi-writer conflict resolution defined\n\n9 files changed, 140/140 tests pass",
          "is_bot": false,
          "headline": "quality: resolve final 2.5-point deductions (97.5→100 target)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T06:20:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "707da6817cea4f2635080eca95e86216d2ef779f",
          "body": "- project-brief: explicit Crew Artifact Detection mechanism description\n- investigate: async race condition concrete debugging example\n- deployment: semantic versioning with concrete examples (v1.2.3→v1.3.0)\n- security-checklist: add JWT token + OAuth2 client secret regex patterns\n- code-review-pr: add 'Invoked By' section for bidirectional reference\n\n5 files changed, 140/140 tests pass",
          "is_bot": false,
          "headline": "quality: resolve remaining 5-point deductions (95→100 target)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T06:14:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6a38bff8300f19a8054f036cdac95b4dd8b2093",
          "body": "- project-state: Quick Summary strict format + write precedence rules\n- architect: Step 0.1 circular dependency check\n- planner: explicit sequencing (feature-breakdown→register→impact-analysis), direction change BLOCK\n- core-rules: Chaining Map planner Step 0 fallback, reviewer fork criteria\n- inves\n[…]\n-analysis: bidirectional 'Invoked By' with architect\n- impact-analysis: Interface Change Log status ownership\n- security-checklist: mandatory regex patterns table\n\n11 files changed, 140/140 tests pass",
          "is_bot": false,
          "headline": "quality: 100-point audit fixes (67→target 90+)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T06:09:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2033943680041bca59d4ad652cca861dc5367e95",
          "body": "…on feedback v2\n\n- All 24 harness files individually scored and fixed (7-criteria audit)\n- 11 cross-component issues resolved (3 critical, 4 high, 5 medium, 3 low)\n- Navigation feedback v1+v2 applied:\n  - Confirm-First gate: planner defers state file writes until user approves plan\n  - Wave-Level Pa\n[…]\nearn: FP double-increment prevention\n- feature-breakdown/impact-analysis: call chain clarified (planner orchestrates both)\n- reviewer: indirect ARB Fail detection added\n\nTests: 140/140 pass, 28 suites",
          "is_bot": false,
          "headline": "quality: per-component audit + cross-component consistency + navigati…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T06:01:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b6718c4a2d673f4be4ceaf64e1e2d4893bed32ff",
          "body": "- project-brief.md: Add Crew Artifact Index and Validation Tracker sections\n- bootstrap.md: Phase 1.5 → Index+Tracker creation (reference, don't summarize)\n- planner.md: FR→Story mapping with [FR-NNN]/[ARB-FAIL] prefixes\n- reviewer.md: Step 5.5 crew artifact compliance check (ARB/NFR/FR)\n- sprint-ma\n[…]\nchitecture direct reading\n- core-rules.md: 🟣 Pipeline description updated\n\nAll changes are conditional — skip when no Crew Artifact Index exists.\nExisting 🟢🔵🔴🟡 pipelines unaffected. 140 tests passing.",
          "is_bot": false,
          "headline": "feat: Crew Artifact Integration — Artifact Index + Validation Tracker",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T04:46:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a0c3f5775bfbdc50559f97b3c45e1a18810ca299",
          "body": "- .github/agents/: regenerated 4 agents (added architect.agent.md)\n  all agents now include 🧭 Navigation blocks\n- .github/skills/: regenerated 10 skills (added bootstrap, learn, pivot,\n  code-review-pr, deployment — were missing 5 of 10)\n  all skills now include 🧭 Navigation blocks\n- templates/agent.template.md: added 🧭 Navigation boilerplate\n- templates/skill.template.md: added 🧭 Navigation boilerplate\n\n16 files changed, +1521/-79 lines",
          "is_bot": false,
          "headline": "sync: regenerate .github/ from latest harness + add 🧭 to templates",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T02:14:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50c4f29a00fdca94fcfce9cb667176398bdcb148",
          "body": "HIGH:\n- test-integrity, security-checklist, impact-analysis: add missing Pipeline field\n- feature-breakdown: Step 2/5 → Step 2/6 (returns to planner)\n- code-review-pr: add example 🧭 block (was table only)\n- deployment: add example 🧭 block (was table only)\n\nMEDIUM:\n- sprint-manager: add example 🧭 blo\n[…]\nrsion check — remove timestamp comparison, use user confirmation\n- reviewer: already has example block (no change needed)\n\nLOW/NITPICK:\n- architect: Pre-step → Pre-pipeline (leads to planner Step 2/6)",
          "is_bot": false,
          "headline": "fix: 🧭 quality double-check — 11 issues across 9 files",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T02:09:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8e99b8770fe145619d76908d2d08abfb4c94ed50",
          "body": "core-rules.md: catch-all 라우팅 규칙 추가 (일반 요청 → sprint-manager)\nreviewer.md: STATE-AUDIT 🧭에 두 가지 유효 경로 명시 (즉시 learn vs 계속 진행)\npivot.md: Step 3 확인 단계에서 거부 시 동작 명시 (no → 취소, 변경 없음)\nbootstrap.md: Phase 1.5 → crew artifact 버전 체크 추가 (기존 sync 대비 업데이트 감지)\n\n4 files changed\nAll 140 tests passing",
          "is_bot": false,
          "headline": "fix: 시뮬레이션 검증 기반 4건 수정",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T02:01:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8bd4b9db325df671d5fed1cd2e26605dccd5565e",
          "body": "Wave 3 — 6개 파일 🧭 추가:\n  architect.md: APPROVE/REVISE/REJECT/Direction 4개 결과별 라우팅\n  code-review-pr.md: APPROVE/REQUEST_CHANGES/Direction 3개 결과별 라우팅\n  deployment.md: READY/NOT_READY 4개 결과별 라우팅\n  test-integrity.md: reviewer 하위 스킬 → caller 복귀 🧭\n  security-checklist.md: reviewer 하위 스킬 → caller 복귀 🧭\n  impa\n[…]\n(5→6단계)\n  planner.md: crew 결과 행 추가 + 스텝 번호 3/6 수정\n  learn.md: 파이프라인별 스텝 표시 (🟢6/6, 🔴4/4)\n  reviewer.md: 스텝 번호 5/6 수정\n  bootstrap.md: 스텝 번호 2/6 수정\n\n11 files changed, +109/-18 lines\nAll 140 tests passing",
          "is_bot": false,
          "headline": "feat: Wave 3 — 전체 🧭 Navigation 완성 + 품질 수정",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T01:57:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a0517dbc4c9e289c44b70f0b6fcb06884141fc91",
          "body": "core-rules.md: 🟣 Crew-Driven Pipeline 추가, User Request Routing에 crew artifact 감지, Chaining Map에 crew 경로\nbootstrap.md: Phase 1.5 Crew Artifact Detection 추가, 🧭 블록 crew-aware 확장\nplanner.md: Crew-Driven Feature input 추가, For New Feature에 Crew Artifact Check 단계\nreviewer.md: 🧭 Navigation — After Review (4\n[…]\nr Investigate (3개 결과별 라우팅)\npivot.md: 🧭 Navigation — After Pivot (crew artifact 경로 포함)\nfeature-breakdown.md: 🧭 Navigation — After Feature Breakdown\n\n8 files changed, +141/-1 lines\nAll 140 tests passing",
          "is_bot": false,
          "headline": "feat: Wave 2 — 🧭 Navigation + 🟣 Crew Pipeline",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T01:44:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "79a1ed6a55f7da3f1285e0e03ed9801b27c6c23a",
          "body": "core-rules.md: Development Pipeline (4 paths), Response Rule (🧭 format), User Request Routing 추가\nsprint-manager.md: 🧭 Navigation 블록 + Next Step Recommendation 포맷 강화\nbootstrap.md: 🧭 Next Step → planner 블록 추가\nplanner.md: 🧭 Navigation — After Planner 섹션 추가\n\n4 files changed, +130/-17 lines\nAll 140 tests passing",
          "is_bot": false,
          "headline": "feat: Wave 1 — Navigation Dispatcher 구현",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-14T01:40:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d57629a5bba89a90bfc633fc21aa4fbfb7483e5c",
          "body": "…0.7.2\n\n- Replace speculative v0.8/v0.9/v1.0 roadmap with validation phase\n- Focus next steps on real-world adoption and user feedback\n- Update version references from v0.7.0 to v0.7.x/v0.7.2",
          "is_bot": false,
          "headline": "docs: update roadmap to validation-first, modernize version refs to v…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-13T02:27:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "289c97262ef1d18d5f36c3e32ac25e7f7980859e",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump to 0.7.2 — migrate repo URL to AIDD-Projects",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-13T02:22:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02fa2c39ea95b390f63287e0d55dc0ac789bb441",
          "body": "- Set author to jungchihoon\n- Replace text language links with shields.io badges (right-aligned)",
          "is_bot": false,
          "headline": "chore: update author, improve README language switcher",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-13T02:21:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "95e2d6d65ea77b83426b72f71f4676257636868d",
          "body": "- Update all GitHub URLs (20 references across 5 files)\n- Update package.json repository URL and author\n- Update git remote oss to AIDD-Projects/harness",
          "is_bot": false,
          "headline": "chore: migrate OSS repo from KTcorp-Opensource-Projects to AIDD-Projects",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-13T01:43:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44af5bfba5710957283ca205aee4da87a2e825e2",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump to 0.7.1 — include overwrite prompt in npm release",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T08:24:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e3c3ecae7e0a1870c8191a93f35b2dcc4b10a5d",
          "body": "- Add detectExistingInstall() to check for IDE/state file markers\n- Prompt 'Overwrite existing files? (y/N)' when files detected\n- Only prompt in interactive TTY (skip in batch/test/CI)\n- Users no longer need to know about --overwrite flag",
          "is_bot": false,
          "headline": "feat: auto-detect existing files and prompt overwrite on init",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T08:22:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a4396cfa4dcfab18159d223e2c1cf86b176dbaa",
          "body": null,
          "is_bot": false,
          "headline": "docs: update README version to 0.7.0 — add Flexibility phase to roadmap",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T08:08:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36c50fe96df93156d787f7ca381e1d2086b06f1f",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.7.0 — prescriptive rules delegation",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T07:58:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea881a4f9ef91c97fad43daa30220adee7b4641d",
          "body": "- Remove 26+ hardcoded workflow rules across 14 files\n- Replace hardcoded 'team lead' → 'designated authority (per project-brief.md)'\n- Replace hardcoded 'origin main' → 'default branch (per project-brief.md)'\n- Replace language-specific defaults in bootstrap → ask user instead\n- Convert absolute ru\n[…]\ness/my-context.md opt-in for personal environment context\n- Expand project-brief.md Key Technical Decisions with workflow examples\n- All references include default fallbacks for empty project-brief.md",
          "is_bot": false,
          "headline": "feat: delegate team conventions to project-brief.md",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T07:33:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "055393a7d730c9173867d3bfff0862b8a575ad3c",
          "body": null,
          "is_bot": false,
          "headline": "refactor: simplify .gitignore — individual files → directory patterns",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T06:28:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e732e8ca1794f96e672496c9f031e58a63028fbd",
          "body": "- Remove 5 docs files containing kode:musher/ktspace references\n- Add to .gitignore: docs/reference.md, docs/architecture/{design-principles,file-structure,framework-flow,skill-spec}.md\n- Files kept locally for internal Confluence sync, excluded from OSS repo",
          "is_bot": false,
          "headline": "chore: remove internal-only Confluence stub files from OSS tracking",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T04:26:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3ebbf4a97e3d27b29d6fe14dfe633a4d0afdce5",
          "body": "…e templates\n\n- Repo URL: musher-engineering → harness (all 16 references updated)\n- README: add 'From Harness to Musher' narrative (EN + KO)\n- README.ko.md: full Korean translation with lightweight design principle\n- CONTRIBUTING.md: bilingual contribution guide (EN + KO)\n- Issue templates: bug-report, feature-request, ide-compatibility\n- package.json: repository URL updated",
          "is_bot": false,
          "headline": "feat: repo rename to harness, add README.ko.md, CONTRIBUTING.md, issu…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T02:21:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c471cdff84bf1760871c45769fe94077fc33767",
          "body": "- Replace generic tagline with team direction alignment message\n- Explicitly contrast with 1-person harness frameworks (BMAD, gstack, GSD)",
          "is_bot": false,
          "headline": "docs: clarify multi-developer positioning in guide.md intro",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T01:49:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1c3eb10aa2436132f77935e0d16ed46888d42d8e",
          "body": null,
          "is_bot": false,
          "headline": "chore: add docs/qa/ to gitignore (local QA checklists)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T01:43:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a877391b7a99bb42915039b62e1086c033233533",
          "body": "- Fix: GENERATORS 'Gemini CLI' → 'Antigravity' (interactive prompt)\n- Fix: README, guide.md, project-brief.md IDE name corrected\n- Docs: 5 architecture/reference docs converted to Confluence navigation links\n- Docs: remove mcphub-pilot-guide.md\n- Tests: 140/140 passing",
          "is_bot": false,
          "headline": "v0.6.5: fix Antigravity IDE name, docs → Confluence link pointers",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T01:39:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef56d0ad021bf2564302651d239f3069662c4425",
          "body": "…CLI)\n\n- GENERATORS registry: name 'Gemini CLI' → 'Antigravity'\n- README.md: table row label restored\n- guide.md: --ide flag example corrected (gemini → antigravity)\n- file-structure.md link: IDE list corrected",
          "is_bot": false,
          "headline": "fix: restore Antigravity IDE name (was incorrectly changed to Gemini …",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T01:37:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f45af3d3a4e483e274ab1b5c814bafaba2813546",
          "body": "…guide\n\n- Convert 5 architecture/reference docs to Confluence navigation links\n  (design-principles, file-structure, framework-flow, skill-spec, reference)\n- Each file now contains page title, Confluence URL, pageId, and TOC summary\n- Actual content lives in Confluence; local files serve as navigation pointers\n- Remove docs/guide/mcphub-pilot-guide.md (no longer needed)\n- guide.md retained as local-only OSS user guide (verified v0.6.4 accurate)",
          "is_bot": false,
          "headline": "docs: replace local docs with Confluence link pointers, remove pilot …",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-10T01:34:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c165ca3c1f73ef56eb81edfc075bd456f15b8242",
          "body": "- Tests: add --version flag test, add language detection for C#/PHP/Swift/Dart (140 total)\n- framework-flow.md: 42줄 dispatcher, 10 skills, 4 agents, add architect/code-review-pr/deployment, fix IDE mapping (Gemini CLI)\n- file-structure.md: update Solo/Team diagrams with full skill/agent list, fix co\n[…]\n reference.md: add code-review-pr/deployment/architect documentation, fix workflow pipeline\n- comparison.md: fix version/counts (internal only)\n- mcphub-pilot-guide.md: fix dispatcher/agent references",
          "is_bot": false,
          "headline": "docs: comprehensive docs update + test gaps (v0.6.4)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-09T14:11:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "679176d8d64e77352d7f7c10dae2625e91b935c0",
          "body": "CRITICAL fixes:\n- C-1: README Team Mode file split was completely inverted\n  (failure-patterns was listed as shared, features/dependency-map as personal)\n- C-2: Upgrade path now works — framework files (skills/agents/dispatcher)\n  always update on re-init, state files preserved (user data safe)\n\nMED\n[…]\nDE-agnostic (removed @planner syntax)\n\nMINOR fixes:\n- m-1: detectLanguage expanded (C#, PHP, Swift, Dart markers added)\n\nwriteFile now shows ↻ for updated files vs ✓ for new files.\n135/135 tests pass.",
          "is_bot": false,
          "headline": "v0.6.3: UX audit fixes — upgrade path, Team Mode docs, Gemini CLI naming",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-09T13:43:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2abcdfff6ce412ce755c7b6efbe03a8d505e267d",
          "body": "failure-patterns.md intentionally keeps FP-001~004 as templates after bootstrap.\nTemplate state (Frequency: 0) is normal, not a placeholder — validate should not warn.",
          "is_bot": false,
          "headline": "fix: v0.6.2 — exclude failure-patterns.md from validate sentinel check",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-09T13:24:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bbaf10686fc26276839b61f552605bc57de97ddc",
          "body": "- dependency-map.md: added Owner column (Team Mode Owner-Aware logic)\n- architect agent: added Step 0 (State File Readiness) and Step 0.5 (Load Agent Memory)\n- architect agent: added agent-memory to Referenced Files\n- core-rules.md: added architect, code-review-pr, deployment to Workflow\n- learn.md: added architect to Step 6 agent memory update list\n- validate: changed failure-patterns.md sentinel to avoid false positive after bootstrap",
          "is_bot": false,
          "headline": "fix: v0.6.1 — simulation audit fixes",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-09T12:39:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bafdb1450d79ae38062053ffbb1266feb5ad22a1",
          "body": "… doctor/validate/batch\n\nTIER 1:\n- learn.md: direction drift check (Step 2), merge conflict SOP\n- Agent memory files rewritten to English with auto-init guidance\n\nTIER 2:\n- New skill: code-review-pr (7-step PR review with TEAM_MODE)\n- New skill: deployment (6-step pre-deploy checklist with TEAM_MODE\n[…]\nith TEAM_MODE)\n- CLI commands: doctor (health check), validate (content check)\n- Templates (agent/skill) translated to English\n\nFramework: 10 skills, 4 agents, 4 agent-memory files\nTests: 135/135 pass",
          "is_bot": false,
          "headline": "feat: v0.6.0 — architect agent, code-review-pr/deployment skills, CLI…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-09T12:09:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "591a207128c25e94b966d1ccf0dca97b719dfbaa",
          "body": "… branding\n\n- Gitignore internal-only files: confluence-sync.json, strategy docs, state files, .vscode/instructions\n- Revert docs/ to generic Musher branding (remove kode:musher internal refs)\n- Sync README.md + package.json to v0.5.0 with Roadmap & Contributing sections\n- Preparing for single-repo workflow: k-harness → oss remote\n- 103/103 tests passing",
          "is_bot": false,
          "headline": "chore: unify repo — gitignore internal docs, revert to generic Musher…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-09T11:31:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b379afe6522d3a53c816a79e10f48c65c11b55cd",
          "body": "- Rebrand all 16 internal docs from K-Harness to kode:musher\n- Update confluence-sync.json with new page titles\n- All 15 Confluence pages updated via API\n- Tests: 103/103 passing",
          "is_bot": false,
          "headline": "refactor: kode:musher rebranding — internal docs + Confluence sync",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-09T11:05:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c1bb9c8d2e5f17e66a7991ceec17bfaddd04405",
          "body": "…ntry, templates in files\n\n- LICENSE: K-Harness Contributors → Musher Engineering Contributors\n- README + init.js: npx musher → npx musher-engineering (npm pkg name)\n- init.js tagline: Musher Engineering — IDE-agnostic AI Harness\n- package.json: bin dual entry (musher + musher-engineering), templates/ in files\n- package.json: repo URL → OSS public repo\n- 103/103 tests pass",
          "is_bot": false,
          "headline": "fix: complete rebranding — LICENSE, npx commands, tagline, bin dual e…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-09T10:37:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee048ae70af4488943ceda3d8ccc6e6126ddc64a",
          "body": "- Rename all K-Harness/k-harness references to Musher/musher (19 files)\n- Update package.json: name→musher-engineering, version→1.0.0, author→KTcorp-Opensource-Projects\n- Fix README IDE mapping table to match actual agent file paths\n- Update npm badge/docs URLs to musher-engineering\n- All 103/103 tests pass\n- Shared files now identical with OSS repo (only repo URL differs)",
          "is_bot": false,
          "headline": "refactor: rebrand K-Harness → Musher Engineering",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-09T10:31:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9768fe1897a42880492323a0ea0b9cbddbe1ef7",
          "body": "- fix: comparison.md Iron Laws 6개 → 8개 (3곳)\n- fix: README.md Iron Laws 6 → 8 laws\n- fix: full-lifecycle 진행 로그 93 → 103 테스트\n- fix: confluence-sync.json 삭제된 mcphub-pilot-guide 엔트리 제거",
          "is_bot": false,
          "headline": "docs: Iron Laws 8개 통일 + 잔여 수치 보정",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T09:11:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c36d7bfc5aee126e26e417029ece1c337c8db18",
          "body": "- fix: skill-spec.md v0.10.0 → v0.9.0 버전 수정\n- fix: project-state.md v0.8.4 → v0.9.2 갱신 (103 테스트, Sprint 3)\n- fix: copilot-instructions.md Iron Laws 6개 → 8개 통일\n- fix: copilot-instructions.md TODO 섹션 실제 내용으로 채움\n- feat: guide.md Team Mode 섹션 (Section 8) 추가\n- fix: framework-flow.md, skill-spec.md 버전 헤더 v0.9.0 추가\n- fix: full-lifecycle 테스트 수치 93 → 103\n- delete: mcphub-pilot-guide.md 삭제",
          "is_bot": false,
          "headline": "docs: 프레임워크 정밀 검토 — 7건 수정",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T09:08:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5aeffb66461c28e6acec24d9af42d7b1170cd63",
          "body": null,
          "is_bot": false,
          "headline": "docs: full-lifecycle Gate 1에 v0.9.0 활용 참고 박스 추가 (Confluence 동기화)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T08:47:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92b006732586e209ba6244f9b9d0bc9b73de18df",
          "body": "- design-principles.md: 원칙3 Team Mode 참고, 원칙5 Solo/Team 분리, Anti-Pattern 추가\n- file-structure.md: Solo/Team 구조 분리, resolveContent 섹션, Full Team 구성\n- full-lifecycle-integration.md: v3.0 업데이트, Team Mode 행/참고 추가\n- comparison.md: v0.9.0 상세 분석 (9섹션, 팀 협업 비교 축 추가)",
          "is_bot": false,
          "headline": "docs: Confluence → Local 역동기화 (v0.9.0 Team Mode 반영)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T04:29:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ffd37048ad1f73982867b4048b9af398200900f",
          "body": null,
          "is_bot": false,
          "headline": "docs: README.md에 Team Mode 섹션 추가 — Confluence 부모 페이지와 동기화",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T02:07:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6c2e0cb22ffb25cf99dc600d2ee1ba693df63f0",
          "body": null,
          "is_bot": false,
          "headline": "docs: confluence-sync.json 완전체 — 부모 페이지 + 누락 하위 페이지 추가",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T02:03:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ae147f5a07f9da7a868c6ecd5b55e242838822b",
          "body": null,
          "is_bot": false,
          "headline": "docs: add confluence-sync.json — local↔Confluence page mapping",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T01:58:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1f28f85b723d7aac221707fac48591b513e837a",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.9.2",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T01:48:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "64ef8536fac55e1356e0adacddf85a5f6c6e49a0",
          "body": "- resolveContent() 확장: Solo는 TEAM_MODE 블록 strip, Team은 마커만 제거\n- TEAM_MODE_SECTION 6대 규칙: Pre-Pull, Owner, Read-Only, Append-Only, Pivot Lock, FP Promotion\n- 11개 템플릿에 Team Mode 블록 추가 (8 skills + 3 agents)\n- 테스트 103/103 (기존 93 + 새 TEAM_MODE 마커 테스트 10)\n- 문서 동기화: skill-spec.md, reference.md, framework-flow.md",
          "is_bot": false,
          "headline": "feat: Team Mode 전방위 고도화 — TEAM_MODE 마커 패턴",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T01:48:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "943588c011fbfc4f96696b1ac2dd8d996bd632b2",
          "body": null,
          "is_bot": false,
          "headline": "v0.9.1: 거미줄 구조 감사 3라운드 — 컴포넌트 간 연계 완성도 5.0/5",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T01:38:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e4bb2f91e31d5c5b5f6eb382ac4ebea4ed95228",
          "body": "- 스킬 템플릿: Invoked By 선택적 섹션 추가\n- reviewer 에이전트 예시: 참조 스킬(+impact-analysis), 참조 파일(+5개), 실행 단계(4→9단계)\n- sprint-manager 에이전트 예시: 참조 스킬(+4개), 참조 파일(+5개), 실행 단계(4→5.5단계)",
          "is_bot": false,
          "headline": "docs: skill-spec.md 거미줄 감사 반영",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T01:36:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bdd42c6ff5e642f66b107affb4a6868a01def9a7",
          "body": "스킬 템플릿 (6개):\n- impact-analysis: +Invoked By, +FP/features 읽기, +project-state scope, FP 참조번호 수정\n- investigate: +dep-map/project-state 읽기, +FP-003 참조\n- security-checklist: +Invoked By, +FP-004 빈도 체크, +project-state 쓰기, FP 참조번호 수정\n- test-integrity: +Invoked By, +FP 읽기, +FP-002 참조, +project-state 쓰기\n- f\n[…]\nep 0.5 dep-map, +FP-003\n\n디스패처:\n- core-rules: +bootstrap, sprint-manager 워크플로우 명시\n\n문서 (2개):\n- docs/reference.md: 전체 스킬/에이전트 설명 업데이트\n- docs/architecture/framework-flow.md: 접근 매트릭스, 버그수정 플로우, 스킬 테이블 업데이트",
          "is_bot": false,
          "headline": "fix: 거미줄 구조 감사 3라운드 — 컴포넌트 간 연계 완성도 5.0/5",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-08T01:25:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0ff07469603a3ad00050aad711e604bcc081bd22",
          "body": null,
          "is_bot": false,
          "headline": "v0.9.0",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-07T05:56:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41e13f30de42f2866752644794637a8a03955a69",
          "body": "- Add --mode (solo|team) and --team CLI flags\n- Team mode splits state files: personal (.harness/, gitignored) vs shared (docs/)\n- resolveContent() replaces docs/ paths to .harness/ for personal files at generation time\n- Append Team Mode section to core-rules in team mode\n- Auto-create .gitignore (\n[…]\nntinel comments to features.md and dependency-map.md for merge safety\n- All 6 IDEs verified: vscode, claude, cursor, codex, windsurf, antigravity\n- Tests: 69 → 93 (24 new team mode tests, all passing)",
          "is_bot": false,
          "headline": "feat: add Team mode for multi-developer environments (v0.9.0)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-07T05:54:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3c8955897a43db9176d9cc4004aba86a2580467a",
          "body": null,
          "is_bot": false,
          "headline": "docs: update state files for v0.8.4 (7→6 IDE, Augment dropped)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-07T00:28:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6ab55534f54b8d60cda6ea898eb73e3ca253ad5",
          "body": null,
          "is_bot": false,
          "headline": "docs: update strategy version refs (v0.7.0→v0.8.4, 7→6 IDE)",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-06T09:50:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "916f7d4e478aac3d8a262f39948fc0c6909d93df",
          "body": null,
          "is_bot": false,
          "headline": "v0.8.4",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-06T09:47:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "752bd1349cd9bf4239e29b52ffe88b0bbc0d55a6",
          "body": "- Codex: add writeAgentsAsSkills() into .agents/skills/\n- Windsurf: rewrite from legacy .windsurfrules to .windsurf/rules/core.md (trigger: always_on) + .windsurf/skills/*/SKILL.md\n- Remove Augment Code support (not in agentskills.io client list, docs inaccessible)\n- Update all docs: IDE mapping tab\n[…]\nlot guide, strategy (6 IDEs, 69 tests)\n- Cursor skills path corrected in docs (.cursor/skills/ not .cursor/rules/*.mdc)\n- Claude Code dispatcher corrected in docs (.claude/rules/core.md not CLAUDE.md)",
          "is_bot": false,
          "headline": "fix(codex,windsurf): align with official specs, remove augment",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-06T09:47:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5f5d7845239c5810ed25e14960adf13a6737926a",
          "body": "…les/\n\nCursor has two separate systems:\n- Rules (.cursor/rules/*.mdc) — passive, auto-applied by globs/description\n- Skills (.cursor/skills/*/SKILL.md) — active, invoked by mentioning name\n\nPreviously all skills/agents were generated as .mdc rules, making them\ninvisible in Cursor's skill list. Now:\n\n[…]\nays in .cursor/rules/ (alwaysApply: true)\n- Skills → .cursor/skills/*/SKILL.md (with name/description frontmatter)\n- Agents → .cursor/skills/*/SKILL.md (same pattern as Claude Code)\n\n70 tests passing.",
          "is_bot": false,
          "headline": "fix(cursor): generate skills as .cursor/skills/ instead of .cursor/ru…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-06T08:58:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a85d9bc551473b9c3b57b3436085f8b024611ce3",
          "body": "Cursor's 'Agent Requested' mode matches rules by description keywords.\nPrevious descriptions ('Skill — investigate', 'Agent — reviewer') were\ntoo vague for Cursor to match. Now uses the same rich descriptions\nfrom SKILLS/AGENTS arrays (e.g. 'Investigate and diagnose issues.\nUse when debugging or analyzing unexpected behavior.')\n\n70 tests passing.",
          "is_bot": false,
          "headline": "fix(cursor): use descriptive frontmatter for Agent Requested mode",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-06T08:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db024a9a2f98e208c179f4bb8c03e661ce6bfe18",
          "body": "- Add npm version/downloads/license badges to README\n- Add GSD v1.33.0 to comparison table (4-way: BMAD vs gstack vs GSD vs K-Harness)\n- Add Iron Laws row to comparison (unique to K-Harness)\n- Rename section: 'Why Not BMAD or gstack?' → 'Why K-Harness?'\n- Update docs/analysis/comparison.md with full 4-framework analysis\n- Bump version to 0.8.1",
          "is_bot": false,
          "headline": "v0.8.1: README badges + GSD comparison, update competition analysis",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-06T08:43:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f965127c8e88fd0f0c825be8b6519230543dc44d",
          "body": "…ttern\n\n- Delete harness/testing-rules.md, harness/backend-rules.md (unused by any generator)\n- Delete templates/instructions.template.md (deprecated path-scoped template)\n- Remove LANG_GLOBS constant from src/init.js (dead code, 24 lines)\n- Remove LANG_GLOBS test from tests/init.test.js (70 tests p\n[…]\nve .vscode/instructions references\n- Update docs/architecture/design-principles.md: remove instructions from team size\n- Update docs/architecture/file-structure.md: remove .vscode/instructions section",
          "is_bot": false,
          "headline": "v0.8.0 cleanup: remove dead files/code, update docs for dispatcher pa…",
          "author_name": "jungchihoon",
          "author_login": "jungchihoon",
          "committed_at": "2026-04-06T06:16:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 3,
      "commits_last_year": 122,
      "latest_release_at": "2026-04-30T01:48:33Z",
      "latest_release_tag": "v0.9.6",
      "releases_from_tags": false,
      "days_since_last_push": 63,
      "active_weeks_last_year": 7,
      "days_since_latest_release": 83,
      "mean_days_between_releases": 4
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 100,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@kodevibe/harness",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "llm",
            "ai",
            "copilot",
            "claude",
            "cursor",
            "codex",
            "windsurf",
            "gemini",
            "kode-harness",
            "harness",
            "development",
            "agents",
            "skills",
            "kodevibe-harness",
            "direction-management",
            "multi-developer",
            "team-alignment",
            "ai-coding"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@kodevibe/harness",
          "is_deprecated": false,
          "latest_version": "0.11.28",
          "repository_url": "https://github.com/AIDD-Projects/harness",
          "versions_count": 33,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 3652,
          "first_published_at": "2026-04-22T09:35:58.733000Z",
          "latest_published_at": "2026-07-17T12:16:32.640000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 1,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": null,
      "open_issues_and_prs": 2
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 76445,
      "source_files_sampled": 4,
      "oversized_source_files": 2,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "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": [
        "npm"
      ],
      "dependencies": [],
      "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": 0,
        "open_issues": 2,
        "closed_ratio": 0.333,
        "closed_issues": 1,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "jungchihoon",
          "commits": 122,
          "avatar_url": "https://avatars.githubusercontent.com/u/70630549?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "21 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "3fd251fbf3e0abe525b51f9573a5f7651834231c",
        "ran_at": "2026-07-22T14:32:27Z",
        "aggregate_score": 4.4,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-05-20T06:56:02Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": null,
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 1,
          "created_at": "2026-04-22T02:14:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2,
          "created_at": "2026-04-22T02:14:32Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/AIDD-Projects/harness",
    "host": "github.com",
    "name": "harness",
    "owner": "AIDD-Projects"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 55,
      "inputs": {
        "security": 44,
        "vitality": 71,
        "community": 47,
        "governance": 38,
        "engineering": 76
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 71,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 51,
            "inputs": {
              "commits_last_year": 122,
              "human_commit_share": 1,
              "days_since_last_push": 63,
              "active_weeks_last_year": 7
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 63 days ago",
                "points": 18,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 63
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "7/52 weeks with commits",
                "points": 4.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "122 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 122
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "21 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 3,
              "latest_release_tag": "v0.9.6",
              "releases_from_tags": false,
              "days_since_latest_release": 83,
              "mean_days_between_releases": 4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "3 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 83 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 83
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~4 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 4
                    }
                  }
                ],
                "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": "at_risk",
        "name": "Community & Adoption",
        "value": 47,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 1,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 59,
            "inputs": {
              "packages": [
                "@kodevibe/harness"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 3652
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "3,652 downloads/month across npm",
                "points": 47.5,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 3652,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "at_risk",
        "name": "Sustainability & Governance",
        "value": 38,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 10,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "critical",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 25,
            "inputs": {
              "merged_prs": 0,
              "open_issues": 2,
              "closed_issues": 1,
              "issue_closed_ratio": 0.333,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "33% of issues closed",
                "points": 15.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 33
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "no decided pull requests or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_decided_prs_or_data",
                    "params": {}
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 33,
            "inputs": {
              "followers": 0,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "AIDD-Projects",
              "public_repos": 1,
              "account_age_days": 100
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "0 followers of AIDD-Projects",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 0,
                      "login": "AIDD-Projects"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "1 public repos, account ~0 yr old",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 1
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@kodevibe/harness"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "33 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 33
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 76,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "1 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "ai",
                "cursor",
                "harness",
                "harness-engineering",
                "llm",
                "vscode",
                "ai-agent",
                "ai-coding",
                "cli",
                "codex",
                "copilot",
                "developer-tools",
                "multi-developer",
                "windsurf",
                "claude",
                "ai-agents",
                "copilot-instructions",
                "cursor-rules",
                "guardrails",
                "llm-orchestration"
              ],
              "has_wiki": true,
              "homepage": "https://www.npmjs.com/package/musher-engineering",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://www.npmjs.com/package/musher-engineering",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "20 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 44,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 44,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 4.4
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "21 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 1
            },
            "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": "critical",
        "name": "AI Readiness",
        "value": 29,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.91,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "91 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 91,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "critical",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 22,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "critical",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 28,
            "inputs": {
              "primary_language": "JavaScript",
              "largest_source_bytes": 76445,
              "source_files_sampled": 4,
              "oversized_source_files": 2
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "JavaScript without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "JavaScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "2/4 source files over 60KB",
                "points": 27.5,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 4,
                      "oversized": 2
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
    "deps.dev does not index npm:@kodevibe/harness@0.11.28; advisories assessed against the repository dependency graph instead"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-22T14:32:35.013939Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/AIDD-Projects/harness.svg",
  "full_name": "AIDD-Projects/harness",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

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