ymatrix1/vantage
ymatrix1/vantage has 17 GitHub stars and 0 forks. GitHot measured 0 stars in 24 hours and -9 in 7 days. Last checked 2026-11-09 06:37 UTC. Last push 2026-10-15.
A calm, visual view of the true state of your AI-assisted work. Tracks work items from Asked to Verified on evidence, not agent claims, across Claude Code, Codex, git and PRs. Local-first.
Measured star growth
- in 24h
- 0
- in 7 days
- -9
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
Vantage
What is Vantage? (60 seconds)
Vantage runs on your own computer and shows how far each piece of your work has really got. When AI coding agents do much of the typing, it is easy to lose track of what was asked, what was built and what was actually tested. Vantage reads the traces your agents and git leave behind and draws one row per piece of work. A row moves forward only on evidence, such as a test that ran after the last edit. What an agent says never moves it. Nothing leaves your machine.
One example item, "add a retry to the uploader", moving along the track:
Asked Built Proven Reviewed Shipped Verified
● ● ◐ ○ ○ ○
you asked 3 files no test ran waiting not yet not yet
changed after the edit
It sits at Built · no proof yet until a real test runs after the last edit; then the third dot fills in. New here? Read the plain-language guide, or run vantage tour, a guided, offline walkthrough (vantage tour --demo opens made-up data you can click around; see first run).
Learn more
| You are | Start here |
|---|---|
| A new user | Guide, then the glossary (in Portuguese: Guia, Glossário) |
| A contributor | AGENTS.md, architecture, the specs |
| An agent installing it | Install guide for agents |
| Curious about the method | A2V: Asked to Verified |
All docs by audience: docs/README.md.
A personal, calm view of the true state of your work across AI coding agents, git, pull requests, CI/CD, monitoring, Jira or Linear, and Slack.
Vantage tracks work items, not sessions. Each item moves along one evidence-based track, the A2V track from the A2V: Asked to Verified method:
Asked → Built → Proven → Reviewed → Shipped → Verified
A card moves only on evidence: a git diff, a test or data check that ran after the last edit, a PR approval, a deploy, a clean monitoring window. What an agent says never moves a card.
Status
Phase 1 (the first usable slice) is built for Claude Code and git: hook capture into a local spool, a SQLite store, the git scanner, the linker, the stage machine (Asked, Built, Proven), a Stop hook gate in warn mode, a terminal status line, a secured local Track page, a one-process daemon, and the installer. It has not been used day to day for a week yet (the Phase 1 exit, see the roadmap), and there is no published release yet (the release pipeline is built, see RELEASING.md). Reviewed, Shipped and Verified need sources from later phases.
Tested in CI on Windows and Ubuntu. Developed and run by hand on Windows first.
Install
Recommended: let Claude Code do it. Open Claude Code in the repo you want to track and paste this:
Install Vantage for this repo. Follow https://github.com/ymatrix1/vantage/blob/main/docs/install-for-agents.md exactly: check the prerequisites, get Vantage if it is not already on this machine (from a release, or a checkout build), show me the dry run first and wait for my OK, then install, start it, verify with vantage doctor, and tell me what changed and how to undo it.
The agent follows the install guide and stops at anything that fails. You stay in control at two points:
- Before anything changes, it shows you
vantage add --dry-run: the exact files it would touch, nothing written. It waits for your explicit yes. - After the yes, it installs (with a backup of your Claude Code
settings.json), starts the daemon, runsvantage doctor, and tells you how to open the Track page.
It never adds tokens or credentials, never commits anything, and never edits your settings by hand: only vantage add writes, and every entry it writes can be removed exactly (see Undo).
You need: Node.js 22.5 or newer (Vantage uses the built-in node:sqlite), git and Claude Code, plus pnpm if the agent has to build from a checkout. The agent checks these first and tells you what to install.
Releases. Once the first release is out, Vantage installs without a clone or a build: npm install -g @ymatrix1/vantage (or npx @ymatrix1/vantage --version) gives you the vantage command (vantage --version prints the version), and each GitHub Release carries the tarballs and a SHA256SUMS file. The agent tries the release first and falls back to a checkout. Until a release exists, the checkout path is the only one.
Then use Claude Code as usual. Open the Track page with vantage open (it opens http://127.0.0.1:<port> in your browser; --print only prints the URL). Items appear after the daemon's next pass, about 30 seconds.
Prefer to do it by hand? The same steps, from a checkout.
git clone https://github.com/ymatrix1/vantage.git
cd vantage
pnpm install
pnpm build
Until the npm package exists, run the CLI as node <checkout>/packages/cli/dist/src/main.js; an alias keeps it short:
alias vantage='node /path/to/vantage/packages/cli/dist/src/main.js'
Then, from the repo you want to track:
| Step | Command | What it does |
|---|---|---|
| 1. Preview | vantage add --dry-run |
Prints every file it would change; writes nothing |
| 2. Install | vantage add --yes |
Backs up settings.json, adds the hooks, registers the repo |
| 3. Start | vantage start |
Runs the daemon (leave it running in a terminal) |
| 4. Check | vantage doctor |
PASS, WARN or FAIL with a fix line for each |
| 5. Open | vantage open |
Opens the Track page |
After you install
Slash commands in Claude Code
Optional. Install the plugin (claude plugin install vantage@vantage, then a new session) to run the CLI from the chat:
| Command | Does |
|---|---|
/vantage:open |
opens the Track page |
/vantage:start |
starts the daemon in the background |
/vantage:doctor |
PASS, WARN and FAIL with fixes |
/vantage:status |
this repo's current item |
/vantage:add |
dry run, your yes, then install |
Claude Code names plugin commands /<plugin>:<command>, so there is no plain /vantage open. Details in plugin/vantage.
What the installer changes
| Where | What | Undo |
|---|---|---|
Claude Code settings.json (~/.claude, or CLAUDE_CONFIG_DIR) |
Eight hooks: seven async spool hooks (SessionStart, PostToolUse, PostToolUseFailure, PermissionRequest, Notification, PreCompact, SessionEnd) and the synchronous Stop gate. Each command ends in --vantage-managed. |
vantage remove or vantage uninstall removes only entries with that marker |
| Same file | The status line, only if you have none. If you already use one it is left alone and add says so. |
same |
~/.vantage/config.toml |
The repo path in repos = [...] |
vantage remove [path] |
~/.vantage/backups/ |
A copy of settings.json before the first edit |
kept for a manual restore |
~/.vantage/install.json |
A record of what add did |
used by remove |
| Git hooks | Nothing, unless you pass --git-hooks (opt in, chained so your own hooks still run) |
vantage uninstall |
Nothing inside your repo changes.
What you will see
- Track page (
vantage open): items grouped by attention, one row each with the six-dot track, proof state and flags. Click a row for its trace (why it is where it is). - Status line (if installed): a short glyph line for the current session's item.
- Stop gate (warn mode): when an agent stops after editing code with no fresh test or data check, Claude Code shows a message naming the files and why. It never blocks. Set the mode with
VANTAGE_GATE_MODE=off|warnorproof_gate = "off"inconfig.toml. Docs-only sessions never trigger it.
Measuring it
vantage stats prints numbers about the Track page from the local store, read-only (it works with the daemon running or stopped, and never writes):
vantage stats # summary, plus the last 14 days
vantage stats --days 7 # one row per day, for the week review
vantage stats --since 7d # only items and events from the last 7 days (also 24h or YYYY-MM-DD)
vantage stats --repo myrepo # one repo, matched by name; repeat the command per repo
vantage stats --json # the same numbers as JSON
It reports items (total and active in 24 h, 7 d and 30 d), readable titles versus fallback rows (Session … or repo · branch · date), anchor kinds, session lineage (how many sessions sit on a real issue or branch item instead of a one-off Session row, sessions per item, sessions on a branch before and after the transcript-branch fix, derived sessions, sub-agent runs), Needs you (total and last 48 h, split by flag kind), stages, how many edited items reached Proven and how many Built items lost their proof, which checks ran (by runner family, plus one count for commands not recognised as checks), events by source and per day, database size and the age of the last stage pass. Each line says what it means, and a ✅, ⚠️ or ❌ shows where it stands against a goal (for example Needs you under 10). The goals are starting points, not product rules.
The output holds numbers and fixed labels only: no titles, commands, paths or repo names (the one echo is the --repo text you typed), so it is safe to paste into an issue. Days are UTC.
Classifying with Haiku
Optional and off by default. vantage classify asks your own Claude Code (claude -p, Haiku) to suggest titles, topics and groupings for items, so the Track page reads better. It runs in your Claude Code, so it uses your plan limits and Claude Code already sees this data. Status, stage and proof never come from the model: it only suggests text.
vantage classify --dry-run # how many items, calls and bytes, and the exact message; calls nothing
vantage classify # run in the background (needs the three switches below)
vantage classify accept # preview, confirm, apply one batch (0.8 confidence and up)
vantage classify accept --all # everything; also --kind titles|topics|groups and --repo NAME
vantage classify undo # revert the last batch
Turn it on in ~/.vantage/config.toml:
[engines.classify]
enabled = true
[data_policy]
outside_calls = true
[data_policy.allow]
transcripts = true
Per item it sends only the repo name, branch, the first sentence of the first request (300 characters, URLs and secret-looking text removed), up to 10 file names (no paths), counts and the current title. Never commands, transcripts or paths. Nothing is applied until you confirm a preview; every batch has one undo; auto_accept is off unless you set it. Details: classify spec.
Where your data lives
All local, under ~/.vantage (or VANTAGE_HOME): spool/ (one line per hook event, including the tool input Claude Code passes to the hook), vantage.db (events, links, stages, proofs), token (the Track page token), status.json and health.json. Request titles are stored locally: the first sentence of a session's first request (cleaned of paths, URLs and anything that looks like a secret, at most 80 characters) becomes that session's item title and is kept in vantage.db, nowhere else. Turn it off with item_titles_from_requests = false in config.toml, see what is stored with vantage titles, and delete it with vantage titles clear. The daemon listens on 127.0.0.1 only, with a token and Host and Origin checks. Nothing leaves the machine, and no outside model is called. See privacy and the data policy.
Undo
vantage remove # stop tracking this repo
vantage uninstall # remove Vantage's hooks and status line from settings.json
Neither deletes ~/.vantage. Delete that folder yourself if you want the data gone.
If something is off
| Symptom | Fix |
|---|---|
vantage doctor shows FAIL for hooks |
Run vantage add --dry-run again, then vantage add --yes; rebuild with pnpm build if a hook file is missing |
| "The UI is not built" | pnpm build |
| "Port 4317 is in use" | vantage start --port 4400 (or VANTAGE_PORT) |
| "Vantage is already running" | One daemon per ~/.vantage; use vantage open |
| The Track page is empty | Use Claude Code in a registered repo and wait about 30 seconds; check vantage doctor |
| Stop messages feel wrong | Set VANTAGE_GATE_MODE=off and tell us which case it got wrong |
Developing
pnpm check # type check, lint, format, tests, fixture scrub
python tools/check_docs.py # links, decision format and status, privacy scan
python -m unittest discover -s tools -p "test_*.py"
Packages: core (pure logic), daemon, hooks, hooks-native (Rust spool hook, built in CI), cli, ui. Read AGENTS.md first; tasks live in beans under .beans/.
Documents
| Doc | What it covers |
|---|---|
| A2V method | The method Vantage implements: track, five rules, proof levels, signals |
| PRD | Problem, pains, user, goals, non-goals, success metrics |
| UX | Surfaces (Focus, Board, Item, Ambient) and UX rules |
| Architecture | Sources, event store, linker, scorers, surfaces, privacy |
| Spec: lifecycle | Stage gates, backward moves, flags, proof rules |
| Spec: work item model | Entities, anchors, linking rules |
| Spec: flag registry | Every flag: trigger, severity, icon, one action |
| Spec: proof | Proof types, strength levels, freshness, fake proof detection, the gate |
| Spec: behaviors and detectors | Behavior sources, AI-decided and commitment detectors, resume with context |
| Spec: data schema | Tables, immutability, migrations, merge linking |
| Spec: visual language | Dot alphabet, proof shine, dot characters, landscape home, calm gamification |
| Spec: Explain | Answer-first briefs, SCR, MECE issue trees with click-to-expand, via the connected agent |
| Spec: pings | Who you owe a reply, who to nudge, who to tell it's done |
| Spec: status line | Text glyphs for the dot alphabet in the terminal |
| Spec: first run | vantage init, first view, one-time legend, demo mode |
| Spec: decision log | Every AI or person decision, with five fields, who and status |
| Spec: web UI | Navigation, screen states, keyboard map, API, performance budgets |
| Spec: settings | Engines, budgets and the data policy for outside models, all off by default |
| Spec: CI/CD | Docs checks now, code checks in Phase 1, releases later |
| Mockups | Static HTML mockups with synthetic data |
| Spec: scoring | Priority, difficulty, spread, staleness |
| Spec: ingestion | How each source is listened to: push, polling, cursors, relay |
| Spec: operations | Identity, config, secrets, seen state, daemon, health, quality |
| Roadmap | Build phases and exit criteria |
| Decisions | Decision log |
| Open questions | What still needs deciding |
| Landscape | Existing tools and why they don't cover this |
| Research: Vibe Kanban | How Vibe Kanban drives Claude Code, and what it means for Vantage |
The A2V plugin in plugin/a2v/ packages the method for any project: a communication rule, an output style, and the skills explain-top-down, prove-it, record-decision, handoff, land-the-day, answer-review, close-the-loop and plan-task. Install it with /plugin marketplace add ymatrix1/vantage, then /plugin install a2v@vantage.
Agent instructions: AGENTS.md (canonical), rules in .agents/rules/, skills in .agents/skills/. Tasks are tracked with beans in .beans/.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,347 starspublic-apis/public-apis
A collective list of free APIs
497,596 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
446,738 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,252 stars