Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 1724,
"has_wiki": true,
"homepage": null,
"languages": {
"C": 2575458,
"Go": 1181296,
"HTML": 36083,
"Shell": 17722,
"Python": 18526,
"Makefile": 4985,
"Objective-C": 3895
},
"pushed_at": "2026-07-23T08:23:17Z",
"created_at": "2026-05-05T02:07:14Z",
"owner_type": "User",
"updated_at": "2026-07-23T09:44:32Z",
"description": null,
"is_archived": false,
"is_disabled": false,
"license_spdx": "AGPL-3.0",
"default_branch": "main",
"license_spdx_raw": "AGPL-3.0",
"primary_language": "C",
"significant_languages": [
"C",
"Go"
]
},
"owner": {
"blog": null,
"name": "mhha(WM)",
"type": "User",
"login": "0xmhha",
"company": null,
"location": "Seoul, Korea",
"followers": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/82016792?v=4",
"created_at": "2021-04-06T05:47:21Z",
"is_verified": null,
"public_repos": 81,
"account_age_days": 1935
},
"license": {
"state": "standard",
"spdx_id": "AGPL-3.0",
"raw_spdx": "AGPL-3.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.1.0",
"kind": "minor",
"published_at": "2026-07-18T18:06:18Z"
}
],
"recent_commits": [
{
"oid": "e2b9c1bd30fa7adb25d60ac277c2ff9f39d62292",
"body": "* docs: re-verify remaining.md against code through PR #48 (blocked residue unchanged)\n\n* docs: prune completed items from remaining.md\n\nDelete finished sections/checklist entries (ckg_node_id retirement,\nreindex P2-P4, embedding model swap, prior priority order) now that\nthey're tracked in git/PR history. Keep only genuinely outstanding work.",
"is_bot": false,
"headline": "docs: prune completed items from remaining.md (#50)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-23T08:23:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b913f2e64506a45c0951ecea31478c1b9a28887",
"body": "Verify every \"current state\" claim against the tree and archive completed\nsnapshots under the 3-tier discipline. Code + git are ground truth. Work status\nstays in docs/remaining.md (the code-verified SoT); decisions stay in the ADRs.\n\nArchive completed status/plan/measurement snapshots (git mv to do\n[…]\nt all links to moved docs.\n\nWire the build version: derive VERSION from `git describe` and inject it into\nmain.Version via -ldflags so `ckv --version` and the build manifest report the\ntagged release.",
"is_bot": false,
"headline": "docs: consolidate docs/ against code + git; wire build version (#49)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-18T18:03:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "adf44175fffb589e06f96183d2f179f255194dd9",
"body": "The tracker consolidation (#46) covered PR #17–#45; the coreml build-tag\nfix (#47) landed after. Update the 갱신 line and 현재 상태 to PR #17–#47 /\nHEAD f595d83, and record the hygiene work: tracker consolidation (#46)\nand gating coreml behind the `tokenizers` tag (#47), which makes a plain\n`go test ./...` exit 0 across all 42 packages. Blocked residue unchanged.",
"is_bot": false,
"headline": "docs: sync remaining.md through PR #47 (#48)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T14:55:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f595d83b259f368706b4f0d5c8fc047ce9adf5f7",
"body": "…g (#47)\n\n`go test ./...` failed locally with `ld: library 'tokenizers' not found`\nbecause the coreml backend links libtokenizers (HuggingFace Rust) at test\ntime, and it is not installed on most machines. Nothing imports the\npackage (it is not wired into the embedder resolver), so the failure was\npu\n[…]\nsion and runs a plain `go test\n./...`. Verified: `go test ./...` exits 0 (42 packages, coreml shows\n\"no test files\"); `go build -tags tokenizers ./internal/embed/coreml/`\nstill compiles the real impl.",
"is_bot": false,
"headline": "chore(coreml): gate the coreml backend behind a `tokenizers` build ta…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T11:53:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ca200695c2a359f1f91e4311f0c5eb7d8db91f55",
"body": "…e mapped (#46)",
"is_bot": false,
"headline": "docs: consolidate remaining.md — CKV milestone closed, blocked residu…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T11:13:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c7a961b8b74a4a9fdbc37312c8c8296e52ab37af",
"body": "…#45)\n\nThe Makefile and the build/eval scripts carried hard-coded absolute\npaths from two different developers' machines (/Users/wm-it-22-00661,\n/Users/wm-it-25_0220), so the committed defaults were broken for everyone\nelse. Externalize them (flow-ingest plan Phase E DoD: \"no machine path\nleft in a \n[…]\n; rebuild-stablenet errors with a hint\n when it is unset.\n\nVerified: no /Users/wm-it path remains in any committed script; both\nscripts pass `bash -n`; the Makefile guard fires when GSN_SRC is unset.",
"is_bot": false,
"headline": "chore(build): externalize machine-local paths to build-profiles.env (…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T10:43:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c744c1004857ec9b7c3f38414ce0c2725b5aab47",
"body": "…Phase C2) (#44)\n\nA flow_step cites a curated file:line. When the code moves and the line\nno longer exists in the file, the step was silently served as if fresh:\nflow chunks carry no commit hash, so the existing commit-drift stale\ncheck never fired for them.\n\nAdd a line-bounds staleness axis in Enfo\n[…]\ns present. Together with C1 (build-time\nalignment) this closes flow Phase C.\n\nTest: TestEnforceCitationsAt_FlowStepLineDrift (in-bounds step fresh,\nline-99-of-3-line-file step stale, neither dropped).",
"is_bot": false,
"headline": "feat(query): flag flow steps whose cited line drifted past the file (…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T10:27:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8a8cf99ac8baa957062e2408f8f3fa0cb168b776",
"body": "Each flow_step carries a curated file:line. Resolve it to the code chunk\nthat implements it and stamp that chunk's ID as AlignedChunkID, so a\ncaller can jump from flow prose to the implementation.\n\n- flowcorpus/align.go: CodeIndex + AlignSteps — a step aligns to the\n tightest code span (innermost s\n[…]\n code chunks already in the store so alignment is not dropped.\n\nTests: TestAlignSteps_* (tightest match, boundaries, invalid spans),\nTestRun_AlignsFlowStepsToCode, TestReindex_RealignsFlowStepsToCode.",
"is_bot": false,
"headline": "feat(flow): align flow steps to their code chunks (Phase C1) (#43)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T10:12:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "762d9cd2327e7bfbc42f6952453ca5d88b14bcf3",
"body": "…(#42)\n\nRecord the flow-corpus chunking decisions as an accepted ADR, completing\nthe ADR-promotion backlog. These are hard to reverse — chunk IDs are the\nstore's primary key.\n\nCaptures: the three record types map to three chunk kinds (flow ->\nflow_spine, step -> flow_step, invariant -> curated invar\n[…]\nso symptom-phrased queries retrieve the step; and the flow\nlayer is replaced wholesale on a corpus content-hash change rather than\ndiffed per record. README index + remaining.md updated (ADR 승격 done).",
"is_bot": false,
"headline": "docs(adr): ADR-010 — flow-corpus chunk signatures and layer identity …",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T09:33:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "91cc75d1b5b70d8afd4ab2c9d2c2be1a4331bab5",
"body": "…anularity deferred (#41)\n\nPromote the recent retrieval measurement cycle into an accepted ADR so\nthe embed-text strategy — and the two levers we chose NOT to adopt — are\nrecorded with their numbers, not re-proposed from first principles.\n\nDecision: keep the D.1 rule-based contextual prefix on by de\n[…]\nture.\n\nAlso records ADR-007 (canonical_id join) and ADR-008 (embedding dim) as\nthe settled parts of the ADR-promotion backlog; only the flow-signature\nADR remains. README index + remaining.md updated.",
"is_bot": false,
"headline": "docs(adr): ADR-009 — rule-based prefix default, LLM prefix + multi-gr…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T09:26:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "03b60753282568307b18799aa772274fdb918b59",
"body": "Before committing to the full Phase B multi-granularity feature (~250 LOC,\n-50% throughput), measure whether coarse chunks actually help. Add an\nopt-in whole-file coarse chunk and a coarse-level probe fixture, then\nmeasure against the fine-grained baseline.\n\n- chunk: ChunkFileFull kind + Options.Inc\n[…]\nfor a future large-corpus re-test (same treatment as the D.2\nLLM prefix). Record: docs/phase-b-multigran-probe-2026-07-12.md.\n\nTests: TestIncludeFileFullEmitsCoarseChunk, TestLoadCoarseQueriesFixture.",
"is_bot": false,
"headline": "feat(chunk): gated file_full coarse chunk + Phase B go/no-go probe (#40)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T09:20:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "83703dcc74a70c43fb6965b1bbae8d2dd802269b",
"body": "…efuted (#39)\n\nRe-measure the three embed-text prefix levers (raw / D.1 rule-based /\nD.2 LLM) on both the easy and the new hard fixture (bge-m3), now that the\nhard fixture reopened a measurable band.\n\nFindings: D.1 rule-based is the clear winner on both fixtures (+0.16\nrecall@1 over raw), and D.2 LL\n[…]\nhe rule-based prefix's exact symbol/file tokens. Defaults\nare unchanged (D.1 on, D.2 opt-in/off) and now confirmed by measurement.\n\nRecord: docs/prefix-lever-sweep-2026-07-12.md; remaining.md updated.",
"is_bot": false,
"headline": "docs: prefix lever sweep on the hard fixture — rule-based wins, D.2 r…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T08:51:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "900f86c85ce3f17c13b73cdb4af297707ec8c20d",
"body": "…iling (#38)\n\nThe default queries.yaml is at the retrieval ceiling on the small\ntestdata/sample corpus (bge-m3: recall@5 0.98, recall@1 0.86), so it can\nno longer discriminate between retrieval quality levers (contextual\nprefix, sliding split, multi-granularity) — the D.2 PoC ended\n\"unmeasurable at \n[…]\n hard fixture is the lever\nmeasurement set. Record: docs/eval-hard-fixture-2026-07-12.md.\n\nGuard: TestLoadHardQueriesFixture validates the fixture loads with\nconcrete file + line_range on every entry.",
"is_bot": false,
"headline": "test(eval): add hard discrimination fixture to break the retrieval ce…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T08:41:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f241a8c0f6a0f24b8843bbb6adca64c36549e8d7",
"body": "…ange (P3b-docs) (#37)\n\nreindex previously refreshed only code, PRs, and the flow corpus; an\nout-of-tree `--docs` corpus went stale because its files are not in the\ngit diff. Detect docs-tree changes by content hash and replace the docs\nlayer wholesale, completing the P3 incremental-ingest phase.\n\n-\n[…]\nstDeleteDocsChunks (deletes only the curated domain-doc layer,\nkeeps symbol + in-tree doc), TestReindex_ReindexesDocsOnContentChange\n(marker section added to a --docs file is reflected after reindex).",
"is_bot": false,
"headline": "feat(reindex): incremental curated docs-corpus re-index on content ch…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T08:24:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "921971584c5a3b5e760ee72d8f2d0d37078dc066",
"body": "…y-default (#36)\n\nAdd an opt-in lever that layers an LLM-generated one-sentence description\non top of each chunk's embed text (Anthropic Contextual Retrieval, D.2),\nalongside the existing rule-based prefix (D.1).\n\n- internal/llmprefix: injectable Generator interface, disk-cached Cached\n prefixer (k\n[…]\nombined form beats LLM-alone, so that is the shipped composition when the\nlever is on. Decision: keep the lever opt-in and off by default; revisit on\na large corpus with a stronger generator and BM25.",
"is_bot": false,
"headline": "feat(embed): opt-in LLM contextual prefix (Phase D.2), measured off-b…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T08:06:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8537921cad88697b2620ead2c9bc40623e5b5ae4",
"body": "internal/query.Engine already implements FindInvariants (file/category/\ntier-filtered policy lookup) and GetConventions (per-package AST idiom\nsummaries), and pkg/mcp surfaces them as tools. In-process consumers\n(cks's ckvclient) reach the engine through pkg/ckv, which did not\nre-export them — so ck\n[…]\nkg\nbranch (5fc5c28) onto current main, which already carries the internal\nimplementation — no rebase of that 57-commit-behind branch needed.\n\nTests: delegation on an open engine + closed-engine guard.",
"is_bot": false,
"headline": "feat(ckv): expose FindInvariants/GetConventions via pkg/ckv (#35)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T07:41:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "64288c7cb7f3a8b7270b663e89c082571cfbeaac",
"body": "Implements the decoder-only path the bgeonnx backend was missing.\n\n- lastTokenPoolNormalize: takes the hidden state of the last attended token per\n row (the last t with mask != 0, handling either padding side) and\n L2-normalizes it — the standard sentence representation for causal models\n (Qwen2)\n[…]\nthout libonnxruntime.\n\nCaveat: end-to-end ONNX inference needs the ~5GB model + libonnxruntime, absent\non this machine; the pooling math is unit-verified and the entry follows the\nestablished pattern.",
"is_bot": false,
"headline": "feat(embed): last-token pooling + bge-code-v1 registry entry (A4) (#34)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T07:05:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ccab83e8057bef712791df06983b1076e55a1c5f",
"body": "…(#33)\n\nVerified while picking up A2: both are already shipped.\n\n- A2 `ckv model fetch`: model.FetchModel downloads onnx + tokenizer via direct\n HTTP from huggingface.co/<repo>/resolve/main/<file> (temp+rename, skip-existing)\n with no `hf` CLI dependency anywhere. Covered by TestFetchModel_* /\n T\n[…]\nchecks.\n\nA4 (bge-code-v1 Qwen2 adapter) is the one genuinely open in that group: bgeonnx\npooling.go still returns \"not yet implemented\" for PoolingLastToken and there is\nno bge-code-v1 registry entry.",
"is_bot": false,
"headline": "docs: mark A2 (model fetch) + A3 (linux CI) done — backlog was stale …",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T06:50:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0f9c26d070202877bb8f94d76425921634111598",
"body": "…(#32)\n\nembedResilient skipped a single chunk the backend rejected. But the Qwen3-4b\ncrash is mostly flaky (memory pressure — the ollama model subprocess dies and\nreloads) rather than a clean size threshold, so many rejected chunks are well\nunder any byte cap and were dropped needlessly (0.6b embeds\n[…]\nsses + fuzzcheck.CheckSpans\ninvariants already exist for all five parsers (verified; golang -fuzz 8s /\n547K execs pass).\n\nTests: TestEmbedResilient_RecoversOversizedByTruncating (+ existing skip/ctx).",
"is_bot": false,
"headline": "feat(build): recover oversized/flaky chunks instead of skipping them …",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T06:41:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6a3b2943693f63432086db38e953a4bc923e23fe",
"body": "…) (#31)\n\nRe-runs the model-size A/B on a broader go-stablenet corpus that covers all 10\nsemantic-validation targets: 123 files / 1834 chunks (~1.8x the first subset;\nmeasurable queries 4 -> 9), same corpus, both 1024-dim.\n\nCorrects the earlier N=4 read (\"0.6b marginally ahead\" was small-sample nois\n[…]\nr-cost / more-stable alternative with\nnegligible quality loss — the final model choice depends on the deployment's\nmemory-vs-precision priority. Recorded in\ndocs/qwen3-dimension-ab-2026-07-12.md §8.2.",
"is_bot": false,
"headline": "docs: Qwen3 model-size re-confirm on a larger corpus (0.6b vs 4b-1024…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T06:13:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7f62683076691080acc047d37ab2e0c4fc096fd4",
"body": "… (#30)\n\n--embed-dim accepted any value ≤ native, so indexes could be built on ad-hoc,\nnon-standard dimensions that aren't comparable and aren't MRL sweet spots.\n\nAdd a per-model KnownDims ladder to the registry (qwen3:4b 512/1024/2560,\nqwen3:0.6b 256/512/1024; native included) plus registry.KnownDi\n[…]\nm for the model (or exceeds native), while non-MRL models stay unrestricted.\n0 (native, no truncation) is always valid. CLI help lists the supported dims.\n\nTests: TestKnownDims, TestValidateTargetDim.",
"is_bot": false,
"headline": "feat(embed): standardize MRL truncation dims (--embed-dim validation)…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-12T00:05:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "281b1b8e3ebc3d2c960dbc6480e9415e87ed019e",
"body": "The dimension axis is settled at 1024 (ADR-008). This measures the model-size\naxis: producing the same 1024-dim vector from the small 0.6b (native 1024) vs\nthe large 4b (2560 -> 1024 truncate), on the same go-stablenet subset (1015\nchunks, identical corpus).\n\nResult: effectively equal retrieval — re\n[…]\nts in the subset), directional only. A\nlarger re-confirm should decide whether to switch the recommended model from 4b\nto 0.6b and update ADR-008. Recorded in\ndocs/qwen3-dimension-ab-2026-07-12.md §8.",
"is_bot": false,
"headline": "docs: Qwen3 model-size A/B — 0.6b-native-1024 vs 4b-truncate-1024 (#29)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T20:16:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5b506f6e132487c59d7bdfea485cf6686042e44a",
"body": "…#28)\n\nPin every input (src, graph, filter, policy, domain + flow corpus, embedder) so\nthe same dataset yields the same vector.db instead of re-deriving flags — the\nmissing-bridge-layer failure mode. The flow corpus is sourced from its single\ntracked home in code-knowledge-system; preflight fails if any layer is missing,\nand DRY_RUN prints the command without building.",
"is_bot": false,
"headline": "build(scripts): add reproducible CKV vector build for pr-77-gstable (…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T20:00:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "985871d93193ef6c96cccc52dcfd87f159f96a77",
"body": "…en (#27)\n\nAdds the CKV-side blue-green primitive (P5). CKS orchestrates when to promote\nand owns version naming/retention; CKV provides the atomic swap + the served\nversion in health.\n\n- build.PromoteVersion(dataset, version): runs the §5.1 integrity gate on the\n target version (readable manifest,\n[…]\nlved_version (§6).\n\nTests: TestPromoteVersion_AtomicSwapAndGate.\n\nScope: the CKV slice of P5. Version layout/naming, promote timing, instance-\nlevel blue-green cutover, and retention/GC stay with CKS.",
"is_bot": false,
"headline": "feat(promote): ckv promote — atomic current-pointer swap for blue-gre…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T19:50:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "83357e76b0af9e11a1fbebf51398a4f85645fcfd",
"body": "An interrupted reindex left the manifest at the old head, so the next run\nre-diffed and re-embedded the whole change set from scratch. reindex now\nrecords each finished file in an append-only ledger (<out>/.ckv-reindex.ckpt:\ntarget head, then \"<content_sha>\\t<relpath>\" per file). On the next run it\n\n[…]\nre-processed).\n\nTests: TestResumeCheckpoint_RoundTripAndClear, _StaleHeadDiscarded,\nTestReindex_ResumeSkipsCheckpointedFile.\n\nScope: P4c — completes reindex P4 (P4a lock + P4b atomicity + P4c resume).",
"is_bot": false,
"headline": "feat(reindex): resume from a checkpoint after an interrupted run (#26)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T18:55:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0fca028cebafdff3d066176520807dff9ceae2b5",
"body": "setManifestKVs upserted each manifest key/value in its own auto-committed\nstatement, so a crash mid-write could leave the in-DB manifest half-updated\n(some keys advanced, others stale). Wrap the whole set in a single\ntransaction — all-or-nothing (reindex-migration-design §4.4). SetManifest\nnow threa\n[…]\n-or-nothing artifact swap is the\nblue-green work (§4.1, P5).\n\nCovered by TestStatsReflectsManifest (SetManifest -> Stats round-trip).\n\nScope: P4b of reindex P4. Resume checkpoint ledger (P4c) remains.",
"is_bot": false,
"headline": "feat(store): write the in-DB manifest in one transaction (#25)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T18:41:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2bf17ef0d127b9642ba73ae96701516c813e0d56",
"body": "Concurrent build/reindex runs on the same dataset interleaved their writes to\nvector.db with undefined results (reindex-migration-design §5.3). Run and\nReindex now take a non-blocking exclusive flock on <out>/.ckv.lock on entry;\na second writer gets ErrLocked instead of corrupting the index. flock r\n[…]\nests: TestAcquireDatasetLock_ExclusiveAndRelease, TestRun_RefusesWhenLocked.\n\nScope: P4a of reindex P4. Reindex atomicity + SetManifest transaction (P4b)\nand the resume checkpoint ledger (P4c) remain.",
"is_bot": false,
"headline": "feat(build): advisory lock to serialize concurrent build/reindex (#24)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T18:27:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cca64b268999979391c864c0a7b8412974d0ae7a",
"body": "…#23)\n\nQwen3-Embedding is asymmetric — it recommends an \"Instruct: {task}\\nQuery: {q}\"\nprompt on queries while passages are embedded raw. The Embedder interface had\nno query/passage distinction, so queries got no prefix.\n\nAdd an optional types.QueryEmbedder interface (EmbedQuery); the query path\ntyp\n[…]\n/chaincmd.go MISS -> rank 8 recovered,\nconsensus handler 2 -> 1, no regressions). Query-side only, no rebuild.\n\nTests: TestQwen3QueryText, TestEmbedQueryBatch_RoutesToQueryEmbedder,\nTestQueryInstruct.",
"is_bot": false,
"headline": "feat(embed): Qwen3 Instruct query-prefix via optional QueryEmbedder (…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T18:10:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3ec79bf699de351e2faea289109178640bbd147f",
"body": "… the build (#22)\n\nembedAndUpsert aborted the whole build when an embed batch failed, so one bad\nchunk lost the entire index. Ollama's Qwen3 embedding endpoint crashes (HTTP\n400 EOF) on individual very large code chunks, which made large-corpus qwen3\nbuilds impossible.\n\nembedResilient now bisects a \n[…]\nre/blockchain.go (which crashes ollama) now completes — 53\nfiles / 592 chunks — skipping only the rejected chunks instead of aborting.\n\nTests: TestEmbedResilient_SkipsPoisonChunk, _PropagatesCtxError.",
"is_bot": false,
"headline": "feat(build): resilient embedding — skip chunks a backend rejects, not…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T17:57:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9234fcb12e5cebb76cc38669131ec931ecb5afa8",
"body": "Lock the embedding dimension decision (coordination decision 6): adopt\nqwen3-embedding:4b MRL-truncated to 1024 as the recommended embedding, with\nfull-2560 as the max-precision fallback. Backed by the N=50 and ~20x\nre-confirm A/Bs (1024 keeps ~98% of full precision at ~half the storage).\n\nRecords t\n[…]\ne ollama Qwen3 large-input instability and the approximate-corpus\ncaveat as accepted costs; Instruct query-prefix and the 0.6b comparison are\ndeferred as separate levers. Index + remaining.md updated.",
"is_bot": false,
"headline": "docs(adr): ADR-008 — Qwen3-Embedding at 1024 dims (MRL-truncated) (#21)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T17:33:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "10217e1d1e1cfbde30a3a62a8df471064bc5bf11",
"body": "…corpus (#20)\n\nAdd `ckv build --batch N` to control the embedding batch size (0 = default\n32). Ollama's Qwen3-Embedding endpoint rejects large batches of big code\nchunks (HTTP 400 EOF); a smaller batch lets those builds through.\n\nRe-confirmed the N=50 dimension A/B on a go-stablenet subset - 83 file\n[…]\nvidual very large chunks (~20-40KB) still crash both\n4b and 0.6b regardless of batch size, so seven mega-files were excluded\nequally from both indexes. Robust handling (retry/skip) is a separate task.",
"is_bot": false,
"headline": "feat(build): add --batch flag; re-confirm Qwen3 1024-dim on a larger …",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T17:21:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "09c69c98fa63059e230629fd4f445d1e06e9a716",
"body": "… (#19)\n\nQwen3-Embedding is MRL-trained, so a prefix of its output vector is a valid\nlower-dimensional embedding once renormalized. Add ollama.Options.TargetDim\n(CLI --embed-dim): after the native-dim probe, every Embed truncates to the\nfirst TargetDim components and re-normalizes to unit length; Di\n[…]\nuncateNormalize covers the truncate + renorm math and the no-op\ncases (dim <= 0, dim >= len).\n\nInstruct query-prefix and the 0.6b (native-1024) comparison are separate\nlevers, tracked in remaining.md.",
"is_bot": false,
"headline": "feat(embed): MRL dimension truncation for ollama + Qwen3 1024-dim A/B…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T16:10:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ed68f782dd427aa9dfbcebc139c16f122fc3fd00",
"body": "…ow ingest (#18)\n\n* feat(reindex): re-align canonical_id against the recorded ckg graph\n\nreindex re-embeds changed files but did not re-run ckgalign, so a partial\nrebuild silently dropped canonical_id on every re-embedded chunk - the\n\"quietly stale\" gap in reindex-migration-design section 0.2 gap1. \n[…]\ns a marker flow record, reindexes, and asserts the marker chunk\nis present.\n\nScope: P3b-flow. Curated docs-roots re-index (P3b-docs) remains; in-tree\nmarkdown is already handled by the code diff path.",
"is_bot": false,
"headline": "reindex P2+P3: CKG re-alignment, validation gate, incremental PR + fl…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T15:51:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b4d9021936d343b1fb41ccd4a185142298430823",
"body": "* docs: add ckg_node_id retirement pointer (canonical_id consolidation)\n\nPointer to the cross-repo master plan (code-knowledge-system/docs/retire-ckg-node-id.md) plus the CKV-side checklist: drop chunks.ckg_node_id column/index, struct field, and JSON output; keep canonical_id as the sole bridge. Tr\n[…]\nd: it is unrelated\nto the gate and would break ~17 aligner tests; the field is the alignment\nmechanism, not the retired storage field.\n\n* style(query): gofmt struct alignment after ckg_node_id removal",
"is_bot": false,
"headline": "reindex P1 + ckg_node_id retirement (CKV producer) (#17)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-11T14:43:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7593cb64c2cdb7eb9400d85ccdf3a86b1bed0d3d",
"body": "Re-measure the earlier \"10/10 human-wording validation\" against objective\nground truth (real PR queries -> actually-changed files) to check for\nself-authored bias. PR-77 (base 0bf2f4d1b, existing bge-m3 index): the primary\nfile (anzeon.go) ranks 1-2 across the real PR title and two other query forms\n[…]\nas\noptimistic) while the bridge is genuinely strong on the primary intent, and the\nmiss marks the CKV/CKG boundary (semantic entry point vs graph-expanded blast\nradius). N=1; multi-PR sweep to follow.",
"is_bot": false,
"headline": "docs: record PR-77 retrieval bias measurement (evidence-first)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-08T12:03:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "494007e65b871d01a61078d00e84b0a2f412d967",
"body": "A get_flow selector miss now returns a recovery hint instead of a dead end:\nthe nearest flows by embedding similarity (best-effort, score-tagged), every\nknown entry_point and flow_id (the corpus is small), and a pointer to\nfind_branches for natural-language or code-symbol lookup. The nearest-flow\nse\n[…]\n already\ncarries the tool-name prefix and the hint) instead of re-prefixing.\n\nError-path only — the success path, response schema, and stored data are\nunchanged. Adds TestGetFlow_MissSuggestsRecovery.",
"is_bot": false,
"headline": "feat(flow): make get_flow selector misses self-correcting",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-08T02:31:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fe40e76d92c479aec9c72268f0b243e3e9d8fe9b",
"body": "… (#16)\n\n* feat(embed): default to ollama/bge-m3 and add qwen3-embedding options\n\n- Switch the default --embedder from mock to ollama, falling back to\n bge-m3 when --model-name is not given\n- Change registry DefaultModelName to bge-m3 so bgeonnx shares the\n same default model\n- Register qwen3-embe\n[…]\noints at the dataset root; the ckg graph is read from\n$CKG_DIR/graph-db/ and the vector index is written to\n$CKG_DIR/vector-db/ (sibling layout), instead of assuming graph.db\nsits directly in CKG_DIR.",
"is_bot": false,
"headline": "feat(embed): default to ollama/bge-m3 and add qwen3-embedding options…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-05T01:05:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "73e0763c023751002b11d3994abfeea00d497371",
"body": "Replace the \"dark circle / light circle\" wording with plain \"circle\"\ntinted in the exact fill colors the chart uses for top-5 (#d93025) and\nranks 6+ (#f3a29b) — the color itself now carries the meaning.",
"is_bot": false,
"headline": "fix(web/viewer): color the hit-legend words with the actual chart colors",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-03T08:06:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "30bca3d9b4254c164a274af36e0b4f8e68250c07",
"body": "…arity matrix, axis/EVR metadata",
"is_bot": false,
"headline": "feat(web/viewer): Atlas v2 — high-dim k-means cluster coloring, simil…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-03T05:46:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "990126ac5a03e842611961c8cb823a9c8765724b",
"body": "…earch\n\nInteractive viewer for the ckv index: exports all chunk embeddings from\nvector.db (sqlite-vec shadow tables, no extension needed) through a\nPCA top-3 projection into a dependency-free canvas 3D scatter, colored\nby category with drag-rotate/zoom/hover.\n\nSearch is performed by the REAL ckv eng\n[…]\n same PCA\nspace (◇ marker), and list ranked citations with snippets.\n\nConfig is env/flag only (CKV_DB, CKV_BIN, CKV_OLLAMA_ENDPOINT) — no\nmachine-specific paths in code; generated data/ is gitignored.",
"is_bot": false,
"headline": "feat(web/viewer): add ckv Atlas — 3D embedding map with real-engine s…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-02T12:05:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "370227424b4266a4daf92cc7719c3c5aa9518c6d",
"body": "CKS confirmed the flow tools are wired through its surface: an in-process\nckvclient.FlowClient over pkg/ckv.Engine plus four cks.context.* MCP tools\n(cks surface 13->17), with the budget/canonical_id adjustments absorbed\ncks-side so no CKV change is required. Notes an optional, non-blocking\nrequest to carry canonical_id on flow steps, and the remaining CKS T5/T6\ndataset-swap and live e2e steps.",
"is_bot": false,
"headline": "docs(coordination): record CKS Phase D surface exposure (§9-R2)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-07-01T12:07:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b8e9622aa4e2bdcc00da0d1c3678024d43690d7b",
"body": "…tern\n\nAdd the flow-aware section for get_flow / expand_flow / find_branches /\nget_invariant_enforcement with in/out schemas and scenarios, update the tool\ncount from 15 to 19 and the classification table, and add a symptom-to-cause\nmulti-hop pattern using the flow tools. Bump doc version to 1.1.",
"is_bot": false,
"headline": "docs(mcp-tools): document the four flow-aware tools and diagnosis pat…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T11:27:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f299754f079eac6d02eb47d6c325a9271af7543b",
"body": null,
"is_bot": false,
"headline": "docs: record Phase D CKV-side complete (4 flow tools, MCP 15->19)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T11:14:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5c35aedabe76e2779e5bb8b1d78c6481caae5e14",
"body": "…ranches/get_invariant_enforcement)\n\nImplement the four CKV-side flow tools over the curated flow corpus per the\n§9.1 contract: store queries (FlowChunks, CuratedInvariant), an in-memory flow\nmodel with call-order topological sort (cycle-safe), engine methods, pkg/ckv\nre-exports for in-process cks c\n[…]\nindex — get_flow ep-cli-init returns 5 steps\nrooted at main.initGenesis@chaincmd.go:191, INV-CONSENSUS-01 lists 4 sites, and a\nKorean symptom query surfaces the digest-mismatch branch at commit.go:96.",
"is_bot": false,
"headline": "feat(flow): add Phase D flow-aware tools (get_flow/expand_flow/find_b…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T11:13:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0b09b76601159a344cffb1ee4eec72b5b20fb413",
"body": "…rompt\n\nDefine the four flow-aware tools (get_flow/expand_flow/find_branches/\nget_invariant_enforcement) with concrete in/out contracts grounded in the\npersisted flow_meta/enforced_at data, and a CKS kickoff prompt asking CKS to\nconfirm the contract and own the cks_context_* surface exposure (D-4, agreed\nPhase 2 deliverable) now that ckg's graph and ckv's flow ingest are done.",
"is_bot": false,
"headline": "docs: add Phase D flow-tool contract (CKV proposal) and CKS kickoff p…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T10:19:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a7126044050fbaa633a56a205366b8b9fd0d9a65",
"body": "…e in handoff",
"is_bot": false,
"headline": "docs: mark semantic validation (10/10) and build-knowledge.sh complet…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T10:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e05185b557fcb4f85edc30294f7545a90d448b09",
"body": null,
"is_bot": false,
"headline": "docs: supersede §8-R with complete pr-77-2 index (10/10 bridge, new sha)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T09:01:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5cb912373ef72e8186c6097f74ce33c71a3e38d3",
"body": "…ic validation\n\nAdd scripts/build-knowledge.sh (flow-ingest Phase E/F): one command that builds\nthe vector.db with the full bridge recipe (--ckg + --files-from + --docs +\n--flow-corpus, bge-m3), verifies the manifest and canonical_id match rate, then\nruns paraphrased Korean Jira-style queries (scrip\n[…]\nidges 10/10 — the two recovered queries are\nexactly the ones the curated flow steps disambiguate (initGenesis->chaincmd.go,\nfillTransactions->miner/worker.go), proving the human-wording layer's value.",
"is_bot": false,
"headline": "feat(scripts): reproducible knowledge-DB build + human-wording semant…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T08:59:18Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2498d9c455ecae60fda3436fd83db413d63ccf7a",
"body": "…uild\n\nUpdate §1-R4 and the §8 CKG→CKV/coding-agent prompts from the superseded whole-tree\n/tmp graph (sha 16ee6fb7, go/sol/ts/proto) to knowledge-data/pr-77-2/graph.db\n(sha 806e03fa, schema 1.23, go+sol with tests, no ts/proto). Narrow the match-rate\ndenominator to go+sol and add the --src/--files-from CKV must match. Flag the prior\nCKV reply (aligned against the old graph) as superseded — re-align against pr-77-2.",
"is_bot": false,
"headline": "docs(coordination): repoint canonical graph to the filtered pr-77-2 b…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T07:57:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f614f58b1d92de35af33c4b55ecaa615152affd",
"body": null,
"is_bot": false,
"headline": "docs: mark reindex-A (pr-77-2 bge-m3) complete in handoff",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T07:49:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7e7795100b7d81515d61d1a179c5399a130acab",
"body": "…ion doc\n\nRecord the regenerated ckv vector.db aligned to the new pr-77-2 ckg graph\n(schema 1.23, test-inclusive go+sol filter matched to ckg's scope): path,\nsha256, bge-m3@1024 embedder, 15,575 chunks, and 94.6% canonical_id inheritance\nover go/sol symbol chunks (>=90% target met).",
"is_bot": false,
"headline": "docs: publish pr-77-2 ckv artifact (bge-m3, 94.6% match) to coordinat…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T07:49:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "32e67873ebeeb3de20bd8aa71b7e5c30c7e0cc61",
"body": "Add §8 to the coordination doc with the canonical-graph alignment result\n(match rate 13472/14273 = 94.4%, >=90% target met; schema_version >= 1.19 gate\nimplemented; integration fixture CKV half), and mark the items done in the SoT\nhandoff.",
"is_bot": false,
"headline": "docs: record CKV match-rate result (94.4%) and schema-gate completion",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T03:32:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35326e579820644aa084de47e4c45bf6bc9c0c30",
"body": "…+ integration fixture\n\nImplement the agreed D-2 gate now that ckg publishes schema_version in the\ngraph's in-db key/value manifest table: read it and require major.minor >= 1.19\n(integer compare, so 1.9 < 1.19), falling back to the population probe for older\ngraphs without that table. Add the CKV h\n[…]\nsymbol\nchunks inherit canonical_id at a 94.4% match rate (13472/14273), exceeding the\n>=90% target; the remainder are package-level var/const blocks CKV chunks\ndifferently than ckg's per-symbol nodes.",
"is_bot": false,
"headline": "feat(ckgalign): gate canonical_id on manifest schema_version >= 1.19 …",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-30T03:29:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1e73afe500d7ec13ae7631f127c32ecf2c7ac2fc",
"body": "Add section 8 with copy-paste prompts now that the CKG-side work is done\n(ADR-0002 determinism, ADR-0003 Postgres deprecation, canonical graph published,\nintegration-fixture CKG half). Ask CKV to align against the published canonical\ngraph, switch the ckgalign gate to schema_version >= 1.19, measure\n[…]\nted/synthetic\nmethods excluded), and add the CKV half of the integration fixture. Ask\ncoding-agent for the source of the ~23% measurement (D-5) and note the canonical\ngraph is ready for the PR-77 A/B.",
"is_bot": false,
"headline": "docs(coordination): add CKG follow-up requests to CKV and coding-agent",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T12:33:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "416602c254e9366cef5ae29847a6b8945f7fc6cf",
"body": "…publication\n\nReflect CKG's replies: D4 closed without code change (signature/doc_comment are\nalready FTS-indexed via nodes_fts, proven by PR #40), and ADR-0002 (deterministic\nproduction-package ownership, schema 1.23). Publish the canonical measurement\ngraph (commit 0bf2f4d1b, schema 1.23, sha 16ee6fb7..., 245272 nodes) that all\nthree consumers point at, and pin the match-rate denominator to shared-language\ncanonical_id-bearing symbols, excluding proto and promoted/synthetic methods.",
"is_bot": false,
"headline": "docs(coordination): record CKG D4 closure, ADR-0002, canonical graph …",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T12:17:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6e37a8d0023bd1726a78a11a2e56afde98157f40",
"body": "…lysis\n\nMark Phase B complete in the SoT handoff and flow-ingest plan, and add the\nDB-generation consistency finding (§3.5): the pr-77 index and a bare session\nbuild are each missing half of the human-wording->code bridge (pr-77 lacks the\n.claude/docs human docs; the bare build lacks canonical_id). \n[…]\n the proven\ncanonical recipe (--ckg + --files-from + --docs + --flow-corpus), where each\nmissing input lives under github/, and that codifying it is flow-ingest Phase E\n(glossary wiring is CKS-owned).",
"is_bot": false,
"headline": "docs: record flow-corpus Phase B done + DB-recipe consistency gap ana…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T12:07:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "db6789a3b6418a4dab8f109c56053943c548be41",
"body": "Wire the flow corpus into the build: --flow-corpus loads corpus.jsonl through\ninternal/flowcorpus, embeds the flow_step/flow_spine/curated-invariant chunks,\nand persists their structured metadata. The store now reads/writes the\nflow_meta, enforced_at, and provenance columns (insert + both scan paths\n[…]\nedded (1 step skipped — missing line — with a warning),\nmetadata round-trips, and citations resolve. Semantic retrieval quality needs a\nreal embedder (bge-m3); mock only exercises the structural path.",
"is_bot": false,
"headline": "feat(build): ingest curated flow corpus via --flow-corpus (Phase B2)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T12:02:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "72ef76f64a8fb112ba5c3d2e90a430c3f7e7af35",
"body": "…(Phase B1)\n\nAdd internal/flowcorpus: parse a curated flow corpus (corpus.jsonl) into\nChunkFlowSpine/ChunkFlowStep/curated-ChunkInvariant chunks. Step embed text =\nprose + symbol + branch conditions (so a symptom phrased as a failure condition\nretrieves the step), cited at the real file:line; flow/i\n[…]\n unknown records are skipped with warnings. Tested against a mini fixture\n(counts, embed text, citations, unique IDs). The human-wording->code-keyword\nbridge this builds is wired into the build in B2.",
"is_bot": false,
"headline": "feat(flowcorpus): parse corpus.jsonl into flow/step/invariant chunks …",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T11:52:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8891ce47cc1d10f5781a75493241ab65be17beb5",
"body": "Record Phase A done (types + migration 004) in the SoT handoff and the\nflow-ingest plan, with the two-way validation against go-stablenet @ 0bf2f4d1b\n(fresh build) and a pr-77 index copy (003->004 upgrade).",
"is_bot": false,
"headline": "docs: mark flow-corpus Phase A complete with validation record",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T11:39:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "71585723a9bdedbc7a0325c1f1a46c0fdd4cd4d3",
"body": "…on 004\n\nPhase A (Schema-First) of the flow-corpus plan: add flow_step/flow_spine\nchunk kinds; FlowStepMeta/FlowSpineMeta/Branch/EnforcePoint types; chunk\nfields FlowStep/FlowSpine/Provenance/EnforcedAt (all omitempty, additive);\nand migration 004 adding flow_meta/enforced_at/provenance columns (NOT\n[…]\n-test-3): fresh\nmock build applies 000..004 with the new columns present (19,605 chunks),\nand a copy of the pr-77 index upgrades 003->004 with a .bak backup, 15,575\nrows intact, and re-run is a no-op.",
"is_bot": false,
"headline": "feat(types): add flow-corpus chunk kinds, metadata types, and migrati…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T11:37:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5ee66f83428cbec9152561f86b1f00636af4a5c4",
"body": "… presence\n\nA ckg graph at cache SchemaVersion 1.16-1.18 has the canonical_id column but\nno values (populated only from 1.19), so the prior column-existence probe let a\nbuild inherit empty join keys silently. Probe for an actual non-empty value and\nexpose Index.CanonicalAvailable(); the builder now \n[…]\n index is never shipped looking aligned when its cks FindByCanonicalID join is\nunavailable. Asserting CKG's published manifest schema_version >= 1.19 at the\nwiring layer remains a follow-up (ADR-007).",
"is_bot": false,
"headline": "feat(ckgalign): gate alignment on canonical_id population, not column…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T11:05:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3ae0bcb94f1338f7ca000fcca56bd5e683db29a0",
"body": "Capture the four-session decision that canonical_id is the join key (no\nseparate symbol-id normalization, closing B7), with the schema >= 1.19\npopulation gate and the @<line> caveat, and the language-scope note for\nmatch-rate measurement.",
"is_bot": false,
"headline": "docs(adr): record canonical_id as the CKG/CKV join key (ADR-007)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T10:56:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "175a3030a8f112deed619dea4ad177aafe43f7c9",
"body": "…ence\n\nAdd session-handoff-2026-06-29.md as the new single entry point: covers PR\n#7..#15, the four-session (CKG/CKV/CKS/coding-agent) coordination with seven\nagreed decisions and the two vision guardrails, the updated remaining-work\nlist, and the doc-drift fixes. Repoint the docs index SoT and stale handoff\nreferences to it; the 2026-06-15 handoff is now archived.",
"is_bot": false,
"headline": "docs: promote 2026-06-29 handoff as SoT integrating 4-session converg…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T10:53:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "612f6800bc3dba63203b75ff0539fbb005889439",
"body": "…ow-ups\n\nRecord the CKG-session answers in the shared coordination doc: 1-R2 decides the\ncoding-agent D-1..D-5 items (pin reindex to 0bf2f4d1b, confirm schema >= 1.19,\nparity split, D-5 not a supersession), and 1-R3 accepts the post-reply\nconvergence points (CKG is the sole producer of the LANG=auto canonical graph.db,\nmatch-rate scoped to shared languages with proto excluded, one embedding-agnostic\ngraph build across the bge-m3/Qwen3 A/B).",
"is_bot": false,
"headline": "docs(coordination): add CKG replies (1-R2, 1-R3) on D-1..D-5 and foll…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T10:33:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0dbf1bd453a73e2a6ee4cf1818f0dd90fb6dc52e",
"body": "CKS confirmed D-1..D-5 plus R1/R2, so all five sessions now converge. Record\nCKV's acceptance of pointing at CKG's canonical graph (no independent rebuild)\nand add a language-scope refinement: CKV parses go/sol/ts/js/md but not proto,\nso the CKG<->CKV match rate must be scoped to shared languages (exclude proto)\nwith an agreed denominator. Add a convergence-status table: seven core\ndecisions agreed, two measurement details outstanding.",
"is_bot": false,
"headline": "docs: accept CKS convergence and add language-scope refinement",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T10:25:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b96e2b8622a580a5c7142589e90606f90beac357",
"body": "Record CKV's call on the coding-agent decisions (pin reindex to 0bf2f4d1b\nwith a two-model A/B, gate ckgalign on schema >= 1.19, keep get_invariant_\nenforcement in Phase 2, defer D-5 to CKG) and add a vision-alignment section\nthat judges the converging consensus against the documented north star. Fl\n[…]\ning embedding\ndimension by convenience (R1) and deferring flow/invariant exposure (R2).\nAdds a follow-up prompt asking CKS to confirm D-4 scheduling and all sessions\nto sign off on the two guardrails.",
"is_bot": false,
"headline": "docs: add CKV decisions on D-1..D-5 and a vision-alignment check",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T09:00:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "05574577b2deb61ae004124e62bf5ddaf8c1a2c6",
"body": "…cisions\n\ncoding-agent answers §3 (it consumes only the CKS 13-tool surface, not CKV\ndirectly; bench measures total-cost-to-fix, not recall@k) and raises five\ndecisions that must be settled before Phase 2 implementation to avoid conflict:\nD-1 unify the Phase 2 reindex on the PR-77 buggy-parent commi\n[…]\ninvariant tools\nneeding CKS-surface exposure), D-4 schedule-or-defer get_invariant_enforcement\n(the code-derived implementation-invariant enabler), D-5 confirm whether ckg\nR06 supersedes graph-gap P3.",
"is_bot": false,
"headline": "docs(coordination): record coding-agent §3-R reply + cross-session de…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T08:46:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "578a67faa0da452efc7480fdc6fc9f1ad74a6572",
"body": "Fold the CKG (§1-R) and CKS (§2-R) session replies into the coordination\ndoc: canonical_id is the agreed B7 join key (value populated only at cache\nSchemaVersion >= 1.19, current 1.22), CKG owns BM25 (ADR-003 confirmed) and\ncan supply control-flow nodes for flow-corpus Phase 2, and CKS owns RRF fusion\nwith flow orchestration as net-new work. Corrects the >= 1.16 gate to >= 1.19.",
"is_bot": false,
"headline": "docs: record CKG and CKS coordination responses",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T08:23:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1bcc95c7ea44954559ce9c55cbcb397b32fdbfde",
"body": "CKG replied to the §1 prompt: join key = canonical_id; values populate only\nat cache SchemaVersion >= 1.19 (not 1.16 — the column appears at 1.16 but is\nempty until a 1.19+ rebuild), so a PRAGMA column probe is not sufficient and\nmust gate on >= 1.19 / current schema (1.22). Fix the three stale >= 1.16\nreferences and add the CKG reply block (Q1-Q4 + decisions).",
"is_bot": false,
"headline": "docs(coordination): record CKG reply, fix canonical_id population gate",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T07:59:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "83b963fa8a18cee778e2044c28fe5126070cc5c8",
"body": "Capture ready-to-paste prompts to align the three sessions on the shared\ndecisions blocking CKV's remaining work: embedding-model swap + full reindex,\ncanonical_id/symbol-id join key (B7), and flow-corpus responsibility split.\nRegisters the doc in the docs index.",
"is_bot": false,
"headline": "docs: add cross-session coordination prompts for CKG/CKS/coding-agent",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-29T07:33:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "44cc9e088e51325d00990a96c9ac138bb724f120",
"body": "…(#15)\n\nThe manifest hardcoded ckv_version to \"dev\" even on ldflags-stamped binaries,\nand the ~/.cache/ckv/models path was computed in three places.\n\nThread the ldflags-injected cmd/ckv.Version through build.Options into the\nmanifest (empty falls back to \"dev\"), so an index records the binary that built\nit. Make registry.ModelConfig.DefaultModelDir the single source of the cache\nlayout: bgeonnx resolves its model dir through it, and the unused\nmodel.CacheDir helper (and its test) are removed.",
"is_bot": false,
"headline": "chore(ckv): record the build version and dedupe the model-cache path …",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-25T13:04:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd3f1673d74de88c2a823e95f97c0fc97456a540",
"body": "build mutates vector.db in place and only wrote the manifest after the embed\nloop, so a build that failed partway left a partially-written index paired with\nthe previous, now-stale manifest — query.Open would treat it as complete and\nreturn results over a half-built index.\n\nTreat manifest.json as th\n[…]\nif it fails the index reads as not-ready (Open returns ErrNotFound -> \"run\nckv build\"). A successful run re-commits it via Save. Adds manifest.Remove and\na test that a failed build leaves no manifest.",
"is_bot": false,
"headline": "fix(build): drop the manifest until a build completes (#14)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-25T12:50:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f15be9c5cd210ebe9a56e866d43c08bd2f089953",
"body": "The Ollama adapter hardcoded MaxInputTokens to 8192, ignoring the per-model\nlimit the registry already records (the bgeonnx backend honors it). Swapping\nthe embedding model therefore kept bge-m3's truncation budget regardless of\nthe new model's context window.\n\nResolve MaxInput from the registry at \n[…]\n the registry does not know. The adapter resolves it\nitself, so every caller (the ckv CLI and cks) becomes model-aware with no\nextra wiring. bge-m3 still maps to 8192, so current setups are unchanged.",
"is_bot": false,
"headline": "feat(ollama): derive MaxInputTokens from the model registry (#13)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-25T12:38:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "485b6446dc064dde5fa1e6c6fc4bcb227322d658",
"body": "Add EmbeddingIdentity (provider, model, dim, pooling, normalization) and a\nChecksum to the Embedder contract so every backend reports the space it\nproduces, sourced from the model registry rather than hardcoded. The build\nrecords the checksum in the manifest and query.Open rejects an index opened\nwi\n[…]\neaningless\nsimilarity scores. Reindex applies the same guard to avoid mixing spaces in\none store. Indexes built before the checksum existed fall back to the\nname+dim checks, so there is no regression.",
"is_bot": false,
"headline": "feat(embed): enforce embedding-space identity on index open (#12)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-25T06:45:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e5b138058137824202b376c23c353cbd26a29cb1",
"body": "Add a dated snapshot evaluating embedding models more precise than bge-m3\nthat run on Mac mini M4 (24GB) with clean (Apache 2.0) licensing. Recommends\nQwen3-Embedding-4B (Q4) as the balanced pick, 0.6B as the 1024-dim drop-in,\nand 8B for max precision. Includes project-specific migration checklist\n(reindex, MRL dimension handling, instruction-aware query encoding, Ollama\nPoC path) and registers the doc in the docs index.",
"is_bot": false,
"headline": "docs: recommend Qwen3-Embedding as bge-m3 upgrade for M4 (24GB)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-22T05:08:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b99cd60d49a3d137846489a4a1e183e3cb7f217c",
"body": "Moves the older design note and 2026-05 session handoffs under\ndocs/archive/, adds a docs/README.md index, and refreshes SCHEMA, the\nADR set, backlog, the installation guide and the plan to match the\ncurrent state. Content only — no code or behavior changes.",
"is_bot": false,
"headline": "docs: archive stale session handoffs and refresh docs index (#11)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-21T10:32:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2d60405b81eb5fff235430cfcef8220732a28bcc",
"body": "…#10)\n\nCitation enforcement only joined each hit's File against the code\nsrcRoot. Doc/markdown chunks indexed via `ckv build --docs` cite files\nrelative to a corpus dir (recorded in manifest.DocsRoots), not srcRoot,\nso every domain-corpus chunk failed verification and was dropped — a\nquery for them \n[…]\nxisting callers unchanged); engine.Search passes\nmanifest.DocsRoots. Doc chunks carry no commit hash, so the stale check\nis naturally skipped for them.\n\nAdds TestEnforceCitationsAt_DocsRootResolution.",
"is_bot": false,
"headline": "fix(query): resolve doc/corpus citations against manifest DocsRoots (…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-21T10:22:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c554cc5d5cd211c78055c57a3040c90d7138b7ef",
"body": "symbol-identity Phase 2 (ADR-0001): a CKV chunk now carries ckg's globally-unique\ncanonical_id, copied verbatim from the positionally-aligned ckg node, so cks can\nFindByCanonicalID against ckg with a build-stable key instead of the fragile\npositional node id. Additive; embed text is unchanged, so no\n[…]\ngner tests still pass via\n the column probe (their fixtures predate canonical_id).\n\nPopulation requires aligning against a reindexed ckg graph (schema >= 1.16);\nolder graphs leave canonical_id empty.",
"is_bot": false,
"headline": "feat(align): inherit ckg canonical_id onto chunks (Phase 2) (#9)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-19T08:06:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "163493557e3200af63abd0c1481a1e54ee087cc1",
"body": "Add two design documents for integrating go-stablenet's curated flow\ncorpus (corpus.jsonl: 79 steps, 18 flows, 16 invariants) into CKV so an\nLLM can do causal root-cause analysis instead of grep-style static search.\n\n- flow-knowledge-design-2026-06-16.md: capability gap analysis (CKV vector\n / CKG \n[…]\nema,\n parser/ingest, alignment, four flow-aware MCP tools, build orchestration,\n evaluation) with affected files, DoD, and risks. Migration runner\n auto-pickup of new SQL verified against go:embed.",
"is_bot": false,
"headline": "docs: add flow-corpus knowledge design + ingest implementation plan",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-17T04:53:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "78728ecbb2cc2d1dc1b4ae0bd65d62f696804386",
"body": "Sync the handoff SoT to HEAD (0c8a28c). The 2026-05-29 doc stopped at\n2026-06-01 and missed the June R1' refactor cycle (PRs #1-#6) plus the\nmachine path change. The new doc records the merged work (ollama embedder\npromotion, structured Freshness, governance-test invariants, LLM excision,\nckgalign, --docs/--files-from flags, PR #5 revert), the verified build/test\nbaseline, and the updated remaining-work list. Mark the old doc as archive\nwith a pointer to the new SoT.",
"is_bot": false,
"headline": "docs(handoff): add 2026-06-15 session handoff, archive 2026-05-29",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-16T04:47:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "460a718b2d3d43a33e4d74cd0ae27e0102673aa7",
"body": "downloadFile used http.Get with no timeouts, so a stalled connection or an\nunresponsive HuggingFace server could hang a model fetch indefinitely. Use a\ndedicated http.Client whose transport bounds connect, TLS handshake, and\nresponse-header time so an unresponsive server fails fast, with a generous\noverall backstop against a mid-stream stall — without capping the transfer of\nlarge (hundreds-of-MB) model files.",
"is_bot": false,
"headline": "fix(model): bound model-download network phases with timeouts (#8)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-16T01:26:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ac34a22f39d30acaf695fef47b4bf808f0f1e57a",
"body": "…e shape (#7)\n\nThe Ollama adapter used http.DefaultClient (no timeout) and probed with\ncontext.Background() at Open, so a daemon that accepts the connection but never\nresponds (model loading, stuck GPU) would block embed calls, the startup\nprobe, and any consumer that opens the adapter — indefinitel\n[…]\nted\ndirectly.\n\nAlso validate that the response embedding count matches the input batch, so a\nshort response fails at the boundary instead of being paired positionally with\nthe wrong chunks downstream.",
"is_bot": false,
"headline": "fix(ollama): bound embed requests with a timeout and validate respons…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-16T01:01:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0c8a28cba9825678e392a8b67e46c9d60ff2603e",
"body": "… entries\"\n\nThis reverts commit ea1175b and restores the semantic path classifier in\npolicy/stablenet.yaml. The regenerated category set introduced a catch-all\n\"**\" path that, under the classifier's first-match ordering, captured nearly\nevery file into one bucket, so files stopped resolving to their\n[…]\nol, cli, ...) and the policy coverage tests failed.\nThe invariant knowledge that regeneration carried already lives in the domain\nand graph policies, so this revert loses nothing the classifier needs.",
"is_bot": false,
"headline": "Revert \"chore(policy): regenerate stablenet view from 36 verified cks…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-10T12:47:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a43364e2fe84864ad5aa1aa73ecb9f44f338af49",
"body": "Introduces an opt-in include/exclude allowlist that restricts which files\nreach the embedder across all supported languages (Go, Solidity, TypeScript,\nJavaScript, Markdown), mirroring the --files-from feature in the sibling\ncode-knowledge-graph repo.\n\n- internal/filterlist: new package; JSON schema \n[…]\nl/build: loads the filterlist and passes it to discover.Walk.\n- cmd/ckv/build.go: adds the --files-from <path> flag.\n\nExisting --exclude / .ckvignore behavior is unchanged when --files-from is absent.",
"is_bot": false,
"headline": "feat(discover): add --files-from allowlist flag to ckv build (#6)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-10T12:03:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ea1175b7920a2963df7f67ab3d8bcb5d5defa2c4",
"body": "… (#5)\n\nOutput of cks-domain-sync after the P0 #8 promotion session\n(code-knowledge-system PR for context). The policy view now reflects\n36 verified entries (was 7) grouped into 14 categories — codegen\nemits one category per (subsystem, knowledge_type) pair that has\nverified entries; mostly-decorati\n[…]\nmain-sync \\\n -entries docs/domain-knowledge/projects/go-stablenet \\\n -ckv-out ../code-knowledge-vector/policy/stablenet.yaml \\\n -ckg-out ../code-knowledge-graph/policies/stablenet/policy.yaml",
"is_bot": false,
"headline": "chore(policy): regenerate stablenet view from 36 verified cks entries…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-07T18:02:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2c87393fd8a742fe6100761ecb79418f12f613a8",
"body": "…(#4)\n\nckv build accepted --ckg <dir> for years, but the flag was a noop:\nopts.ckgPath was parsed and then never passed to the builder, so\nchunks.ckg_node_id was always empty regardless of whether the operator\npointed at a real ckg graph. The \"1:1 alignment when CKG path is\nprovided\" promise on pkg/\n[…]\nce (fail-fast\non Open error), then the source chunk loop stamps each chunk's\nCKGNodeID before embedding. Docs-corpus chunks are skipped (ckg has\nno node for curated markdown). 11 / 11 unit tests pass.",
"is_bot": false,
"headline": "feat(ckgalign): in-process ckg node alignment for chunks.ckg_node_id …",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-07T16:41:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8886ee4b26089f00c6835229ed41efac12412b4a",
"body": "* Add DocsRoots to the manifest\n\n* Index --docs corpus roots as domain-tagged markdown\n\n* Tag docs chunks in category counts and document the policy skip\n\n* Add ckv build --docs flag",
"is_bot": false,
"headline": "Add ckv build --docs flag for out-of-tree markdown corpora (#3)",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-05T06:43:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "23b22f75123000b0e17119dfc613f58ffbe2df83",
"body": "…le targets (#2)\n\nCompletes the ckv-side artifact for M2.b/c (02-ckv-refactor.md §6) that the prior\nPR deferred as a doc note only. The ~10h bge-m3 embed still runs on an operator\nmachine with Ollama, but the VERIFICATION is now reproducible committed code\n(mirrors ckg's gated gsn_smoke_test.go), no\n[…]\nlect the R1′ excision (LLM judging → agent layer).\n\nVerified: build/vet exit 0, gofmt clean, go test ./... ok, smoke compiles +\nSKIPs without CKV_GSN_INDEX. No remaining functional --judge references.",
"is_bot": false,
"headline": "test(ckv): committed M2.b/c bge-m3 smoke + fix excision-broken Makefi…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-02T12:49:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "abb5ae2b2792d9ce4f5cf3dce16e83269bacc9b0",
"body": "…macOS runner)\n\nThe macOS arm64 CI job failed at the Test step with:\n\n ld: library 'tokenizers' not found\n FAIL github.com/0xmhha/code-knowledge-vector/internal/embed/coreml\n\ninternal/embed/coreml is darwin-only and links daulet/tokenizers's CGO\nruntime, which depends on libtokenizers (HuggingF\n[…]\nrom\ncoreml_other.go.\n\nThe exclusion is applied uniformly (not gated on runner.os) so the\ntest command stays single-shape; on Linux it is a no-op (coreml has\nnothing test-runnable in the !darwin stub).",
"is_bot": false,
"headline": "ci: skip internal/embed/coreml in test step (libtokenizers absent on …",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-06-02T12:43:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c46bf8a9e29f3affedd14901312f4237c6b008de",
"body": "…ess + governance-test invariants + LLM excision (#1)\n\n* refactor(embed): promote internal/embed/ollama → pkg/embed/ollama (G1, gates cks)\n\nMove the pure-HTTP Ollama embedder out of internal/ so external modules\n(cks, doc 03) can construct a real Embedder in-process with no CGO and no\nckv subprocess\n[…]\nCI gate. Run separately:\n ckv build --embedder=ollama --model-name=bge-m3 --src <go-stablenet> --out ./ckv-stablenet\nthen assert manifest embedding_model=bge-m3 dim=1024 and Engine.Freshness().Fresh.",
"is_bot": false,
"headline": "R1′ ckv refactor: in-process ollama embedder (G1) + structured Freshn…",
"author_name": "mhha(WM)",
"author_login": "0xmhha",
"committed_at": "2026-06-02T12:12:43Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "38561a011be20d959a7702c19e8cd3f7696986c9",
"body": "…features\n\nUser decision 2026-06-01: hold every §5 task (CKS-1, CKV-E1/E2/E3,\nmeasurement queue). Next session starts with a cross-repo review of\nCKV + CKS + CKG, then a formal refactor plan, then the refactor\nitself. New feature work resumes only after that cycle.",
"is_bot": false,
"headline": "docs(handoff): mark next-session intent — refactor review before new …",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-06-01T08:19:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9eac2f6f5d9d2e848d1c75581d9c019d08ecd37f",
"body": "Session handoff section 3 metrics and section 4 + 5.2 status updated\nafter CKV-Q1 (545a89e) and CKV-Q2 (02bb24b) shipped. Both reached\ntheir targets — unclassified 21.2% → 6.9%, invariant 38 → 163. The\nnext-action queue's section 5.2 is now empty; the largest open item\nis CKS-1 (integrate CKV's six new tools into the CKS ckvclient).",
"is_bot": false,
"headline": "docs(handoff): update with Q1+Q2 results",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-06-01T07:34:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "02bb24b872ba4467996aa1c6bf61a125a03b97c0",
"body": "…terns (Q2)\n\nThe original Tier 3 detector only matched panic(\"literal\") and\nfmt.Errorf(\"literal\"). go-stablenet uses these three Go-idiomatic\nshapes instead, none of which were flagged before:\n\n (a) panic(\"...must...\") — already worked\n (b) panic(fmt.Sprintf(\"...must...\"))\n (b) panic\n[…]\nnvariant chunks rise\nfrom 38 to 163 (+329%). Distribution: Tier 1 markers unchanged at 38,\nTier 3 contributes 125 new — errors.New 71, fmt.Errorf 45,\nplain panic 6, panic+fmt.Errorf 2, panic(ident) 1.",
"is_bot": false,
"headline": "feat(invariant): extend Tier 3 heuristic to wrapped + ident panic pat…",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-06-01T07:30:21Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "545a89edc628640efb6446bc343e1f4ff5f61f64",
"body": "evm, rawdb, types, rlp, accounts, tracers join the existing 13\ncategories. Each ships with also_review / required_tests / watch_out\ndrawn from the go-stablenet code paths the V1 measurement surfaced\nas the largest unclassified buckets:\n\n accounts (1141 chunks, 4.4%) — accounts/* keystore + hardware\n[…]\nracers/\n rlp (280, 1.1%) — rlp/\n\nUnclassified ratio drops 21.2% → 6.9% on the go-stablenet build\n(target was 12%). verify_test.go gets 12 new representative paths\ncovering each category.",
"is_bot": false,
"headline": "feat(policy): add 6 categories to stablenet.yaml (Q1)",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-06-01T07:28:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4621b8d5d3c22c5887c5f23d916ad431cb9569b0",
"body": "session-handoff-2026-05-29.md is the single entry point for resuming\nwork on another machine or in another session. It lists every commit\nin this session (15 new), the completed Schema-First plan tasks, the\nV1/V2/V3 verification results against go-stablenet, the CKS repo's\nactual state (11 tools, co\n[…]\n pipeline, and\nthe vocab + inventory layers — none of which were in my draft. The\ndraft's hypothetical sections on 2-tier cache, query_history schema,\nand token accounting are kept for possible reuse.",
"is_bot": false,
"headline": "docs: 2026-05-29 session handoff + archive hypothetical CKS draft",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-05-29T07:05:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8183cb82b53ed922bc78ea9346faa40fed1f35f4",
"body": "Defines the entry point for the code-knowledge-system repo: scope,\ntool taxonomy (pass-through vs flow), the worked algorithm for\ncks.flow.investigate, cache + query history schema, the additional\nCKV/CKG interfaces CKS needs, and a 5-phase implementation plan.\n\nToken-budget hypothesis: a single cks\n[…]\nall should\nreturn what 30-50 grep+read iterations cost an agent, with 80%+\ntoken savings — to be validated in Phase 4 measurement.\n\nThis is a starting point for the separate CKS repo, not code in CKV.",
"is_bot": false,
"headline": "docs: CKS orchestrator design draft (D3 architecture follow-up)",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-05-29T06:55:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8d79ead605f9808f9620cb7c9c34e1955973f844",
"body": "docs/mcp-tools.md describes every tool's input schema, response shape,\nintended use case, and a worked multi-hop pattern (jira ticket →\nnarrow → invariants → conventions → expand → explain) that coding-agent\nSKILL authors can copy.\n\ncmd/ckv/mcp.go --help long description is rewritten to group the\nto\n[…]\nthe 6 new tools land alongside the 9 existing ones without losing\ndiscoverability.\n\n.gitignore picks up the V1 verification scratch dir (ckv-stablenet/)\nso build artifacts no longer leak into commits.",
"is_bot": false,
"headline": "docs(mcp): document 15 MCP tools + refresh ckv mcp --help",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-05-29T06:52:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6421c84559f26d1a3d78c3ff02a7b4cd39b7d4dd",
"body": "- Drop unused KeywordIndex.mu (build serialization is on Engine.kwMu)\n- Simplify invariant.Extract skipTier3 derivation (was an ineffectual\n assignment overwriting itself one line later)\n- Add explicit return after t.Fatal in policy tests so staticcheck\n SA5011 (possible nil deref) does not flag t\n[…]\neck issues in the new migrate.go follow the project-wide\ndefer-Close convention used throughout store.go, manifest.go,\ndiscover.go and the embed/* adapters — left as-is to match the\nexisting baseline.",
"is_bot": false,
"headline": "fix(lint): resolve session-introduced lint warnings",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-05-29T06:29:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a7df54c1cff92be511b67c631f1db5cf324c4479",
"body": null,
"is_bot": false,
"headline": "style(cache): gofmt LRU implementation",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-05-29T06:19:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba7062ab4fd5f749fe5f0fb6f9166a4e8d893920",
"body": "cks.context.explain_match(chunk_id, intent) returns vector_score\n(cosine distance via fresh embed + KNN), keyword_score (BM25 against\nthe in-memory index plus the matched-token intersection), and the\nchunk's category/guidance/symbol. Lets the agent justify retrieval\ndecisions or debug why a chunk wa\n[…]\n enable it.\n\nBoth features round out Phase B/C of the Schema-First plan: every\nmulti-hop retrieval primitive plus an embedding cache for repeat\nqueries during a session are now available to the agent.",
"is_bot": false,
"headline": "feat(mcp,embed): explain_match tool + LRU embedding cache",
"author_name": "mhha",
"author_login": "0xmhha",
"committed_at": "2026-05-29T06:15:15Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 1,
"commits_last_year": 249,
"latest_release_at": "2026-07-18T18:06:18Z",
"latest_release_tag": "v0.1.0",
"releases_from_tags": false,
"days_since_last_push": 1,
"active_weeks_last_year": 12,
"days_since_latest_release": 6,
"mean_days_between_releases": null
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": false,
"has_contributing": false,
"health_percentage": 28,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github.com/0xmhha/code-knowledge-vector",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/0xmhha/code-knowledge-vector",
"is_deprecated": false,
"latest_version": "v0.1.0",
"repository_url": "https://github.com/0xmhha/code-knowledge-vector",
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-18T18:03:15Z",
"latest_version_yanked": null,
"days_since_latest_publish": 6
}
]
},
"popularity": {
"forks": 0,
"stars": 1,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": null,
"open_issues_and_prs": 0
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"sample"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [
"Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod"
],
"largest_source_bytes": 2567063,
"source_files_sampled": 209,
"oversized_source_files": 1,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"go.mod"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/asg017/sqlite-vec-go-bindings",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.6"
},
{
"name": "github.com/daulet/tokenizers",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.27.0"
},
{
"name": "github.com/mark3labs/mcp-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.52.0"
},
{
"name": "github.com/mattn/go-sqlite3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.14.44"
},
{
"name": "github.com/spf13/cobra",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.2"
},
{
"name": "github.com/tree-sitter/go-tree-sitter",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.25.0"
},
{
"name": "github.com/tree-sitter/tree-sitter-typescript",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.23.2"
},
{
"name": "github.com/yalue/onnxruntime_go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.30.1"
},
{
"name": "golang.org/x/sys",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.44.0"
},
{
"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": 50,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "0xmhha",
"commits": 249,
"avatar_url": "https://avatars.githubusercontent.com/u/82016792?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"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": "30 out of 30 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/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 3 contributing companies or organizations -- score normalized to 10",
"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": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 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": 9,
"reason": "1 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "e2b9c1bd30fa7adb25d60ac277c2ff9f39d62292",
"ran_at": "2026-07-24T19:50:40Z",
"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-23T08:25:27Z",
"oldest_open_prs": [],
"last_merged_pr_at": "2026-07-23T08:23:14Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/0xmhha/code-knowledge-vector",
"host": "github.com",
"name": "code-knowledge-vector",
"owner": "0xmhha"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"security": 48,
"vitality": 71,
"community": 24,
"governance": 53,
"engineering": 67
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 71,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"commits_last_year": 249,
"human_commit_share": 1,
"days_since_last_push": 1,
"active_weeks_last_year": 12
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 1 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 1
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "12/52 weeks with commits",
"points": 8.3,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 12
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "249 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 249
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "good",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 84,
"inputs": {
"releases_count": 1,
"latest_release_tag": "v0.1.0",
"releases_from_tags": false,
"days_since_latest_release": 6,
"mean_days_between_releases": null
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "1 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 1
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 6 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 6
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "cadence unknown (single release)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "release_cadence_unknown",
"params": {}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 24,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 1,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 1
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "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 (AGPL-3.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "AGPL-3.0"
}
}
],
"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": 53,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 20,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 3 contributing companies or organizations -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 72,
"inputs": {
"merged_prs": 50,
"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": "50/50 decided PRs merged",
"points": 38.2,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 50,
"decided": 50
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": "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": 47,
"inputs": {
"followers": 3,
"owner_type": "User",
"is_verified": null,
"owner_login": "0xmhha",
"public_repos": 81,
"account_age_days": 1935
},
"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": "3 followers of 0xmhha",
"points": 4.3,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 3,
"login": "0xmhha"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "81 public repos, account ~5 yr old",
"points": 23.6,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 81
}
},
{
"code": "account_age_years",
"params": {
"years": 5
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "good",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 84,
"inputs": {
"packages": [
"github.com/0xmhha/code-knowledge-vector"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 6
},
"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 6 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 6
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "1 published versions",
"points": 4,
"status": "partial",
"details": [
{
"code": "published_versions",
"params": {
"count": 1
}
}
],
"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": 67,
"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": "1 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 1
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "30 out of 30 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": 65,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "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, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 48,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"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": "30 out of 30 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/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 3 contributing companies or organizations -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "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": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "GitHub workflow tokens follow principle of least privilege",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "1 existing vulnerabilities detected",
"points": 6.8,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 3
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 57,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 100,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [
"Makefile"
],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [
"go.mod"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "C (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C"
}
}
],
"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": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "C",
"largest_source_bytes": 2567063,
"source_files_sampled": 209,
"oversized_source_files": 1
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "C (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "1/209 source files over 60KB",
"points": 54.7,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 209,
"oversized": 1
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"sample"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "sample",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "sample"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-24T19:50:55.667641Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/0/0xmhha/code-knowledge-vector.svg",
"full_name": "0xmhha/code-knowledge-vector",
"license_state": "standard",
"license_spdx": "AGPL-3.0"
}