Skip to content
Back to skills

Ivar Explore

ASecurity

Start or continue a guided Discovery Session when the user describes a problem, idea, decision or change that is not scoped yet and needs understanding before work begins. Do not use it for a plain question about existing code, and do not use it inside a Feature Session.

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
developmentgogit

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned November 11, 2026

npx -y skills add mnzsss/ivar --skill ivar-explore --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ivar Explore?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ivar Explore
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mnzsss-ivar-explore/badge)](https://www.skillsdirectory.com/skills/mnzsss-ivar-explore)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ivar-explore
description: Start or continue a guided Discovery Session when the user describes a problem, idea, decision or change that is not scoped yet and needs understanding before work begins. Do not use it for a plain question about existing code, and do not use it inside a Feature Session.
---

# Explore

`ivar-explore` runs a guided Discovery Session: understand a problem, explore
the code, or settle a decision before committing to a Feature. The user does
not invoke it; load it when their request is a problem, idea, decision or
change that is not scoped yet. Answer a plain question about existing code
directly and open no session for it.

## Behavior

- **No active session**: starts a new Discovery Session and begins the guided
  discovery, without asking for confirmation.
- **Active Discovery Session**: continues the current discovery and
  never starts a second one.
- **Active Feature Session**: does nothing but explain — conversion is
  irreversible and cannot target a Feature session.

## Steps

1. **Check the active session**
   - `$IVAR_SESSION_ID` is the signal: no command lists sessions, and
     `ivar status` reports the hall's repo health, not its sessions.
   - If `$IVAR_SESSION_ID` is set and its session has no feature → continue the
     existing discovery.
   - If `$IVAR_SESSION_ID` is set and its session is feature-bound → stop and
     say: "This session is already a Feature session. Conversion is
     irreversible. Start a new Discovery Session if needed."
   - If no session exists → step 2.

2. **Start the Discovery Session**
   - Treat the user's message as the provisional objective.
   - Run `ivar session start` with no feature argument.
   - Parse the output for `IVAR_SESSION_ID`, `IVAR_SESSION_PATH` and export them.

3. **Discover**
   - Ask one question at a time. Never ask multiple questions in a single turn.
   - Use `ivar graph explore <query>` (or `ivar graph explore <query> --repo <repo>`) to inspect likely symbols, entry points, and relation evidence before broad file reading.
   - Graph evidence is advisory: if a graph query is missing, stale, empty, unsupported, or fails, fall back directly to source search and file reading.
   - Once the theme is clear and before wide code reading, query memory once: `memory_query`, or `ivar memory query "<theme>" --kind decision --kind gotcha --kind procedure --kind product --json` when the tool does not exist. When a `decision` or `gotcha` contradicts the idea or already settles it, say so to the user before going on. Record the pages that apply in a "Conhecimento prévio" section of `discovery.md` with `ivar discovery amend <name> --file <path>`: title, kind, path and what applies. When the lookup fails, write "memória indisponível" there and continue; a failed lookup never blocks a gate. The rule of one question per turn does not change.
   - Read files, search the codebase (each repo is mounted at the session
     path's own root, as `<name>/` — there is no `repos/` level), run
     read-only commands.
   - **Never write to repos during discovery.** All repos are read-only.
     Hall files outside `.ivar/` (docs, `HALL.md`, harness config) are
     writable, so hall docs can be updated without a feature. The hall's
     git hooks and config, provider hook and MCP config, and `.env` stay
     protected.
   - Build understanding of:
     - Problem or opportunity
     - Desired outcome
     - Initial scope boundaries
     - Likely affected repos
     - Risks and blocking open questions

4. **Conversion readiness check**
   Once you have identified all of the following, you may offer conversion:
   - Problem or opportunity statement
   - Desired outcome
   - Initial scope boundaries
   - Likely affected repos
   - Risks and blocking open questions

   Open questions may remain if recorded, and the user explicitly confirms they
   want to proceed.

   **Never convert automatically** — always ask the user explicitly.

5. **Offer conversion**
   - Ask: "Ready to convert this Discovery Session into a Feature Session? This
     is irreversible."
   - If yes:
     1. Write the discovery brief through the CLI. The doc's frontmatter is
        ivar-owned — `name`, `status`, `created_at`, `updated_at` and
        `sessions` — so a hand-written file has no `sessions` entry and
        conversion will refuse it.
        - Create the doc if it does not exist:
          `ivar discovery create <name> [--title <title>]`. The doc is written
          into the discovery session's view dir (`discovery.md`). The name is the
          unit of work's name, lowercase kebab-case; it becomes the feature
          name at conversion.
        - Write the brief:
          `ivar discovery amend <name> --file <path>`.
          `--file -` reads stdin. Append is the default and records the
          session in `sessions`, which is what conversion looks for.
        - Use `--merge` only to replace the whole document; it requires
          `--expected-hash <sha256>`, the hash `ivar discovery show` reports.
          Show the proposed document and get confirmation first.
     2. Confirm the brief with the user.
     3. Run `ivar session convert <session-id>` to bind the session. The
        command moves `discovery.md` into `.ivar/features/<name>/discovery.md`
        and creates the feature when it does not exist yet. Do not ask the user
        to choose a new or existing feature — the name follows from the brief,
        and `ivar feature create` beforehand is unnecessary.
     4. Parse the output. Export the binding env vars.
     5. After successful conversion, ask: **(a) Plan it now**, **(b) Stop here**.
        Load the `ivar-plan` skill only on (a). `ivar sync` ships `ivar-plan` to
        every provider at the hall root, so do not look for it under the session
        directory.

## Important

- **Never write to repositories during discovery.** Every repo is read-only
  until promoted.
- **Never convert automatically.** Always get explicit user confirmation.
- **Conversion is irreversible.** A Discovery Session converts exactly once. A
  Feature Session can never go back to discovery.
- **One question at a time.** Build understanding incrementally.
- **Use the CLI.** Never create or modify session files, state.json, or feature
  files manually.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in development →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.