Most fishing apps show you a pin on a map and yesterday’s weather. Angler_AI starts from a different premise: the US government already publishes everything you need to predict where fish will be, scattered across half a dozen agencies. USGS maintains the National Hydrography Dataset with reach-level stream geometry. The same agency publishes BRT v2.0 species distribution models covering 419 fluvial fish species across 112 million predictions. NWIS streams continuous water temperature and discharge observations. EPA tracks water quality and impaired-waters designations. NOAA provides 7-day weather forecasts; Open-Meteo extends them to 16 days. NorWeST adds mean-August stream-temperature climatology anchored to real sensor data.
Angler_AI ingests all of it into a local DuckDB feature store, idempotently, with every value carrying a source tag. Missing data returns factor=1.0 tagged not_modeled:<reason> rather than fabricating a number. The tool then runs a five-factor multiplicative suitability chain per reach, per species, per day: species distribution prior (BRT or NAS-fallback for non-natives), thermal niche match, flow factor, seasonal phenology, and flow z-score anomaly. Every factor carries a calibrated 95% confidence interval that propagates through the chain. The output is a relative suitability index in [0, 1], rendered as colored reaches over USGS National Map topographic basemaps.
A multi-AI review on June 17th caught a statistical category error in the original framing. The output was described as a “catch probability.” It is not. Recreational catch-per-unit-effort is hyperstable (Charbonneau 2025), and converting a unit-interval presence probability with the hyperstability exponent is a category error until real catch-data validation in v1. The documents, code, and variable names were all renamed accordingly. The Charbonneau constant is recorded on every reach but explicitly not applied.
“Every factor carries a source tag. Missing data returns factor=1.0 tagged not_modeled, rather than fabricating a value.”
— Architectural Invariant, docs/ARCHITECTURE.md
Water temperature is the single most important variable for predicting where cold-water species like trout will be. Angler_AI resolves it through a priority chain: direct NWIS gauge observations first, then spatially-interpolated values anchored by the NorWeST mean-August climatology with per-day Mohseni-Stefan air-temperature deltas, then pure inverse-distance-weighted interpolation, then projection-only as a fallback. The IDW interpolation is restricted to gauges within the same HUC-10 watershed and within one stream order of the target reach, so a mainstem gauge cannot contaminate a cold headwater tributary’s estimate. Mohseni-Stefan parameters are stratified by stream order: small headwater, medium, and mainstem each carry different thermal response curves drawn from the literature (Elliott 1994, Wehrly 2007, Bear 2007, Selong 2001, and eight others).
The ethics layer is a hard gate, not a suggestion. Bull trout, Apache trout, Gila trout, and Paiute cutthroat trout are suppressed at HUC-10 resolution. Greenback, Rio Grande, Westslope, Yellowstone, Bonneville, and Colorado River cutthroat are suppressed at HUC-12. Tribal-managed waters are masked with a redirect to the relevant tribal authority. EPA ATTAINS impaired-water designations surface as alerts by default. The suppression check runs before any reach-level output surface, enforced in code, and the test suite validates it.
June saw the preparation and delivery of a full talk at Planet Cyber on sovereign AI in cybersecurity: the architecture of a local AI security stack, what fits on what hardware today, which security use cases work better locally than in the cloud, and where the gaps remain. The talk covers four layers (local inference, persistent memory, MCP-based tool integration, and security workloads), specific use cases including threat detection at wire speed, incident response during outages, sensitive threat intel processing, and AI supply chain scanning. Deliverables included a detailed 45+10 outline, a talk overview, a LinkedIn description, presentation slides, and supporting research.
Edward Gibbon wrote of a corpse fifteen centuries cold. This book writes of a patient still walking. The Decline and Fall of the American Experiment, which began on June 30th with an initial commit and 61,380 words already in place, examines the present-day American republic with the detachment of the historian and the unease of the moralist. The register is serious; every factual claim rests on a real and verifiable event; the irony cuts in every direction.
Four engines of decline structure the work: institutional and constitutional decay (forms preserved, substance hollowed), the citizen corrupted into the mob (civic virtue eroded into spectacle and grievance), epistemic collapse (the dissolution of any common truth, the algorithmic deity), and empire, debt, and overreach (imperial exhaustion, perpetual war, slow insolvency). Roman parallels are always paired with honest disanalogies. Placeholders are marked [SOURCE TK] rather than fabricated.
The preface is fully drafted as a voice specimen. The introduction lays out the thesis. All fifteen chapters and the epilogue are seeded with one-sentence arguments, drafted opening lines, section beats, and “Persons of the Chapter” sections. Built on the same AsciiDoc and asciidoctor-pdf toolchain as Ron’s other books, with output to PDF, EPUB, and Word.
SensorGrind_AI received four commits in early June, building on the May launch. Memory management improvements reduced the pipeline’s working-set pressure. A new cluster fingerprinting stage identifies structural signatures of coordinated infrastructure, letting the pipeline distinguish between independent actors who happen to share ASN space and actors who are operationally linked. The multi-AI critique stage was enhanced, tightening how external AI models review and challenge the pipeline’s automated conclusions. Reporting improvements tightened the final output across all 18+ report sections.
Angler_AI does not produce abstract heatmaps on blank backgrounds. Each suitability map renders colored stream reaches over USGS National Map USTopo basemaps—public-domain federal cartography cached locally after the first fetch. Day-over-day delta maps use a red-shift/blue-shift color scheme: reaches getting worse for a species shift red, reaches improving shift blue, stable reaches stay gray. Animated GIFs cycle through the delta frames across a 14-to-17-day forecast window, showing the temporal trajectory of suitability as weather and flow conditions evolve. Each forecast run also produces a 3-agent LLM reasoning pipeline (Profile, Planning, Analyst) that generates best-day and worst-day narratives explaining why conditions favor or hinder each species at each water.
··· “Frustrating adversaries since the dial-up era” · GitHub: rondilley · 49 Repositories and Counting ···
The system decomposes into ten named components. The Hardware Probe detects CPU microarchitecture, RAM, GPU vendor, VRAM, CUDA runtime, and NPU, producing a structured hardware profile. The Inference Layer wraps llama.cpp via llama-cpp-python, auto-selecting the correct backend variant (CUDA, Metal, Vulkan, ROCm, or CPU) and downloading appropriately-sized GGUF models on first use. The Model Registry routes to the right model and quantization based on available VRAM. Data Ingestion runs per-source modules that pull from authoritative federal endpoints into the Feature Store (DuckDB, anchored on NHDPlus HR COMIDs). The Prediction Layer runs the math: species priors, water-temperature modeling, thermal niches, flow anomalies, and the 5-factor suitability chain. The Calibration Layer enforces structurally-typed 95% intervals. The Reasoning Layer runs the 3-agent narrative pipeline. The Ethics Layer gates output. The UI layer exposes a Typer CLI and FastAPI HTTP server.
MnemonAI received a single commit on June 19th fixing indexing issues that surfaced after memory pruning operations. When stale memories were pruned from the knowledge graph, the FTS5 and vector indexes could fall out of sync with the primary LMDB store. The fix ensures index consistency is maintained through the full prune-and-compact lifecycle.
The month’s output spans a remarkable range. Angler_AI applies the same local-first, hardware-adaptive, source-tagged architectural discipline to recreational fishing that previous months applied to cybersecurity. A 61,000-word book channels Gibbon to diagnose American institutional decay. A Planet Cyber talk articulates sovereign AI as a security architecture. SensorGrind’s honeypot pipeline gets cluster fingerprinting. MnemonAI’s memory server gets a pruning fix. Five projects across five entirely different domains, held together by a consistent engineering philosophy: local-first, data grounded, no fabricated values, and honest about what the tool does not know.
Each reach gets a per-day score from five multiplicative factors: BRT species distribution prior (or NAS-fallback for non-native species with interval_kind=spatial_unmodeled), thermal niche match from peer-reviewed Mohseni-Stefan parameters, flow factor from NWIS discharge, seasonal phenology from documented spawning and feeding windows, and flow z-score anomaly. Each factor carries a CalibratedProbability with a structurally-enforced 95% interval that propagates through the chain. The output is clamped to [0, 1] and rendered per-reach on the topographic basemap.
The new fingerprinting stage builds structural signatures for each actor cluster: shared payload hashes, common port-scan orderings, timing correlations, and ASN co-tenancy. These fingerprints persist across pipeline runs, enabling the pipeline to track cluster evolution over time and detect when previously independent actors begin cooperating or when a single campaign fragments into subgroups.
The hardware probe uses archspec for CPU microarchitecture detection and pynvml for CUDA runtime introspection. Based on the detected profile, the Model Registry selects from six llama.cpp backend variants (CUDA cu118 through cu132, Metal, Vulkan, ROCm, CPU) and downloads GGUF models sized to available VRAM. A 4GB laptop gets a 3B model; a workstation with a 24GB GPU gets a 14B. The probe runs once on first use; subsequent runs read the cached profile.
The style rules are codified in STYLE.md and enforced by convention: subordinate clauses nest three-deep, irony emerges from juxtaposition rather than sarcasm, every factual claim carries a footnoted citation, Roman parallels are always honest about where the analogy breaks, and the voice maintains Gibbon’s great and deliberate distance. Four AI providers (OpenAI, xAI, Mistral, Gemini) are used as research assistants and fact-checkers, never as voice generators.