@codyswann/lisa 1.17.0 → 1.18.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.
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
# Marker files: $PLANS_DIR/.active-plan-<session-id> contain the absolute path to the
|
|
16
16
|
# active plan file. Stale markers (>24h) are cleaned up on each invocation.
|
|
17
17
|
#
|
|
18
|
+
# Dedup: Session ID dedup is scoped to the ## Sessions section only, not the entire
|
|
19
|
+
# file. This prevents false positives when session IDs appear elsewhere in plan content
|
|
20
|
+
# (e.g., scratchpad directory paths like /private/tmp/claude-501/.../SESSION_ID/...).
|
|
21
|
+
#
|
|
18
22
|
# Debug logging: All key decisions are logged to $PLANS_DIR/.track-plan-debug.log for
|
|
19
23
|
# diagnostics if session IDs land in the wrong plan file.
|
|
20
24
|
#
|
|
@@ -123,9 +127,11 @@ if [[ ! -f "$PLAN_FILE" ]]; then
|
|
|
123
127
|
exit 0
|
|
124
128
|
fi
|
|
125
129
|
|
|
126
|
-
# Check if session ID already exists in the
|
|
127
|
-
|
|
128
|
-
|
|
130
|
+
# Check if session ID already exists in the ## Sessions section (dedup)
|
|
131
|
+
# Only search within the Sessions section to avoid false positives from session IDs
|
|
132
|
+
# appearing in plan content (e.g., scratchpad paths contain session IDs)
|
|
133
|
+
if sed -n '/^## Sessions$/,$p' "$PLAN_FILE" 2>/dev/null | grep -qF "$SESSION_ID"; then
|
|
134
|
+
log_debug "dedup: session ID already in $PLAN_FILE sessions section (resolved via $RESOLUTION_METHOD), skipping write"
|
|
129
135
|
exit 0
|
|
130
136
|
fi
|
|
131
137
|
|
|
@@ -10,7 +10,7 @@ When making a plan:
|
|
|
10
10
|
- Always make sure you understand the correct versions of third party libraries
|
|
11
11
|
- Always save the plan with a name befitting the actual plan contents
|
|
12
12
|
- Always look for code that can be reused for implementation
|
|
13
|
-
- The plan MUST
|
|
13
|
+
- The plan MUST include written instructions to create a task list using TaskCreate for each task (following the Task Creation Specification below). The list should contain items related to the plan and specify that subagents should handle as many in parallel as possible. The following should always be included in the task list
|
|
14
14
|
- update/add/remove tests, containing the tests that need to get updated, added or removed
|
|
15
15
|
- update/add/remove documentation (jsdocs, markdown files, etc), containing the documentation that need to get updated, added or removed
|
|
16
16
|
- archive the plan (to be completed after all other tasks have been completed). This task should explcitly say to:
|
|
@@ -27,3 +27,53 @@ When making a plan:
|
|
|
27
27
|
- If referencing a ticket (jira, linear, etc), always add a comment to the ticket with the finalized plan
|
|
28
28
|
- The `## Sessions` section in plan files is auto-maintained by the `track-plan-sessions.sh` hook — do not manually edit it
|
|
29
29
|
|
|
30
|
+
## Task Creation Specification
|
|
31
|
+
|
|
32
|
+
When plans include TaskCreate instructions, each task must use this format:
|
|
33
|
+
|
|
34
|
+
### Parameters
|
|
35
|
+
|
|
36
|
+
- **subject**: Imperative form (e.g., "Add logout button to header")
|
|
37
|
+
- **activeForm**: Present continuous form (e.g., "Adding logout button to header")
|
|
38
|
+
|
|
39
|
+
### Description Template
|
|
40
|
+
|
|
41
|
+
Every task description must be a markdown document with these sections:
|
|
42
|
+
|
|
43
|
+
**Type:** Bug | Task | Epic | Story
|
|
44
|
+
|
|
45
|
+
**Description:** Clear description based on type (Bug: symptoms/root cause; Story: Gherkin Given/When/Then; Task: clear goal; Epic: goal with sub-tasks)
|
|
46
|
+
|
|
47
|
+
**Acceptance Criteria:** Checkbox list of completion criteria
|
|
48
|
+
|
|
49
|
+
**Relevant Research:** Code references, patterns, architecture constraints extracted from research
|
|
50
|
+
|
|
51
|
+
**Skills to Invoke:** `/coding-philosophy` is always required, plus other applicable skills
|
|
52
|
+
|
|
53
|
+
**Implementation Details:** Files to modify, functions to implement, edge cases
|
|
54
|
+
|
|
55
|
+
**Testing Requirements:** Unit tests (with `describe/it` structure), Integration tests, E2E tests (or "N/A")
|
|
56
|
+
|
|
57
|
+
**Verification:** Every task MUST have empirical verification (see `verfication.md` for types). Include: verification type, proof command, and expected output.
|
|
58
|
+
|
|
59
|
+
**Learnings:** On task completion, use `TaskUpdate` to save discoveries: `metadata: { learnings: ["Learning 1", ...] }`
|
|
60
|
+
|
|
61
|
+
### Metadata
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"plan": "<plan-name>",
|
|
66
|
+
"type": "bug|task|epic|story",
|
|
67
|
+
"skills": ["/coding-philosophy", ...],
|
|
68
|
+
"verification": {
|
|
69
|
+
"type": "test|ui-recording|test-coverage|api-test|manual-check|documentation",
|
|
70
|
+
"command": "the proof command",
|
|
71
|
+
"expected": "what success looks like"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Task Sizing
|
|
77
|
+
|
|
78
|
+
Each task must be small enough to have a **single, specific verification**. Ask: "Can I prove this is done with ONE command?" Split tasks that require multiple verifications.
|
|
79
|
+
|
package/package.json
CHANGED
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
},
|
|
86
86
|
"resolutions": {},
|
|
87
87
|
"name": "@codyswann/lisa",
|
|
88
|
-
"version": "1.
|
|
88
|
+
"version": "1.18.0",
|
|
89
89
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
90
90
|
"main": "dist/index.js",
|
|
91
91
|
"bin": {
|