From orient
Use when user invokes /orient with a topic keyword, entity type, project name, time qualifier, or combination. Also triggers on "what do we know about X", "remind me about X", "where did we leave off on X". Provides targeted context loading — searches the MCP Memory Server graph, knowledge files, journal entries, and research index to produce a focused orientation briefing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/orient:orientThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Produce a focused orientation briefing for a specific topic by searching across the knowledge graph, knowledge files, journal entries, and research index. Designed for targeted context loading — get only what's relevant instead of everything.
Produce a focused orientation briefing for a specific topic by searching across the knowledge graph, knowledge files, journal entries, and research index. Designed for targeted context loading — get only what's relevant instead of everything.
Core principles:
User types /orient followed by:
membrain, data engineering)desires, open tensions)recent, last week, today)recent membrain, desires and tensions)/orient membrain
/orient desires and tensions
/orient recent evidence
/orient the streaming migration project
/orient data engineering
Follow in order. Skip a step only when its required component is absent (e.g., MCP not connected → skip Graph).
Classify the argument into one or more of:
| Type | Detection | Example |
|---|---|---|
| Entity type | Matches known graph type (case-insensitive): Desire, Tension, Evidence, Project, Research, Concept, Value, Idea, Procedure, Question, Goal | desires, open tensions |
| Time qualifier | Contains: "recent", "latest", "last week", "today", date patterns (YYYY-MM-DD) | recent evidence |
| Topic keyword | Everything else — natural language | membrain, data engineering |
Time qualifier definitions (applies to journal only — graph searches are always full-graph unless the query is explicitly temporal):
Parsing rules:
Entity type vs keyword disambiguation: When a word matches both a known entity type and a plausible keyword (e.g., "project", "research", "idea"), ask the user for clarity before searching: "Does 'project' mean the entity type (graph nodes of type Project) or the topic keyword (anything related to projects)?" Skip this check when context makes the intent obvious (e.g., "open tensions" → entity type).
Entity type reference: Check knowledge/reference.md for the current schema if unsure which entity types exist.
Requires: MCP Memory Server (search_nodes, open_nodes tools available)
If MCP Memory Server is not connected, skip this step entirely and note it in the output: "Graph: MCP Memory Server not connected — skipped."
Smart query construction:
search_nodes query first (e.g., search_nodes("streaming migration"))Search strategy:
search_nodes("topic") with the parsed topic keyword (using smart query construction above)search_nodes("EntityType") for each typeHard caps:
| Guard | Limit |
|---|---|
read_graph | NEVER called — this dumps the entire graph |
search_nodes calls | Max 3 per orientation |
open_nodes calls | Max 2 per orientation |
| Entities shown | Max 10 |
| Observations per entity | Max 3 |
Breadth guard: If search returns >15 results, show the top 10 most relevant and note: (Showing top 10 of N results — narrow your query for more specific results.)
Selection: From results, select the top 10 most relevant entities. Show max 3 observations per entity.
knowledge/ directory to discover what files existknowledge/journal/ and read matching date entries (most recent first, per time qualifier definitions in Step 1)projects.md, evidence.md, development_log.mdcore_principles.md, identity.md, procedures.mdIf no knowledge/ directory exists, skip this step and note it.
research/INDEX.md exists, grep it for the topic keyword(s)research/[topic]/ directory exists — if so, list its filesIf no research/ directory or INDEX.md exists, skip this step.
Use this output structure. Omit empty sections — do not include a section header with no content.
## Orient: [Topic]
### Graph
- **EntityName** (Type) — observation 1; observation 2; observation 3
- **EntityName** (Type) — observation 1
### Knowledge
> From projects.md: [relevant excerpt — the enclosing section, condensed]
> From evidence.md: [relevant excerpt]
### Journal
- **2026-03-07:** [relevant excerpt from that day's entry]
- **2026-03-06:** [relevant excerpt]
### Research
- `research/membrain/architecture.md` — membrain architecture reference
- `research/agent-memory/hindsight.md` — biomimetic agent memory
### Suggested Queries
- `/orient membrain governance` — governance layer details
- `/orient membrain phase 5` — phase 5 planning context
- `open_nodes(["Desire-Build-Something-Shippable"])` — full desire context (entity details)
Rough token budget per section (guidance, not hard caps):
Adaptive rules:
/orient [topic] for follow-on topic searches. Use open_nodes only when suggesting specific entities the user might want full details on. Never suggest read_graph.End with a contextual follow-up offer:
| Guard | Limit |
|---|---|
read_graph | NEVER called |
search_nodes calls | Max 3 |
open_nodes calls | Max 2 |
| Graph entities shown | Max 10 |
| Observations per entity | Max 3 |
| Knowledge files read | Aim 3-5 |
| Journal entries read | Max 3 |
| Research entries listed | Max 5 (listed, not read) |
| Total output | ~800-2000 tokens |
| Broad result threshold | >15 results → show top 10 with note |
| Mistake | Fix |
|---|---|
Calling read_graph | NEVER. Use search_nodes with targeted queries only. |
| Reading entire knowledge files | Extract only the enclosing H2/H3 section around the match. |
| Reading research synthesis files | List them. Offer to read specific ones. Don't read proactively. |
| Exceeding search caps | Stop at 3 search_nodes calls, 2 open_nodes calls. If you need more, offer follow-up queries. |
| Dumping >15 graph results | Show top 10 most relevant, note the total count. |
| Including empty sections | Omit sections that have no content. Don't show "### Research" with nothing under it. |
| Ignoring MCP availability | Check if search_nodes/open_nodes tools exist before calling them. If not, skip Graph and note it. |
| Wall of text | Keep output between ~800-2000 tokens. This is a briefing, not a report. Condense excerpts. |
Suggesting read_graph in follow-ups | Only suggest /orient calls or open_nodes as follow-up queries. |
| Using grep bash command | Use the Grep tool instead for all file content searches. |
| Applying time qualifiers to graph | Time qualifiers scope journal entries only. Graph searches are always full-graph. |
npx claudepluginhub harnessprotocol/harness-kit --plugin orientQueries and manages a project knowledge graph across tasks, SOPs, memories, and concepts. Captures patterns, pitfalls, decisions, and learnings for persistent retrieval.
Traverses knowledge graph across memories, entities, and relationships for comprehensive context. Use before planning complex work, investigating concept connections, or answering 'what do you know about X'.
Compiles deep context on a topic by combining semantic search with relationship traversal across 4 retrieval phases. Useful for research spanning multiple entries and connections.