For teams on Claude Code

Teach Claude once.
The whole team keeps it.

signposts turns the corrections in your Claude Code sessions into markdown in your repo, reviewed in a pull request. After the merge, every teammate's session starts with them.

curl -fsSL https://gregra81.github.io/signposts/install.sh | bash
  • No API key
  • No server
  • Plain markdown in git
  • MIT

Dana hits the wall. Sam never does.

TUE · Dana's session

apply the orders index migration to staging

Bash(pnpm db:migrate --env staging)

ERROR: permission denied for table orders

don't. staging is read-only outside the ETL window, every write goes through the nightly job

Dana corrects Claude. Without signposts, the lesson ends there.

WED · Dana's next session

🪧 signposts: 1 session ready — run `signpost run`

1 finished session can become team knowledge. A run opens a pull request and works in the background. Start it?

yes

Pull request opened: signposts: knowledge proposed for review

+ .signposts/environment/staging-read-only.md

One question. The result is a pull request the team reviews.

THU · Sam's session, after the merge

add an index on orders.created_at and apply it to staging

Staging is read-only outside the ETL window (signpost staging-read-only), so I'll write the migration and leave it for the nightly job.

Sam's Claude had the signpost in context from the start.

An illustration. The names and Claude's wording are made up; the notice line and PR title are real.

Why not agent memory?

Claude Code's auto memory already notes your corrections, but its docs call it "machine-local", and nobody reviews it. Memory plugins work the same way: per developer, stored outside the repo. Keep them for your personal preferences. signposts is for what the whole team needs to know. A lesson that is only for you can stay on your machine instead.

signposts CLAUDE.md, by hand Claude Code auto memory Memory plugins
Who gets it The whole team, through git The whole team, through git You, on this machine Usually you alone
Reviewed before an agent trusts it Every change is a PR If it goes through a PR No Usually not
Two people learn the same thing One signpost, both credited Written once, if someone remembers Two notes on two laptops Two records in two databases
New knowledge contradicts old Flagged in the PR with the reason Up to whoever edits the file Claude rewrites its note Depends on the tool
Effort One yes, then a PR review Writing it, keeping it current None None

How it works

Everything runs on your laptop. The only LLM is the Claude Code session you already have open.

  1. Reads finished sessions

    The transcripts Claude Code already keeps, with secrets redacted locally.

  2. Keeps what code can't tell you

    Your session drafts claims, and a critic rejects anything the code, config or docs already say.

  3. Checks what's recorded

    A duplicate merges into the existing signpost. A contradiction is flagged.

  4. Opens a pull request

    Committed from a separate worktree, so your checkout is never touched.

Questions

Does it check that a signpost is true?

No. It checks that a claim is new and not hedged. The pull request is where someone who knows says "that changed in April".

What does it cost?

Tokens from your Claude Code plan. In our 33-session eval set the median was about 10k tokens per session, and the real figure is a little higher.

What leaves my machine?

Redacted excerpts go to Claude through your own session. The branch goes to your GitHub origin, unless you keep your signposts to yourself (below). There is no signposts server.

Can I keep them to myself?

Yes. Put storage: personal in ~/.signposts/config.yaml, and runs save what they find to a plain folder under ~/.signposts/. No branch, no pull request, nothing in the repo. Your own sessions still search them; your teammates never see them. The repo's config cannot turn this on for you.

Does it fill my transcript with notices?

Not in a Claude Code build that loads mods. The installer adds signposts-mod, which puts signposts in a pane beside the transcript: the offer with a Run button, the run's progress and result, and what each search found. A narrow terminal gets a row above the prompt instead, and /signposts-pane opens the pane at any width. Other builds get the notice line and the question shown above.

What do I need?

Node 24+, git, and a repo with a GitHub origin. It captures from Claude Code only, but the output is plain markdown any agent can read.

Your team already did the teaching.

curl -fsSL https://gregra81.github.io/signposts/install.sh | bash

The script checks the release against its SHA256SUMS before installing. Read it first.