Account vault
Skill tga-cheetung/account-intelligence-vault/.claude/skills/account-vault
Reads, writes, and summarizes per-account markdown files in a vault. Use when the user asks about a target account, wants a dossier, wants to append a signal, or wants to find accounts by frontmatter filter. Triggers on phrases like "tell me about <domain>", "dossier for <domain>", "/account-vault", "/dossier", "/account-new", "/account-append", "/account-list".From its SKILL.md
npx -y skills add tga-cheetung/account-intelligence-vault --skill account-vaultAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.0 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
account-vault
This skill turns the vault folder into a queryable, agent-writable intelligence layer for the GTM operator's target accounts. Every account is one markdown file at vault/accounts/<domain>.md. The skill knows the schema, the read patterns, and the write protocol from the root CLAUDE.md.
Deploy when
- The user mentions a target account by domain or company name
- The user asks for a dossier, brief, or summary of an account
- The user has a new signal, interaction, meeting note, or research finding to file
- The user wants to find accounts matching criteria ("show me all Series B fintechs in our vault")
What this skill is NOT
- Not the CRM. Stage, owner, and ARR live in the CRM. The
crm_idfrontmatter field is the bidirectional link — never re-derive CRM data here. - Not a free-form notes app. Account-scoped intel only. Send personal notes elsewhere.
STEP 0: Parse the user's input
Expected forms:
/account-vault new <domain>— scaffold a new file/account-vault dossier <domain>— 5-bullet brief/account-vault append <domain> <signal_type> "<note>"— append a signal/account-vault summary <domain>— regenerate the top-of-file summary/account-vault list [filter]— search by frontmatter
Or natural language: "tell me about acme.com", "what do we know about Acme?", "add to acme.com: they hired a new VP Sales", "show me all tier-A accounts".
Extract:
command(one of: new, dossier, append, summary, list)domain(root domain — strip protocol,www., trailing slashes)args(signal_type, note, filter — depending on command)
If the domain is ambiguous (the user said the company name not the domain), search vault/accounts/ for matching frontmatter domain: or filename. If multiple match, ask which one.
STEP 1: Route by command
new <domain>
- Check if
vault/accounts/<domain>.mdalready exists. If yes, surface the existing file and ask if the user wants to view, append, or overwrite (destructive — never default to overwrite). - Copy
vault/_templates/account.mdtovault/accounts/<domain>.md. - Fill in
domain:,created: <today>,last_touched: <today>in the frontmatter. Leave the rest blank for the user. - Surface: "Created vault/accounts/<domain>.md. Fill in Firmographics + Open questions when you have them; the rest will populate as you append signals and interactions."
dossier <domain>
- Read
vault/accounts/<domain>.md. If it does not exist, offer to create it (new) and stop. - Parse the frontmatter and the Summary section. If the Summary section has fewer than 3 bullets or is older than 14 days (compare
last_touched), regenerate it (seesummary). - Read the most recent 3 signals from the Buying signals section.
- Read the most recent 2 interactions from the Interaction log.
- Produce a 5-bullet brief:
- Bullet 1: who they are (firmographics one-liner)
- Bullet 2: most recent signal + its implication
- Bullet 3: most recent interaction + outcome
- Bullet 4: the top open question (if any)
- Bullet 5: the recommended next action (judgment — be concrete)
- Cite the file with a
vault/accounts/<domain>.mdline at the bottom so the user can open it.
Total token budget: ~600 tokens out. Brief means brief.
append <domain> <signal_type> "<note>"
-
Read
vault/accounts/<domain>.md. If it does not exist, offer to create it (new) and stop. -
Validate
signal_typeagainstvault/signals/signal-catalog.md. If unknown, ask the user whether to (a) pick an existing type, or (b) add a new type to the catalog first (do not silently invent new types). -
Append under the
<!-- agent-appendable: signals -->marker, at the top of the section (newest-first), using the schema from the signal catalog:### <YYYY-MM-DD> — <one-line title derived from the note> - Signal type: <signal_type> - Source: <source — ask if not given> - Confidence: <low | medium | high — ask if not given> - Implication: <one sentence — generate from the note> -
Update
last_touched:in frontmatter to today. -
Mark the Summary section stale (add a comment
<!-- stale: regenerate -->near the marker). Do NOT auto-regenerate the summary on every append — too expensive. Regenerate on demand or once per week via heartbeat. -
Confirm: "Appended <signal_type> signal to vault/accounts/<domain>.md. Summary marked stale. Run /account-vault summary <domain> to refresh."
summary <domain>
- Read the entire file.
- Generate a 5-bullet summary that covers:
- Firmographics one-liner (industry + size + stage)
- Most recent material signal + implication
- Most recent interaction + outcome
- Tech stack and most relevant adjacent products
- The top open question or the recommended next action
- Replace the body of the Summary section (between
## Summaryand the next##heading) with the new bullets. - Remove any
<!-- stale: regenerate -->marker. - Update
last_touched:to today.
list [filter]
- Walk
vault/accounts/*.mdreading only the frontmatter (do NOT read full files — keep this cheap). - If no filter, list all accounts with: filename, tier, status, last_touched, top-tags.
- If filter is given, parse it as
key=value(e.g.,tier=A,status=active,tags=fintech). Multi-criteria filters are AND'd. Examples the user might give:list tier=A status=active,list tags=fintech,list last_touched>=2026-05-01. - Output a sorted table (by last_touched descending).
- Cap the list at 50; if more match, surface the count and ask whether to widen the view.
STEP 2: Maintain the write protocol
Always:
- Write under
<!-- agent-appendable: ... -->markers only. Never touch Firmographics or Open questions sections (those are human-maintained). - Use ISO dates (
YYYY-MM-DD). Refuse relative dates ("yesterday", "last week") — ask for the date if not given. - Wikilink contacts as
[[<slug>]]referencing files invault/people/. - After any write, update
last_touched:in frontmatter.
Configuration
Required environment:
ANTHROPIC_API_KEY— forsummaryanddossier(these use the Anthropic SDK via the in-session model, no extra config needed if the user is already running Claude Code)
Optional environment:
VAULT_ROOT— path to the vault. Defaults to the current working directory'svault/folder if Claude Code was launched at the repo root.
Installation
Drop this file at ~/.claude/skills/account-vault/SKILL.md. Restart Claude Code if needed (or /skills reload). The skill is then available via the /account-vault slash command and via natural language ("tell me about acme.com").
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.