dont: documentation review + repo hygiene + CI flaky test fix
Log
Session 09:10 (dont)
Ran Rule of 5 doc review across all docs/,
CONTRIBUTING.md, book.toml — found 2 critical,
4 high, 7 medium issues
Critical fixes:sources-and-status.md
and introduction.md incorrectly described dont
as a spec-only/proposed project; corrected to reflect working Rust
implementation
High fixes: evidence URI syntax inconsistency in
agent-guide.md (colon-form path:N-M →
--file --lines); added install prereqs to
tutorial.md; added standalone intro to
grounding-workflow.md
Medium fixes:purpose.md Takeaway:
headers made consistent; "A short example" rewritten as prose (not
tutorial steps); enforcement.md fundamental-limit callout
moved earlier; Answer First + wai/bd aside in
introduction.md; stale "proposed" language cleared from
research.md and book.toml
wai way 16/21 → 21/21: unset redundant
core.hooksPath; created docs/status.md and
docs/specs.md; added OpenSpec copy step to
docs.yml CI; created
.wai/resources/ubiquitous-language/ with glossary +
claim-lifecycle bounded context; added .tarpaulin.toml,
codecov.yml, coverage CI job, just coverage,
just docs alias
CI flaky test fix:conclude_produces_unique_tx_ids_under_parallel_subprocess_load
was hitting SQLITE_BUSY (code 5) — root cause:
DbInstance::new() does SQLite DDL outside the file lock;
fixed by extracting with_file_lock(path, f) as a static
helper and wrapping the entire open_dont_dir init
(DbInstance::new + ensure_schema) inside a single lock acquisition
charly-vibes #1 + charly-vibes.github.io #1: fix Pages links for
espectacular, superficies, pretender, miblioteca, tRAGar (all had active
Pages but linked to raw github.com)
CI audit: dont had a flaky test (SQLITE_BUSY under
parallel load) — skipped per user; all other repos green
Next: merge open PRs; consider cutting fabbro
v0.1.0 release to activate Homebrew/Scoop pipeline
Release pipeline audit: scanned all 26 charly-vibes
repos; found 3 Rust CLIs missing distribution setup: dont,
espectacular (binary: ah),
pretender
fabbro gap: scripts + release.yml already existed
but Formula/fabbro.rb and bucket/fabbro.json
stubs were missing from tap/bucket repos — created placeholders (0.0.0)
to be overwritten on first tag
dont: replaced outdated release.yml
(matrix/no-arm/no-Windows/no-tap) with wai-style split-job workflow;
added scripts/update-homebrew.py +
update-scoop.py; added placeholder formula + manifest
espectacular + pretender: created full release
pipelines (release.yml, update scripts, homebrew formula, scoop
manifest) from scratch; added just install recipe to
both
Clippy pre-push hooks: added
cargo clippy -D warnings to pre-push in dont, espectacular,
pretender — surfaced pre-existing errors; fixed all:
sort_by → sort_by_key (pretender ×3);
type_complexity + is_none_or (dont ×3); dead
code annotations + useless format! + if let +
needless_borrow (espectacular ×12)
CI result: pretender green; dont quality job green
(coverage job has pre-existing flaky timing/network tests under
tarpaulin — unrelated to these changes); espectacular docs-only CI
green
All changes committed and pushed across dont, espectacular,
pretender, homebrew-charly, scoop-charly
Tasks created
Decisions
Coverage threshold set at 60% (conservative baseline; ratchet up
later)