justinstimatze

Basanite — AI skill for Claude Code

AI community

Vocabulary-tic detector for Claude Code output — frequency drift over your own transcripts, WordNet specificity ladders, optional fenced-LLM judge for terms of art.

How to install Basanite

This entry records only its repository, not the path inside it, so there is no exact command to give. Open justinstimatze/basanite and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Basanite does

Vocabulary-tic detector for Claude Code output — frequency drift over your own transcripts, WordNet specificity ladders, optional fenced-LLM judge for terms of art.

Alternatives in AI

  • Hindsight — State-of-the-art long-term memory for AI agents by Vectorize 6.7k ★
  • Pixel Agents — Compressed Reference — VS Code extension with embedded React webview: pixel art office where AI agents (Claude Code terminals) are an 6.5k ★
  • Mex — Persistent project memory for AI coding agents 672 ★

README

basanite

[![ci](https://github.com/justinstimatze/basanite/actions/workflows/ci.yml/badge.svg)](https://github.com/justinstimatze/basanite/actions/workflows/ci.yml)

A deterministic, local tool — **no LLM in the default path** — that detects **vocabulary tics** in your Claude Code sessions' output — words the model reaches for reflexively (`load-bearing`, `spine`, …) until overuse debases them. It measures frequency drift over the JSONL transcripts, then injects awareness of each tic, plus a ranked ladder of alternatives, at turn start. A fenced LLM judge handles the one judgment the deterministic stack can't — telling a term of art from a dilutable tic — and runs by default when an API key is configured (it falls back to deterministic without one).

Basanite is the dark stone an assayer streaks a sample against to judge it — a touchstone. Design rationale, including what was deliberately left out, lives in [DESIGN.md](DESIGN.md).

Commands

basanite scan            # rank rising lemmas: recent window vs trailing baseline
basanite trend …  # weekly rate per lemma — the effectiveness check
basanite ladder …  # specificity ladder per sense, weakest → strongest
basanite vet …     # judge candidates against your own past sentences
basanite report          # full pipeline (scan→vet→ladder) → state file, ~1 min
                         #   judges out terms of art by default; --judge=false for deterministic-only
basanite refresh         # regenerate the state file if stale (runs from both hooks)
basanite hook            # UserPromptSubmit entry: inject the report, ~4 ms
basanite display         # MessageDisplay entry: show the demote rung instead of the tic
basanite glyphs -init    # write ~/.config/basanite/glyphs.txt, the opt-in mark-instead-of-word table
basanite check |-  # ad hoc: name the tics in a file or piped text, no hook envelope
basanite writecheck      # PreToolUse entry: name tics in text about to enter a file, or a Linear