Systems Lab

Agent skill

gtm-ingest

Transforms raw content (transcripts, documents, calls, notes) into structured knowledge items with metadata, two-tier truth/timeline structure, and wiki-links for discovery

activeSelf-containedActs undeclared1,544 words

Filed under Content and SEO.

From rvanshur/vertical-gtm-skills · 29 skill entries · 2 · pushed 2026-09-30

What it does when it runs

Transforms raw content (transcripts, documents, calls, notes) into structured knowledge items with metadata, two-tier truth/timeline structure, and wiki-links for discovery

Automated analysis of the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
writes files

Ask about gtm-ingest

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/rvanshur/vertical-gtm-skills.git /tmp/vertical-gtm-skills
git -C /tmp/vertical-gtm-skills sparse-checkout set "operating/O9-ingest"
mkdir -p ~/.claude/skills/gtm-ingest
cp -R "/tmp/vertical-gtm-skills/operating/O9-ingest/." ~/.claude/skills/gtm-ingest/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from rvanshur/vertical-gtm-skills/blob/835ab5b083ffe60bb98d6d7aeb604387a60abf25/operating/O9-ingest/SKILL.md, which is licensed MIT (skill frontmatter). 1,544 words, 26 headings.

Ingest

Overview

Turns raw content, transcripts, documents, call notes, meeting records, decisions, into structured knowledge items that are findable, updatable, and connected.

The ingest habit is where the pile of notes becomes a system. Raw transcripts are not searchable. Structured items are. A loose collection of observations cannot tell you what changed. A timeline of dated observations can. The conversion is unglamorous and nobody schedules it, which is why the pile grows and why every new hire rediscovers what the company learned years ago.

Core Principle: Capture beats recall. If it is not structured enough to retrieve, it is not captured.


Why This Skill Exists

Organizations lose knowledge constantly. A customer calls with a question, and the answer exists in a transcript from March, but nobody has time to search every transcript since. So the team rebuilds the answer, the customer waits, and the rebuilding becomes the norm.

The skill exists because of a specific pattern. Information arrives, a call transcript, a decision meeting, a research document, notes from a conversation. The person who receives it reads it and absorbs it. But they do not have time to convert it into something others can find. So it sits in their inbox, or gets filed with a vague name, or stays only in their head. When they leave, it evaporates.

The conversion is the skill. What makes the conversion valuable is two mechanisms. First, every item has two permanent zones, compiled truth at the top (the current best understanding, rewritten as understanding changes) and a timeline at the bottom (append-only, dated, every interaction in order, exact quotes never paraphrased). When the team re-reads something six months later and finds they were wrong, the top gets rewritten and a new entry goes in the timeline. The record of how you got there stays intact. The top can be wrong and fixed. The bottom is the audit trail.

Second, when an ingested item is about a person, the skill checks whether one already exists, and if it does, appends a timeline entry instead of starting a duplicate. One person, one record, every interaction in order. It sounds trivial until you picture a team holding four half-notes about the same customer, written by people who did not know the others existed, and a new rep reading one and walking into a call missing the other three.


Role

You are a knowledge architect, not a transcriptionist. Your job is to extract meaning, structure it so it can be found, and connect it to what is already known.


Input Contract

If required input is missing, ask, do not guess.

InputRequiredNotes
Raw contentRequiredTranscript, document, call notes, or pasted text
Content typeRequiredIs this a call / meeting / document / notes / decision?
Item taxonomyRequiredDomain / type / status values for your system

Output Contract

OutputAlwaysNotes
Items createdYesCount and names of new items
Items updatedYesAny existing items that received new timeline entries
Key concepts extractedYesWhat atomic ideas are present in this content
Relationships identifiedYesHow new items connect to existing ones
WarningsYesAny metadata not in taxonomy, any person mentioned without a dedicated page

Context

If profiles/client-profile.md has a ## Knowledge Ingestion section (this skill's CUSTOMIZE.md writes it), read it before starting and let it replace the generic defaults in this file. If the section is missing, run with the defaults and say once, at the start, that the skill is running uncustomized.


Core Workflow

Step 1. Analyze Content Type

Determine what has arrived:

  • Transcript → Extract decisions, action items, concepts, quotes, objections, commitments
  • Document → Extract thesis, key points, frameworks, relationships, evidence
  • Notes → Extract ideas, questions, insights, TODOs, patterns
  • Sales call → Extract objections, commitments, pain points, coaching moments
  • Meeting → Extract decisions, action items, behavioral patterns, commitments

Step 2. Identify Concepts

Ask: what atomic ideas are present in this content?

  • What domain? (technical / business / methodology / gtm / other)
  • What relationships exist between them?
  • Which concepts are new to the system, and which overlap existing items?

Be conservative. One clear concept per item beats ten vague ones.

Step 3. Check for Existing Items

Before creating a new item:

  • Search existing KB for items on this concept
  • If one exists with the same subject, append a timeline entry instead of creating a duplicate
  • If one exists but in a different context (same topic, different angle), mark as "related concept"

Special rule for person entities: Every person gets one record. If the person already has an item, append a timeline entry. One person, one record, every interaction in order.

Step 4. Create or Update Knowledge Item

For each new concept, generate a knowledge item:

Template:

---
name: CONCEPT_NAME_IN_CAPS
description: One sentence description
domain: technical|business|methodology|gtm|other
node_type: concept|pattern|case-study|framework|decision|person
status: emergent|validated|canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags:
  - [domain]
  - [relevant tags from taxonomy]
related_concepts:
  - "[[related-item-1]]"
  - "[[related-item-2]]"
source:
  type: transcript|document|notes|call|meeting
  date: YYYY-MM-DD
  reference: [where this came from, if citable]
---

# Concept Name

## Compiled Truth

[2-3 paragraph explanation of the current best understanding.
Rewrite this section when evidence changes.]

### Key Points
- Point 1
- Point 2
- Point 3

## Timeline

[Append-only, reverse chronological order. Only add, never edit existing entries.]

### YYYY-MM-DD. [Source event]
- What was learned
- Exact quote (if applicable)
- Source attribution

Compiled truth rule: Facts and synthesis go here. Rewrite this section as understanding evolves.

Timeline rule: Dated observations, exact quotes, evidence, timestamps. Append only. Never edit.

Step 5. Establish Connections

For each new item, identify [[wiki-links]] to existing items:

  • Related concepts
  • Blocking concepts
  • Examples or evidence of the concept

Aim for 2-5 connections per item. An item with zero connections is an orphan.

Step 6. Check Metadata

Before saving:

  • All required frontmatter fields present and correct
  • Tags align with system taxonomy (warn if creating new tags)
  • Status is appropriate (usually starts as emergent)
  • Source is attributed

Step 7. Save and Report

Save the item(s) to the correct location.

Report:

  • Number of items created and their names
  • Number of existing items updated (timeline entries added)
  • New relationships discovered
  • Any new tags not in taxonomy

Quick Reference

Input TypeHow to ExtractKey Output
TranscriptRe-read, mark decisions and direct quotesDecisions made, patterns, commitments
DocumentIdentify thesis + supporting pointsFrameworks, evidence, core claims
NotesSort by idea, ignore editorialObservations, questions, hypotheses
CallWhat changed about what we believe?Buyer behavior, objections, shifts
MeetingWhat was decided? Why? By whom?Decisions, action ownership, rationale

Epistemic Rules

  • Capture beats interpretation. If unsure whether something is important, capture it. Status emergent lets it stay until proven.
  • Exact quotes are evidence. Paraphrase only for synthesis. Preserve originals in timeline.
  • One person, one record. Every interaction goes to their timeline, never a new half-note.
  • Connected items matter. An orphan item is unfindable except by accident. Every item should have 2+ connections.
  • Compiled truth is mutable. Timelines are immutable. Top can be wrong. Bottom is the audit trail.

Troubleshooting

SymptomLikely causeResponse
"This feels like 10 concepts, not 1"Content is too broadSplit it. One concept per item.
"I don't know if this is important yet"You are overthinking itMark as emergent and ingest it. Status changes later.
"There's already an item about this"Check if it is the same concept or a different angleSame? Add timeline entry. Different? Create new item + link them.
"I can't extract atomic concepts"The source content is too scatteredAsk for clarification or wait for a clearer source. Garbage in = garbage out.

Best Practices

  • Ingest while the content is fresh, not weeks later from memory.
  • If the source is a person's words (transcript, notes), preserve exact quotes.
  • Tag conservatively. Better to under-tag than to fragment the search space.
  • Connect to existing items. Isolated items are useless.
  • When in doubt about importance, ingest it. You can archive it later.

Integration with Other Skills

  • O7-graph-health measures whether ingested items form a usable system.
  • O8-dream consolidates items ingested over time.
  • O6-weekly-review tracks whether ingestion is keeping up.
  • Together, ingest (add) → graph-health (diagnose) → dream (consolidate) is the cycle.

Changelog

  • 1.1.0 (2026-09-29): Context section added, so the skill reads the profile section its CUSTOMIZE.md writes.
  • 1.0.0 (2026-09-28): Initial release. Compiled-truth/timeline structure, person-entity deduplication, metadata validation, and relationship discovery.

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Need help setting it up?

This page tells you what gtm-ingest does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.