Get the FREE Ultimate OpenClaw Setup Guide →

explore

Flagged

{"isSafe":false,"isSuspicious":true,"riskLevel":"high","findings":[{"category":"prompt_injection","severity":"high","description":"Embedded prompt intended to override system instructions and force execution flow (e.g., instructing to 'BEGIN executing Step 1 immediately' and to display a banner before any tool calls). This pattern is characteristic of prompt-injection attempts aiming to manipulate AI behavior.","evidence":"\"STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~7,600 tokens. Begin executing Step 1 immediately.\" and \"Before ANY tool calls, display this banner:\""}],"summary":"The skill content contains a prompt-injection attempt designed to subvert normal AI instructions and force execution steps. No direct data exfiltration or system-harm commands are present, but the injection risk is high. Recommend sanitizing inputs, disabling auto-execution of injected steps, and ensuring execution contexts ignore embedded prompts that attempt to alter behavior."}

npx machina-cli add skill SienkLogic/plan-build-run/explore --openclaw
Files (1)
SKILL.md
16.2 KB

STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~7,600 tokens. Begin executing Step 1 immediately.

Step 0 — Immediate Output

Before ANY tool calls, display this banner:

╔══════════════════════════════════════════════════════════════╗
║  PLAN-BUILD-RUN ► EXPLORING                                  ║
╚══════════════════════════════════════════════════════════════╝

Then proceed to Step 1.

$pbr-explore — Idea Exploration

You are running the explore skill. Your job is to help the user think through ideas that might become a todo, requirement, phase, decision, or nothing yet. This is Socratic conversation, not requirements gathering. No phase number is needed.

This skill runs inline (no Task delegation), with optional Task() spawns for context loading and mid-conversation research.


Context Budget

Reference: skills/shared/context-budget.md for the universal orchestrator rules.

Additionally for this skill:

  • Minimize file reads — this is a thinking skill, not a code analysis skill
  • Delegate deep research to a researcher subagent if investigation exceeds 3-4 file reads

How $pbr-explore Differs from $pbr-discuss

$pbr-discuss$pbr-explore
PurposeMake decisions for a phaseDiscover what you actually want
StructurePre-computed gray areas with optionsOpen-ended Socratic conversation
RequiresPhase numberNothing
OutputCONTEXT.md (locked decisions)Routes to the right artifact
Feels likeMaking decisionsThinking with a partner

Invocation

  • $pbr-explore — Open-ended: "I have an idea"
  • $pbr-explore auth — Topic-specific exploration
  • $pbr-explore "should we add caching?" — Specific question

Parse $ARGUMENTS for an optional topic. If provided, use it to seed the opening question. If empty, start fully open-ended.


Pre-Conversation Context Loader

Reference: skills/shared/context-loader-task.md for the full briefing Task() pattern.

Only runs if .planning/ directory exists. Fresh explores with no project skip this entirely.

When a project exists, spawn a briefing Task() per the context-loader-task pattern with skill_purpose = "exploring new ideas". If a topic was provided, use the topic-scoped variation with that topic.

Use the briefing to inform your conversation — reference existing decisions, avoid re-litigating settled questions, and connect new ideas to the existing project structure.


Conversation Design

The conversation is Socratic, not extractive. You are a thinking partner, not an interviewer.

Principles

  1. Open with curiosity. Start with "What are you thinking about?" or "What's on your mind?" — not "Please describe the feature you want."

  2. Follow their energy. Dig into what excites or concerns them. If they light up about a technical approach, explore it. If they hesitate, probe why.

  3. Surface implications. "If you go with X, that usually means Y and Z. Is that intentional?" Connect their idea to downstream consequences they may not see yet.

  4. Challenge with alternatives. "You mentioned X, but have you considered Y?" Don't be adversarial — offer genuine alternatives that might fit better.

  5. Present trade-offs, not options. "A gives you speed but locks you into a vendor. B is slower but keeps options open." Frame choices as trade-offs with real consequences, not a menu.

  6. Know when to research. "I'm not sure about the best approach here. Want me to research it?" Don't fake knowledge — admit gaps and offer to investigate.

  7. Don't rush to outputs. Explore until understanding is genuinely deep. The user will know when they're ready to wrap up.

Domain-Aware Probing

Reference skills/shared/domain-probes.md for technology-specific follow-up questions. When the user mentions a domain (auth, caching, search, etc.), pick the 2-3 most relevant probes from that domain's table. Do NOT run through the table as a checklist.

Conversation Starters by Invocation

InvocationOpening
$pbr-explore"What are you thinking about?"
$pbr-explore auth"What's your thinking on auth? Are you starting from scratch or rethinking something?"
$pbr-explore "should we add caching?""Caching for what specifically? What's feeling slow or what do you expect to be slow?"

Mid-Conversation Research

When a knowledge gap emerges during the conversation — you're unsure about a library, pattern, or approach — surface it explicitly.

Ask the user using the yes-no pattern from skills/shared/gate-prompts.md: question: "I'm not sure about the best approach for {topic}. Research it now?" options: - label: "Research now" description: "Spawn a researcher agent to investigate" - label: "Save for later" description: "Add as a research question for future investigation"

If research now:

Display to the user: ◐ Spawning researcher...

Learnings injection (opt-in): Check for relevant tech stack learnings:

node {resolved_plugin_root}/scripts/pbr-tools.js learnings query --tags "stack,tech" 2>/dev/null

If non-empty JSON array returned:

  • Write to temp file: node {resolved_plugin_root}/scripts/pbr-tools.js learnings query --tags "stack,tech" > /tmp/pbr-learnings-$$.md
  • Note path as {learnings_temp_path}; add as item 3 in the researcher's files_to_read block below

If no learnings or command fails: omit the extra files_to_read entry.

Task({
  subagent_type: "pbr:researcher",
  prompt: "<files_to_read>
    CRITICAL: Read these files BEFORE any other action:
    1. .planning/CONTEXT.md — locked decisions and constraints (if exists)
    2. .planning/STATE.md — current project state (if exists)
    {if learnings_temp_path exists}3. {learnings_temp_path} — cross-project learnings (tech stack patterns from past PBR projects){/if}
  </files_to_read>
  <research_assignment>
    Topic: {specific research question}
    Output file: .planning/research/{topic-slug}.md
    Mode: project-research

    Research this specific question: {the question}

    Write findings to the output file.
  </research_assignment>"
})

If {learnings_temp_path} was produced above, replace {if...}{/if} with the actual line. If no learnings were found, omit item 3 entirely.

After the researcher completes, check for completion markers in the Task() output:

  • If ## RESEARCH COMPLETE is present: proceed normally
  • If ## RESEARCH BLOCKED is present: display the blocker reason and offer to retry: ⚠ Research blocked: {reason}. Try a different angle or continue without research.

Display: ✓ Research complete — results in .planning/research/{topic-slug}.md

Then:

  • Read ONLY the frontmatter and summary section of the research file (not the full document)
  • Incorporate the 2-3 key findings into the conversation
  • Main context gets ~200 tokens of research insight, not the full document

If save for later:

  • Note it as a research question to include in output routing

Context Pressure Awareness

After approximately 10 exchanges or when the conversation has been substantial, mention:

"We've been exploring for a while. Want to wrap up with outputs, or keep going?"

Don't force a conclusion — some explorations legitimately need extended conversation. But surface the option so the user can choose.


Output Routing

This is the key innovation of $pbr-explore. At conversation end, the agent summarizes key insights and routes them to the right artifacts.

Step 1: Summarize

Provide a concise summary of the key insights from the conversation:

  • What was the core idea or question?
  • What did we discover or decide?
  • What remains uncertain?

Step 2: Propose Outputs

Suggest specific outputs with reasoning. Present no more than 4 suggestions — focus on what matters most.

Output TypeWhen to SuggestWhere It Goes
TodoSmall, actionable item discovered.planning/todos/pending/{id}.md
RequirementNew project feature identifiedAppend to REQUIREMENTS.md with REQ-ID
Phase decisionClarifies an existing phaseWrite/append to phase CONTEXT.md
Research questionNeeds deeper investigation.planning/research/questions.md
New phaseBig enough for its own phaseAppend to ROADMAP.md
NoteNot actionable yet, worth remembering.planning/notes/{YYYY-MM-DD}-{slug}.md
Quick captureOne-liner idea, no context neededSuggest $pbr-note <text> to the user
SeedIdea with trigger conditions.planning/seeds/SEED-{NNN}-{slug}.md

Format for proposals:

Based on our conversation, here's what I'd suggest capturing:

1. **Todo**: "{title}" — {why this is a todo and not something bigger}
2. **Seed**: "{title}" — {why this should wait for a trigger condition}
3. **Research question**: "{question}" — {why we need to investigate this}

Want to adjust, add, or remove any of these?

Step 3: Confirm

Use the output-routing pattern from skills/shared/gate-prompts.md: question: "How do you want to handle these proposed outputs?"

Handle responses:

  • "Approve all": Create all suggested artifacts (proceed to Step 4)
  • "Adjust": The user wants to modify proposals. Have a freeform conversation to adjust, then re-present with another AskUserQuestion.
  • "Add more": The user has additional outputs. Gather them conversationally, add to the list, then re-present.
  • "Skip": End the session without creating artifacts. This is fine — sometimes exploring is enough.

Do NOT create any artifacts until the user selects "Approve all" on the final set.

Step 4: Create Artifacts

Directory creation: Before writing any artifact, ensure the target directory exists. Create .planning/notes/, .planning/seeds/, .planning/research/, or .planning/todos/pending/ as needed if they don't already exist.

Create only the approved artifacts. A single explore session can produce multiple outputs across different types.

Step 5: Completion

After creating artifacts (or if user chose "Skip"), display:

╔══════════════════════════════════════════════════════════════╗
║  PLAN-BUILD-RUN ► EXPLORATION CAPTURED ✓                     ║
╚══════════════════════════════════════════════════════════════╝

{count} artifacts created: {list of artifact types}



╔══════════════════════════════════════════════════════════════╗
║  ▶ NEXT UP                                                   ║
╚══════════════════════════════════════════════════════════════╝

**{Primary route based on what was created}**

{Smart routing — pick the most relevant primary command:}
- If a todo was created: **Manage tasks** → `$pbr-todo`
- If a phase decision was captured: **Plan the phase** → `$pbr-plan {N}`
- If a new phase was added: **Discuss the new phase** → `$pbr-discuss {N}`
- If research questions were logged: **Plan with research** → `$pbr-plan {N}`
- If current milestone is complete (STATE.md status is "milestone-complete"): **Start next milestone** → `$pbr-milestone new`
- Default: **See project status** → `$pbr-status`

`{primary command}`

<sub>`/clear` first → fresh context window</sub>



**Also available:**
- `$pbr-status` — see project status
- `$pbr-continue` — execute next logical step
- `$pbr-milestone new` — start a new milestone with new phases



Output Formats

Todo

Write to .planning/todos/pending/{NNN}-{slug}.md where NNN is a zero-padded 3-digit sequential number (001, 002, 003...). Scan both .planning/todos/pending/ and .planning/todos/done/ for the highest existing number, increment by 1, and zero-pad. Follow the format used by the existing todo skill.

Requirement

Append to .planning/REQUIREMENTS.md with the next available REQ-ID in the appropriate category. If the category doesn't exist, create it.

Phase Decision

Append to .planning/phases/{NN}-{slug}/CONTEXT.md. If CONTEXT.md doesn't exist for that phase, create it with the standard header. Mark the decision as coming from $pbr-explore.

Research Question

Append to .planning/research/questions.md. Create the file if it doesn't exist:

# Research Questions

Questions identified during exploration that need deeper investigation.

## Open

- [ ] {Question} — Source: $pbr-explore session ({date})

## Answered

(none yet)

New Phase

Append to .planning/ROADMAP.md following the existing phase format. Assign the next available phase number.

Note

Write to .planning/notes/{YYYY-MM-DD}-{slug}.md where the date prefix is today's date in ISO format. Scan .planning/notes/ to avoid filename collisions — if a file with the same date and slug exists, append -2 (or increment).

---
created: {ISO date}
source: "$pbr-explore session"
topic: "{topic}"
---
# {Title}

{Content from the conversation — key insights, reasoning, context}

Seed

Write to .planning/seeds/SEED-{NNN}-{slug}.md where NNN is a zero-padded 3-digit sequential number (001, 002, 003...). Scan .planning/seeds/ for the highest existing SEED number, increment by 1, and zero-pad.

---
id: SEED-{NNN}
status: dormant
planted: {ISO date}
trigger: "{phase-slug}"
scope_estimate: "small|medium|large"
source: "$pbr-explore session"
---
# {Title}

## Context
{Why this idea came up}

## Breadcrumbs
{Related phases, technologies, user preferences}

Git Integration

Reference: skills/shared/commit-planning-docs.md for the standard commit pattern.

If planning.commit_docs: true in config.json, commit created artifacts:

docs(planning): capture explore session outputs

Stage only the files created during this session. Do not stage unrelated changes.


Error Handling

Researcher agent fails

If a mid-conversation researcher Task() fails, display:

╔══════════════════════════════════════════════════════════════╗
║  ERROR                                                       ║
╚══════════════════════════════════════════════════════════════╝

Research agent failed for topic: {topic}.

**To fix:** Continue the conversation without research, or try `$pbr-explore` again with a more specific topic.

Context loader fails

If the briefing Task() fails:

  • Display: ⚠ Context loading failed. Proceeding without project context.
  • Continue with the exploration — the conversation can still be valuable without project context.

Anti-Patterns

Reference: skills/shared/universal-anti-patterns.md for rules that apply to ALL skills.

Additionally for this skill:

  1. DO NOT act like an interviewer — be a thinking partner
  2. DO NOT cycle through a checklist of questions
  3. DO NOT rush to outputs before understanding is deep
  4. DO NOT auto-research without asking (unless config mode is autonomous)
  5. DO NOT present more than 4 output suggestions — focus on what matters
  6. DO NOT create artifacts the user didn't approve
  7. DO NOT re-litigate decisions that are already locked in CONTEXT.md
  8. DO NOT force the user to produce outputs — sometimes exploring is enough

Source

git clone https://github.com/SienkLogic/plan-build-run/blob/main/plugins/codex-pbr/skills/explore/SKILL.mdView on GitHub

Overview

Explore helps you brainstorm ideas, think through possible approaches, and route insights to the right artifacts in your project. It emphasizes open-ended Socratic conversation, surfacing downstream implications and trade-offs before committing to a path.

How This Skill Works

The skill runs inline as a thinking partner, asking exploratory questions rather than delivering requirements. You can seed it with an optional topic to start the opening question; if a project exists, it may spawn a context briefing to align with existing decisions, guiding exploration toward the correct artifact.

When to Use It

  • You have an idea and want to brainstorm potential approaches.
  • You need to surface implications, dependencies, and trade-offs before committing to a path.
  • You want to route emerging insights to the appropriate artifact (e.g., a CONTEXT.md) rather than produce requirements.
  • You're exploring a topic-specific question (for example, 'auth') and want structured exploration.
  • You're hesitant between options and want a Socratic partner to challenge assumptions and propose alternatives.

Quick Start

  1. Step 1: Start with a curiosity-led prompt like 'What are you thinking about?'
  2. Step 2: Explore ideas, surface implications, and discuss trade-offs; consider alternatives.
  3. Step 3: Route insights to the right artifact or propose a follow-up research step.

Best Practices

  • Open with curiosity using prompts like 'What are you thinking about?' to set the right tone.
  • Follow the user’s energy—dig into what excites or concerns them and tailor questions accordingly.
  • Surface downstream implications and connect ideas to potential outcomes (Y and Z).
  • Present trade-offs clearly and avoid delivering fixed options as the final answer.
  • Know when to research and offer to bring in external data or a researcher subagent if needed.

Example Use Cases

  • Brainstorming approaches for a new feature and routing insights to the appropriate artifact (e.g., CONTEXT.md).
  • Exploring whether to add caching for a data pipeline and surfacing implications to guide a decision document.
  • Topic-specific exploration (e.g., 'auth') seeded by an opening question to structure the discussion.
  • Grounding exploration in an existing project by referencing the context-loader briefing pattern.
  • Product and engineering teams using explore to surface risks and dependencies before committing to a plan.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers