project-model

project-model is a skill for Claude Code from sara-star-quant/presence. It costs 86 tokens per session (750 once invoked), scanned A, original, Apache-2.0.

A skill for maintaining presence's persistent project model, a notes file containing verified facts about a codebase.

In plain words
What is it for?
Use it when working in a familiar codebase to consult existing notes and record verified, project-specific facts that will help future sessions.
Why use it?
It prevents the agent from repeatedly rediscovering stable project details while recognizing that stored notes may become outdated.

Skill for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT variable. Also seen: reads .claude/ paths; mentions CLAUDE.md; mentions subagents.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the presence plugin — 3 skills, 7 commands, 1 agent shipped together

Good fit Use it when working in a familiar codebase to consult existing notes…

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add sara-star-quant/presence
Claude Code
/plugin install presence

Made for: Claude Code.

Or install presence, the plugin that ships this one along with the rest of its 3 skills, 7 commands, 1 agent.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for project-model

README.md
[![agentmods](https://agentmods.dev/badge/skills/sara-star-quant/presence/project-model.svg)](https://agentmods.dev/skills/sara-star-quant/presence/project-model)
Your own site
<a href="https://agentmods.dev/skills/sara-star-quant/presence/project-model"><img src="https://agentmods.dev/badge/skills/sara-star-quant/presence/project-model.svg" alt="Measured on agentmods" height="20"></a>
Per session 86 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 750 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00086 $0.00750
Opus 5 $0.00043 $0.00375
Sonnet 5 $0.00017 $0.00150
Haiku 4.5 $0.00009 $0.00075

Measured 6d ago against content hash 3a7353a0e6a3, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

project-model scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/project-model/SKILL.md · 70 lines

How it starts

The opening of the file, as written. The whole thing — 70 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Project model: read and write

presence injects the contents of model.md into your context at the start of each session. Treat it as a trusted-but-stale set of notes. The previous you wrote them, but the code may have changed since.

When to read

The model is already in your SessionStart context, so you don't need to re-read it explicitly. If you forgot or need to query a specific slice mid-session:

PRESENCE_ROOT="${CLAUDE_PLUGIN_ROOT:-$(realpath ~/.claude/plugins/presence 2>/dev/null || echo .)}"
PYTHONPATH="$PRESENCE_ROOT/lib" python3 -c "
from model import read_model
print(read_model('$PWD'))
"

When to write

Append a new observation when all four are true:

  1. You verified something non-obvious about this codebase (architecture decision, a convention not in CLAUDE.md, the actual command for tests/build, an invariant about data flow).
  2. The fact would save a future you 2+ minutes of re-deriving.
  3. The fact is unlikely to change in the next month (don't write WIP state).
  4. The fact is project-specific. General programming knowledge belongs nowhere; you already know it.

To append:

PRESENCE_ROOT="${CLAUDE_PLUGIN_ROOT:-$(realpath ~/.claude/plugins/presence 2>/dev/null || echo .)}"
PYTHONPATH="$PRESENCE_ROOT/lib" python3 -c "
from model import append_observation
append_observation('''<<<terse multi-line observation here>>>''', '$PWD')
"

Style of entries

Entries should look like:

## 2026-04-25 14:32

The `auth/` package uses a custom session middleware that wraps Flask-Login. Token refresh
happens in `auth/refresh.py:42`, NOT in the middleware itself. That's a deliberate split
to keep the middleware reentrant. Don't add refresh logic to the middleware.

Test command: `make test-auth` (NOT `pytest auth/`); the latter misses fixtures.

Bad entries (don't write these):

  • "Today I fixed the bug." (ephemeral, project state, not a stable fact)
  • "Python is dynamically typed." (general knowledge)
  • "Files are in src/." (derivable from ls)

Read the full file on GitHub · 70 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 70 lines · 86 tokens per session scan A 3a7353a0e6a3

Subscribe to this mod's changes

project-model is a skill published in the GitHub repository sara-star-quant/presence (7 stars, last pushed today), licensed Apache-2.0. It adds 86 tokens to every session and 750 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

qmd

Vendored from tobi/qmd (github.com/tobi/qmd), npm package @tobilu/qmd, by Tobi Lutke. MIT License.

ManceRayder42/jarvis-os · 0 tokens

memory-to-skill

Turn workflows from your MemSearch memory into reusable skills. Use when the user asks to make/create/extract/distill a skill from what they just did or from past work, review skill candidates, install a distilled skill, or 'turn this into a skill'. Manages MemSearch procedural-memory candidates under…

zilliztech/memsearch · 82 tokens

learn

Must be used near the end of any non-trivial turn that produced potentially reusable tools, guidance, errors, workarounds, or workflows, so those lessons are saved for future turns.

AgentToolkit/altk-evolve · 40 tokens

recall

Must be used at the start of any non-trivial task involving code changes, debugging, repo exploration, file inspection, or environment/tooling investigation to surface stored guidance before analysis or tool use.

AgentToolkit/altk-evolve · 42 tokens

setup-brain

Set up or upgrade an AI-powered Obsidian vault. Interviews you, builds your vault structure (or works with what you already have), creates your CLAUDE.md memory file, installs tools, and gets you journaling — all in one conversation. Also has a repair/upgrade path for existing users.

mycelium-hq/ai-brain-starter · 66 tokens

knowledge-base

Keep verified findings in memory/knowledge/ so the same research is never done twice. Use before researching any topic, when a finding passes the verify gate, or when about to answer from something learned in an earlier session.

svy04/ballast · 47 tokens