/think — Temporal-trajectory queries against the brain
SkillAI & modelsTemporal-trajectory-aware recall. Routes a question through a zero-LLM-cost intent classifier (temporal / knowledge_update / other). Temporal questions ("when did X last Y", "what changed since Z") get spliced answers from chronologically-sorted client history.md + goals/MMYY-NN-cycle.md + dated memory pages + extracted session decisions. Knowledge-update questions ("what is the latest on X", "any new on Y") filter the same sources to since-date or last-N. Other questions short-circuit to /recall. Triggers: "/think [question]", "when did", "when was the last", "what changed", "what is the latest", "any new on", "what happened with". NOT for live web research — use Exa per brain-first-lookup ladder Step 4. NOT for general session search — use /recall (this skill chains into it for non-temporal queries).
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /think — Temporal-trajectory queries against the brain skill
What this skill tells your AI
The instructions your AI receives, as published by matteotitta/genesys-skills in skills/meta/session/think/SKILL.md and read by ahel’s review.
Answer "when did X last Y" / "what changed since Z" / "what's the latest on W" by splicing dated entries from client history.md, sprint goals/MMYY-NN-cycle.md, memory pages, and session decisions into a chronological timeline. Zero LLM cost on intent classification — regex routes the query, the splice does the work.
Stolen from garrytan/gbrain (v0.40.2.0) via /steal Phase 5–6 (2026-05-23). See .claude/discovery/0526-gbrain-steal-analysis.md item G19.
Triggers
Invoke this skill when the user says:
/think [question]- "When did Alan last push back on positioning?"
- "When was the last time we shipped a Pulse?"
- "What changed in ClientCo's pricing since the March doc?"
- "What's the latest on ClientCo's GTM stack build?"
- "Any new on ClientCo?"
- "What happened with the Notion shadow-pull thing?"
Do NOT invoke when:
- The question is rule-shaped or convention-shaped ("do we have a rule about X?") — use
/recall --memory - The question is decision-extraction shaped ("what did we decide about X?") — use
/recall --decisions - The question is research-shaped or external ("what's Salesloft launching this week?") — follow
.claude/rules/brain-first-lookup.mdthen Exa perexa-protocol.md - The question is in-session reasoning ("what should we do next?") — just answer
If unsure between /think and /recall: /think is for when-shaped and what-changed-shaped questions; /recall is for what-was-decided and what-was-discussed questions.
Process
Step 1 — Classify intent (regex, zero-LLM)
Apply the classifier to the input question. Three intents:
| Intent | Regex pattern (case-insensitive) | Routing |
|---|---|---|
| temporal | `\b(when | last time |
| knowledge_update | `\b(latest | recent |
| other | (no match) | Fast-path: short-circuit to /recall <topic> |
Implementation note: the classifier is deterministic — no model call. Wrong classification degrades gracefully (the source files still surface; the ordering is just less optimal). Default if ambiguous: temporal.
Step 2 — Temporal splice (chronological timeline)
For temporal intent, build a unified chronological timeline by reading these sources:
- Client
history.mdif a client name is in the query —projects/consulting/active/{client}/history.md(append-only ops record) - Client sprint cycles if a client name is in the query —
projects/consulting/active/{client}/goals/*-cycle.md(dated cycle files) - Memory pages sorted by
indexed_atfrommemory_pagestable (G13) — filter by topic keyword - Session decisions sorted by
timestampfromdecisionstable — filter by topic + optional--client
Splice + sort:
- Each entry gets a normalized
(date, source, claim)triple - Sort descending by date (most recent first)
- Limit to the top 20 entries or the last 90 days, whichever is smaller
Output format:
TIMELINE — "<query>"
────────────────────────────────────────
2026-05-23 [history] {history.md entry}
↳ projects/consulting/active/{client}/history.md
2026-05-21 [decision] {decision text}
↳ session {id_short}
2026-05-17 [memory] {memory page title}
↳ memory/{slug}.md (tier {boost}x)
2026-05-15 [cycle] {cycle file headline}
↳ goals/0526-02-cycle.md
...
For "when did X last Y" questions: find the most-recent entry matching X+Y, return it with full context. For "first time" questions: same logic, ascending sort.
Step 3 — Knowledge-update splice (since-date filter)
For knowledge_update intent, parse the implicit time anchor and filter:
| Anchor | Filter |
|---|---|
| "latest" / "current" / "recent" | Last 30 days |
| "any new" / "new on" | Last 14 days |
| "since the March doc" / "since v3" | Find the named anchor; filter to entries after its date |
| "since last [week/month]" | Compute the date; filter accordingly |
Same sources as Step 2 (history.md + cycles + memory + decisions). Same chronological output, but filtered to the since-window.
Step 4 — Fast-path short-circuit (other intent)
If the intent classifier returns other, the question isn't temporal-shaped. Don't build a timeline — just hand off to /recall <topic> and return its result. This is the cheap default — most questions are not temporal, and routing them through the splice machinery would burn time for no gain.
Worked examples
Example 1 — "When did Alan last push back on positioning?"
- Intent: temporal (matches
\bwhen did\b) - Sources scanned:
projects/consulting/active/ClientCo/history.md+ memory pages with "alan" + session decisions filtered to--client "ClientCo" - Output: most-recent entry surfaces (e.g.,
2026-03-18 [decision] Alan pushed back on "MVP test" → compliance friction reclassification)
Example 2 — "What's the latest on ClientCo's GTM stack build?"
- Intent: knowledge_update (matches
\bwhat is the latest\b.*\bon\b) - Window: last 30 days
- Sources scanned:
projects/consulting/active/ClientCo/history.md+ sprint cycles + decisions - Output: chronological timeline of the last 30 days of ClientCo activity, most-recent first
Example 3 — "What did we decide about positioning?"
- Intent: other (no temporal regex match)
- Short-circuit: hand off to
/recall --decisionsfiltered by topic "positioning" - No timeline built — the question is decision-shaped, not when-shaped
Example 4 — "Since the March doc, what changed on ClientCo pricing?"
- Intent: knowledge_update (matches
\bsince the\b) - Anchor: "March doc" → resolve to
projects/consulting/active/ClientCo/pricing/0326-*.mdmtime → filter to entries after - Output: chronological timeline of pricing-related entries after the March doc
Data sources (read paths)
| Source | Path | Date field |
|---|---|---|
| Client history.md | projects/consulting/active/{client}/history.md | date prefix on each line (e.g., 2026-05-21 —...) |
| Client sprint cycles | projects/consulting/active/{client}/goals/*-cycle.md | filename MMYY-NN-cycle.md (NN = sprint #) |
| Memory pages | recall.db memory_pages table | indexed_at column |
| Session decisions | recall.db decisions table | timestamp column |
For client name extraction from the query, match against CLIENT_MAP from session-indexer.py (ClientCo, ClientCo, ClientCo, ClientCo, etc.).
Anti-hallucination guardrails
- Never fabricate timeline entries. Only return entries actually found in the source files. If a query matches nothing, say "no temporal entries found for {query}" — don't synthesize.
- Always cite the source path + date. Every timeline row has a
↳ {path}line. The user can verify. - Don't paraphrase entries. Quote the verbatim line from
history.mdor memory page; the verbatim phrasing IS the signal (per.claude/rules/auto-memory.md). - Respect the brain-first-lookup ladder. If the timeline is empty AND the question is research-shaped, escalate per
.claude/rules/brain-first-lookup.mdStep 4 — don't fill the gap with external data without explicit user approval. - Cap output at top-20 or 90 days. Longer timelines drown the reader; if more depth is needed, the user can ask
/think --since 6mo.
When to use this skill vs. its neighbors
| Question shape | Right tool |
|---|---|
| "When did X last Y?" | /think (temporal) |
| "What's the latest on X?" | /think (knowledge_update) |
| "What changed since [date/anchor]?" | /think (knowledge_update) |
| "Do we have a rule about X?" | /recall --memory (rule lookup) |
| "What did we decide about X?" | /recall --decisions (decision extraction) |
| "Find the session where we built X" | /recall [topic] (session content) |
| "What's happening today?" | /today (live productivity surface) |
| "Pick up where I left off" | /recall (default session search) |
The fast-path short-circuit means /think is safe to invoke broadly — non-temporal questions just route through to /recall without overhead.
Composition with adjacent skills + rules
| Rule / Skill | Composition |
|---|---|
.claude/rules/brain-first-lookup.md | /think is one of the Step-1 entry points when the question is temporal-shaped. Failed temporal lookup → escalate through Step 2-4 of the ladder |
.claude/rules/auto-memory.md | Memory pages with [[link]]s surface in the timeline alongside their cluster — disciplined writes feed temporal recall |
/recall | Short-circuit destination for non-temporal queries. Also the source of decisions table joined into Step 2 splice |
/session-wrap | Writes the decisions + memory entries that this skill reads later |
/today | Different time axis — today is forward-looking (what's on the calendar / inbox / Linear); think is backward-looking (what happened with X) |
Anti-patterns
- ❌ Running
/thinkon every question. The fast-path costs near-zero, but it adds a layer of indirection — only invoke when the question is temporal-shaped or you want the classifier to decide. - ❌ Treating the classifier as infallible. Misclassification degrades gracefully; check the output and re-route manually if needed.
- ❌ Splicing too many sources. Top-20 / 90-day cap is the discipline; more drowns the signal.
- ❌ Paraphrasing source entries in the timeline. Quote verbatim with path + date.
- ❌ Filling temporal gaps with external research. If the brain has nothing, say so; don't invent a "latest on X" from training data.
Signals
- GitHub stars
- 36
- Forks
- 14
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
think-matteotitta- Source
- github.com/matteotitta/genesys-skills