cos: Instructions file for Claude Code

CLAUDE.md

cos CLAUDE.md is an instructions file for Claude Code from philipyaz/cos. It costs 3,495 tokens per session, scanned A, original, MIT.

A repository guide for Cos, a personal chief-of-staff application with task boards, a knowledge store, semantic search, security checks, and MCP servers. It explains where the code and documentation live and how skills are organized.

In plain words
What is it for?
Use it when changing Cos features, writing MkDocs documentation, editing skills, rebuilding skill bundles, or working with its board, vault, guard, search, and MCP components.
Why use it?
It helps an agent navigate the repository and follow its rules for documentation, skills, commands, and releases.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: reads .claude/ paths; mentions CLAUDE.md; mentions Claude Code.

This is philipyaz/cos's own configuration. It tells Claude Code how to work on cos itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything cos configures →

Reuse

Borrowing it

Nothing to install: this file belongs to philipyaz/cos. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/philipyaz/cos/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/philipyaz/cos

Made for: Claude Code.

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 cos CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/philipyaz/cos/claude-md/github.svg)](https://agentmods.dev/instructions/philipyaz/cos/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/philipyaz/cos/claude-md"><img src="https://agentmods.dev/badge/instructions/philipyaz/cos/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for cos CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/philipyaz/cos/claude-md"><img src="https://agentmods.dev/badge/instructions/philipyaz/cos/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 3,495 This file is loaded in full into every session.
When invoked 3,495 The same file — it is already loaded in full.
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.03495 $0.03495
Opus 5.5 $0.01398 $0.01398
Sonnet 5.5 $0.00699 $0.00699
Haiku 4.5 $0.00349 $0.00349

Measured 1mo ago against content hash db1f731a1af0, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

cos CLAUDE.md 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 1mo 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.

CLAUDE.md · 166 lines

How it starts

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

Cos — repo guide (read this first)

Cos — a personal "chief of staff": a writable board (board/, Next.js + a JSON store) for work+life to-dos, a knowledge vault (vault/, the LLM-Wiki pattern), a prompt-injection guard (guard/, FastAPI sidecar), semantic search (search/, sidecar), and MCP servers (mcp/) that expose it all to agents. Feature docs live in the MkDocs site under docs/ (Material theme, mkdocs.yml, published to GitHub Pages): e.g. docs/architecture/spec.md, docs/features/board.md, docs/security/guard.md, docs/reference/search.md, docs/architecture/hierarchy.md, docs/reference/migration.md. README.md (the repo landing/quickstart) stays at the root.

Skills live in two trees, and the split is load-bearing. Put a setup skill in the repo-root .claude/skills/ — Claude Code reads it live off disk and Cowork never sees it (cos-setup is the single first-run orchestrator; each add-on ships its own <name>-mcp-setup skill). Put an operator skill — anything a scheduled sweep runs or delegates to — in board/.claude/skills/, and rebuild its bundle with node scripts/pack-skills.mjs after every edit. Cowork installs skills only from board/.claude/skill-bundles/*.zip, so a delegation to a root-level skill is a silent no-op there — not an error. Rebuilding a bundle does not install it: re-upload the .zip in Cowork (Settings → Capabilities → Skills) after every rebuild. Nothing checks this, so until you do, that skill's half of the feature is silently dead there while the repo stays green. The bundles are committed binaries, so git cannot merge two branches that touched the same skill: after any merge or rebase that brings in someone else's skill edit, re-run pack-skills.mjs and commit the rebuilt .zip — a red pack-skills --check whose output says stale or missing there means "rebuild", not "defect" (only an automation.json sync error from the packer itself is a defect).

Every setup/skill shell step begins with source "$(git rev-parse --show-toplevel)/config/load-config.sh", which resolves REPO_ROOT from git and exports machine config from config/cos.env (generated by cos-setup) — paths, ports, and URLs (REPO_ROOT, BREW_PREFIX, VAULT_DIR, BOARD_URL, the bridge/ sidecar ports + URLs, etc.) so nothing is hardcoded. The config/ dir splits by concern: cos.env (machine paths/ports), secrets.env (the Anthropic API key), settings.json (board prefs), and auto-sync.json (router switch); the loaders, secret-validation.mjs, auto-sync.json, and the *.example files are committed — the live cos.env/secrets.env/settings.json are gitignored. Secrets reach the two MCP clients by different binding paths (Claude Code re-reads secrets.env per start; Cowork gets an inlined snapshot), so rotation is a two-step — see the "Cowork holds a COPY of every secret" gotcha in mcp/CLAUDE.md.

  • mcp/CLAUDE.md — read it before touching mcp/.
  • board/.claude/CLAUDE.md — read it before writing or editing an operator skill.
  • board/data/CLAUDE.md — board/data/ is LIVE, irreplaceable user data; read it BEFORE touching anything there — never seed board/data on a machine with live data.

Multi-device — one hub, thin spokes. Cos is multi-device via hub & spoke: ONE machine (the hub) runs the board and owns all state; every other device reaches it over Tailscale. To just VIEW/use the board from another device you need nothing on that device — the hub runs the production board (cd board && npm run build && npm run start, or the boardapp LaunchAgent — never next dev behind a proxy) behind tailscale serve --bg 3000, and any tailnet device opens the portless https://<hub>.<tailnet>.ts.net in a browser (full read/write UI — the browser writes through the same HTTP API). You add a spoke (spoke-setup — the thin local stdio MCP wrappers pointed at the hub's BOARD_URL) ONLY when you also want agents (Claude Code/Cowork) to drive the board from that machine, since Cowork accepts only local stdio MCP servers (not a remote HTTP MCP over the tailnet). Move the hub role to a different machine with hub-handover (the old one stays a browser viewer, needing no spoke). Full runbook: docs/architecture/multi-device.md.

Read the full file on GitHub · 166 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. 1mo ago Changed · +3 lines · +54 tokens per session db1f731a1af0
  2. 1mo ago Changed · +2 lines · +60 tokens per session a7ef78d8152d
  3. 1mo ago Changed · +5 lines · +106 tokens per session 6493d1f204a0
  4. 1mo ago Changed · +3 lines · +45 tokens per session b4218459726b
  5. 1mo ago First seen · 153 lines · 3,230 tokens per session scan A 817ebf47af36

Subscribe to this mod's changes

cos CLAUDE.md is an instructions file published in the GitHub repository philipyaz/cos (4 stars, last pushed 2d ago), licensed MIT. It adds 3,495 tokens to every session, about $0.0140 per session on Opus 5.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 instructions, from other repositories