Skip to content

Instantly share code, notes, and snippets.

View ahoward's full-sized avatar
πŸ’­
probably outside if i'm not hacking.

ara.t.howard ahoward

πŸ’­
probably outside if i'm not hacking.
View GitHub Profile
{
"generated_at": "2026-05-28T19:33:04+00:00",
"elapsed_seconds": 17.52,
"range": {
"since": "2026-04-20T12:00:00Z",
"until": "2026-05-28T19:31:34Z"
},
"strict": {
"summary": {
"in_both_count": 121,
This file has been truncated, but you can view the full file.
{
"range": {
"since": "2026-04-20T12:00:00Z",
"until": "2026-05-28T19:27:49Z"
},
"strict": {
"in_both": [
{
"plate": "005BQVD",
"pr_scans": [
This file has been truncated, but you can view the full file.
{
"range": {
"since": "2026-04-20T12:00:00Z",
"until": "2026-05-28T19:27:49Z"
},
"strict": {
"in_both": [
{
"plate": "005BQVD",
"pr_scans": [
@ahoward
ahoward / axis_analysis_result.json
Created May 28, 2026 19:31
Pr::Scan vs Axis::Scan analysis β€” 2026-05-28
This file has been truncated, but you can view the full file.
{
"range": {
"since": "2026-04-20T12:00:00Z",
"until": "2026-05-28T19:27:49Z"
},
"strict": {
"in_both": [
{
"plate": "005BQVD",
"pr_scans": [
@ahoward
ahoward / x-capture-1-autoscroll.js
Last active May 16, 2026 00:01
X.com profile capture β€” auto-scroll then snapshot DOM+JSON; for litigation evidence preservation
// X profile / page auto-scroller.
// Paste into DevTools console on x.com/<handle> (or /with_replies, /media, etc.).
// Run this FIRST. When you see "done", paste the capture script.
(async () => {
console.log('autoscroll: starting β€” do not interact with the page');
let lastHeight = 0, stable = 0, passes = 0;
while (stable < 5 && passes < 400) {
window.scrollTo(0, document.documentElement.scrollHeight);
await new Promise(r => setTimeout(r, 1500));
@ahoward
ahoward / can_example.ts
Last active April 29, 2026 16:27
scoped roles vs flat roles β€” why can(user, action, scope) beats roles[]
// ─── OLD WAY β€” flat roles on the user ────────────────────────────────────────
if (user.roles.includes('manager')) {
// manager of what? no idea. this passes for managers of ANY property.
await create_lot(property_id, params)
}
if (user.roles.includes('patrol') || user.roles.includes('admin')) {
// patrol where? could be a different property entirely.
await create_scan(lot_id, plate)
@ahoward
ahoward / analysis.md
Created April 24, 2026 22:11
spool issue #2 β€” analysis: 'perfect memory' & long-running workflows in dev-agent tools

Analysis: 'perfect memory' & long-running workflows in dev-agent tools

Tools surveyed

Coding-agent CLIs / IDEs

Aider. Builds a tree-sitter repo map ranked by a graph algorithm so the model sees only the most call-graph-relevant symbols. Persists chat history under ~/.aider, supports a user-supplied conventions file loaded as system context. Scope: per-project (conventions) + per-session (history). Update model: append-only chat log; conventions overwritten manually. The repo map is computed, not stored as Markdown β€” it is regenerated per turn.

Cline. Ships the Memory Bank pattern: a fixed set of Markdown files (projectbrief.md, productContext.md, activeContext.md, systemPatterns.md, techContext.md, progress.md) under memory-bank/, all read at the start of every task. Plan/Act mode pair gates writes. Scope: per-project. Update: file-overwrite, ri

@ahoward
ahoward / gist:0d3f4fef7ab9a242b081a0ebfe538486
Created April 23, 2026 17:57
ENT-357: Owner Vehicles Not Displaying in Patrol App β€” Investigation Summary
# ENT-357: Owner Vehicles Not Displaying in Patrol App
## TL;DR
Backend is fine. Bug is in the patrol app.
## What We Found
**Plate: 28A760M** (the Volvo, permanent owner registration)
- Valid owner permit via `contacts_owners_passes/136`
- Date range: 1970–2038 (permanent)
@ahoward
ahoward / ai-liability.md
Last active April 22, 2026 23:00
Things to Know Before You Trust an AI With Your Codebase

Things to Know Before You Trust an AI With Your Codebase

A direct assessment of AI coding assistant failures, with notes on what that means legally.


What Actually Happened

This is a real-world audit of an AI coding assistant (Claude Sonnet) on a production SaaS project over several months. We audited git history and identified the following:

@ahoward
ahoward / test_pr_webhook
Created April 20, 2026 22:56
PlateRecognizer Stream webhook test β€” POST fake payload to lpr-api.vrpaccess.com
#! /usr/bin/env bash
# Test the PR Stream webhook endpoint with a realistic fake payload.
# Usage: script/test_pr_webhook [host]
# Default host: https://lpr-api.vrpaccess.com
set -euo pipefail
HOST="${1:-https://lpr-api.vrpaccess.com}"
URL="$HOST/pr/vrps_phoenixgulfshores2/ingress"