Mailto clicks on the sponsorship page leave no page view, so the sponsor funnel ended at the sponsorship page and never showed who went on to email. Each click now sends a sponsor_contact event with a short tier value (headline, featured, indie, or general) rather than the link URL, since GA4 caps event parameter values at 100 characters and the Indie Dev mailto href is 101.
Co-Authored-By: Claude <noreply@anthropic.com>
The test ran git init/add/commit with the inherited environment, so under a git hook or `git rebase --exec` (which set GIT_DIR) it committed fixture commits into the real repository and flipped its core.bare to true.
Co-Authored-By: Claude <noreply@anthropic.com>
DESIGN.md made claims the code contradicts (project count, radius usage, a blanket !important ban, sponsor band placement), said "the user" for the maintainer, duplicated token values from style.css that can drift, and repeated rules across several sections.
Co-Authored-By: Claude <noreply@anthropic.com>
Website design rules were duplicated between AGENTS.md and DESIGN.md, and nothing pointed agents to DESIGN.md.
Co-Authored-By: Claude <noreply@anthropic.com>
AGENTS.md called README.md the single source of content truth though category intros live in website/data/category_intros/, and it repeated wording CONTRIBUTING.md already holds.
Co-Authored-By: Claude <noreply@anthropic.com>
The instruction to apply CONTRIBUTING.md covered only adding or removing an entry, so agents rewording an existing description skipped its rules, including the description length soft cap.
Co-Authored-By: Claude <noreply@anthropic.com>
22 entry descriptions ran past the width at which GitHub's README wraps a rendered line onto a second line.
Co-Authored-By: Claude <noreply@anthropic.com>
Picks in a "How to choose" list were plain text, so a reader had to hunt for the tool's row in the table.
Co-Authored-By: Claude <noreply@anthropic.com>
Replacing framework-independent dogpile.cache with Django-only django-redis removed the shared Redis and Memcached cache use case, and a single Caching group conflated distinct jobs.
Co-Authored-By: Codex <noreply@openai.com>
Parking a project during a full review left its previous screen-out or rejection active, so incremental scans hid it instead of revisiting it.
Co-Authored-By: Codex <noreply@openai.com>
Seeding an uncertain addition or listed entry as park erased its row kind, so review offered structure actions and exported the wrong verdict.
Co-Authored-By: Codex <noreply@openai.com>
Faiss indexes vectors and integer IDs rather than storing documents and metadata, so its Database placement contradicted the category definition.
Co-Authored-By: Codex <noreply@openai.com>
The guide claimed DiskCache required less effort than every other Python caching library without comparative evidence.
Co-Authored-By: Codex <noreply@openai.com>
The guide claimed Magika never loads a complete file into memory, but the documented guarantee applies to large files.
Co-Authored-By: Codex <noreply@openai.com>
Calling report() and should_prune() alone did not stop an unpromising trial because should_prune() only returns a boolean.
Co-Authored-By: Codex <noreply@openai.com>
The intro recommended jev-ultrafast, which was removed from the list, and missed Scrapling, which took its slot.
Co-Authored-By: Claude <noreply@anthropic.com>
The README split LLM Inference and Serving into Local LLM Inference and LLM Serving, but the intro still grouped MLX LM with vLLM and SGLang and said nothing about Ollama or llama-cpp-python.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro's lead and guide recommended dogpile.cache, which the list no longer carries, and never covered django-redis, which replaced it.
Co-Authored-By: Claude <noreply@anthropic.com>
The scanner recognizes a star only when README links that exact repo, so a starred engine listed through its Python binding (llama.cpp as llama-cpp-python) came back as a new candidate every scan. The Record step now writes a ledger row for such stars. Also drops the last 'drop' verdict wording from preview-verdicts.
Co-Authored-By: Claude <noreply@anthropic.com>
Leaked secrets are a supply chain risk that dependency audits don't cover, so Supply Chain Security splits into Dependency Audits and Secret Scanning.
Co-Authored-By: Claude <noreply@anthropic.com>
Pickling arbitrary Python objects is a different job from data formats, so Serialization splits into Data Formats and Object Pickling.
Co-Authored-By: Claude <noreply@anthropic.com>
File type detection is a different job from paths and file watching, and splitting them leaves room for a challenger in each without passing the cap.
Co-Authored-By: Claude <noreply@anthropic.com>