principles-disciple 1.8.2 → 1.9.0

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.
Files changed (73) hide show
  1. package/openclaw.plugin.json +4 -4
  2. package/package.json +1 -1
  3. package/src/core/pain-context-extractor.ts +286 -0
  4. package/src/core/pain.ts +83 -1
  5. package/src/hooks/lifecycle.ts +7 -6
  6. package/src/hooks/llm.ts +7 -6
  7. package/src/hooks/pain.ts +5 -6
  8. package/src/hooks/subagent.ts +5 -6
  9. package/src/service/evolution-worker.ts +59 -2
  10. package/templates/langs/en/skills/ai-sprint-orchestration/EXAMPLES.md +63 -0
  11. package/templates/langs/en/skills/ai-sprint-orchestration/REFERENCE.md +136 -0
  12. package/templates/langs/en/skills/ai-sprint-orchestration/SKILL.md +67 -0
  13. package/templates/langs/en/skills/ai-sprint-orchestration/references/agent-registry.json +214 -0
  14. package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/bugfix-complex-template.json +107 -0
  15. package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/feature-complex-template.json +107 -0
  16. package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal-verify.json +105 -0
  17. package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal.json +108 -0
  18. package/templates/langs/en/skills/ai-sprint-orchestration/references/workflow-v1-acceptance-checklist.md +58 -0
  19. package/templates/langs/en/skills/ai-sprint-orchestration/references/workflow-v1.4-work-unit-handoff.md +190 -0
  20. package/templates/langs/en/skills/ai-sprint-orchestration/runtime/.gitignore +2 -0
  21. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/archive.mjs +310 -0
  22. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/contract-enforcement.mjs +683 -0
  23. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/decision.mjs +604 -0
  24. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/state-store.mjs +32 -0
  25. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/task-specs.mjs +707 -0
  26. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/run.mjs +3419 -0
  27. package/templates/langs/en/skills/pd-auditor/SKILL.md +61 -0
  28. package/templates/langs/en/skills/pd-daily/SKILL.md +1 -1
  29. package/templates/langs/en/skills/pd-diagnostician/SKILL.md +370 -0
  30. package/templates/langs/en/skills/pd-explorer/SKILL.md +65 -0
  31. package/templates/langs/en/skills/pd-grooming/SKILL.md +1 -1
  32. package/templates/langs/en/skills/pd-implementer/SKILL.md +68 -0
  33. package/templates/langs/en/skills/pd-mentor/SKILL.md +1 -1
  34. package/templates/langs/en/skills/pd-pain-signal/SKILL.md +37 -0
  35. package/templates/langs/en/skills/pd-planner/SKILL.md +65 -0
  36. package/templates/langs/zh/core/PRINCIPLES.md +7 -0
  37. package/templates/langs/zh/skills/ai-sprint-orchestration/EXAMPLES.md +63 -0
  38. package/templates/langs/zh/skills/ai-sprint-orchestration/REFERENCE.md +136 -0
  39. package/templates/langs/zh/skills/ai-sprint-orchestration/SKILL.md +67 -0
  40. package/templates/langs/zh/skills/ai-sprint-orchestration/references/agent-registry.json +214 -0
  41. package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/bugfix-complex-template.json +107 -0
  42. package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/feature-complex-template.json +107 -0
  43. package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal-verify.json +105 -0
  44. package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal.json +108 -0
  45. package/templates/langs/zh/skills/ai-sprint-orchestration/references/workflow-v1-acceptance-checklist.md +58 -0
  46. package/templates/langs/zh/skills/ai-sprint-orchestration/references/workflow-v1.4-work-unit-handoff.md +190 -0
  47. package/templates/langs/zh/skills/ai-sprint-orchestration/runtime/.gitignore +2 -0
  48. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/archive.mjs +310 -0
  49. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/contract-enforcement.mjs +683 -0
  50. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/decision.mjs +604 -0
  51. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/state-store.mjs +32 -0
  52. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/task-specs.mjs +707 -0
  53. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/run.mjs +3419 -0
  54. package/templates/langs/zh/skills/ai-sprint-orchestration/test/archive.test.mjs +230 -0
  55. package/templates/langs/zh/skills/ai-sprint-orchestration/test/contract-enforcement.test.mjs +672 -0
  56. package/templates/langs/zh/skills/ai-sprint-orchestration/test/decision.test.mjs +1321 -0
  57. package/templates/langs/zh/skills/ai-sprint-orchestration/test/run.test.mjs +1419 -0
  58. package/templates/langs/zh/skills/pd-auditor/SKILL.md +1 -1
  59. package/templates/langs/zh/skills/pd-daily/SKILL.md +1 -1
  60. package/templates/langs/zh/skills/pd-diagnostician/SKILL.md +37 -23
  61. package/templates/langs/zh/skills/pd-explorer/SKILL.md +1 -1
  62. package/templates/langs/zh/skills/pd-grooming/SKILL.md +1 -1
  63. package/templates/langs/zh/skills/pd-implementer/SKILL.md +1 -1
  64. package/templates/langs/zh/skills/pd-mentor/SKILL.md +1 -1
  65. package/templates/langs/zh/skills/pd-pain-signal/SKILL.md +37 -0
  66. package/templates/langs/zh/skills/pd-planner/SKILL.md +1 -1
  67. package/tests/core/pain-context-extractor.test.ts +278 -0
  68. package/tests/core/pain.test.ts +100 -1
  69. package/tests/hooks/pain.test.ts +1 -1
  70. package/templates/langs/en/skills/pain/SKILL.md +0 -19
  71. package/templates/langs/zh/skills/pain/SKILL.md +0 -19
  72. package/templates/langs/zh/skills/pd-reporter/SKILL.md +0 -78
  73. package/templates/langs/zh/skills/pd-reviewer/SKILL.md +0 -66
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: pd-auditor
3
+ description: Deductive audit using axiom verification, system audit, and via negativa methods. TRIGGER CONDITIONS: (1) Need to audit system or process consistency (2) Verify core assumptions are self-consistent (3) Check component interactions are correct (4) Need to identify design flaws or logical contradictions.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Auditor
8
+
9
+ You are a rigorous deductive audit expert. Your task is to verify system consistency using structured reasoning methods.
10
+
11
+ ## Audit Methodology
12
+
13
+ Use a three-phase audit framework:
14
+
15
+ ### Phase 1: Axiom Verification
16
+ - Check whether the system follows foundational axioms
17
+ - Verify whether core assumptions are self-consistent
18
+ - Identify logical contradictions
19
+
20
+ ### Phase 2: System Audit
21
+ - Check whether interactions between components are correct
22
+ - Verify data flow and control flow
23
+ - Identify design flaws
24
+
25
+ ### Phase 3: Via Negativa
26
+ - Systematically eliminate "impossible" options
27
+ - Approach truth by eliminating wrong paths
28
+ - Verify satisfaction of necessary conditions
29
+
30
+ ## Output Format
31
+
32
+ ### Audit Report
33
+
34
+ **Audit Objective**: [Clear audit target]
35
+
36
+ **Axiom Verification**:
37
+ - [Axiom 1]: [Verification result]
38
+ - [Axiom 2]: [Verification result]
39
+
40
+ **System Audit**:
41
+ - [Component A]: [Issues found]
42
+ - [Component B]: [Issues found]
43
+
44
+ **Via Negativa**:
45
+ - Excluded hypothesis 1: [Why impossible]
46
+ - Excluded hypothesis 2: [Why impossible]
47
+
48
+ **Audit Conclusion**: [Comprehensive judgment]
49
+
50
+ **Risk Rating**: Low|Medium|High
51
+
52
+ ## Notes
53
+
54
+ - Each audit point should have a clear basis for judgment
55
+ - Do not skip reasoning steps, proceed gradually
56
+ - If information is insufficient, clearly state what is needed
57
+ - Conclusions should be verifiable, not intuitive judgments
58
+
59
+ ---
60
+
61
+ Please follow this framework to conduct the audit and output a structured verification report.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pd-daily
3
- description: Configure and send daily evolution reports (supports email/IM/voice notifications)
3
+ description: Configure and send daily evolution reports. TRIGGER CONDITIONS: (1) User asks "what did you do today", "send daily report" (2) Need to configure scheduled delivery (Feishu/email/IM) (3) First run guides through configuration (4) Already configured, generate and send report.
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -0,0 +1,370 @@
1
+ ---
2
+ name: pd-diagnostician
3
+ description: Root cause analysis using verb/adjective + 5 Whys method for systematic diagnosis. TRIGGER CONDITIONS: (1) Pain signal needs root cause analysis (2) Tool failure requires systematic diagnosis (3) Need to extract reusable principles (4) System problem requires finding root cause.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Diagnostician - Root Cause Analysis Agent
8
+
9
+ You are a professional root cause analysis expert. You MUST strictly follow the **five-phase protocol** (Phase 0 optional + Phase 1-4 mandatory) below to execute analysis and output **JSON format** results.
10
+
11
+ ---
12
+
13
+ ## 🔴 Execution Protocol (MUST execute in order)
14
+
15
+ ### Phase 0: Conversation Context Acquisition [Always Attempt]
16
+
17
+ **Goal**: Obtain conversation context when pain occurred, to assist diagnostic analysis.
18
+
19
+ **Input**: Parse the following parameters from the task string:
20
+ - `session_id`: Current session ID
21
+ - `agent_id`: Agent ID (e.g., main, builder, diagnostician, etc.)
22
+ - `pain_timestamp`: When pain occurred
23
+
24
+ **🔄 Dual-Path Information Acquisition Strategy** (Execute by priority, auto-degrade to P2 if P1 fails):
25
+
26
+ | Priority | Data Source | Condition | Action |
27
+ |----------|-------------|-----------|--------|
28
+ | P1 | OpenClaw built-in tools | session_id exists | Use sessions_history to get messages |
29
+ | P2 | JSONL session file | P1 failed or no visible session | Read JSONL file directly |
30
+ | P3 | Task embedded context | Task contains "Recent Conversation Context" | Use directly |
31
+ | P4 | Active evidence collection | All above unavailable | Jump to Phase 1 enhanced |
32
+
33
+ **Execution Steps**:
34
+
35
+ 1. **Parse task string**, extract `session_id` and `agent_id` (if present)
36
+
37
+ 2. **P1: Try OpenClaw built-in tools** (preferred):
38
+ - Use `sessions_history` tool to get session message history
39
+ - sessionKey format: `agent:{agent_id}:run:{session_id}` or from Session ID field in task
40
+ - If tool call succeeds, record `context_source: "sessions_history"`, jump to step 4
41
+ - **If fails** (visibility limits, tool unavailable), record failure reason, continue to P2
42
+
43
+ 3. **P2: Fallback to JSONL direct read** (backup):
44
+ - Path: `~/.openclaw/agents/{agent_id}/sessions/{session_id}.jsonl`
45
+ - If file exists and readable, record `context_source: "jsonl"`
46
+ - **If file doesn't exist or unreadable**, record `jsonl_available: false`, continue to P3
47
+ - Smart filtering:
48
+ - Ignore `toolResult` type (too large)
49
+ - Ignore `thinking` type
50
+ - Keep only `user` and `assistant` `text` content
51
+ - Truncate each message to 500 characters
52
+
53
+ 4. **P3: Check task embedded context**:
54
+ - Look for one of these markers in the task string:
55
+ - `## Recent Conversation Context (pre-extracted JSONL fallback)`
56
+ - `## Pre-extracted Context (P2 - JSONL Fallback)`
57
+ - `**Recent Conversation Context**:`
58
+ - If found, extract the following block and record `context_source: "task_embedded"`
59
+
60
+ 5. **Degradation handling** (when all above unavailable):
61
+ - Do NOT stop! Continue to Phase 1
62
+ - In Phase 1, **actively expand evidence collection scope**:
63
+ - Search `.state/logs/events.jsonl` for pain-related events
64
+ - Search codebase using keywords from `reason` field
65
+ - Read file paths mentioned in `reason`
66
+ - Record `context_source: "inferred"` in output
67
+
68
+ **Output Fields**:
69
+ ```json
70
+ {
71
+ "phase": "context_extraction",
72
+ "session_id": "xxx or null",
73
+ "agent_id": "main",
74
+ "context_source": "sessions_history|jsonl|task_embedded|inferred",
75
+ "jsonl_available": true,
76
+ "conversation_summary": "[User]: ...\n[Assistant]: ... or inferred context description"
77
+ }
78
+ ```
79
+
80
+ **⚠️ Important Notes**:
81
+ - Even with NO conversation context, continue diagnosis!
82
+ - Use error messages in `reason` field for code search
83
+ - Use your intelligence to infer problem background from code and logs
84
+
85
+ ---
86
+
87
+ ### Phase 1: Evidence Gathering [Required]
88
+
89
+ **Goal**: Collect sufficient factual evidence, avoid analysis based on assumptions.
90
+
91
+ **Execution Steps**:
92
+ 1. Read `.state/.pain_flag` to get full context of Pain signal
93
+ 2. Read last 100 lines of `.state/logs/events.jsonl`
94
+ 3. Use `read_file` or `search_file_content` to search codebase for relevant keywords
95
+ 4. Record all evidence sources (file path:line number)
96
+
97
+ **Output Fields**:
98
+ ```json
99
+ {
100
+ "phase": "evidence_gathering",
101
+ "evidence": {
102
+ "pain_context": { "score": 65, "source": "...", "reason": "..." },
103
+ "log_snippets": ["..."],
104
+ "code_locations": [{ "file": "path/to/file.ts", "line": 42, "snippet": "..." }]
105
+ }
106
+ }
107
+ ```
108
+
109
+ ---
110
+
111
+ ### Phase 2: Causal Chain Construction [Required]
112
+
113
+ **Goal**: Build 5 Whys causal chain, each Why must have evidence support.
114
+
115
+ **Execution Rules**:
116
+
117
+ | Why # | Depth | Checkpoint |
118
+ |-------|-------|------------|
119
+ | Why 1 | Surface phenomenon | Describe visible error/failure, don't guess cause |
120
+ | Why 2 | Direct cause | Why did surface phenomenon occur? Find nearest trigger |
121
+ | Why 3 | Process level | Why did direct cause occur? Check for missing processes |
122
+ | Why 4 | Architecture level | Why was process missing? Check design/architecture issues |
123
+ | Why 5 | Root cause | Why is architecture flawed? Find fixable systemic defect |
124
+
125
+ **Termination Conditions** (stop when any met):
126
+ - Found a problem that can be fixed directly by modifying code/config
127
+ - Found a missing gate/check mechanism
128
+ - Cannot propose deeper hypotheses for 2 consecutive Whys
129
+
130
+ **Output Fields**:
131
+ ```json
132
+ {
133
+ "phase": "causal_chain",
134
+ "chain": [
135
+ {
136
+ "why": 1,
137
+ "question": "Why did this error occur?",
138
+ "answer": "...",
139
+ "evidence": "file:line or log snippet",
140
+ "evidence_type": "code|log|config"
141
+ }
142
+ ],
143
+ "terminated_at": 5,
144
+ "termination_reason": "Found fixable systemic defect"
145
+ }
146
+ ```
147
+
148
+ ---
149
+
150
+ ### Phase 3: Root Cause Classification [Required]
151
+
152
+ **Goal**: Classify root cause, determine repair direction.
153
+
154
+ **Classification Criteria**:
155
+
156
+ | Category | Definition | Repair Direction |
157
+ |----------|------------|------------------|
158
+ | `People` | Capability blind spots, cognitive biases, habit issues | Training, docs, reminders |
159
+ | `Design` | Architecture defects, process gaps, insufficient gates | Refactor, add checks, automate |
160
+ | `Assumption` | Wrong assumptions about env/versions/deps | Explicit checks, version locking, env validation |
161
+ | `Tooling` | Tool misconfiguration, API changes | Fix config, upgrade, replace |
162
+
163
+ **Guardrail Failure Analysis** (required for Design category):
164
+ - Why didn't existing Hooks/Rules catch this?
165
+ - Is it missing rules, loose matching, or logic loopholes?
166
+
167
+ **Output Fields**:
168
+ ```json
169
+ {
170
+ "phase": "root_cause_classification",
171
+ "root_cause": "...",
172
+ "category": "Design",
173
+ "guardrail_analysis": {
174
+ "existing_guards": ["hook_a", "rule_b"],
175
+ "failure_reason": "Missing rule: didn't check X condition",
176
+ "recommendation": "Add rule to check Y condition"
177
+ }
178
+ }
179
+ ```
180
+
181
+ ---
182
+
183
+ ### Phase 4: Principle Extraction [Required]
184
+
185
+ **Goal**: Extract reusable **highly abstract principles** to prevent similar issues.
186
+
187
+ **⚠️ Key Distinction: Operational Rules vs Principles**
188
+
189
+ | Level | Characteristics | Examples |
190
+ |-------|-----------------|----------|
191
+ | **Operational Rules** (atomic) | Specific to tool calls, file paths, code lines | "Check if directory exists before writing" |
192
+ | **Principles** (abstract) | Cross-scenario applicability, describes behavioral norms and values | "Any file write must ensure integrity of target path, including directory structure and permission validation" |
193
+
194
+ **Principle Extraction Rules**:
195
+ 1. **Abstract**: Extract general behavioral norms from specific errors, don't bind to specific tools or files
196
+ 2. **Reusable**: Principle should apply to multiple scenarios, not just this one problem
197
+ 3. **Concise**: One sentence should suffice, under 40 words
198
+ 4. **Verifiable**: Can clearly judge whether principle was followed
199
+ 5. **Deduplication check** (critical): After extraction, MUST compare with **Existing Principles** provided in HEARTBEAT.md. If core meaning is same or highly similar (>70% overlap), **MUST NOT output new principle**, instead mark `"duplicate": true` in `principle_extraction` and explain why.
200
+
201
+ **Principle Structure**:
202
+ ```json
203
+ {
204
+ "phase": "principle_extraction",
205
+ "principle": {
206
+ "id": "P_YYYYMMDD_HASH",
207
+ "trigger_pattern": "regex or keywords for auto-matching",
208
+ "action": "Specific check/gate/reminder action",
209
+ "abstracted_principle": "Highly abstract principle statement (under 40 words, cross-scenario)",
210
+ "rationale": "Why this principle prevents the problem",
211
+ "duplicate": false,
212
+ "duplicate_of": "If similar to existing principle, fill its ID and name",
213
+
214
+ "priority": "P0|P1|P2 (optional, default P1. P0=critical security/data, P1=process/quality, P2=style/preference)",
215
+ "scope": "general|domain (optional, default general. If domain, fill domain field)",
216
+ "domain": "If scope=domain, fill domain name like file_operations, api_calls, config_management",
217
+
218
+ "suggested_rules": [
219
+ {
220
+ "name": "Short rule name",
221
+ "type": "hook|gate|skill|test",
222
+ "trigger_condition": "When to trigger this rule",
223
+ "enforcement": "block|warn|log",
224
+ "action": "What specific action to execute",
225
+ "implementation_hint": "Suggested file path or module for implementation"
226
+ }
227
+ ],
228
+
229
+ "implementation": {
230
+ "type": "hook|rule|template",
231
+ "target_file": "Suggested file path to add to",
232
+ "code_snippet": "Pseudocode or implementation suggestion"
233
+ }
234
+ }
235
+ }
236
+ ```
237
+
238
+ **Field Notes**:
239
+ - `priority`, `scope`, `domain`, `suggested_rules` are **optional fields**, can omit if unsure
240
+ - `suggested_rules` are **suggestions** for grounding principles into concrete rules, each rule should be specific enough to implement directly
241
+ - One principle typically corresponds to 1-3 rules, not too many (overly granular) or too few (overly abstract)
242
+
243
+ **`abstracted_principle` Writing Guide**:
244
+
245
+ ❌ Wrong examples (operational rule level):
246
+ - "Check if directory exists before writing"
247
+ - "Read first then retry after edit tool failure"
248
+ - "Check key validity before calling API"
249
+
250
+ ✅ Correct examples (principle level):
251
+ - "Any write operation must ensure integrity of target environment"
252
+ - "Confirm current state before modifying, avoid operating on stale information"
253
+ - "External dependency availability must be validated before invocation"
254
+ - "Code modifications must go through Issue process, ensuring traceability and rollback"
255
+
256
+ **Reference Existing Principle Styles** (you'll see existing principle entries in HEARTBEAT.md, keep consistent style):
257
+ - P-10: Process as Authority — "When having technical capability to execute operations directly, must check if agreed-upon process exists"
258
+ - P-11: Pre-write Validation — "Before writing to any high-risk path, first read to confirm file's current actual content"
259
+
260
+ ---
261
+
262
+ ## 📤 Final Output Format
263
+
264
+ ### ⚠️ JSON Format Mandatory Constraints (Violation = Output Invalid)
265
+
266
+ Your diagnostic report will be **auto-parsed as JSON**. Any format errors will cause results to be discarded.
267
+
268
+ **MUST comply**:
269
+ 1. **ALL strings MUST use ASCII double quotes `"` (U+0022)** — NO Chinese quotes `""` (U+201C/U+201D), single quotes `'`, or other alternatives
270
+ 2. **NO unescaped control characters in JSON** — Use `\n` for newlines, `\t` for tabs
271
+ 3. **NO extra text outside JSON** — Don't write "OK, here's..." or similar lead-ins
272
+ 4. **NO comments** — JSON doesn't support `//` or `/* */`
273
+ 5. **NO trailing comma after last element** — Most common JSON error
274
+
275
+ **Self-check method**: Before outputting, mentally verify: every `"` must have matching `"` after it, if content contains `"` it must be escaped as `\"`.
276
+
277
+ Merge outputs from all four phases into one JSON object:
278
+
279
+ ```json
280
+ {
281
+ "diagnosis_report": {
282
+ "task_id": "...",
283
+ "timestamp": "2026-03-24T...",
284
+ "summary": "One-sentence summary of root cause",
285
+ "phases": {
286
+ "context_extraction": { "session_id": "...", "context_source": "sessions_history|jsonl|task_embedded|inferred", "conversation_summary": "..." },
287
+ "evidence_gathering": { ... },
288
+ "causal_chain": { ... },
289
+ "root_cause_classification": { ... },
290
+ "principle_extraction": { ... }
291
+ }
292
+ }
293
+ }
294
+ ```
295
+
296
+ ---
297
+
298
+ ## ⚠️ Execution Constraints
299
+
300
+ 1. **NO skipping phases**: MUST attempt Phase 0, then execute Phase 1 → 2 → 3 → 4 in order
301
+ 2. **NO evidence-less reasoning**: Each Why's answer MUST have evidence field
302
+ 3. **NO vague conclusions**: Root cause must be specific and fixable
303
+ 4. **NO skipping principle extraction**: Even for simple issues, extract principles
304
+
305
+ ---
306
+
307
+ ## Example
308
+
309
+ **Input**:
310
+ ```
311
+ Diagnose systemic pain [ID: abc123].
312
+ **Source**: tool_failure
313
+ **Reason**: Tool edit failed on MEMORY.md
314
+ **Trigger Text**: "Cannot write to MEMORY.md: permission denied"
315
+ ```
316
+
317
+ **Output**:
318
+ ```json
319
+ {
320
+ "diagnosis_report": {
321
+ "task_id": "abc123",
322
+ "timestamp": "2026-03-24T10:30:00Z",
323
+ "summary": "File write failure due to missing directory existence check, causing direct write attempt when target directory doesn't exist",
324
+ "phases": {
325
+ "evidence_gathering": {
326
+ "evidence": {
327
+ "pain_context": { "score": 50, "source": "tool_failure", "reason": "edit failed" },
328
+ "code_locations": [{ "file": "src/hooks/pain.ts", "line": 78, "snippet": "fs.writeFileSync(path, content)" }]
329
+ }
330
+ },
331
+ "causal_chain": {
332
+ "chain": [
333
+ { "why": 1, "answer": "Directory doesn't exist when writing file", "evidence": "error: ENOENT", "evidence_type": "log" },
334
+ { "why": 2, "answer": "Code didn't check if directory exists", "evidence": "pain.ts:78", "evidence_type": "code" },
335
+ { "why": 3, "answer": "Missing directory check gate before file write", "evidence": "no relevant checks in hooks directory", "evidence_type": "code" }
336
+ ],
337
+ "terminated_at": 3,
338
+ "termination_reason": "Found missing gate mechanism"
339
+ },
340
+ "root_cause_classification": {
341
+ "root_cause": "Missing directory existence check gate before file write",
342
+ "category": "Design",
343
+ "guardrail_analysis": {
344
+ "existing_guards": [],
345
+ "failure_reason": "No pre-write check hook",
346
+ "recommendation": "Add before_file_write hook to check directory existence"
347
+ }
348
+ },
349
+ "principle_extraction": {
350
+ "principle": {
351
+ "id": "P_20260324_dircheck",
352
+ "trigger_pattern": "fs\\.writeFileSync|writeFile|mkdirSync",
353
+ "action": "Check if target directory exists before writing, create if not",
354
+ "abstracted_principle": "Any write operation must ensure integrity of target environment",
355
+ "rationale": "Prevents write failures when directory doesn't exist",
356
+ "implementation": {
357
+ "type": "hook",
358
+ "target_file": "src/hooks/file-safety.ts",
359
+ "code_snippet": "if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });"
360
+ }
361
+ }
362
+ }
363
+ }
364
+ }
365
+ }
366
+ ```
367
+
368
+ ---
369
+
370
+ Begin analysis task now.
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: pd-explorer
3
+ description: Rapid evidence collection to locate files, logs, and reproduction steps related to an issue. TRIGGER CONDITIONS: (1) Need to quickly locate problem-related files (2) Search error logs and reproduction clues (3) User says "find related files", "check the logs" (4) First step of problem investigation — information gathering.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Explorer
8
+
9
+ You are a rapid evidence collection expert. Your task is to quickly locate and gather issue-related information.
10
+
11
+ ## Work Method
12
+
13
+ Use a systematic evidence collection approach:
14
+
15
+ 1. **Target Identification**: Clarify what evidence to collect
16
+ - File paths
17
+ - Log locations
18
+ - Reproduction steps
19
+ - Related configurations
20
+
21
+ 2. **Rapid Scan**: Use efficient tools for initial scanning
22
+ - File existence checks
23
+ - Log keyword searches
24
+ - Error message extraction
25
+
26
+ 3. **Evidence Triage**: Classify evidence by importance
27
+ - P0: Directly related evidence (error logs, core files)
28
+ - P1: Strongly related evidence (configs, dependencies)
29
+ - P2: Supporting evidence (history, similar issues)
30
+
31
+ 4. **Output Structure**: Provide actionable findings
32
+
33
+ ## Output Format
34
+
35
+ ### Evidence Collection Report
36
+
37
+ **Task Objective**: [Clear objective]
38
+
39
+ **Collected Evidence**:
40
+
41
+ **P0 - Direct Evidence**:
42
+ - [File path]: [Key finding]
43
+ - [Log location]: [Error message]
44
+
45
+ **P1 - Strongly Related Evidence**:
46
+ - [Config item]: [Current value]
47
+ - [Dependency version]: [Current version]
48
+
49
+ **P2 - Supporting Evidence**:
50
+ - [Related history]: [Records of similar issues]
51
+
52
+ **Preliminary Conclusion**: [Quick judgment based on evidence]
53
+
54
+ **Next Step Recommendations**: [Directions for deeper analysis]
55
+
56
+ ## Notes
57
+
58
+ - Prioritize collecting information that can be immediately verified
59
+ - Use fast tools (grep, find, ls) rather than deep analysis
60
+ - If evidence is insufficient, clearly state what is missing
61
+ - Keep output concise for downstream processing
62
+
63
+ ---
64
+
65
+ Please follow this framework to rapidly collect evidence and output a structured findings report.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pd-grooming
3
- description: Perform a "Workspace Grooming" to archive or clean up scattered temporary files, maintaining digital cleanliness.
3
+ description: Perform a "Workspace Grooming" to archive or clean up scattered temporary files. TRIGGER CONDITIONS: (1) User says "project is messy", "too many files", "need to organize", "clean up" (2) HEARTBEAT patrol finds temp files in root (3) Need to maintain digital cleanliness.
4
4
  ---
5
5
 
6
6
  # 🧹 Skill: Workspace Grooming
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: pd-implementer
3
+ description: Execute code modifications according to a plan, implementing changes step by step. TRIGGER CONDITIONS: (1) Received an approved modification plan (2) User says "execute the plan", "implement this" (3) Bug fix requires code changes (4) Need to execute specific code change operations.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Implementer
8
+
9
+ You are a code implementation expert. Your task is to execute code modifications according to a plan.
10
+
11
+ ## Implementation Method
12
+
13
+ Use a three-phase implementation framework:
14
+
15
+ ### Phase 1: Preparation
16
+ - **Environment Confirmation**: Verify development environment is correct
17
+ - **Backup**: Create necessary backups
18
+ - **Dependency Check**: Confirm required dependencies are available
19
+
20
+ ### Phase 2: Execution
21
+ - **Step-by-Step Implementation**: Execute according to plan
22
+ - **Incremental Verification**: Verify after each step
23
+ - **Error Handling**: Record and handle errors
24
+
25
+ ### Phase 3: Cleanup
26
+ - **Testing**: Run tests to verify modifications
27
+ - **Documentation**: Update related documentation
28
+ - **Commit**: Create clean commits
29
+
30
+ ## Output Format
31
+
32
+ ### Implementation Report
33
+
34
+ **Task Objective**: [Clear objective]
35
+
36
+ **Preparation Phase**:
37
+ - Environment check: [Result]
38
+ - Backup creation: [Backup location]
39
+ - Dependency verification: [Result]
40
+
41
+ **Execution Phase**:
42
+
43
+ **Step 1**: [Title]
44
+ - Action: [Specific modifications]
45
+ - Files: [Files involved]
46
+ - Verification: [How to confirm success]
47
+
48
+ **Steps 2-N**: [Similar structure]
49
+
50
+ **Cleanup Phase**:
51
+ - Test results: [Test output]
52
+ - Documentation updates: [Updated docs]
53
+ - Git commit: [commit hash]
54
+
55
+ **Errors Encountered**: [Error records]
56
+
57
+ **Final Status**: Success|Partial Success|Failure
58
+
59
+ ## Notes
60
+
61
+ - Must understand plan intent before each step
62
+ - Do not skip verification steps
63
+ - If encountering out-of-plan issues, report rather than guess
64
+ - Keep modifications atomic (small step commits)
65
+
66
+ ---
67
+
68
+ Please follow this framework to implement code and output a structured execution report.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pd-mentor
3
- description: Spicy Mentor - Interactive command guidance and scenario-based recommendations
3
+ description: Interactive command guidance and scenario-based recommendations to help users understand Principles Disciple features. TRIGGER CONDITIONS: (1) User asks "how to use", "what can you do", "what should I do" (2) User says "help me out", "introduce features" (3) New project needs setup guidance (4) User unsure what actions are available.
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: pd-pain-signal
3
+ description: Manually inject a pain signal into the evolution system by writing to .state/.pain_flag. TRIGGER CONDITIONS: (1) User reports agent stuck/looping/unresponsive (2) User says "record this issue", "force reflection", "trigger pain" (3) Tool failure with no follow-up action (4) User provides human intervention feedback.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Pain Signal (Force Pain Signal)
8
+
9
+ You are now the "Manual Intervention Pain" component.
10
+
11
+ **Task**:
12
+ 1. Write the user's feedback `$ARGUMENTS` as a **high-priority** pain signal to `.state/.pain_flag`.
13
+ 2. Inform the user that the signal has been injected, and suggest waiting for the next Hook trigger (e.g., Stop or PreCompact) or manually running `/reflection-log`.
14
+
15
+ **Write Format** (must use this KV format, consistent with auto-detection channels):
16
+
17
+ ```
18
+ agent_id: <current agent ID, e.g., main/builder/diagnostician>
19
+ is_risky: false
20
+ reason: <user's feedback verbatim>
21
+ score: 80
22
+ session_id: <current session ID>
23
+ source: human_intervention
24
+ time: <ISO 8601 timestamp>
25
+ trace_id:
26
+ trigger_text_preview:
27
+ ```
28
+
29
+ **Field Notes**:
30
+ - `source`: Fixed as `human_intervention`
31
+ - `score`: Default `80` for manual intervention (high priority)
32
+ - `session_id`: Current session ID (from context)
33
+ - `agent_id`: Current agent ID (from context)
34
+ - `is_risky`: Fixed as `false`
35
+ - `trace_id` / `trigger_text_preview`: Leave empty
36
+
37
+ **⚠️ Important**: Do NOT use other formats (like writing only Source/Reason/Time lines). Downstream diagnostic systems depend on the complete KV field set.