[agent/codex] Convention drift check. Read CLAUDE.md. Find: missing SPDX h... #9
1 changed files with 74 additions and 0 deletions
74
docs/convention-drift-2026-03-23.md
Normal file
74
docs/convention-drift-2026-03-23.md
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
# Convention Drift Audit
|
||||
|
||||
Date: 2026-03-23
|
||||
|
||||
## Scope
|
||||
|
||||
- `CODEX.md` was not present anywhere under `/workspace` on 2026-03-23.
|
||||
- This audit used `CLAUDE.md` as the available convention source.
|
||||
- The `stdlib→core.*` bucket is interpreted here as explicit stdlib wording and non-`dappco.re/go/core/*` path references that still look pre-migration.
|
||||
|
||||
## Missing SPDX Headers
|
||||
|
||||
- `CLAUDE.md:1`
|
||||
- `errors.go:1`
|
||||
- `errors_test.go:1`
|
||||
- `log.go:1`
|
||||
- `log_test.go:1`
|
||||
- `docs/index.md:1`
|
||||
- `docs/development.md:1`
|
||||
- `docs/architecture.md:1`
|
||||
|
||||
## stdlib→core.* Drift
|
||||
|
||||
- `CLAUDE.md:33` still describes `Is`, `As`, and `Join` as `stdlib wrappers`.
|
||||
- `log.go:107` still references `core/go-io` rather than a `dappco.re/go/core/*` path.
|
||||
- `docs/index.md:8` still uses the old module path `forge.lthn.ai/core/go-log`.
|
||||
- `docs/index.md:18` still imports `forge.lthn.ai/core/go-log`.
|
||||
- `docs/index.md:81` still describes runtime dependencies as `Go standard library only`.
|
||||
- `docs/index.md:86` still references `core/go-io`.
|
||||
- `docs/index.md:92` still lists the module path as `forge.lthn.ai/core/go-log`.
|
||||
- `docs/index.md:95` still says `iter.Seq` comes from `the standard library`.
|
||||
- `docs/development.md:10` still says `iter.Seq` comes from `the standard library`.
|
||||
- `docs/development.md:126` still says `prefer the standard library`.
|
||||
- `docs/architecture.md:217` still references `core/go-io`.
|
||||
|
||||
## UK English Drift
|
||||
|
||||
- `errors.go:264` uses `Initialize()` in an example comment.
|
||||
- `log_test.go:179` uses `unauthorized access`.
|
||||
- `log_test.go:185` asserts on `unauthorized access`.
|
||||
- `errors_test.go:309` uses `initialization failed`.
|
||||
|
||||
## Missing Tests
|
||||
|
||||
- `errors.go:186` has no test for the `AllOps` early-stop path when the iterator consumer returns `false`.
|
||||
- `log.go:289` has no test coverage for `Username()` falling back to `USER`.
|
||||
- `log.go:292` has no test coverage for `Username()` falling back to `USERNAME` after `USER` is empty.
|
||||
|
||||
Coverage note: `go test -coverprofile=cover.out ./...` reports `97.7%` statement coverage; these are the only uncovered code paths in the current package.
|
||||
|
||||
## Missing Usage-Example Comments
|
||||
|
||||
Interpretation: public entry points without an inline `Example:` block in their doc comment, especially where peer APIs in `errors.go` already include examples.
|
||||
|
||||
- `log.go:71` `RotationOptions`
|
||||
- `log.go:94` `Options`
|
||||
- `log.go:108` `RotationWriterFactory`
|
||||
- `log.go:111` `New`
|
||||
- `log.go:157` `(*Logger).SetRedactKeys`
|
||||
- `log.go:276` `(*Logger).Security`
|
||||
- `log.go:284` `Username`
|
||||
- `log.go:300` `Default`
|
||||
- `log.go:305` `SetDefault`
|
||||
- `errors.go:107` `Is`
|
||||
- `errors.go:113` `As`
|
||||
- `errors.go:119` `NewError`
|
||||
- `errors.go:125` `Join`
|
||||
- `errors.go:133` `Op`
|
||||
- `errors.go:143` `ErrCode`
|
||||
- `errors.go:153` `Message`
|
||||
- `errors.go:166` `Root`
|
||||
- `errors.go:181` `AllOps`
|
||||
- `errors.go:198` `StackTrace`
|
||||
- `errors.go:207` `FormatStackTrace`
|
||||
Loading…
Add table
Reference in a new issue