|
1 | | -## 2026-02-25 — Create Go how-to guide and add to navigation |
2 | | - |
3 | | -**Done:** Created `docs/howto/go.md` with a comprehensive Go how-to guide following the exact |
4 | | -structure from `docs/howto/python.md` and `docs/howto/nodejs.md`. Added the Go entry to |
5 | | -`zensical.toml` navigation after WebAssembly. All function signatures verified against |
6 | | -`packages/go/iscc.go`. |
7 | | - |
8 | | -**Files changed:** |
9 | | - |
10 | | -- `docs/howto/go.md`: Created Go how-to guide with sections for installation, runtime setup |
11 | | - (NewRuntime/Close lifecycle), all 9 gen functions (Meta, Text, Image, Audio, Video, Mixed, Data, |
12 | | - Instance, ISCC-CODE), streaming (DataHasher/InstanceHasher with chunked file reading), text |
13 | | - utilities (TextClean, TextRemoveNewlines, TextTrim, TextCollapse), algorithm primitives |
14 | | - (SlidingWindow, AlgMinhash256, AlgCdcChunks, AlgSimhash), conformance testing, and error |
15 | | - handling |
16 | | -- `zensical.toml`: Added `{ "Go" = "howto/go.md" }` to How-to Guides nav after WebAssembly |
17 | | - |
18 | | -**Verification:** All 9 verification criteria pass (file exists, install command present, NewRuntime |
19 | | -documented, GenMetaCodeV0 documented, DataHasher documented, TextClean documented, |
20 | | -ConformanceSelftest documented, nav entry present with correct path). `uv run zensical build` |
21 | | -succeeds with `/howto/go/` in output. All 14 pre-commit hooks pass. |
22 | | - |
23 | | -**Next:** Create `docs/howto/java.md` — the remaining documentation gap for binding how-to guides. |
24 | | -Or address tracked issues from issues.md (codec optimization, DataHasher buffer allocation, etc.). |
25 | | - |
26 | | -**Notes:** The Go API has a unique `Runtime` lifecycle pattern (NewRuntime/Close) not present in |
27 | | -other bindings — this is prominently documented. `GenIsccCodeV0` in Go does not expose a `bits` |
28 | | -parameter (wide is hardcoded to false). The `bits` parameters in Go are `uint32` (next.md said |
29 | | -`int32` but the actual code uses `uint32`). The streaming examples use explicit `for` loops with |
30 | | -`io.EOF` checks rather than Go's `io.ReadAll` pattern to demonstrate true chunked processing. |
| 1 | +## 2026-02-25 — Review of: Create Go how-to guide and add to navigation |
| 2 | + |
| 3 | +**Verdict:** PASS |
| 4 | + |
| 5 | +**Summary:** Created `docs/howto/go.md` with comprehensive Go how-to content covering all 10 |
| 6 | +sections specified in next.md. Added the Go nav entry to `zensical.toml`. All API signatures |
| 7 | +verified against `packages/go/iscc.go` — the advance agent correctly used `uint32` for `bits` |
| 8 | +(next.md incorrectly said `int32`) and omitted the `bits` parameter from `GenIsccCodeV0` (hardcoded |
| 9 | +to `wide=false` in Go). |
| 10 | + |
| 11 | +**Verification:** |
| 12 | + |
| 13 | +- [x] `test -f docs/howto/go.md` exits 0 — file exists |
| 14 | +- [x] `grep 'go get github.com/iscc/iscc-lib/packages/go' docs/howto/go.md` exits 0 — install |
| 15 | + command present |
| 16 | +- [x] `grep 'NewRuntime' docs/howto/go.md` exits 0 — runtime setup documented |
| 17 | +- [x] `grep 'GenMetaCodeV0' docs/howto/go.md` exits 0 — code generation documented |
| 18 | +- [x] `grep 'DataHasher' docs/howto/go.md` exits 0 — streaming documented |
| 19 | +- [x] `grep 'TextClean' docs/howto/go.md` exits 0 — text utilities documented |
| 20 | +- [x] `grep 'ConformanceSelftest' docs/howto/go.md` exits 0 — conformance testing documented |
| 21 | +- [x] `grep '"Go"' zensical.toml` exits 0 — nav entry present |
| 22 | +- [x] `grep 'howto/go.md' zensical.toml` exits 0 — nav path correct |
| 23 | +- [x] `uv run zensical build` exits 0 — site builds with `/howto/go/` in output |
| 24 | +- [x] All 14 pre-commit hooks pass |
| 25 | +- [x] No quality gate circumvention in diff |
| 26 | + |
| 27 | +**Issues found:** |
| 28 | + |
| 29 | +- (none) |
| 30 | + |
| 31 | +**Next:** Create `docs/howto/java.md` — the last remaining how-to guide gap. Or address tracked |
| 32 | +issues from issues.md (codec optimization, DataHasher buffer allocation, etc.). |
| 33 | + |
| 34 | +**Notes:** The Go guide includes an "Algorithm primitives" section that Python and Node.js guides |
| 35 | +lack — this matches what next.md requested and aligns with the Rust guide. The Go guide is ~388 |
| 36 | +lines, consistent with the ~280-350 line range of existing guides. The advance agent's memory |
| 37 | +correctly recorded that `bits` is `uint32` in Go (not `int32` as next.md stated). |
0 commit comments