iaip-mcp-pde 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +187 -0
- package/dist/cli.d.ts +18 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +385 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server.d.ts +59 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +293 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/parser.d.ts +19 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +89 -0
- package/dist/parser.js.map +1 -0
- package/dist/pde-engine.d.ts +54 -0
- package/dist/pde-engine.d.ts.map +1 -0
- package/dist/pde-engine.js +85 -0
- package/dist/pde-engine.js.map +1 -0
- package/dist/prompts.d.ts +10 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +93 -0
- package/dist/prompts.js.map +1 -0
- package/dist/storage.d.ts +44 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +369 -0
- package/dist/storage.js.map +1 -0
- package/dist/types.d.ts +108 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +24 -0
- package/dist/types.js.map +1 -0
- package/package.json +63 -0
- package/rispecs/pde-data-models.rispec.md +182 -0
- package/rispecs/pde-overview.rispec.md +157 -0
- package/rispecs/pde-parent-child-schema.rispec.md +525 -0
- package/rispecs/pde-prompts.rispec.md +144 -0
- package/rispecs/pde-resources.rispec.md +101 -0
- package/rispecs/pde-tools.rispec.md +179 -0
- package/rispecs/relation-to-mcp-structural-thinking.kin.md +66 -0
- package/scenarios/01-simple-decomposition.md +88 -0
- package/scenarios/02-multi-intent-workflow.md +112 -0
- package/scenarios/03-ceremonial-alignment.md +155 -0
- package/scenarios/04-dependency-resolution.md +163 -0
- package/scenarios/05-checkpoint-recovery.md +171 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# PDE-MCP Resources Specification
|
|
2
|
+
> MCP Resource Definitions for Prompt Decomposition Engine v2
|
|
3
|
+
|
|
4
|
+
**Version**: 2.0.0
|
|
5
|
+
**Document ID**: pde-mcp-resources-v2
|
|
6
|
+
|
|
7
|
+
## Creative Intent
|
|
8
|
+
|
|
9
|
+
### Desired Outcome
|
|
10
|
+
LLM agents **access** two static resources that expose the canonical DecompositionResult schema and Four Directions metadata — enabling agents to understand the expected output format and direction semantics.
|
|
11
|
+
|
|
12
|
+
## Resource Definitions
|
|
13
|
+
|
|
14
|
+
### Resource 1: `pde://schema/decomposition-result`
|
|
15
|
+
|
|
16
|
+
**Purpose**: The canonical JSON schema for prompt decomposition output
|
|
17
|
+
|
|
18
|
+
**Content Type**: `application/json`
|
|
19
|
+
|
|
20
|
+
**What This Enables**: Agents understand the exact structure they need to parse and store after calling their LLM with the `pde-decompose` system prompt.
|
|
21
|
+
|
|
22
|
+
**Schema**:
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"description": "DecompositionResult — the output of PDE prompt decomposition",
|
|
26
|
+
"schema": {
|
|
27
|
+
"primary": {
|
|
28
|
+
"action": "string",
|
|
29
|
+
"target": "string",
|
|
30
|
+
"urgency": "immediate|session|persistent",
|
|
31
|
+
"confidence": "0.0-1.0"
|
|
32
|
+
},
|
|
33
|
+
"secondary": [{
|
|
34
|
+
"action": "string",
|
|
35
|
+
"target": "string",
|
|
36
|
+
"implicit": "boolean",
|
|
37
|
+
"dependency": "string|null",
|
|
38
|
+
"confidence": "0.0-1.0"
|
|
39
|
+
}],
|
|
40
|
+
"context": {
|
|
41
|
+
"files_needed": ["string"],
|
|
42
|
+
"tools_required": ["string"],
|
|
43
|
+
"assumptions": ["string"]
|
|
44
|
+
},
|
|
45
|
+
"outputs": {
|
|
46
|
+
"artifacts": ["string"],
|
|
47
|
+
"updates": ["string"],
|
|
48
|
+
"communications": ["string"]
|
|
49
|
+
},
|
|
50
|
+
"directions": {
|
|
51
|
+
"east": [{"text": "string", "confidence": "0.0-1.0", "implicit": "boolean"}],
|
|
52
|
+
"south": [{"text": "string", "confidence": "0.0-1.0", "implicit": "boolean"}],
|
|
53
|
+
"west": [{"text": "string", "confidence": "0.0-1.0", "implicit": "boolean"}],
|
|
54
|
+
"north": [{"text": "string", "confidence": "0.0-1.0", "implicit": "boolean"}]
|
|
55
|
+
},
|
|
56
|
+
"actionStack": [{
|
|
57
|
+
"text": "string",
|
|
58
|
+
"direction": "east|south|west|north",
|
|
59
|
+
"dependency": "string|null",
|
|
60
|
+
"completed": "boolean"
|
|
61
|
+
}],
|
|
62
|
+
"ambiguities": [{
|
|
63
|
+
"text": "string",
|
|
64
|
+
"suggestion": "string"
|
|
65
|
+
}]
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### Resource 2: `pde://directions`
|
|
73
|
+
|
|
74
|
+
**Purpose**: Four Directions metadata for Medicine Wheel direction semantics
|
|
75
|
+
|
|
76
|
+
**Content Type**: `application/json`
|
|
77
|
+
|
|
78
|
+
**What This Enables**: Agents create accurate direction assignments and render direction-aware UI (colors, emojis, descriptions).
|
|
79
|
+
|
|
80
|
+
**Schema** (matches `DIRECTION_META` constant in `types.ts`):
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"east": { "name": "VISION", "desc": "What is being asked?", "emoji": "🌅", "color": "#f59e0b" },
|
|
84
|
+
"south": { "name": "ANALYSIS", "desc": "What needs to be learned?", "emoji": "🔥", "color": "#ef4444" },
|
|
85
|
+
"west": { "name": "VALIDATION", "desc": "What needs reflection?", "emoji": "🌊", "color": "#3b82f6" },
|
|
86
|
+
"north": { "name": "ACTION", "desc": "What executes the cycle?", "emoji": "❄️", "color": "#10b981" }
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Resource Access Patterns
|
|
91
|
+
|
|
92
|
+
### URI Scheme
|
|
93
|
+
Resources use the `pde://` scheme:
|
|
94
|
+
- `pde://schema/decomposition-result` — DecompositionResult JSON schema
|
|
95
|
+
- `pde://directions` — Four Directions metadata
|
|
96
|
+
|
|
97
|
+
### Caching
|
|
98
|
+
Resources are static (derived from compile-time constants) and can be cached indefinitely.
|
|
99
|
+
|
|
100
|
+
### Versioning
|
|
101
|
+
Resource content reflects the v2 `DecompositionResult` schema (lowercase directions: east/south/west/north). Earlier v1 specs used uppercase EAST/SOUTH/WEST/NORTH — these are no longer used.
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# PDE-MCP Tools Specification
|
|
2
|
+
> MCP Tool Definitions for Prompt Decomposition Engine v2
|
|
3
|
+
|
|
4
|
+
**Version**: 2.0.0
|
|
5
|
+
**Document ID**: pde-mcp-tools-v2
|
|
6
|
+
|
|
7
|
+
## Creative Intent
|
|
8
|
+
|
|
9
|
+
### Desired Outcome
|
|
10
|
+
LLM agents **create** structured decompositions of complex prompts through a two-step LLM-driven workflow: first building a system prompt, then parsing and persisting the LLM response.
|
|
11
|
+
|
|
12
|
+
## Two-Step Workflow
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
pde_decompose(prompt) → { systemPrompt, userMessage }
|
|
16
|
+
↓ agent sends to LLM
|
|
17
|
+
pde_parse_response(llm_response, original_prompt) → StoredDecomposition
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Tool Definitions
|
|
21
|
+
|
|
22
|
+
### Tool 1: `pde_decompose`
|
|
23
|
+
|
|
24
|
+
**Purpose**: Build system prompt + user message for LLM-driven prompt decomposition
|
|
25
|
+
|
|
26
|
+
**What Users Create**: A ready-to-send LLM payload that produces a DecompositionResult JSON
|
|
27
|
+
|
|
28
|
+
**Input Schema**:
|
|
29
|
+
```typescript
|
|
30
|
+
interface DecomposeInput {
|
|
31
|
+
prompt: string; // The complex prompt to decompose
|
|
32
|
+
options?: {
|
|
33
|
+
extractImplicit?: boolean; // Extract implicit intents (default: true)
|
|
34
|
+
mapDependencies?: boolean; // Map dependencies between actions (default: true)
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Output** (JSON):
|
|
40
|
+
```typescript
|
|
41
|
+
{
|
|
42
|
+
instructions: string; // "Send systemPrompt + userMessage to your LLM, then call pde_parse_response"
|
|
43
|
+
systemPrompt: string; // Full system prompt instructing LLM to produce DecompositionResult JSON
|
|
44
|
+
userMessage: string; // Formatted user message: 'Prompt to decompose: "<prompt>"'
|
|
45
|
+
original_prompt: string; // Echo of the original prompt
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Behavior**:
|
|
50
|
+
1. Merges options with defaults (`extractImplicit: true`, `mapDependencies: true`)
|
|
51
|
+
2. Builds system prompt via `buildSystemPrompt(opts)`
|
|
52
|
+
3. Returns both messages — does NOT call any LLM itself
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### Tool 2: `pde_parse_response`
|
|
57
|
+
|
|
58
|
+
**Purpose**: Parse an LLM response into a structured DecompositionResult and persist it to `.pde/`
|
|
59
|
+
|
|
60
|
+
**What Users Create**: A stored decomposition as `.pde/<uuid>.json` + `.pde/<uuid>.md`
|
|
61
|
+
|
|
62
|
+
**Input Schema**:
|
|
63
|
+
```typescript
|
|
64
|
+
interface ParseResponseInput {
|
|
65
|
+
llm_response: string; // Raw LLM response text containing DecompositionResult JSON
|
|
66
|
+
original_prompt: string; // The original prompt that was decomposed
|
|
67
|
+
workdir?: string; // Working directory for .pde/ storage (defaults to cwd)
|
|
68
|
+
options?: {
|
|
69
|
+
extractImplicit?: boolean;
|
|
70
|
+
mapDependencies?: boolean;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Output** (`StoredDecomposition`):
|
|
76
|
+
```typescript
|
|
77
|
+
interface StoredDecomposition {
|
|
78
|
+
id: string; // UUID
|
|
79
|
+
timestamp: string; // ISO timestamp
|
|
80
|
+
prompt: string; // Original prompt
|
|
81
|
+
result: DecompositionResult;
|
|
82
|
+
options: DecompositionOptions;
|
|
83
|
+
markdownPath?: string; // Path to .pde/<id>.md
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Behavior**:
|
|
88
|
+
1. Calls `parseDecompositionResponse(llm_response)` — handles markdown code fences, raw JSON, substring extraction
|
|
89
|
+
2. Generates UUID
|
|
90
|
+
3. Saves to `.pde/<uuid>.json` (full StoredDecomposition)
|
|
91
|
+
4. Exports `.pde/<uuid>.md` (git-diffable markdown with Four Directions headers)
|
|
92
|
+
5. Returns the full StoredDecomposition
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### Tool 3: `pde_get`
|
|
97
|
+
|
|
98
|
+
**Purpose**: Retrieve a stored decomposition by ID from `.pde/`
|
|
99
|
+
|
|
100
|
+
**What Users Create**: Access to a previously stored decomposition for review or re-export
|
|
101
|
+
|
|
102
|
+
**Input Schema**:
|
|
103
|
+
```typescript
|
|
104
|
+
interface GetDecompositionInput {
|
|
105
|
+
id: string; // Decomposition UUID
|
|
106
|
+
workdir?: string; // Working directory
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Output**: Full `StoredDecomposition` JSON, or error if not found
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
### Tool 4: `pde_list`
|
|
115
|
+
|
|
116
|
+
**Purpose**: List stored decompositions from `.pde/`
|
|
117
|
+
|
|
118
|
+
**What Users Create**: Visibility into decomposition history
|
|
119
|
+
|
|
120
|
+
**Input Schema**:
|
|
121
|
+
```typescript
|
|
122
|
+
interface ListDecompositionsInput {
|
|
123
|
+
workdir?: string;
|
|
124
|
+
limit?: number; // Default: 10
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Output** (summary array):
|
|
129
|
+
```typescript
|
|
130
|
+
Array<{
|
|
131
|
+
id: string;
|
|
132
|
+
timestamp: string;
|
|
133
|
+
primaryAction: string; // "action target" from primary intent
|
|
134
|
+
secondaryCount: number;
|
|
135
|
+
ambiguityCount: number;
|
|
136
|
+
actionStackCount: number;
|
|
137
|
+
}>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### Tool 5: `pde_export_markdown`
|
|
143
|
+
|
|
144
|
+
**Purpose**: Export a stored decomposition as a git-diffable markdown document with Four Directions headers
|
|
145
|
+
|
|
146
|
+
**What Users Create**: A human-readable, editable document committed alongside code
|
|
147
|
+
|
|
148
|
+
**Input Schema**:
|
|
149
|
+
```typescript
|
|
150
|
+
interface ExportMarkdownInput {
|
|
151
|
+
id: string; // Decomposition UUID
|
|
152
|
+
workdir?: string;
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Output**: Markdown string with structure:
|
|
157
|
+
```
|
|
158
|
+
# Prompt Decomposition
|
|
159
|
+
## Directions — Four Directions header block
|
|
160
|
+
## Original Prompt
|
|
161
|
+
## Primary Intent
|
|
162
|
+
## Secondary Intents
|
|
163
|
+
## Context Requirements
|
|
164
|
+
## Four Directions Analysis
|
|
165
|
+
## Action Stack — ordered checklist with direction + dependency
|
|
166
|
+
## Ambiguity Flags
|
|
167
|
+
## Expected Outputs
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**Note**: The markdown is also auto-written to `.pde/<id>.md` during `pde_parse_response`. This tool re-generates it on demand.
|
|
171
|
+
|
|
172
|
+
## Error Handling
|
|
173
|
+
|
|
174
|
+
Each tool returns `{ isError: true, content: [{ text: "..." }] }` on failure:
|
|
175
|
+
|
|
176
|
+
- **Missing required parameter**: `"Missing required parameter: prompt"`
|
|
177
|
+
- **Decomposition not found**: `"Decomposition <id> not found"`
|
|
178
|
+
- **Parse failure**: Thrown as `PDEParseError` with description of what failed
|
|
179
|
+
- **General errors**: Caught and returned as `"Error: <message>"`
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Relation to mcp-structural-thinking
|
|
2
|
+
|
|
3
|
+
> Kinship document describing the envisioned relationship between **mcp-pde** (Prompt Decomposition Engine) and **mcp-structural-thinking** (Structural Thinking diagnostic layer).
|
|
4
|
+
|
|
5
|
+
## The Relationship
|
|
6
|
+
|
|
7
|
+
**mcp-pde** decomposes complex prompts into structured `DecompositionResult` objects with actions mapped to Four Directions (EAST/SOUTH/WEST/NORTH). **mcp-structural-thinking** validates the *quality* of those decompositions through structural observation, question generation, and three-universe consensus.
|
|
8
|
+
|
|
9
|
+
Together they form a **decompose → validate** pair:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
User Prompt
|
|
13
|
+
│
|
|
14
|
+
▼
|
|
15
|
+
mcp-pde (pde_decompose → pde_parse_response)
|
|
16
|
+
│ DecompositionResult
|
|
17
|
+
▼
|
|
18
|
+
mcp-structural-thinking (structural_thinking_observe → validate_three_universe)
|
|
19
|
+
│ Validated DecompositionResult + Questions
|
|
20
|
+
▼
|
|
21
|
+
Agent proceeds with confidence (or returns to user with questions)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Shared Vocabulary
|
|
25
|
+
|
|
26
|
+
The Four Directions mapping aligns between both projects:
|
|
27
|
+
|
|
28
|
+
| Direction | mcp-pde Action Type | mcp-structural-thinking Question Type |
|
|
29
|
+
|-----------|--------------------|------------------------------------|
|
|
30
|
+
| 🌅 EAST | Vision / Intent actions | Information questions |
|
|
31
|
+
| 🔥 SOUTH | Analysis / Research actions | Clarification questions |
|
|
32
|
+
| 🌊 WEST | Validation / Reflection actions | Implication questions |
|
|
33
|
+
| ❄️ NORTH | Execution / Action items | Discrepancy questions |
|
|
34
|
+
|
|
35
|
+
## Envisioned Workflow
|
|
36
|
+
|
|
37
|
+
1. Agent receives complex user prompt
|
|
38
|
+
2. Agent calls `mcp-pde.pde_decompose(prompt)` → gets systemPrompt + userMessage
|
|
39
|
+
3. LLM processes → agent calls `mcp-pde.pde_parse_response(llm_response)` → DecompositionResult stored in `.pde/`
|
|
40
|
+
4. Agent calls `mcp-structural-thinking.structural_thinking_observe(decomposition_text)` → gets questions and pattern detection
|
|
41
|
+
5. Agent calls `mcp-structural-thinking.detect_reactive_patterns(decomposition_text)` → checks for reactive framing in the decomposition
|
|
42
|
+
6. Agent calls `mcp-structural-thinking.validate_three_universe(decomposition_text)` → gets three-universe consensus
|
|
43
|
+
7. If reactive score > moderate OR consensus FALSE OR questions reveal gaps → agent asks user for clarification before proceeding
|
|
44
|
+
8. If clean → agent proceeds to execute actions with structural confidence
|
|
45
|
+
|
|
46
|
+
## What mcp-pde Offers to mcp-structural-thinking
|
|
47
|
+
|
|
48
|
+
- **DecompositionResult JSON** — structured material for observation (explicit actions, directions, dependencies)
|
|
49
|
+
- **Four Directions mapping** — shared directional vocabulary
|
|
50
|
+
- **`.pde/` storage** — persistent decompositions that can be re-validated
|
|
51
|
+
|
|
52
|
+
## What mcp-structural-thinking Offers to mcp-pde
|
|
53
|
+
|
|
54
|
+
- **Quality gate** — validation that decompositions maintain creative orientation
|
|
55
|
+
- **Question generation** — reveals gaps in decompositions before execution
|
|
56
|
+
- **Reactive pattern detection** — catches problem-solving framing in action descriptions
|
|
57
|
+
- **Three-universe consensus** — multi-lens validation of decomposition quality
|
|
58
|
+
|
|
59
|
+
## Accountability
|
|
60
|
+
|
|
61
|
+
- Changes to mcp-pde's DecompositionResult schema should be reviewed for impact on mcp-structural-thinking's observation and validation tools
|
|
62
|
+
- Changes to mcp-structural-thinking's question type taxonomy should remain aligned with mcp-pde's Four Directions mapping
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
*Created: 2026-03-31 | Steward: Guillaume (jgwill)*
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Scenario 01: Simple Prompt Decomposition
|
|
2
|
+
|
|
3
|
+
## Objective
|
|
4
|
+
Test that a simple, single-intent prompt is correctly decomposed into a structured execution plan.
|
|
5
|
+
|
|
6
|
+
## Scenario Description
|
|
7
|
+
A developer wants to create a new feature. The LLM agent should use PDE to decompose this request into actionable steps aligned with the Medicine Wheel framework.
|
|
8
|
+
|
|
9
|
+
## Input Prompt
|
|
10
|
+
```
|
|
11
|
+
Create a user registration form with email validation
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Expected Behavior
|
|
15
|
+
|
|
16
|
+
### 1. Intent Extraction (Layer 1)
|
|
17
|
+
The PDE should extract:
|
|
18
|
+
- **Explicit Intent 1**: CREATION intent for "registration form"
|
|
19
|
+
- **Implicit Intent**: VALIDATION requirement for "email validation"
|
|
20
|
+
|
|
21
|
+
### 2. Direction Assignment (Layer 3)
|
|
22
|
+
- CREATION → SOUTH (Nahat'á - Planning & Growth)
|
|
23
|
+
- VALIDATION aspects → WEST (Iina - Living & Action)
|
|
24
|
+
|
|
25
|
+
### 3. Workflow Structure (Layer 4)
|
|
26
|
+
Expected stages:
|
|
27
|
+
```
|
|
28
|
+
Stage: SOUTH - Planning & Growth
|
|
29
|
+
- [ ] Create registration form component
|
|
30
|
+
- [ ] Design form fields and layout
|
|
31
|
+
|
|
32
|
+
Stage: WEST - Living & Action
|
|
33
|
+
- [ ] Implement email validation logic
|
|
34
|
+
- [ ] Test validation edge cases
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Test Steps for LLM Agent
|
|
38
|
+
|
|
39
|
+
1. **Configure MCP**
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"mcpServers": {
|
|
43
|
+
"pde": {
|
|
44
|
+
"command": "node",
|
|
45
|
+
"args": ["dist/index.js"]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
2. **Call pde_decompose tool**
|
|
52
|
+
```
|
|
53
|
+
Use tool: pde_decompose
|
|
54
|
+
Arguments: { "prompt": "Create a user registration form with email validation" }
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
3. **Verify Response**
|
|
58
|
+
- [ ] Response contains `planId`
|
|
59
|
+
- [ ] Response contains `workflowId`
|
|
60
|
+
- [ ] Response contains at least one stage
|
|
61
|
+
- [ ] SOUTH stage exists with creation tasks
|
|
62
|
+
- [ ] `overallIntention` mentions "create" and "registration"
|
|
63
|
+
|
|
64
|
+
4. **Validate the plan**
|
|
65
|
+
```
|
|
66
|
+
Use tool: pde_validate_plan
|
|
67
|
+
Arguments: { "planId": "<planId from step 2>" }
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
5. **Check Validation**
|
|
71
|
+
- [ ] `isValid` is true
|
|
72
|
+
- [ ] `coherenceScore` >= 80
|
|
73
|
+
- [ ] `completenessScore` >= 80
|
|
74
|
+
|
|
75
|
+
## Success Criteria
|
|
76
|
+
|
|
77
|
+
- ✅ Single prompt decomposed into multi-stage plan
|
|
78
|
+
- ✅ Intent correctly classified as CREATION
|
|
79
|
+
- ✅ Medicine Wheel direction (SOUTH) assigned
|
|
80
|
+
- ✅ Plan validation passes
|
|
81
|
+
- ✅ No errors in execution
|
|
82
|
+
|
|
83
|
+
## Notes
|
|
84
|
+
|
|
85
|
+
This is the simplest scenario to verify basic PDE functionality. If this fails, check:
|
|
86
|
+
1. MCP server is running and connected
|
|
87
|
+
2. `pde_decompose` tool is registered
|
|
88
|
+
3. TypeScript compilation succeeded
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Scenario 02: Multi-Intent Workflow
|
|
2
|
+
|
|
3
|
+
## Objective
|
|
4
|
+
Test that a complex, multi-intent prompt is correctly decomposed with proper dependency management and parallel execution detection.
|
|
5
|
+
|
|
6
|
+
## Scenario Description
|
|
7
|
+
A developer provides a complex request containing multiple actions that need to be:
|
|
8
|
+
- Correctly identified as separate intents
|
|
9
|
+
- Properly sequenced based on dependencies
|
|
10
|
+
- Grouped for potential parallel execution
|
|
11
|
+
|
|
12
|
+
## Input Prompt
|
|
13
|
+
```
|
|
14
|
+
Create a REST API with user authentication using JWT, connect to PostgreSQL database, write comprehensive tests, and deploy to staging environment
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Expected Behavior
|
|
18
|
+
|
|
19
|
+
### 1. Intent Extraction (Layer 1)
|
|
20
|
+
The PDE should extract multiple intents:
|
|
21
|
+
|
|
22
|
+
| Intent | Action | Target | Type |
|
|
23
|
+
|--------|--------|--------|------|
|
|
24
|
+
| 1 | create | API | CREATION |
|
|
25
|
+
| 2 | (auth) | authentication | CREATION |
|
|
26
|
+
| 3 | connect | PostgreSQL | INTEGRATION |
|
|
27
|
+
| 4 | write | tests | CREATION |
|
|
28
|
+
| 5 | deploy | staging | COMMUNICATION |
|
|
29
|
+
|
|
30
|
+
### 2. Dependency Graph (Layer 2)
|
|
31
|
+
Expected dependencies:
|
|
32
|
+
```
|
|
33
|
+
create API → connect PostgreSQL → write tests → deploy
|
|
34
|
+
↘ create auth (parallel with connect)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 3. Direction Assignment (Layer 3)
|
|
38
|
+
- CREATION intents → SOUTH
|
|
39
|
+
- INTEGRATION → WEST
|
|
40
|
+
- DEPLOYMENT → NORTH
|
|
41
|
+
|
|
42
|
+
### 4. Workflow Structure (Layer 4)
|
|
43
|
+
Expected stages:
|
|
44
|
+
```
|
|
45
|
+
Stage: SOUTH - Planning & Growth
|
|
46
|
+
[Parallel possible]
|
|
47
|
+
- [ ] Create REST API structure
|
|
48
|
+
- [ ] Implement JWT authentication
|
|
49
|
+
|
|
50
|
+
Stage: WEST - Living & Action
|
|
51
|
+
- [ ] Connect to PostgreSQL database
|
|
52
|
+
- [ ] Write comprehensive tests
|
|
53
|
+
|
|
54
|
+
Stage: NORTH - Assurance & Reflection
|
|
55
|
+
- [ ] Deploy to staging environment
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Test Steps for LLM Agent
|
|
59
|
+
|
|
60
|
+
1. **Call pde_decompose tool**
|
|
61
|
+
```
|
|
62
|
+
Use tool: pde_decompose
|
|
63
|
+
Arguments: {
|
|
64
|
+
"prompt": "Create a REST API with user authentication using JWT, connect to PostgreSQL database, write comprehensive tests, and deploy to staging environment"
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
2. **Verify Intent Count**
|
|
69
|
+
- [ ] `metadata.totalTasks` >= 4
|
|
70
|
+
- [ ] Multiple stages exist
|
|
71
|
+
|
|
72
|
+
3. **Verify Stage Order**
|
|
73
|
+
- [ ] SOUTH stage comes before WEST
|
|
74
|
+
- [ ] WEST stage comes before NORTH
|
|
75
|
+
- [ ] Ceremonial cycle is respected
|
|
76
|
+
|
|
77
|
+
4. **Check Parallel Opportunities**
|
|
78
|
+
- [ ] `metadata.parallelizableTasks` > 0
|
|
79
|
+
- [ ] SOUTH stage has `executionType: 'parallel'` or multiple tasks
|
|
80
|
+
|
|
81
|
+
5. **Verify Dependencies**
|
|
82
|
+
- [ ] Deploy task depends on test task
|
|
83
|
+
- [ ] No circular dependencies (`hasCycles: false` in graph)
|
|
84
|
+
|
|
85
|
+
6. **Validate Complexity**
|
|
86
|
+
- [ ] `metadata.estimatedComplexity` is 'medium' or 'high'
|
|
87
|
+
|
|
88
|
+
## Success Criteria
|
|
89
|
+
|
|
90
|
+
- ✅ 4+ intents correctly extracted
|
|
91
|
+
- ✅ All four Medicine Wheel directions represented
|
|
92
|
+
- ✅ Proper dependency ordering (create → integrate → test → deploy)
|
|
93
|
+
- ✅ Parallel execution opportunities identified
|
|
94
|
+
- ✅ No circular dependencies
|
|
95
|
+
- ✅ Plan validation passes
|
|
96
|
+
|
|
97
|
+
## Common Issues
|
|
98
|
+
|
|
99
|
+
1. **Missing Implicit Intents**: "with JWT" should trigger auth-related tasks
|
|
100
|
+
2. **Wrong Direction**: Deployment should be NORTH, not SOUTH
|
|
101
|
+
3. **Broken Dependencies**: Tests should not run before API is created
|
|
102
|
+
4. **No Parallelization**: Independent CREATION tasks should be parallelizable
|
|
103
|
+
|
|
104
|
+
## Advanced Verification
|
|
105
|
+
|
|
106
|
+
Check the dependency graph structure:
|
|
107
|
+
```
|
|
108
|
+
Use resource: pde://ceremonies/medicine-wheel
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Verify that the workflow follows the natural cycle:
|
|
112
|
+
EAST (exploration) → SOUTH (creation) → WEST (validation) → NORTH (completion)
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Scenario 03: Ceremonial Alignment Verification
|
|
2
|
+
|
|
3
|
+
## Objective
|
|
4
|
+
Test that the Medicine Wheel ceremonial framework is correctly applied to categorize tasks by their epistemological nature.
|
|
5
|
+
|
|
6
|
+
## Scenario Description
|
|
7
|
+
This scenario tests the core Indigenous knowledge system integration by verifying that different types of work are correctly aligned with the Four Directions.
|
|
8
|
+
|
|
9
|
+
## Input Prompts (Test Each Separately)
|
|
10
|
+
|
|
11
|
+
### Prompt A: EAST Focus (Analysis/Vision)
|
|
12
|
+
```
|
|
13
|
+
Analyze the current system architecture and explore potential improvements
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Prompt B: SOUTH Focus (Creation/Building)
|
|
17
|
+
```
|
|
18
|
+
Build a new authentication module with OAuth2 support
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Prompt C: WEST Focus (Validation/Integration)
|
|
22
|
+
```
|
|
23
|
+
Test the payment gateway integration and verify all edge cases
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Prompt D: NORTH Focus (Completion/Wisdom)
|
|
27
|
+
```
|
|
28
|
+
Deploy the application to production and document the release
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Expected Behavior
|
|
32
|
+
|
|
33
|
+
### Prompt A: EAST Alignment
|
|
34
|
+
| Aspect | Expected |
|
|
35
|
+
|--------|----------|
|
|
36
|
+
| Primary Direction | EAST |
|
|
37
|
+
| Direction Name | Nitsáhákees |
|
|
38
|
+
| Theme | Thinking & Beginnings |
|
|
39
|
+
| Ceremony Type | vision_inquiry |
|
|
40
|
+
| Color | #FFD700 (Gold) |
|
|
41
|
+
|
|
42
|
+
Tasks should focus on:
|
|
43
|
+
- Exploration and research
|
|
44
|
+
- Question formation
|
|
45
|
+
- Vision setting
|
|
46
|
+
|
|
47
|
+
### Prompt B: SOUTH Alignment
|
|
48
|
+
| Aspect | Expected |
|
|
49
|
+
|--------|----------|
|
|
50
|
+
| Primary Direction | SOUTH |
|
|
51
|
+
| Direction Name | Nahat'á |
|
|
52
|
+
| Theme | Planning & Growth |
|
|
53
|
+
| Ceremony Type | wave_counting |
|
|
54
|
+
| Color | #32CD32 (Green) |
|
|
55
|
+
|
|
56
|
+
Tasks should focus on:
|
|
57
|
+
- Implementation and building
|
|
58
|
+
- Structural design
|
|
59
|
+
- Methodology application
|
|
60
|
+
|
|
61
|
+
### Prompt C: WEST Alignment
|
|
62
|
+
| Aspect | Expected |
|
|
63
|
+
|--------|----------|
|
|
64
|
+
| Primary Direction | WEST |
|
|
65
|
+
| Direction Name | Iina |
|
|
66
|
+
| Theme | Living & Action |
|
|
67
|
+
| Ceremony Type | talking_circles |
|
|
68
|
+
| Color | #4682B4 (Steel Blue) |
|
|
69
|
+
|
|
70
|
+
Tasks should focus on:
|
|
71
|
+
- Testing and validation
|
|
72
|
+
- Integration verification
|
|
73
|
+
- Reflection on quality
|
|
74
|
+
|
|
75
|
+
### Prompt D: NORTH Alignment
|
|
76
|
+
| Aspect | Expected |
|
|
77
|
+
|--------|----------|
|
|
78
|
+
| Primary Direction | NORTH |
|
|
79
|
+
| Direction Name | Siihasin |
|
|
80
|
+
| Theme | Assurance & Reflection |
|
|
81
|
+
| Ceremony Type | elder_council |
|
|
82
|
+
| Color | #FFFFFF (White) |
|
|
83
|
+
|
|
84
|
+
Tasks should focus on:
|
|
85
|
+
- Deployment and finalization
|
|
86
|
+
- Documentation (wisdom sharing)
|
|
87
|
+
- Completion ceremonies
|
|
88
|
+
|
|
89
|
+
## Test Steps for LLM Agent
|
|
90
|
+
|
|
91
|
+
1. **Get Medicine Wheel Reference**
|
|
92
|
+
```
|
|
93
|
+
Read resource: pde://ceremonies/medicine-wheel
|
|
94
|
+
```
|
|
95
|
+
- [ ] Verify all four directions are defined
|
|
96
|
+
- [ ] Each has Indigenous name, theme, ceremony type, color
|
|
97
|
+
|
|
98
|
+
2. **Test EAST Alignment (Prompt A)**
|
|
99
|
+
```
|
|
100
|
+
Use tool: pde_decompose
|
|
101
|
+
Arguments: { "prompt": "Analyze the current system architecture and explore potential improvements" }
|
|
102
|
+
```
|
|
103
|
+
- [ ] Primary stage direction is EAST
|
|
104
|
+
- [ ] `directionDescription` contains "Thinking" or "Vision"
|
|
105
|
+
- [ ] Tasks include analysis-type verbs
|
|
106
|
+
|
|
107
|
+
3. **Test SOUTH Alignment (Prompt B)**
|
|
108
|
+
```
|
|
109
|
+
Use tool: pde_decompose
|
|
110
|
+
Arguments: { "prompt": "Build a new authentication module with OAuth2 support" }
|
|
111
|
+
```
|
|
112
|
+
- [ ] Primary stage direction is SOUTH
|
|
113
|
+
- [ ] `directionDescription` contains "Planning" or "Growth"
|
|
114
|
+
- [ ] Tasks include creation-type verbs
|
|
115
|
+
|
|
116
|
+
4. **Test WEST Alignment (Prompt C)**
|
|
117
|
+
```
|
|
118
|
+
Use tool: pde_decompose
|
|
119
|
+
Arguments: { "prompt": "Test the payment gateway integration and verify all edge cases" }
|
|
120
|
+
```
|
|
121
|
+
- [ ] Primary stage direction is WEST
|
|
122
|
+
- [ ] `directionDescription` contains "Action" or "Integration"
|
|
123
|
+
- [ ] Tasks include validation-type verbs
|
|
124
|
+
|
|
125
|
+
5. **Test NORTH Alignment (Prompt D)**
|
|
126
|
+
```
|
|
127
|
+
Use tool: pde_decompose
|
|
128
|
+
Arguments: { "prompt": "Deploy the application to production and document the release" }
|
|
129
|
+
```
|
|
130
|
+
- [ ] Primary stage direction is NORTH
|
|
131
|
+
- [ ] `directionDescription` contains "Reflection" or "Assurance"
|
|
132
|
+
- [ ] Tasks include completion-type verbs
|
|
133
|
+
|
|
134
|
+
## Success Criteria
|
|
135
|
+
|
|
136
|
+
- ✅ EAST direction correctly assigned to ANALYSIS intents
|
|
137
|
+
- ✅ SOUTH direction correctly assigned to CREATION intents
|
|
138
|
+
- ✅ WEST direction correctly assigned to VALIDATION/INTEGRATION intents
|
|
139
|
+
- ✅ NORTH direction correctly assigned to COMMUNICATION/DEPLOYMENT intents
|
|
140
|
+
- ✅ Each direction has correct Indigenous metadata
|
|
141
|
+
- ✅ Ceremony types match directions
|
|
142
|
+
|
|
143
|
+
## Cultural Context
|
|
144
|
+
|
|
145
|
+
The Medicine Wheel framework honors Indigenous epistemology:
|
|
146
|
+
|
|
147
|
+
1. **EAST (Nitsáhákees)** - The place of new beginnings, where light first appears. Appropriate for exploration and vision work.
|
|
148
|
+
|
|
149
|
+
2. **SOUTH (Nahat'á)** - The place of growth and warmth. Appropriate for building and implementation.
|
|
150
|
+
|
|
151
|
+
3. **WEST (Iina)** - The place of integration and introspection. Appropriate for testing and reflection.
|
|
152
|
+
|
|
153
|
+
4. **NORTH (Siihasin)** - The place of wisdom and completion. Appropriate for finalization and knowledge sharing.
|
|
154
|
+
|
|
155
|
+
This ceremonial alignment brings intentionality and structure to AI-assisted development, honoring the natural cycles of creation.
|