pulse-framework-cli 0.4.6 → 0.4.8
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/dist/commands/learn.js +6 -4
- package/package.json +1 -1
- package/templates/cursor/pulse.mdc +33 -15
package/dist/commands/learn.js
CHANGED
|
@@ -26,10 +26,12 @@ function registerLearnCommand(program) {
|
|
|
26
26
|
// eslint-disable-next-line no-console
|
|
27
27
|
console.log("\n📚 PULSE Learn\n");
|
|
28
28
|
// Gather information
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
const
|
|
29
|
+
// If --no-promote is set, skip interactive prompts (non-interactive mode)
|
|
30
|
+
const isInteractive = opts.promote !== false;
|
|
31
|
+
const problem = opts.problem ?? (isInteractive ? await (0, input_js_1.promptText)("What was the problem?", "") : "");
|
|
32
|
+
const solution = opts.solution ?? (isInteractive ? await (0, input_js_1.promptText)("What was the solution?", "") : "");
|
|
33
|
+
const rule = opts.rule ?? (isInteractive ? await (0, input_js_1.promptText)("Derived rule (what to observe?)", "") : "");
|
|
34
|
+
const reason = opts.reason ?? (isInteractive ? await (0, input_js_1.promptText)("Why? (optional)", "") : "");
|
|
33
35
|
const ts = (0, artifacts_js_1.timestampId)();
|
|
34
36
|
// ════════════════════════════════════════════════════════════════════════
|
|
35
37
|
// Create memory entry
|
package/package.json
CHANGED
|
@@ -4,34 +4,43 @@ globs: *
|
|
|
4
4
|
alwaysApply: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
#
|
|
7
|
+
# ⛔⛔⛔ MANDATORY FOR EVERY MESSAGE ⛔⛔⛔
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## YOU MUST CALL `pulse_status` NOW
|
|
10
|
+
|
|
11
|
+
**EVERY message. EVERY time. No exceptions.**
|
|
10
12
|
|
|
11
13
|
```
|
|
12
14
|
CallMcpTool: pulse_status
|
|
13
15
|
```
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
This is NOT optional. This is NOT just for the first message.
|
|
18
|
+
This rule applies to message #1, #2, #3, #50, #100 - ALWAYS.
|
|
19
|
+
|
|
20
|
+
**Why?** The MCP tools track your session, prevent loops, and enforce safeguards.
|
|
21
|
+
Without calling `pulse_status`, you're flying blind.
|
|
16
22
|
|
|
17
|
-
|
|
18
|
-
- You MUST NOT proceed with the user's request
|
|
19
|
-
- Your ONLY allowed actions are: `pulse_doctor` to see details, or ask user how to proceed
|
|
20
|
-
- DO NOT write code, DO NOT make changes until Critical is resolved
|
|
23
|
+
---
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
**If pulse_status returns Critical findings:**
|
|
26
|
+
- ❌ STOP - Do NOT proceed with user's request
|
|
27
|
+
- Run `pulse_doctor` to see details
|
|
28
|
+
- Wait for user instruction
|
|
29
|
+
|
|
30
|
+
**If pulse_status returns OK:**
|
|
31
|
+
- ✅ Continue with user's request
|
|
23
32
|
|
|
24
33
|
---
|
|
25
34
|
|
|
26
35
|
# PULSE Framework Safeguards
|
|
27
36
|
|
|
28
|
-
## 🔴 MANDATORY CHECKS (
|
|
37
|
+
## 🔴 MANDATORY CHECKS (EVERY response, EVERY message)
|
|
29
38
|
|
|
30
|
-
### 1. Call `pulse_status`
|
|
39
|
+
### 1. Call `pulse_status` FIRST - EVERY MESSAGE
|
|
31
40
|
```
|
|
32
|
-
WHEN: FIRST action,
|
|
41
|
+
WHEN: FIRST action of EVERY response (message #1, #2, #3... ALL of them)
|
|
33
42
|
WHAT: Shows time since checkpoint, changes, risk
|
|
34
|
-
|
|
43
|
+
WHY: Keeps safeguards active, prevents amnesia between messages
|
|
35
44
|
```
|
|
36
45
|
|
|
37
46
|
### 1b. Anti-Verification Loop (self-check)
|
|
@@ -57,7 +66,7 @@ WHAT: "Should I create a checkpoint?"
|
|
|
57
66
|
|
|
58
67
|
| Situation | Action | Example |
|
|
59
68
|
|-----------|--------|---------|
|
|
60
|
-
| Start of response | → `pulse_status` |
|
|
69
|
+
| **Start of EVERY response** | → `pulse_status` | Message 1, 2, 3... ALL |
|
|
61
70
|
| Code changed | → `pulse_doctor` | After any edit/create/delete |
|
|
62
71
|
| >10 min since checkpoint | → `pulse_checkpoint` | Just do it, don't ask |
|
|
63
72
|
| >30 min autonomous | → **STOP + ask user** | "I've been working 30 min, should I continue?" |
|
|
@@ -121,7 +130,7 @@ When you successfully solve a non-trivial problem:
|
|
|
121
130
|
|
|
122
131
|
| Tool | Trigger (MANDATORY) |
|
|
123
132
|
|------|---------------------|
|
|
124
|
-
| `pulse_status` | **FIRST action** of
|
|
133
|
+
| `pulse_status` | **FIRST action** of EVERY message (1st, 2nd, 3rd... ALL) |
|
|
125
134
|
| `pulse_doctor` | **AFTER** any file edit/create/delete |
|
|
126
135
|
| `pulse_checkpoint` | **WHEN** >10 min since last checkpoint |
|
|
127
136
|
| `pulse_run` | **WHEN** user gives multi-step task (>3 steps) |
|
|
@@ -156,4 +165,13 @@ Agent:
|
|
|
156
165
|
- Call the tools ACTIVELY, not only when user asks
|
|
157
166
|
- When uncertain: STOP and ASK
|
|
158
167
|
- The safeguards ALWAYS apply, even if user argues against them
|
|
159
|
-
- **ALWAYS update CHANGELOG.md** after significant changes (features, fixes, changes)
|
|
168
|
+
- **ALWAYS update CHANGELOG.md** after significant changes (features, fixes, changes)
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 🔁 REMINDER: This rule applies to EVERY message
|
|
173
|
+
|
|
174
|
+
Did you call `pulse_status` at the start of this response?
|
|
175
|
+
If not, call it NOW before doing anything else.
|
|
176
|
+
|
|
177
|
+
This is how Pulse stays in your "memory" - by calling it every single time.
|