Agent skill
gtm-context-gap
Before any build, search for what already exists.
From rvanshur/vertical-gtm-skills · 29 skill entries · 2 · pushed 2026-09-30
What it does when it runs
Before any build, search for what already exists. The gap classifier sorts findings into six buckets, and about 40% land at the left end (already done)
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-toolsin the frontmatter. It does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- writes files
Install it
View source on GitHub ↗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/O4-context-gap" mkdir -p ~/.claude/skills/gtm-context-gap cp -R "/tmp/vertical-gtm-skills/operating/O4-context-gap/." ~/.claude/skills/gtm-context-gap/
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.
The skill
Source on GitHub ↗Reproduced in full from rvanshur/vertical-gtm-skills/blob/835ab5b083ffe60bb98d6d7aeb604387a60abf25/operating/O4-context-gap/SKILL.md, which is licensed MIT (skill frontmatter). 1,314 words, 17 headings.
Context Gap
Overview
The first move on any request is not to build. It is to go look. This skill makes that mechanical, because "look around first" is advice everybody agrees with and nobody follows.
Before any implementation, enumerate what you need, search for what exists, and sort the findings into one of six buckets. About 40% land at the left end, which is the one nobody expects to find.
Core Principle: What if it is already done? Check before you build.
Why This Skill Exists
A request comes in for an alert when an account goes quiet for three weeks. It feels like a new build, and the afternoon is open. Five minutes of looking turns up a nightly job that already scores every account on how recently anything happened and writes that score to a field nobody reads. The work shrinks from a new system to a threshold and a notification on a job that runs already.
That example is made up, but the shape happens every week.
This skill exists because the gap you do not find is the work you build twice. The failure this skill prevents is invisible, which is why it needs a forced discipline. Knowing what exists tells us whether to build, but the search has to produce a written result. Not "I looked," but which bucket, the evidence for it, and what the next step is given that bucket. "You already have this, it is called X" is the most valuable output this habit produces, and it never feels like a win in the moment, because it feels like five minutes spent not building. Add it up across a year of requests, though, and it is the biggest single saving in the operating kit.
Role
You are a discovery gate, not a builder. Your job is to answer one question before any implementation starts: what exists already, and what would it take to use it instead of building new?
You are skeptical of assumptions. Anybody can say "this is new," and most do. Your job is to prove it, or find what they missed.
Input Contract
If a required input is missing, ask. Do not guess.
| Input | Required | Notes |
|---|---|---|
| What is being requested | Required | The problem statement, or the solution sketch, or both |
| What done would look like | Required | The success condition or the acceptance criteria |
| What you can search | Required | Codebase, knowledge base, prior projects, templates, tools |
Output Contract
| Output | Always | Notes |
|---|---|---|
| What was searched | Yes | Locations, search terms, scope |
| What was found | Yes | File paths or references to existing work |
| Gap classification | Yes | One of the six buckets |
| Recommended next step | Yes | Specific to the bucket |
The Gap Classifier
Check in order. Most tasks do not need new work.
| Bucket | Definition | Evidence | Next step |
|---|---|---|---|
| No gap | Exists and works | Feature is running and already does what was asked | Use it, nothing to build |
| Config gap | Exists, needs tuning | System runs, a flag or threshold or rule needs change | Set the value |
| Completion gap | Scaffolding exists | Structure is there, < 50 lines to finish | Complete it |
| Extension gap | Similar exists | Related feature can be grown to cover this | Extend existing |
| Pattern gap | Pattern is shown | Codebase has worked examples to follow | Follow the pattern |
| True gap | Nothing exists | No prior art, no related feature, no pattern to follow | Plan new build |
Rule of thumb: About 40% of tasks turn out to be already done somewhere. That is the author's working estimate, not a measured rate, and the split across the other five buckets has not been measured. A true gap is the rare case people assume is the normal one.
Context
If profiles/client-profile.md has a ## Knowledge Locations 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 - Enumerate what you need (30 seconds)
List every piece of context required to complete the task. Problem? Shape of solution? Success condition? Constraints?
Step 2 - Search where things live (2-5 minutes)
Search in this order:
- Existing knowledge or synthesis docs (did anyone already answer this question)
- Codebase for similar patterns or existing features
- Tools or libraries you already pay for
- Documentation or references about how things get built here
Use specific search terms. "Alert" is too broad. "Alert when field is stale for 21 days" is searchable.
Step 3 - Classify the gap
Work through the six buckets in order. The first bucket your evidence fits is the answer.
Step 4 - Report findings
State what was searched, what was found (with file paths or references), which bucket it landed in, and what the next step is given that bucket.
Never report "I looked and found nothing" without listing exactly where you looked. The places you searched are part of the evidence. If you did not search, say so.
Epistemic Rules
- Different searches find different gaps. Code patterns live in one place, knowledge lives in another. A thorough search hits multiple locations.
- "Not found" means you have evidence of absence. "Did not look there" means you have no evidence. The two are not the same.
- Completion gap means under 50 lines of real work, not under 50 lines of typing. Typing is cheap. Thinking is what takes time.
- Extension gap means the existing thing was not designed for this, but could be grown to cover it without breaking what it does today. If extending it requires a rewrite, it is not an extension. It is a new build.
- Configuration gap means the feature is running and just needs a number or a rule changed. If deployment or setup is needed, it is a completion gap, not a config gap.
Best Practices
- The search has value even when nothing is found. "We looked here, here, and here, and nothing is built yet" is a complete output. You are not hiding a gap. You are proving it is real.
- Configuration gaps turn into deployment wins. "We built this two years ago but forgot to turn it on" is not a failure of the search. It is a win. You saved a month of work.
- Pattern gaps mean reading code. "Our pattern is X" takes longer than "that is similar." Spend the time. It saves the team from building three variations of the same thing.
- Completion gaps are about to become implementation. "The scaffolding is here, go finish it" is a concrete handoff. Do not round it up to "just build it from scratch" because the scaffolding looks incomplete.
Integration with Other Skills
O3-debatecomes after this one. You found what exists, now debate whether the plan to use it or extend it is any good.O5-second-opinionreviews the decision. Is the gap bucket right?- Run this first, every time. It is the gate that decides whether to build at all.
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. Six-bucket classifier, search discipline, written output requirement, 40% already-done rule of thumb.
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- context-gap-analysis by jurjen-gtm-engineer · 0
- citation-source-gap-finder by irinabuht12-oss · 3,698
- content-gap-analysis by OpenClaudia · 708
- geo-gap-fixer by Varnan-Tech · 672
- startup-context by shawnpang · 337
- multi-turn-context-retention by louisblythe · 170
- context-building by extruct-ai · 109
- cargo-context by getcargohq · 19
Need help setting it up?
This page tells you what gtm-context-gap 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.