# Flashlight

> Shine a light into a wayfinder map's fog — work one direction now, out of frontier order, or redraw the map itself.

- **Type:** Skill
- **Install:** `agentstack add skill-will-ness-ai-skills-flashlight`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [will-ness-ai](https://agentstack.voostack.com/s/will-ness-ai)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [will-ness-ai](https://github.com/will-ness-ai)
- **Source:** https://github.com/will-ness-ai/skills/tree/main/skills/flashlight

## Install

```sh
agentstack add skill-will-ness-ai-skills-flashlight
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

A **wayfinder map** charts a large effort as decision tickets on the issue tracker, wrapped in **fog**. Its **frontier** — the open, unblocked, unclaimed tickets — advances in its own order.

A flashlight is the human's beam. They point it at one direction, and this session walks in **now**, out of frontier order, to learn what lies that way.

`/flashlight  `. Ask for the map when the invocation omits it. Shine **one beam per session**.

Where the map, its child tickets, blocking edges, claims and the frontier query physically live is tracker-specific. Consult the tracker doc's "Wayfinding operations" section for how this repo expresses each one. Default to the local-markdown tracker when no tracker doc is present.

## Two beams

Read ``, and ask one question: **is the subject the map, or the territory?**

- **Territory** — the work itself. "Can we use SQLite for the queue?" → [Shine into the territory](#shine-into-the-territory).
- **Map** — the chart you already drew: what to focus on, what to defer, what no longer belongs. "We have too many open tickets — what should we focus on?" → [Redraw the map](#redraw-the-map).

Ask the human to choose when the request reads both ways.

## Shine into the territory

The beam becomes one ad-hoc ticket, and leaves the same trail as any ticket the map was charted with.

### 1. Aim the beam

Load the map — Destination, Notes, Decisions so far — and the open tickets bearing on the direction. Where an open ticket already asks this question, work that one instead: claim it, and continue from step 4.

Infer the **type** from the request:

| Type | Use it for | Resolve with |
| --- | --- | --- |
| **Grilling** (HITL) | a decision to settle by conversation — the default | `/grilling` and `/domain-modeling` |
| **Research** (AFK) | a fact from outside this working directory | a `/research` subagent |
| **Prototype** (HITL) | "how should it look, how should it behave", answered by a cheap concrete artifact | `/prototype`; `/grill-design` for an unsettled frontend look |
| **Task** (HITL or AFK) | manual work that unblocks a decision | the agent alone where it can; otherwise a precise checklist for the human |

On a **HITL** type the human answers their own questions — this session asks and records. An **AFK** type runs alone.

**Done when** the type is chosen and the map's Destination is in hand.

### 2. Zoom out

Brief the human: the **type** in bold, what this session is about to do, and where the direction sits on the map.

**Done when** the human has seen the type before any ticket exists.

### 3. Create and claim the ticket

Create a child issue of the map titled `Flashlight: `, carrying the verbatim `` as its question and the `wayfinder:` label. It takes no blocking edges — it is born and closed inside this session.

**Claim it** — assign it to the dev driving the map — before the work starts.

**Done when** the ticket exists, carries its type, and shows an assignee.

### 4. Work the ticket

Resolve it as a ticket of its type. Invoke the skills the map's `## Notes` names, plus the type's own. Zoom into any related or closed ticket on demand.

**Done when** the question has an answer its type can support.

### 5. Record and adjust the map

- Post the answer as a **resolution comment**, then **close** the ticket.
- Append one line to **Decisions so far**: the ticket name, its link, and a one-line gist of the answer.
- Create the tickets the answer made specifiable, and clear each graduated patch from **Not yet specified**.
- Rule out of scope whatever the answer put past the destination: close it, and leave one line in **Out of scope**.

**Done when** the ticket is closed and every section the answer touched carries its line.

## Redraw the map

The beam falls on the chart itself. This mode creates no ticket — the comments it leaves on the tickets it touches are the record.

### 1. Read the whole chart

Load the map and **every** open ticket: question, type, blockers, assignee.

**Done when** each open ticket is accounted for, the claimed ones included.

### 2. Propose

Show the human one change list, and wait for their approval. Name every edit, and why it earns its place.

**Done when** the human has approved the list.

### 3. Apply

| Verb | What it does |
| --- | --- |
| **Create** | a new ticket — then wire its edges in a second pass, because issues need ids before they can reference each other |
| **Update** | a ticket's question |
| **Re-order** | map order decides frontier order, so this is how you prioritise |
| **Re-wire** | a ticket blocked by an open ticket leaves the frontier and returns when that blocker closes, so this is how you defer |
| **Rule out of scope** | close it, and leave one line in **Out of scope**: the gist, and why it sits past the destination |
| **Cancel** | for a duplicate or a mistake. Close it, and leave one line in **Decisions so far** marked **cancelled**, carrying the reason |

Comment on every ticket you touch, saying what happened and why.

A ticket with an assignee is **claimed**: a live session is working it right now. Leave its state as it is, and comment on it, so that session learns what changed.

**Done when** every approved edit is applied, and every touched ticket carries its comment.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [will-ness-ai](https://github.com/will-ness-ai)
- **Source:** [will-ness-ai/skills](https://github.com/will-ness-ai/skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-will-ness-ai-skills-flashlight
- Seller: https://agentstack.voostack.com/s/will-ness-ai
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
