Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,9 @@ name: CI

on:
pull_request:
paths-ignore:
- 'docs/**'
push:
branches:
- main
paths-ignore:
- 'docs/**'

jobs:
tests:
Expand Down
15 changes: 8 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,14 @@ Assuming you have an MCP-compatible client ([Claude](https://docs.planexe.org/mc

The Tool workflow (tools-only, not MCP tasks protocol)

1. `prompt_examples`
2. `model_profiles` (optional, helps choose `model_profile`)
3. non-tool step: draft/approve prompt
4. `plan_create`
5. `plan_status` (poll every 5 minutes until done)
6. optional if failed: `plan_retry`
7. download the result via `plan_download` or via `plan_file_info`
1. `example_plans` (optional, preview what PlanExe output looks like)
2. `example_prompts`
3. `model_profiles` (optional, helps choose `model_profile`)
4. non-tool step: draft/approve prompt
5. `plan_create`
6. `plan_status` (poll every 5 minutes until done)
7. optional if failed: `plan_retry`
8. download the result via `plan_download` or via `plan_file_info`

Concurrency note: each `plan_create` call returns a new `plan_id`; server-side global per-client concurrency is not capped, so clients should track their own parallel plans.

Expand Down
2 changes: 1 addition & 1 deletion docs/mcp/codex.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Guide for connecting [codex](https://openai.com/codex/) with PlanExe via MCP.

1. Start Codex.
2. Ask for MCP tools.
3. Call `prompt_examples` to get examples.
3. Call `example_prompts` to get examples.
4. Call `plan_create` to start a plan.

## Sample prompt
Expand Down
13 changes: 7 additions & 6 deletions docs/mcp/inspector.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ When connected follow these steps:

Now there should be a list with tool names and descriptions:
```
prompt_examples
example_plans
example_prompts
model_profiles
plan_create
plan_status
Expand All @@ -83,9 +84,9 @@ When you inspect `plan_create`, the visible input schema includes `prompt` and o
Follow these steps:
![screenshot of mcp inspector invoke tool](inspector_step5_mcp_planexe_org.webp)

1. In the `Tools` panel; Click on the `prompt_examples` tool.
2. In the `prompt_examples` right sidepanel; Click on `Run Tool`.
3. The MCP server should respond with a list of example prompts.
1. In the `Tools` panel; Click on the `example_plans` tool to preview example output, or `example_prompts` to see prompt examples.
2. In the right sidepanel; Click on `Run Tool`.
3. The MCP server should respond with example plans or example prompts.
4. Optionally run `model_profiles` to inspect available `model_profile` choices before `plan_create`.

## Approach 2. MCP server inside docker
Expand Down Expand Up @@ -121,7 +122,7 @@ Then open the `Tools` tab, click `List Tools`.

![Screenshot list tools](inspector_step3_docker.webp)

Click `prompt_examples`, click `Run Tool`.
Click `example_prompts`, click `Run Tool`.

![Screenshot example prompts](inspector_step4_docker.webp)

Expand Down Expand Up @@ -173,6 +174,6 @@ Then open the `Tools` tab, click `List Tools`.

![Screenshot example prompts](inspector_step3_local.webp)

Click `prompt_examples`, click `Run Tool`.
Click `example_prompts`, click `Run Tool`.

![Screenshot example prompts](inspector_step4_local.webp)
64 changes: 39 additions & 25 deletions docs/mcp/mcp_details.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,25 @@ This document lists the MCP tools exposed by PlanExe and example prompts for age

## Tool Catalog, `mcp_cloud`

### prompt_examples
### example_plans

Returns a curated list of example plans with download links for reports and zip bundles. Use this to preview what PlanExe output looks like before creating your own plan. No API key required.

Example prompt:
```
Show me example plans.
```

Example call:
```json
{}
```

Response includes `plans` (array of objects with `title`, `report_url`, `zip_url`) and `message`.

### example_prompts

Returns around five example prompts that show what good prompts look like. Each sample is typically 300-800 words. Usually the AI does the heavy lifting: the user has a vague idea, the agent calls `prompt_examples`, then expands that idea into a high-quality prompt (300-800 words). A compact prompt shape works best: objective, scope, constraints, timeline, stakeholders, budget/resources, and success criteria. The prompt is shown to the user, who can ask for further changes or confirm it’s good to go. When the user confirms, the agent then calls `plan_create`. Shorter or vaguer prompts produce lower-quality plans.
Returns around five example prompts that show what good prompts look like. Each sample is typically 300-800 words. Usually the AI does the heavy lifting: the user has a vague idea, the agent calls `example_prompts`, then expands that idea into a high-quality prompt (300-800 words). A compact prompt shape works best: objective, scope, constraints, timeline, stakeholders, budget/resources, and success criteria. The prompt is shown to the user, who can ask for further changes or confirm it’s good to go. When the user confirms, the agent then calls `plan_create`. Shorter or vaguer prompts produce lower-quality plans.

Example prompt:
```
Expand Down Expand Up @@ -56,22 +72,6 @@ Response includes:
- `model_count`
- `models[]` (`key`, `provider_class`, `model`, `priority`)

### example_plans

Returns a curated list of example plans with download links for reports and zip bundles. Use this to preview what PlanExe output looks like before creating your own plan. No API key required.

Example prompt:
```
Show me example plans.
```

Example call:
```json
{}
```

Response includes `plans` (array of objects with `title`, `report_url`, `zip_url`) and `message`.

### plan_create

Create a new plan.
Expand Down Expand Up @@ -266,9 +266,23 @@ Special case:

## Typical Flow

### 1. Get example prompts
### 1. Preview example plans (optional)

Call `example_plans` to see curated example plans with download links, so you can preview what PlanExe output looks like before creating your own plan.

Prompt:
```
Show me example plans.
```

Tool call:
```json
{}
```

### 2. Get example prompts

The user often starts with a vague idea. The AI calls `prompt_examples` first to see what good prompts look like (around five samples, typically 300-800 words each), then expands the user’s idea into a high-quality prompt using this compact shape: objective, scope, constraints, timeline, stakeholders, budget/resources, and success criteria.
The user often starts with a vague idea. The AI calls `example_prompts` first to see what good prompts look like (around five samples, typically 300-800 words each), then expands the user’s idea into a high-quality prompt using this compact shape: objective, scope, constraints, timeline, stakeholders, budget/resources, and success criteria.

Prompt:
```
Expand All @@ -280,7 +294,7 @@ Tool call:
{}
```

### 2. Inspect model profiles (optional but recommended)
### 3. Inspect model profiles (optional but recommended)

Prompt:
```
Expand All @@ -292,11 +306,11 @@ Tool call:
{}
```

### 3. Draft and approve the prompt (non-tool step)
### 4. Draft and approve the prompt (non-tool step)

At this step, the agent writes a high-quality prompt draft (typically 300-800 words, with objective, scope, constraints, timeline, stakeholders, budget/resources, and success criteria), shows it to the user, and waits for approval.

### 4. Create a plan
### 5. Create a plan

The user reviews the prompt and either asks for further changes or confirms it’s good to go. When the user confirms, the agent calls `plan_create` with that prompt.

Expand All @@ -305,7 +319,7 @@ Tool call:
{"prompt": "..."}
```

### 5. Get status
### 6. Get status

Prompt:
```
Expand All @@ -324,7 +338,7 @@ Tool call:
{"plan_id": "<plan_id_from_plan_create>", "model_profile": "baseline"}
```

### 6. Download the report
### 7. Download the report

Prompt:
```
Expand Down
13 changes: 7 additions & 6 deletions docs/mcp/mcp_setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@ This is the shortest path to a working PlanExe MCP integration.

## 2. Minimal tool usage

1. `prompt_examples`
2. `model_profiles`
3. `plan_create`
4. `plan_status`
5. `plan_retry` (optional, only for failed plans)
6. `plan_file_info`
1. `example_plans` (optional, preview example output)
2. `example_prompts`
3. `model_profiles`
4. `plan_create`
5. `plan_status`
6. `plan_retry` (optional, only for failed plans)
7. `plan_file_info`

Optional local helper:
- `plan_download` (provided by `mcp_local`, not `mcp_cloud`)
Expand Down
14 changes: 7 additions & 7 deletions docs/mcp/planexe_mcp_interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ PlanExe is a service that generates **strategic project-plan drafts** from a nat

### 1.2 What kind of plan does it create

The plan is a **project plan**: a DAG of steps (Luigi pipeline stages) that produce artifacts including a Gantt chart, risk analysis, and other project management deliverables. The main output is a self-contained interactive HTML report (~700KB) with collapsible sections, interactive Gantt charts, and embedded JavaScript. The report contains 20+ sections including executive summary, investor pitch, project plan with SMART criteria, strategic decision analysis, scenario comparison, assumptions with expert review, governance structure, SWOT analysis, team role profiles, simulated expert criticism, work breakdown structure, plan review, Q&A, premortem with failure scenarios, self-audit checklist, and adversarial premise attacks. There is also a zip file containing all intermediary pipeline files (md, json, csv) that fed the report. Plan quality depends on prompt quality; use the prompt_examples tool to see the baseline before calling plan_create.
The plan is a **project plan**: a DAG of steps (Luigi pipeline stages) that produce artifacts including a Gantt chart, risk analysis, and other project management deliverables. The main output is a self-contained interactive HTML report (~700KB) with collapsible sections, interactive Gantt charts, and embedded JavaScript. The report contains 20+ sections including executive summary, investor pitch, project plan with SMART criteria, strategic decision analysis, scenario comparison, assumptions with expert review, governance structure, SWOT analysis, team role profiles, simulated expert criticism, work breakdown structure, plan review, Q&A, premortem with failure scenarios, self-audit checklist, and adversarial premise attacks. There is also a zip file containing all intermediary pipeline files (md, json, csv) that fed the report. Plan quality depends on prompt quality; use the example_prompts tool to see the baseline before calling plan_create.

#### 1.2.1 Agent-facing summary (for server instructions / tool descriptions)

Implementors should expose the following to agents so they understand what PlanExe does:

- **What:** PlanExe turns a plain-English goal into a strategic project-plan draft (20+ sections) in ~10–20 min. Sections include executive summary, interactive Gantt charts, investor pitch, SWOT, governance, team profiles, work breakdown, scenario comparison, expert criticism, and adversarial sections (premortem, self-audit, premise attacks) that stress-test the plan. The output is a draft to refine, not an executable or final document — but it surfaces hard questions the prompter may not have considered.
- **Required interaction order:** Call `prompt_examples` first. Optional before `plan_create`: call `model_profiles` to inspect profile guidance and available models in each profile. Then complete a non-tool step: formulate a detailed prompt as flowing prose (not structured markdown), typically ~300-800 words, using the examples as a baseline; include objective, scope, constraints, timeline, stakeholders, budget/resources, and success criteria; get user approval. Only after approval, call `plan_create`. Then poll `plan_status` (about every 5 minutes); use `plan_download` (mcp_local helper) or `plan_file_info` (mcp_cloud tool) when complete (`pending`/`processing` = keep polling, `completed` = download now, `failed` = terminal). If a plan fails and the caller wants another attempt for the same `plan_id`, call `plan_retry` (optional `model_profile`, default `baseline`). To stop, call `plan_stop` with the `plan_id` from `plan_create`.
- **Required interaction order:** Call `example_plans` (optional) and `example_prompts` first. Optional before `plan_create`: call `model_profiles` to inspect profile guidance and available models in each profile. Then complete a non-tool step: formulate a detailed prompt as flowing prose (not structured markdown), typically ~300-800 words, using the examples as a baseline; include objective, scope, constraints, timeline, stakeholders, budget/resources, and success criteria; get user approval. Only after approval, call `plan_create`. Then poll `plan_status` (about every 5 minutes); use `plan_download` (mcp_local helper) or `plan_file_info` (mcp_cloud tool) when complete (`pending`/`processing` = keep polling, `completed` = download now, `failed` = terminal). If a plan fails and the caller wants another attempt for the same `plan_id`, call `plan_retry` (optional `model_profile`, default `baseline`). To stop, call `plan_stop` with the `plan_id` from `plan_create`.
- **Output:** Self-contained interactive HTML report (~700KB) with collapsible sections and interactive Gantt charts — open in a browser. The zip contains the intermediary pipeline files (md, json, csv) that fed the report.

### 1.3 Scope of this document
Expand Down Expand Up @@ -73,7 +73,7 @@ The MCP specification defines two different mechanisms:
- **MCP tools** (e.g. plan_create, plan_status, plan_stop, plan_retry): the server exposes named tools; the client calls them and receives a response. PlanExe's interface is **tool-based**: the agent calls plan_create → receives plan_id → polls plan_status → optionally calls plan_retry on failed → uses plan_file_info (and optionally plan_download via mcp_local). This document specifies those tools.
- **MCP tasks protocol** ("Run as task" in some UIs): a separate mechanism where the client can run a tool "as a task" using RPC methods such as tasks/run, tasks/get, tasks/result, tasks/cancel, tasks/list, so the tool runs in the background and the client polls for results.

PlanExe **does not** use or advertise the MCP tasks protocol. Implementors and clients should use the **tools only**. Do not enable "Run as task" for PlanExe; many clients (e.g. Cursor) and the Python MCP SDK do not support the tasks protocol properly. Intended flow: call `prompt_examples`; optionally call `model_profiles`; perform the non-tool prompt drafting/approval step; call `plan_create`; poll `plan_status`; if failed call `plan_retry` (optional); then call `plan_file_info` (or `plan_download` via mcp_local) when completed.
PlanExe **does not** use or advertise the MCP tasks protocol. Implementors and clients should use the **tools only**. Do not enable "Run as task" for PlanExe; many clients (e.g. Cursor) and the Python MCP SDK do not support the tasks protocol properly. Intended flow: optionally call `example_plans`; call `example_prompts`; optionally call `model_profiles`; perform the non-tool prompt drafting/approval step; call `plan_create`; poll `plan_status`; if failed call `plan_retry` (optional); then call `plan_file_info` (or `plan_download` via mcp_local) when completed.

---

Expand Down Expand Up @@ -155,9 +155,9 @@ The public MCP `state` field is aligned with `PlanItem.state`:

All tool names below are normative.

### 6.1 prompt_examples
### 6.1 example_prompts

**Call this first.** Returns example prompts that define the baseline for what a good prompt looks like. Do not call plan_create yet. Correct flow: call this tool; optionally call `model_profiles`; then complete a non-tool step (draft and approve a detailed prompt, typically ~300-800 words); only then call `plan_create`. If you call `plan_create` before formulating and approving a prompt, the resulting plan will be lower quality than it could be.
**Call this first.** Returns example prompts that define the baseline for what a good prompt looks like. Do not call plan_create yet. Correct flow: optionally call `example_plans`; call this tool; optionally call `model_profiles`; then complete a non-tool step (draft and approve a detailed prompt, typically ~300-800 words); only then call `plan_create`. If you call `plan_create` before formulating and approving a prompt, the resulting plan will be lower quality than it could be.

Write the prompt as flowing prose, not structured markdown with headers or bullet lists. Weave technical specs, constraints, and targets naturally into sentences. Include banned words/approaches and governance structure inline. Typical length: 300–800 words. The examples demonstrate this prose style — match their tone and density.

Expand Down Expand Up @@ -213,7 +213,7 @@ Use the returned `profile` values directly in `plan_create.model_profile`.

### 6.2 plan_create

**Call only after prompt_examples and after the non-tool drafting/approval step.** Start creating a new plan with the approved prompt.
**Call only after example_prompts and after the non-tool drafting/approval step.** Start creating a new plan with the approved prompt.

**Request**

Expand Down Expand Up @@ -282,7 +282,7 @@ Use a normal single LLM response (not PlanExe) for one-shot micro-tasks. PlanExe
- model_profile: LLM profile (`baseline` | `premium` | `frontier` | `custom`). If unsure, call `model_profiles` first.
- user_api_key: user API key for credits and attribution (if your deployment requires it).

Clients can call the MCP tool **prompt_examples** to retrieve example prompts. Use these as examples for plan_create; they can also call plan_create with any prompt—short prompts produce less detailed plans.
Clients can call the MCP tool **example_prompts** to retrieve example prompts. Use these as examples for plan_create; they can also call plan_create with any prompt—short prompts produce less detailed plans.

For the full catalog file:

Expand Down
6 changes: 3 additions & 3 deletions docs/proposals/47-openclaw-agent-skill-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ OpenClaw Agent
"description": "Gives the agent the ability to plan, budget, and track complex projects via the PlanExe Cloud.",
"permissions": ["network_access"],
"mcp_tools": [
"prompt_examples",
"example_prompts",
"task_create",
"task_status",
"task_stop",
Expand All @@ -68,7 +68,7 @@ OpenClaw Agent

The PlanExe MCP exposes the following real tools via `https://mcp.planexe.org/mcp`:

### `prompt_examples()` — Get example prompts
### `example_prompts()` — Get example prompts

- Input: none
- Output: List of example planning prompts
Expand Down Expand Up @@ -143,7 +143,7 @@ The PlanExe MCP exposes the following real tools via `https://mcp.planexe.org/mc
### Phase A — Skill Packaging and Contracts (1–2 weeks)

1. Define skill manifest and MCP tool bindings:
- `prompt_examples` — Provide example planning prompts
- `example_prompts` — Provide example planning prompts
- `task_create` — Initiate planning task with goal and parameters
- `task_status` — Poll task progress (required for async workflows)
- `task_stop` — Cancel long-running tasks
Expand Down
6 changes: 3 additions & 3 deletions docs/proposals/58-boost-initial-prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ When this happens, later stages can look polished but still be impractical becau

There is already a quality gap between two prompt sources:

- MCP tool-driven prompt assembly that follows `prompt_examples` (high structure, better constraints).
- MCP tool-driven prompt assembly that follows `example_prompts` (high structure, better constraints).
- Direct human input that is often shorter, incomplete, or inconsistent.

This proposal targets that gap by lifting weak human prompts toward the same baseline used in MCP flows.
Expand All @@ -47,7 +47,7 @@ Why now:

- We already have high-quality prompt examples in `worker_plan/worker_plan_api/prompt/data/simple_plan_prompts.jsonl`.
- We already document strong prompt shape in `docs/prompt_writing_guide.md`.
- MCP usage already enforces prompt-quality workflow via `docs/mcp/planexe_mcp_interface.md` (`prompt_examples` -> formulate -> `task_create`).
- MCP usage already enforces prompt-quality workflow via `docs/mcp/planexe_mcp_interface.md` (`example_prompts` -> formulate -> `task_create`).
- PlanExe already contains assumption-oriented components (`assume/*`) that can consume cleaner input.
- The rewrite stage can be bounded, deterministic in structure, and audited with artifacts.

Expand Down Expand Up @@ -170,7 +170,7 @@ Decision rule:
- `worker_plan/worker_plan_api/prompt/data/simple_plan_prompts.jsonl` (including MCP-curated examples)

## MCP Baseline Alignment
Use MCP `prompt_examples` as the reference quality target for rewritten human prompts.
Use MCP `example_prompts` as the reference quality target for rewritten human prompts.

Concretely:

Expand Down
Loading