mindsystem-cc 3.2.2 → 3.3.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.
- package/README.md +2 -2
- package/agents/ms-code-simplifier.md +215 -0
- package/agents/ms-consolidator.md +377 -0
- package/agents/ms-executor.md +32 -261
- package/{commands/ms/simplify-flutter.md → agents/ms-flutter-simplifier.md} +41 -49
- package/agents/ms-researcher.md +2 -2
- package/commands/ms/complete-milestone.md +24 -3
- package/commands/ms/do-work.md +17 -3
- package/commands/ms/execute-phase.md +29 -14
- package/commands/ms/help.md +4 -23
- package/commands/ms/new-milestone.md +42 -30
- package/commands/ms/new-project.md +5 -14
- package/commands/ms/progress.md +1 -1
- package/commands/ms/research-project.md +8 -0
- package/commands/ms/review-design.md +1 -1
- package/commands/ms/whats-new.md +3 -3
- package/mindsystem/references/git-integration.md +2 -2
- package/mindsystem/references/goal-backward.md +2 -2
- package/mindsystem/references/principles.md +1 -1
- package/mindsystem/templates/adhoc-summary.md +3 -0
- package/mindsystem/templates/codebase/architecture.md +2 -2
- package/mindsystem/templates/codebase/structure.md +1 -1
- package/mindsystem/templates/config.json +2 -12
- package/mindsystem/templates/decisions.md +145 -0
- package/mindsystem/workflows/complete-milestone.md +58 -25
- package/mindsystem/workflows/create-milestone.md +60 -20
- package/mindsystem/workflows/do-work.md +81 -4
- package/mindsystem/workflows/execute-phase.md +66 -0
- package/mindsystem/workflows/execute-plan.md +1 -53
- package/mindsystem/workflows/map-codebase.md +9 -1
- package/mindsystem/workflows/plan-phase.md +0 -39
- package/mindsystem/workflows/transition.md +0 -74
- package/mindsystem/workflows/verify-work.md +1 -1
- package/package.json +1 -1
- package/scripts/generate-adhoc-patch.sh +79 -0
- package/scripts/ms-lookup/uv.lock +17 -17
- package/commands/ms/discuss-milestone.md +0 -48
- package/commands/ms/linear.md +0 -195
- package/mindsystem/templates/milestone-context.md +0 -93
- package/scripts/ms-linear/ms_linear/__init__.py +0 -3
- package/scripts/ms-linear/ms_linear/__main__.py +0 -6
- package/scripts/ms-linear/ms_linear/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/ms-linear/ms_linear/__pycache__/__main__.cpython-314.pyc +0 -0
- package/scripts/ms-linear/ms_linear/__pycache__/cli.cpython-314.pyc +0 -0
- package/scripts/ms-linear/ms_linear/__pycache__/client.cpython-314.pyc +0 -0
- package/scripts/ms-linear/ms_linear/__pycache__/config.cpython-314.pyc +0 -0
- package/scripts/ms-linear/ms_linear/__pycache__/errors.cpython-314.pyc +0 -0
- package/scripts/ms-linear/ms_linear/__pycache__/output.cpython-314.pyc +0 -0
- package/scripts/ms-linear/ms_linear/cli.py +0 -604
- package/scripts/ms-linear/ms_linear/client.py +0 -503
- package/scripts/ms-linear/ms_linear/config.py +0 -104
- package/scripts/ms-linear/ms_linear/errors.py +0 -29
- package/scripts/ms-linear/ms_linear/output.py +0 -45
- package/scripts/ms-linear/pyproject.toml +0 -16
- package/scripts/ms-linear/uv.lock +0 -196
- package/scripts/ms-linear-wrapper.sh +0 -22
|
@@ -60,8 +60,6 @@ cat .planning/config.json 2>/dev/null
|
|
|
60
60
|
|
|
61
61
|
**If all plans complete:**
|
|
62
62
|
|
|
63
|
-
<if mode="yolo">
|
|
64
|
-
|
|
65
63
|
```
|
|
66
64
|
⚡ Auto-approved: Transition Phase [X] → Phase [X+1]
|
|
67
65
|
Phase [X] complete — all [Y] plans finished.
|
|
@@ -71,16 +69,6 @@ Proceeding to mark done and advance...
|
|
|
71
69
|
|
|
72
70
|
Proceed directly to cleanup_handoff step.
|
|
73
71
|
|
|
74
|
-
</if>
|
|
75
|
-
|
|
76
|
-
<if mode="interactive" OR="custom with gates.confirm_transition true">
|
|
77
|
-
|
|
78
|
-
Ask: "Phase [X] complete — all [Y] plans finished. Ready to mark done and move to Phase [X+1]?"
|
|
79
|
-
|
|
80
|
-
Wait for confirmation before proceeding.
|
|
81
|
-
|
|
82
|
-
</if>
|
|
83
|
-
|
|
84
72
|
**If plans incomplete:**
|
|
85
73
|
|
|
86
74
|
**SAFETY RAIL: always_confirm_destructive applies here.**
|
|
@@ -409,8 +397,6 @@ Read ROADMAP.md to get the next phase's name and goal.
|
|
|
409
397
|
|
|
410
398
|
**If next phase exists:**
|
|
411
399
|
|
|
412
|
-
<if mode="yolo">
|
|
413
|
-
|
|
414
400
|
```
|
|
415
401
|
Phase [X] marked complete.
|
|
416
402
|
|
|
@@ -421,41 +407,10 @@ Next: Phase [X+1] — [Name]
|
|
|
421
407
|
|
|
422
408
|
Exit skill and invoke SlashCommand("/ms:plan-phase [X+1]")
|
|
423
409
|
|
|
424
|
-
</if>
|
|
425
|
-
|
|
426
|
-
<if mode="interactive" OR="custom with gates.confirm_transition true">
|
|
427
|
-
|
|
428
|
-
```
|
|
429
|
-
## ✓ Phase [X] Complete
|
|
430
|
-
|
|
431
|
-
---
|
|
432
|
-
|
|
433
|
-
## ▶ Next Up
|
|
434
|
-
|
|
435
|
-
**Phase [X+1]: [Name]** — [Goal from ROADMAP.md]
|
|
436
|
-
|
|
437
|
-
`/ms:plan-phase [X+1]`
|
|
438
|
-
|
|
439
|
-
<sub>`/clear` first → fresh context window</sub>
|
|
440
|
-
|
|
441
|
-
---
|
|
442
|
-
|
|
443
|
-
**Also available:**
|
|
444
|
-
- `/ms:discuss-phase [X+1]` — gather context first
|
|
445
|
-
- `/ms:research-phase [X+1]` — investigate unknowns
|
|
446
|
-
- Review roadmap
|
|
447
|
-
|
|
448
|
-
---
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
</if>
|
|
452
|
-
|
|
453
410
|
---
|
|
454
411
|
|
|
455
412
|
**Route B: Milestone complete (all phases done)**
|
|
456
413
|
|
|
457
|
-
<if mode="yolo">
|
|
458
|
-
|
|
459
414
|
```
|
|
460
415
|
Phase {X} marked complete.
|
|
461
416
|
|
|
@@ -466,35 +421,6 @@ Phase {X} marked complete.
|
|
|
466
421
|
|
|
467
422
|
Exit skill and invoke SlashCommand("/ms:complete-milestone {version}")
|
|
468
423
|
|
|
469
|
-
</if>
|
|
470
|
-
|
|
471
|
-
<if mode="interactive" OR="custom with gates.confirm_transition true">
|
|
472
|
-
|
|
473
|
-
```
|
|
474
|
-
## ✓ Phase {X}: {Phase Name} Complete
|
|
475
|
-
|
|
476
|
-
🎉 Milestone {version} is 100% complete — all {N} phases finished!
|
|
477
|
-
|
|
478
|
-
---
|
|
479
|
-
|
|
480
|
-
## ▶ Next Up
|
|
481
|
-
|
|
482
|
-
**Complete Milestone {version}** — archive and prepare for next
|
|
483
|
-
|
|
484
|
-
`/ms:complete-milestone {version}`
|
|
485
|
-
|
|
486
|
-
<sub>`/clear` first → fresh context window</sub>
|
|
487
|
-
|
|
488
|
-
---
|
|
489
|
-
|
|
490
|
-
**Also available:**
|
|
491
|
-
- Review accomplishments before archiving
|
|
492
|
-
|
|
493
|
-
---
|
|
494
|
-
```
|
|
495
|
-
|
|
496
|
-
</if>
|
|
497
|
-
|
|
498
424
|
</step>
|
|
499
425
|
|
|
500
426
|
</process>
|
|
@@ -552,7 +552,7 @@ git stash push -m "mocks-batch-{N}"
|
|
|
552
552
|
```
|
|
553
553
|
Task(
|
|
554
554
|
prompt="""
|
|
555
|
-
You are a
|
|
555
|
+
You are a Mindsystem verify-fixer. Investigate this issue, find the root cause, implement a fix, and commit it.
|
|
556
556
|
|
|
557
557
|
## Issue
|
|
558
558
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# generate-adhoc-patch.sh
|
|
4
|
+
# Generates a patch file from an adhoc commit, excluding documentation and generated files.
|
|
5
|
+
#
|
|
6
|
+
# Usage: ./scripts/generate-adhoc-patch.sh <commit-hash> <output-path>
|
|
7
|
+
# Example: ./scripts/generate-adhoc-patch.sh abc123f .planning/adhoc/2026-01-26-fix-bug.patch
|
|
8
|
+
|
|
9
|
+
set -e
|
|
10
|
+
|
|
11
|
+
# --- Configuration ---
|
|
12
|
+
# Same exclusions as generate-phase-patch.sh
|
|
13
|
+
EXCLUSIONS=(
|
|
14
|
+
# Documentation
|
|
15
|
+
'.planning'
|
|
16
|
+
|
|
17
|
+
# Flutter/Dart generated
|
|
18
|
+
'*.g.dart'
|
|
19
|
+
'*.freezed.dart'
|
|
20
|
+
'*.gr.dart'
|
|
21
|
+
'generated'
|
|
22
|
+
'.dart_tool'
|
|
23
|
+
|
|
24
|
+
# Next.js/TypeScript generated
|
|
25
|
+
'node_modules'
|
|
26
|
+
'.next'
|
|
27
|
+
'dist'
|
|
28
|
+
'build'
|
|
29
|
+
'*.d.ts'
|
|
30
|
+
'.turbo'
|
|
31
|
+
|
|
32
|
+
# Common build artifacts
|
|
33
|
+
'*.lock'
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
# --- Parse arguments ---
|
|
37
|
+
COMMIT_HASH="$1"
|
|
38
|
+
OUTPUT_PATH="$2"
|
|
39
|
+
|
|
40
|
+
# --- Validation ---
|
|
41
|
+
if [ -z "$COMMIT_HASH" ] || [ -z "$OUTPUT_PATH" ]; then
|
|
42
|
+
echo "Error: Commit hash and output path required"
|
|
43
|
+
echo "Usage: $0 <commit-hash> <output-path>"
|
|
44
|
+
exit 1
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
# --- Find git root ---
|
|
48
|
+
GIT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
|
|
49
|
+
if [ -z "$GIT_ROOT" ]; then
|
|
50
|
+
echo "Error: Not in a git repository"
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
|
53
|
+
cd "$GIT_ROOT"
|
|
54
|
+
|
|
55
|
+
# --- Verify commit exists ---
|
|
56
|
+
if ! git rev-parse "$COMMIT_HASH" >/dev/null 2>&1; then
|
|
57
|
+
echo "Error: Commit $COMMIT_HASH not found"
|
|
58
|
+
exit 1
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
# --- Build exclusion arguments ---
|
|
62
|
+
EXCLUDE_ARGS=""
|
|
63
|
+
for pattern in "${EXCLUSIONS[@]}"; do
|
|
64
|
+
EXCLUDE_ARGS="$EXCLUDE_ARGS ':!$pattern'"
|
|
65
|
+
done
|
|
66
|
+
|
|
67
|
+
# --- Generate diff from parent commit to specified commit ---
|
|
68
|
+
eval "git diff \"${COMMIT_HASH}^\" \"$COMMIT_HASH\" -- . $EXCLUDE_ARGS" > "$OUTPUT_PATH"
|
|
69
|
+
|
|
70
|
+
# --- Check result ---
|
|
71
|
+
if [ ! -s "$OUTPUT_PATH" ]; then
|
|
72
|
+
rm -f "$OUTPUT_PATH"
|
|
73
|
+
echo "No implementation changes outside excluded patterns"
|
|
74
|
+
echo "Patch skipped"
|
|
75
|
+
exit 0
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
PATCH_LINES=$(wc -l < "$OUTPUT_PATH" | tr -d ' ')
|
|
79
|
+
echo "Generated: $OUTPUT_PATH ($PATCH_LINES lines)"
|
|
@@ -67,23 +67,6 @@ wheels = [
|
|
|
67
67
|
{ url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" },
|
|
68
68
|
]
|
|
69
69
|
|
|
70
|
-
[[package]]
|
|
71
|
-
name = "gsd-lookup"
|
|
72
|
-
version = "1.0.0"
|
|
73
|
-
source = { editable = "." }
|
|
74
|
-
dependencies = [
|
|
75
|
-
{ name = "diskcache" },
|
|
76
|
-
{ name = "httpx" },
|
|
77
|
-
{ name = "typer" },
|
|
78
|
-
]
|
|
79
|
-
|
|
80
|
-
[package.metadata]
|
|
81
|
-
requires-dist = [
|
|
82
|
-
{ name = "diskcache", specifier = ">=5.6.0" },
|
|
83
|
-
{ name = "httpx", specifier = ">=0.25.0" },
|
|
84
|
-
{ name = "typer", specifier = ">=0.9.0" },
|
|
85
|
-
]
|
|
86
|
-
|
|
87
70
|
[[package]]
|
|
88
71
|
name = "h11"
|
|
89
72
|
version = "0.16.0"
|
|
@@ -151,6 +134,23 @@ wheels = [
|
|
|
151
134
|
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" },
|
|
152
135
|
]
|
|
153
136
|
|
|
137
|
+
[[package]]
|
|
138
|
+
name = "ms-lookup"
|
|
139
|
+
version = "1.0.0"
|
|
140
|
+
source = { editable = "." }
|
|
141
|
+
dependencies = [
|
|
142
|
+
{ name = "diskcache" },
|
|
143
|
+
{ name = "httpx" },
|
|
144
|
+
{ name = "typer" },
|
|
145
|
+
]
|
|
146
|
+
|
|
147
|
+
[package.metadata]
|
|
148
|
+
requires-dist = [
|
|
149
|
+
{ name = "diskcache", specifier = ">=5.6.0" },
|
|
150
|
+
{ name = "httpx", specifier = ">=0.25.0" },
|
|
151
|
+
{ name = "typer", specifier = ">=0.9.0" },
|
|
152
|
+
]
|
|
153
|
+
|
|
154
154
|
[[package]]
|
|
155
155
|
name = "pygments"
|
|
156
156
|
version = "2.19.2"
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ms:discuss-milestone
|
|
3
|
-
description: Gather context for next milestone through adaptive questioning
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<objective>
|
|
7
|
-
Help you figure out what to build in the next milestone through collaborative thinking.
|
|
8
|
-
|
|
9
|
-
Purpose: After completing a milestone, explore what features you want to add, improve, or fix. Features first — scope and phases derive from what you want to build.
|
|
10
|
-
Output: Context gathered, then routes to /ms:new-milestone
|
|
11
|
-
</objective>
|
|
12
|
-
|
|
13
|
-
<execution_context>
|
|
14
|
-
@~/.claude/mindsystem/references/principles.md
|
|
15
|
-
@~/.claude/mindsystem/workflows/discuss-milestone.md
|
|
16
|
-
</execution_context>
|
|
17
|
-
|
|
18
|
-
<context>
|
|
19
|
-
**Load project state first:**
|
|
20
|
-
@.planning/STATE.md
|
|
21
|
-
|
|
22
|
-
**Load project:**
|
|
23
|
-
@.planning/PROJECT.md
|
|
24
|
-
|
|
25
|
-
**Load milestones (if exists):**
|
|
26
|
-
@.planning/MILESTONES.md
|
|
27
|
-
</context>
|
|
28
|
-
|
|
29
|
-
<process>
|
|
30
|
-
1. Verify previous milestone complete (or acknowledge active milestone)
|
|
31
|
-
2. Present context from previous milestone (accomplishments, phase count)
|
|
32
|
-
3. Follow discuss-milestone.md workflow with **ALL questions using AskUserQuestion**:
|
|
33
|
-
- Use AskUserQuestion: "What do you want to add, improve, or fix?" with feature categories
|
|
34
|
-
- Use AskUserQuestion to dig into features they mention
|
|
35
|
-
- Use AskUserQuestion to help them articulate what matters most
|
|
36
|
-
- Use AskUserQuestion for decision gate (ready / ask more / let me add context)
|
|
37
|
-
4. Hand off to /ms:new-milestone with gathered context
|
|
38
|
-
|
|
39
|
-
**CRITICAL: ALL questions use AskUserQuestion. Never ask inline text questions.**
|
|
40
|
-
</process>
|
|
41
|
-
|
|
42
|
-
<success_criteria>
|
|
43
|
-
|
|
44
|
-
- Project state loaded and presented
|
|
45
|
-
- Previous milestone context summarized
|
|
46
|
-
- Milestone scope gathered through adaptive questioning
|
|
47
|
-
- Context handed off to /ms:new-milestone
|
|
48
|
-
</success_criteria>
|
package/commands/ms/linear.md
DELETED
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ms:linear
|
|
3
|
-
description: Interact with Linear API to create, update, and manage issues
|
|
4
|
-
argument-hint: "[action or description]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Bash
|
|
8
|
-
- AskUserQuestion
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
<objective>
|
|
12
|
-
Conversational interface to Linear for fast issue management. Primary use case: user describes work → ask high-impact questions → create ticket immediately.
|
|
13
|
-
|
|
14
|
-
**Speed over polish.** Get tickets into Linear quickly. Don't over-engineer descriptions or explore solutions.
|
|
15
|
-
|
|
16
|
-
**No codebase exploration unless explicitly requested.** Work from user's description only. Do NOT launch agents, explore files, or analyze code unless the user explicitly asks for it.
|
|
17
|
-
</objective>
|
|
18
|
-
|
|
19
|
-
<execution_context>
|
|
20
|
-
@~/.claude/mindsystem/scripts/ms-linear-wrapper.sh
|
|
21
|
-
</execution_context>
|
|
22
|
-
|
|
23
|
-
<cli_reference>
|
|
24
|
-
**CLI location:** `~/.claude/mindsystem/scripts/ms-linear-wrapper.sh`
|
|
25
|
-
|
|
26
|
-
**Commands:**
|
|
27
|
-
| Command | Usage | Purpose |
|
|
28
|
-
|---------|-------|---------|
|
|
29
|
-
| `create` | `create "<title>" [-d desc] [-p priority] [-e estimate] [--parent ID] [--project name] [--no-project]` | Create issue |
|
|
30
|
-
| `update` | `update <ID> [-t title] [-d desc] [-p priority]` | Update fields |
|
|
31
|
-
| `done` | `done <ID>` | Mark completed |
|
|
32
|
-
| `state` | `state <ID> "<name>"` | Change state |
|
|
33
|
-
| `break` | `break <ID> --issues '[{...}]' [--project name] [--no-project]` | Create sub-issues |
|
|
34
|
-
| `get` | `get <ID>` | Fetch details |
|
|
35
|
-
| `states` | `states` | List workflow states |
|
|
36
|
-
| `projects` | `projects` | List available projects |
|
|
37
|
-
|
|
38
|
-
**Priority values:** 0=None, 1=Urgent, 2=High, 3=Normal, 4=Low
|
|
39
|
-
|
|
40
|
-
**T-shirt to estimate mapping:**
|
|
41
|
-
- XS → 1, S → 2, M → 3, L → 5, XL → 8
|
|
42
|
-
|
|
43
|
-
**Project handling:**
|
|
44
|
-
- `--project "Name"` — Assign to project by name (overrides config default)
|
|
45
|
-
- `--no-project` — Don't assign to any project
|
|
46
|
-
- If neither specified, uses `projectId` from `.linear.json` if present
|
|
47
|
-
</cli_reference>
|
|
48
|
-
|
|
49
|
-
<config_format>
|
|
50
|
-
`.linear.json` in project root:
|
|
51
|
-
|
|
52
|
-
```json
|
|
53
|
-
{
|
|
54
|
-
"teamId": "uuid-of-linear-team",
|
|
55
|
-
"projectId": "uuid-of-linear-project (optional)",
|
|
56
|
-
"defaultPriority": 3,
|
|
57
|
-
"defaultLabels": []
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
- `teamId` — Required. Your Linear team UUID.
|
|
62
|
-
- `projectId` — Optional. Default project for new issues. Can be overridden with `--project` or `--no-project`.
|
|
63
|
-
</config_format>
|
|
64
|
-
|
|
65
|
-
<process>
|
|
66
|
-
|
|
67
|
-
<step name="parse_intent">
|
|
68
|
-
**Parse the command to determine intent:**
|
|
69
|
-
|
|
70
|
-
| Pattern | Intent | Action |
|
|
71
|
-
|---------|--------|--------|
|
|
72
|
-
| `done <ID>` | Mark complete | Execute `done` directly |
|
|
73
|
-
| `state <ID> "<name>"` | Change state | Execute `state` directly |
|
|
74
|
-
| `get <ID>` | Fetch details | Execute `get` directly |
|
|
75
|
-
| `states` | List states | Execute `states` directly |
|
|
76
|
-
| `projects` | List projects | Execute `projects` directly |
|
|
77
|
-
| `update <ID> <text>` | Update issue | Execute `update` with parsed fields |
|
|
78
|
-
| `break <ID>` + user provides sub-issues | Break into sub-issues | Execute `break` with user's list |
|
|
79
|
-
| `<ID> <description>` | Create sub-issue | Go to create flow with parent |
|
|
80
|
-
| `<description>` | Create issue | Go to create flow |
|
|
81
|
-
| (empty) | No input | Ask what they want to do |
|
|
82
|
-
|
|
83
|
-
Issue ID pattern: 2-4 uppercase letters followed by hyphen and numbers (e.g., `ABC-123`, `PROJ-42`).
|
|
84
|
-
</step>
|
|
85
|
-
|
|
86
|
-
<step name="direct_commands">
|
|
87
|
-
**For direct commands (done, state, get, states, projects, update):**
|
|
88
|
-
|
|
89
|
-
Execute CLI and format output.
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
~/.claude/mindsystem/scripts/ms-linear-wrapper.sh [command] [args] --json-pretty
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
Parse JSON response and present result:
|
|
96
|
-
- Success: Show identifier, title, new state, and URL
|
|
97
|
-
- For `projects`: List projects grouped by team
|
|
98
|
-
- Error: Show error message and suggestions
|
|
99
|
-
</step>
|
|
100
|
-
|
|
101
|
-
<step name="create_flow">
|
|
102
|
-
**For create/sub-issue — FAST PATH:**
|
|
103
|
-
|
|
104
|
-
1. **Parse input for hints:**
|
|
105
|
-
- Title from first sentence or quoted text
|
|
106
|
-
- Priority hints: "urgent", "high priority", "low priority", "blocker"
|
|
107
|
-
- Estimate hints: "XS", "S", "M", "L", "XL", "small", "medium", "large"
|
|
108
|
-
- Parent ID if pattern `<ID> <description>`
|
|
109
|
-
- Project hints: "in [Project]", "for [Project]", "(project: [Name])", "[Project] project"
|
|
110
|
-
|
|
111
|
-
2. **Infer priority and estimate** from the description:
|
|
112
|
-
- Bug fixes, blockers → High/Urgent
|
|
113
|
-
- Small tweaks, copy changes → Low priority, XS/S estimate
|
|
114
|
-
- New features → Normal priority, M estimate
|
|
115
|
-
- Large features, refactors → Normal priority, L/XL estimate
|
|
116
|
-
|
|
117
|
-
3. **Ask UP TO 4 questions in ONE AskUserQuestion call:**
|
|
118
|
-
|
|
119
|
-
Combine these into a single batch:
|
|
120
|
-
|
|
121
|
-
**Confirmation question:** Show inferred priority/estimate, ask to confirm or adjust
|
|
122
|
-
|
|
123
|
-
**High-impact domain questions (pick 1-3 most relevant):**
|
|
124
|
-
- Scope clarification: "Should this [specific behavior] or [alternative]?"
|
|
125
|
-
- Edge cases: "What should happen when [edge case]?"
|
|
126
|
-
- Acceptance criteria: "What's the minimum for this to be done?"
|
|
127
|
-
- Context: "Is this related to [existing feature/area]?"
|
|
128
|
-
|
|
129
|
-
Skip questions with obvious answers from description. If description is very clear, may only need confirmation.
|
|
130
|
-
|
|
131
|
-
If project not specified and multiple projects exist, include project selection.
|
|
132
|
-
|
|
133
|
-
4. **Create immediately after answers:**
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
~/.claude/mindsystem/scripts/ms-linear-wrapper.sh create "[title]" \
|
|
137
|
-
-d "[description with user's answers incorporated]" -p [priority] -e [estimate] \
|
|
138
|
-
[--parent ID] [--project "Name"] [--no-project] --json-pretty
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
5. **Format result:**
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
Created: **[identifier]** — [title]
|
|
145
|
-
Project: [project name]
|
|
146
|
-
[url]
|
|
147
|
-
```
|
|
148
|
-
</step>
|
|
149
|
-
|
|
150
|
-
<step name="break_flow">
|
|
151
|
-
**For breaking down issues:**
|
|
152
|
-
|
|
153
|
-
User provides the sub-issues in conversation. Do NOT propose or generate sub-issues.
|
|
154
|
-
|
|
155
|
-
1. **Get sub-issue list from user** (they specify titles/estimates in their message)
|
|
156
|
-
|
|
157
|
-
2. **Build JSON and execute:**
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
~/.claude/mindsystem/scripts/ms-linear-wrapper.sh break [ID] \
|
|
161
|
-
--issues '[{"title":"...","estimate":3},{"title":"...","estimate":2}]' --json-pretty
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
3. **Format result:**
|
|
165
|
-
|
|
166
|
-
```
|
|
167
|
-
Created N sub-issues under [parent-identifier]:
|
|
168
|
-
- **[ID-1]** — [title 1]
|
|
169
|
-
- **[ID-2]** — [title 2]
|
|
170
|
-
```
|
|
171
|
-
</step>
|
|
172
|
-
|
|
173
|
-
<step name="error_handling">
|
|
174
|
-
**Handle errors gracefully:**
|
|
175
|
-
|
|
176
|
-
- **MISSING_API_KEY:** Explain how to set LINEAR_API_KEY
|
|
177
|
-
- **MISSING_CONFIG:** Explain how to create .linear.json
|
|
178
|
-
- **ISSUE_NOT_FOUND:** Suggest checking the identifier
|
|
179
|
-
- **STATE_NOT_FOUND:** List available states from `states` command
|
|
180
|
-
- **PROJECT_NOT_FOUND:** List available projects from `projects` command
|
|
181
|
-
|
|
182
|
-
Always parse JSON error response and present human-friendly message with suggestions.
|
|
183
|
-
</step>
|
|
184
|
-
|
|
185
|
-
</process>
|
|
186
|
-
|
|
187
|
-
<success_criteria>
|
|
188
|
-
- [ ] Intent correctly parsed from input
|
|
189
|
-
- [ ] Direct commands execute immediately without questions
|
|
190
|
-
- [ ] Create flow asks max 4 questions in ONE AskUserQuestion call
|
|
191
|
-
- [ ] No codebase exploration unless user explicitly requests it
|
|
192
|
-
- [ ] Issue created immediately after user answers questions
|
|
193
|
-
- [ ] CLI output parsed and formatted for readability
|
|
194
|
-
- [ ] Errors handled with helpful suggestions
|
|
195
|
-
</success_criteria>
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# Milestone Context Template
|
|
2
|
-
|
|
3
|
-
Template for `.planning/MILESTONE-CONTEXT.md` - temporary handoff file from discuss-milestone to create-milestone.
|
|
4
|
-
|
|
5
|
-
**Purpose:** Persist milestone discussion context so `/clear` can be used between commands. This file is consumed by `/ms:new-milestone` and deleted after the milestone is created.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## File Template
|
|
10
|
-
|
|
11
|
-
```markdown
|
|
12
|
-
# Milestone Context
|
|
13
|
-
|
|
14
|
-
**Generated:** [date]
|
|
15
|
-
**Status:** Ready for /ms:new-milestone
|
|
16
|
-
|
|
17
|
-
<features>
|
|
18
|
-
## Features to Build
|
|
19
|
-
|
|
20
|
-
[Features identified during discussion - the substance of this milestone]
|
|
21
|
-
|
|
22
|
-
- **[Feature 1]**: [description]
|
|
23
|
-
- **[Feature 2]**: [description]
|
|
24
|
-
- **[Feature 3]**: [description]
|
|
25
|
-
|
|
26
|
-
</features>
|
|
27
|
-
|
|
28
|
-
<scope>
|
|
29
|
-
## Scope
|
|
30
|
-
|
|
31
|
-
**Suggested name:** v[X.Y] [Theme Name]
|
|
32
|
-
**Estimated phases:** [N]
|
|
33
|
-
**Focus:** [One sentence theme/focus]
|
|
34
|
-
|
|
35
|
-
</scope>
|
|
36
|
-
|
|
37
|
-
<phase_mapping>
|
|
38
|
-
## Phase Mapping
|
|
39
|
-
|
|
40
|
-
[How features map to phases - rough breakdown]
|
|
41
|
-
|
|
42
|
-
- Phase [N]: [Feature/goal]
|
|
43
|
-
- Phase [N+1]: [Feature/goal]
|
|
44
|
-
- Phase [N+2]: [Feature/goal]
|
|
45
|
-
|
|
46
|
-
</phase_mapping>
|
|
47
|
-
|
|
48
|
-
<constraints>
|
|
49
|
-
## Constraints
|
|
50
|
-
|
|
51
|
-
[Any constraints or boundaries mentioned during discussion]
|
|
52
|
-
|
|
53
|
-
- [Constraint 1]
|
|
54
|
-
- [Constraint 2]
|
|
55
|
-
|
|
56
|
-
</constraints>
|
|
57
|
-
|
|
58
|
-
<notes>
|
|
59
|
-
## Additional Context
|
|
60
|
-
|
|
61
|
-
[Anything else captured during discussion that informs the milestone]
|
|
62
|
-
|
|
63
|
-
</notes>
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
*This file is temporary. It will be deleted after /ms:new-milestone creates the milestone.*
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
<guidelines>
|
|
71
|
-
**This is a handoff artifact, not permanent documentation.**
|
|
72
|
-
|
|
73
|
-
The file exists only to pass context from `discuss-milestone` to `create-milestone` across a `/clear` boundary.
|
|
74
|
-
|
|
75
|
-
**Lifecycle:**
|
|
76
|
-
1. `/ms:discuss-milestone` creates this file at end of discussion
|
|
77
|
-
2. User runs `/clear` (safe now - context is persisted)
|
|
78
|
-
3. `/ms:new-milestone` reads this file
|
|
79
|
-
4. `/ms:new-milestone` uses context to populate milestone
|
|
80
|
-
5. `/ms:new-milestone` deletes this file after successful creation
|
|
81
|
-
|
|
82
|
-
**Content should include:**
|
|
83
|
-
- Features identified (the core of what to build)
|
|
84
|
-
- Suggested milestone name/theme
|
|
85
|
-
- Rough phase mapping
|
|
86
|
-
- Any constraints or scope boundaries
|
|
87
|
-
- Notes from discussion
|
|
88
|
-
|
|
89
|
-
**Content should NOT include:**
|
|
90
|
-
- Technical analysis (that comes during phase research)
|
|
91
|
-
- Detailed phase specifications (create-milestone handles that)
|
|
92
|
-
- Implementation details
|
|
93
|
-
</guidelines>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|