Repository navigation
Releases: Albisourous/prefixer
Releases · Albisourous/prefixer
Release list
v1.1.3
- Test dir names come from test files only. A suite is named by
files that look like tests (test_refund.py,refund.spec.ts,
RefundTest.java). A README, fixture data, orcontest.pyno longer
shows up as a tested feature. - Generic names are dropped after the test marker is stripped.
test_helpers.pyno longer adds "helpers" to the cell. - "test" is stripped only after a separator.
contest_test.py
gives "contest", not "con". A dotted name keeps its first part
(AboutPanel.tabs.test.tsxgives "AboutPanel"), and names that differ
only in case are listed once.
v1.1.2
- Sentence cuts respect abbreviations. A contains cell is cut at a
sentence end only when.,!, or?comes before a capital and
does not close an abbreviation such ase.g.,i.e., oretc.. - Test dirs keep repo-specific descriptions. Instead of a fixed
phrase, an undocumented test dir is named by what its files test
(test_refund.py,checkout.spec.tsgive "tests for checkout,
refund"). The repo's own docs still win.
v1.1.1
Scaffold fixes from a second real-repo pass. Generated maps for
KiroCrew, rysolv, ray-tracer, and RoBall3D now lint with 0 warnings.
- Submodules stay out of the index. A git submodule (gitlink, mode
160000) is another repo and an empty dir in this one. It no longer
counts as an uncovered top dir. - The
misc:row holds up to 24 dirs (was 12), so mid-size repos
no longer push dirs into theunmapped:footer. - Cleaner contains cells. Text is cut at the first sentence or at a
word boundary with..., never mid-word or mid-character. Section
banners (== Foo ==) and commented-out code are skipped as
descriptions. Test dirs read "tests and fixtures" instead of one
test case's comment. C-family type names and include guards no
longer show up as exports.
v1.1.0
Real-repo pass: the scaffold and search now hold up on 1,000 to 6,000
file codebases, not just fixtures. On a 6,000-file repo a broad
search.sh kiro: import dropped from about 338k tokens to under 1k.
- Search output is budgeted.
search.shprints at most 40 hits
(--max N,--all, envPREFIXER_MAX_HITS), cuts lines past 240
chars, and summarizes the rest by dir so the next call can narrow.
-llists files by hit count;-wand-Fpass through to grep.
The metrics line gainsshown, andest_tokensis what printed. - Git-aware file index.
lib_scope.shlists files once per run
fromgit ls-files(tracked plus untracked-not-ignored), falling
back tofindoutside git. Scopes, widen-to-root, and coverage
checks all read it, so.gitignored output never reaches a search
and no scope runs its ownfind. - Size-weighted scaffold.
init_namespaces.shweighs every dir by
the text files a grep would read, then gives rows to the heaviest
dirs up to three levels deep. A big package gets child rows instead
of one broad scope, single-child chains collapse (src/pkg/maps as
pkg:), and container dirs (src/,services/,packages/) keep
their children as top-level tags. - No silent coverage holes. Top dirs that miss the row cap share
onemisc:row; theunmapped:footer only lists what did not fit
there, capped at 8 names. - Better contains cells. Each row reports its file count and the
biggest subdirs without a row. Descriptions also come from the dir's
own README or manifest, agent-doc lines stop at the next path, and
symbols are sampled from source files only. - Tighter synthetic rows. Root files compress to
*.extgroups,
lockfiles stay out, and jumbo-file rows only name source files that
are not tests.
v1.0.0
First stable release. The skill, scripts, spec, and eval harness from
0.x carry over unchanged; 1.0 adds the release machinery, community
files, spec conformance, and a one-command health check a public
project needs.
scripts/doctor.sh: one-command health check. Reports the map,
lint verdict, session-start hook state, metrics gitignore coverage,
and stale install stamps (.prefixer_versionvs the running
checkout).ok/warn/FAILlines, nonzero exit on failures,
--quietfor CI. SUPPORT.md and the bug-report form now ask for its
output.scripts/bump-version.py: one-command release bump. Rewrites the
version in SKILL.md, all three plugin manifests, docs/index.html's
softwareVersion, and theintegrations/CI pin, then opens a dated
CHANGELOG section.RELEASING.mddocuments the full process, and
release.ymlcreates the GitHub release when av*tag lands,
gated on validation, tests, and real changelog notes.- agentskills.io spec conformance. Added the
compatibilityfield
(bash + POSIX tools; Python 3 for visualize.py) and dropped the
triggersfield: the official validator rejects non-spec
frontmatter, and[user, model]is Devin's default anyway, so the
field was redundant. The officialskills-refvalidator now runs in
CI pinned atskills-ref==0.1.1. install.shgains awindsurfplatform. Project
.windsurf/skills/prefixer, global~/.codeium/windsurf/skills/prefixer,
matching the paths Devin's docs publish. Detection markers:
.windsurf/and~/.codeium/windsurf/.- Community files.
CODE_OF_CONDUCT.md(Contributor Covenant),
SUPPORT.md,ROADMAP.md(the 1.0 tracker), and a
.pre-commit-config.yamlthat runs the CI gates on commit. summarize.pyhonest phrasing. A negative byte delta now reads
"N% larger" instead of "-N% smaller"; RESULTS.md regenerated.validate-package.pygains a check: the consumer workflow's
script-fetch pin must equal the release version.run.sh --dry-runworks with no agent CLI. Adapter picking used
to require a detected binary even though a dry run never calls one;
machines with no agent CLI (like CI) fell over atpick_adapter. The
auto path now falls back to the devin adapter so hook wiring can be
verified anywhere, and the not-ready message covers missing binaries
as well as missing logins.- README, docs site, and llms.txt synced: windsurf install, doctor.sh,
and the agent-eval aggregate numbers (4.6 vs 7.2 mean tool calls per
task, mapped vs baseline).
v0.7.1
SEO and agent-discovery pass.
- SKILL.md description gains "save tokens" and "cut context cost" trigger phrases
- Landing page: hook line, FAQ section with FAQPage JSON-LD, agent-facing install callout
- llms.txt for LLM-facing site description
- README agent callout block
- Repo description now leads with "save tokens"; topics updated
v0.7.0 — measured token savings
What's new
- eval_repo.sh — lints a map, then probes every namespace with its own name as the grep pattern. Zero per-repo config; prints a per-row hit/byte table and mean
pct_saved. - check_namespaces.sh — map lint: dead scopes, duplicate tags, draft rows, generated dirs, coverage gaps.
- eval_scope.sh — single-query token delta: root grep vs scoped grep.
- Scaffold derives prefixes from the codebase's own vocabulary, nests sub-team rows (
payments:checkout:), emitsrepo:slugs, and lands zero-TODO drafts.
Measured on public repos
| repo | namespaces | mean bytes saved | range |
|---|---|---|---|
| obra/superpowers | 8 | 89% | 69–100% |
| DietrichGebert/ponytail | 12 | 91% | 68–100% |
Install
npx skills add Albisourous/prefixer — or copy SKILL.md, references/, scripts/ into .agents/skills/prefixer/.