> ## Documentation Index
> Fetch the complete documentation index at: https://docs.entire.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Explain, Search, and Hand Off Work with Skills

> Learn how to use Skills to explain code, investigate changes, search history, and hand work off between agents

This tutorial uses four workflows from the [Entire Skills collection](/learn/skills-overview.md) to explain code, investigate changes, search history, and hand work off between agents.

> [!NOTE]
>
> Skills are most useful once Entire has recorded session context and checkpoints. This tutorial creates that history as you go, so you can try the Skills even if you are starting fresh.

By the end, you will:

1. Understand what each Skill does
2. Install the Skills locally
3. Practice the exact prompts and commands to use
4. Build a tiny app so the Skills have real code to work against

## Skills Used in This Tutorial

You will practice `explain`, `what-happened`, `search`, and `session-handoff`. The [Skills overview](/learn/skills-overview.md#choose-a-skill) lists every shipped Skill with a use case, example request, and source link.

## Prerequisites

Before using these Skills, make sure you have:

1. [Git installed](/installation.md)
2. A supported AI agent: [Antigravity CLI](/agents/antigravity.md), [Claude Code](/agents/claude-code.md), [Codex](/agents/codex.md), [Copilot CLI](/agents/copilot-cli.md), [Cursor](/agents/cursor.md), [Factory](/agents/factory-droid.md), [OpenCode](/agents/opencode.md), or [Pi](/agents/pi.md)
3. The [Entire CLI installed](/installation.md)

> [!NOTE]
>
> This tutorial uses [Codex](/agents/codex.md) for the examples. You can use these Skills with your preferred agent, including [Antigravity CLI](/agents/antigravity.md), [Claude Code](/agents/claude-code.md), [OpenCode](/agents/opencode.md), [Cursor](/agents/cursor.md), [Copilot CLI](/agents/copilot-cli.md), [Factory](/agents/factory-droid.md), or [Pi](/agents/pi.md).

## Install Skills

Install the complete collection with the [Skills CLI](https://skills.sh/):

```bash theme={null}
npx skills add https://github.com/entireio/skills --all
```

You can also use your agent's package flow:

> **Codex**
>
> See the [Codex integration guide](/agents/codex.md).
>
> ```bash theme={null}
> mkdir -p ~/.agents/skills
> cd ~/.agents/skills
> git clone https://github.com/entireio/skills.git entire
> ```

> **Claude Code**
>
> See the [Claude Code integration guide](/agents/claude-code.md).
>
> ```text theme={null}
> /plugin marketplace add entireio/skills
> /plugin install entire
> ```

To install one Skill, see [Install Skills](/learn/skills-overview.md#install-skills). To add the search and agent help helpers that the CLI installs in the repository, see [Install CLI Managed Helpers](/learn/skills-overview.md#install-cli-managed-helpers).

## Install Entire

Install Entire by following the main [CLI installation guide](/installation.md).

## Create a Project

We are going to build a tiny app called `bug-notes`.

This project is enough to:

* generate history
* make changes worth explaining
* create [checkpoints](/guides/sessions/overview.md#what-is-a-checkpoint) worth searching

Create the project:

```bash theme={null}
mkdir bug-notes
cd bug-notes
npm create vite@latest . -- --template vanilla
npm install
```

Run it:

```bash theme={null}
npm run dev
```

## Enable Entire

From inside `bug-notes`, run [`entire enable`](/cli-reference/enable) for Codex and sign in:

```bash theme={null}
entire enable -y --agent codex
entire login
```

When run in a fresh project folder, `entire enable -y --agent codex` initializes Git and creates the initial commit. It never creates or pushes to a remote.

> [!TIP]
>
> If you are using a different agent, use the corresponding integration flow instead. See [Codex](/agents/codex.md) or [Claude Code](/agents/claude-code.md).

## Publish the Repository

Publish now, before you start building. The `search` exercise later reads indexed history from Entire, so it needs somewhere to push to. Either route works:

**Entire repository**

Create a project and a repository, then point `origin` at it:

```bash theme={null}
entire project create bug-notes --owner github:<your-handle> --owner-type account
entire repo create bug-notes --project bug-notes
entire repo remote add origin /et/bug-notes/bug-notes
git push -u origin HEAD
```

See [Entire Repositories](/guides/repositories/entire-native-repositories.md) for the full walkthrough.

**GitHub**

Create a GitHub repository and push to it:

```bash theme={null}
gh repo create bug-notes --source . --private --push
```

The [Entire GitHub App must have access](/guides/repositories/github-app-access.md) to the new repository before Entire can mirror it. Then [mirror it](/guides/repositories/mirrors-in-cli.md):

```bash theme={null}
entire repo mirror add /gh/<your-handle>/bug-notes
```

At this point, your project is ready to record [session](/glossary.md#session) context and [checkpoints](/guides/sessions/overview.md#what-is-a-checkpoint).

## Build the App

Open the repo in your AI agent and give it a focused task.

Suggested prompt:

```text theme={null}
Build a tiny bug tracker in this Vite app.
Requirements:
- Add a form with title and status
- Save bugs in local state
- Show a list of bug notes
- Allow filtering by open and fixed
- Keep the code simple and readable
```

Once the agent finishes, commit the result:

```bash theme={null}
git add .
git commit -m "Build bug notes app"
git push
```

That commit is important because the Skills become much more useful once there is committed and pushed history plus [Entire checkpoint data](/guides/checkpoints/checkpoint-storage.md).

## Add History

The `search` Skill has more material to examine when several [sessions](/glossary.md#session) cover distinct concepts. Do these as separate chunks of work, then commit and push after each one.

### Persistence

Suggested prompt:

```text theme={null}
Add localStorage persistence so bug notes survive refresh.
Also add a small empty state when no notes exist.
```

Commit:

```bash theme={null}
git add .
git commit -m "Add persistence and empty state"
git push
```

### Duplicate Detection

Suggested prompt:

```text theme={null}
Add duplicate bug detection.
If a user tries to add a bug note with the same title as an existing one, show an inline validation message and prevent the duplicate.
```

Commit:

```bash theme={null}
git add .
git commit -m "Prevent duplicate bug entries"
git push
```

### Severity Badges

Suggested prompt:

```text theme={null}
Add a severity field with values low, medium, and high.
Show a colored severity badge in the bug list and allow filtering by severity.
```

Commit:

```bash theme={null}
git add .
git commit -m "Add severity badges and filter"
git push
```

Now you have three distinct stories in history:

* persistence
* duplicate detection
* severity filtering

That gives `search` much better material than a single vague feature.

## Practice Skills

### Explain

Ask:

```text theme={null}
/explain src/main.js
```

Or:

```text theme={null}
Explain why the persistence logic exists
```

What you should notice:

* the skill is trying to connect the code to the original session context
* this is different from a normal code explanation, which only describes current behavior

### What Happened

Find a specific code range first:

```bash theme={null}
nl -ba src/main.js | sed -n '1,220p'
```

Then ask:

```text theme={null}
what happened here: src/main.js:40-85
```

What you should notice:

* this is block-focused
* it is about provenance of a specific region
* it is ideal when a few lines look strange or surprising

### Search

Before this exercise, make sure `entire login` already worked in Terminal. `search` uses indexed checkpoint history, so give Entire a moment to index your pushed checkpoints before trying these queries.

Start with a very specific query:

```text theme={null}
search past work for duplicate validation
```

If that is too narrow, try:

```text theme={null}
search past work for duplicate bug detection
```

Then try:

```text theme={null}
search past work for severity badges
```

Only after that, try the broader question:

```text theme={null}
have we done this before with persistence?
```

What you should notice:

* it searches [checkpoints](/guides/sessions/overview.md#what-is-a-checkpoint) and the session context connected to them
* it helps with memory across [sessions](/glossary.md#session)
* it works best with concrete nouns and feature phrases, not broad words like `persistence` by itself
* the best demo queries are feature names, validation behavior, bug text, file names, or ticket IDs

### Session Handoff

Start with the summary request:

```text theme={null}
hand off this session
```

Or:

```text theme={null}
hand off the codex session
```

What you should notice:

* the skill creates a concise handoff summary so another agent can pick up the next task
* it is especially useful after a long build or debug session

For a more intentional transfer, use a two-step workflow. This example hands work to Claude Code, but you can replace Claude Code with any supported agent.

Step 1: generate the handoff summary in your current agent:

```text theme={null}
Prepare a handoff for Claude Code. The next task is to add edit and delete actions for bug notes. Preserve the current vanilla JS structure and localStorage behavior.
```

Step 2: open the receiving agent and paste the handoff plus an explicit task brief:

```text theme={null}
Continue this project from the handoff below.

Your next task:
- add edit and delete actions for bug notes
- keep the app in plain vanilla JS
- preserve the existing localStorage behavior
- keep the code simple and readable
- make one commit when the feature is complete

Handoff:
[paste the handoff summary here]
```

This is the best tutorial pattern because it shows that:

* `session-handoff` packages the important context
* the user still controls the next objective
* the receiving agent gets both history and clear execution instructions

If you want the receiving agent to stay narrowly scoped, make the brief even more explicit:

```text theme={null}
Continue from this handoff.
Only do the next task: add delete support for bug notes.
Do not add tests or extra refactors.
Make one commit when done.

Handoff:
[paste handoff]
```

## Why Skills Help

In this tutorial, Skill prompting is stronger than normal prompting because it gives the agent a defined workflow instead of a vague question.

> **Explain Code Intent**
>
> `/explain src/main.js` is stronger than `Why is this code here?` because it tells the agent to investigate code intent with transcript-aware context.

> **Trace a Code Block**
>
> `what happened here: src/main.js:40-85` is stronger than `Why is this weird?` because it points to a specific block and asks for provenance.

> **Search Prior Work**
>
> `search past work for duplicate bug detection` is stronger than `Have we done this before?` because it gives the search Skill specific feature language to match.

> **Hand Work Off**
>
> `Prepare a handoff for Claude Code...` is stronger than `summarize this` because it names the receiving agent, the next task, and the key constraints.

The general pattern is simple:

* Normal prompting asks the agent to guess the method
* Skill prompting gives the agent both the goal and the method

That usually leads to better structure, better use of Entire history, and less back-and-forth.

## Troubleshooting

> **Skills Are Installed but Do Not Trigger**
>
> Make sure:
>
> * the repo is installed in the right discovery path for your tool
> * the tool supports Skills or plugins
> * you are using prompts that clearly invoke the skill

> **`search` or `explain` Returns No Transcript**
>
> Possible reasons:
>
> * the code was created outside an Entire-tracked session
> * you have not committed yet, or have not pushed yet for `search`
> * you have not enabled Entire in the repo
> * authentication or checkpoint configuration is incomplete

> **`search` Works but Feels Underwhelming**
>
> That usually means one of these:
>
> * the query is too broad, like `persistence` or `auth`
> * there are not enough prior sessions yet
> * your earlier sessions did not use distinctive feature language
>
> To improve results:
>
> * use more specific queries like `duplicate bug detection` or `severity badge filter`
> * build 2 or 3 distinct features before testing the skill
> * commit and push after each feature so the history is easier to traverse and index

> **`session-handoff` Is Not Useful Yet**
>
> That usually means the project has too little tracked history. Do another meaningful work session, then commit it.
