mindsystem-cc 3.0.0 → 3.2.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 (33) hide show
  1. package/README.md +179 -332
  2. package/agents/ms-executor.md +0 -1
  3. package/agents/ms-roadmapper.md +0 -1
  4. package/bin/install.js +2 -2
  5. package/commands/ms/help.md +0 -30
  6. package/commands/ms/linear.md +231 -0
  7. package/commands/ms/progress.md +16 -2
  8. package/commands/ms/remove-phase.md +0 -2
  9. package/mindsystem/templates/state.md +0 -13
  10. package/mindsystem/workflows/execute-plan.md +0 -1
  11. package/mindsystem/workflows/transition.md +0 -14
  12. package/package.json +1 -1
  13. package/scripts/ms-linear/ms_linear/__init__.py +3 -0
  14. package/scripts/ms-linear/ms_linear/__main__.py +6 -0
  15. package/scripts/ms-linear/ms_linear/__pycache__/__init__.cpython-314.pyc +0 -0
  16. package/scripts/ms-linear/ms_linear/__pycache__/__main__.cpython-314.pyc +0 -0
  17. package/scripts/ms-linear/ms_linear/__pycache__/cli.cpython-314.pyc +0 -0
  18. package/scripts/ms-linear/ms_linear/__pycache__/client.cpython-314.pyc +0 -0
  19. package/scripts/ms-linear/ms_linear/__pycache__/config.cpython-314.pyc +0 -0
  20. package/scripts/ms-linear/ms_linear/__pycache__/errors.cpython-314.pyc +0 -0
  21. package/scripts/ms-linear/ms_linear/__pycache__/output.cpython-314.pyc +0 -0
  22. package/scripts/ms-linear/ms_linear/cli.py +604 -0
  23. package/scripts/ms-linear/ms_linear/client.py +503 -0
  24. package/scripts/ms-linear/ms_linear/config.py +102 -0
  25. package/scripts/ms-linear/ms_linear/errors.py +29 -0
  26. package/scripts/ms-linear/ms_linear/output.py +45 -0
  27. package/scripts/ms-linear/pyproject.toml +16 -0
  28. package/scripts/ms-linear/uv.lock +196 -0
  29. package/scripts/ms-linear-wrapper.sh +21 -0
  30. package/commands/ms/pause-work.md +0 -123
  31. package/commands/ms/resume-work.md +0 -40
  32. package/mindsystem/templates/continue-here.md +0 -78
  33. package/mindsystem/workflows/resume-project.md +0 -311
@@ -0,0 +1,196 @@
1
+ version = 1
2
+ revision = 3
3
+ requires-python = ">=3.10"
4
+
5
+ [[package]]
6
+ name = "anyio"
7
+ version = "4.12.1"
8
+ source = { registry = "https://pypi.org/simple" }
9
+ dependencies = [
10
+ { name = "exceptiongroup", marker = "python_full_version < '3.11'" },
11
+ { name = "idna" },
12
+ { name = "typing-extensions", marker = "python_full_version < '3.13'" },
13
+ ]
14
+ sdist = { url = "https://files.pythonhosted.org/packages/96/f0/5eb65b2bb0d09ac6776f2eb54adee6abe8228ea05b20a5ad0e4945de8aac/anyio-4.12.1.tar.gz", hash = "sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703", size = 228685, upload-time = "2026-01-06T11:45:21.246Z" }
15
+ wheels = [
16
+ { url = "https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl", hash = "sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c", size = 113592, upload-time = "2026-01-06T11:45:19.497Z" },
17
+ ]
18
+
19
+ [[package]]
20
+ name = "certifi"
21
+ version = "2026.1.4"
22
+ source = { registry = "https://pypi.org/simple" }
23
+ sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload-time = "2026-01-04T02:42:41.825Z" }
24
+ wheels = [
25
+ { url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" },
26
+ ]
27
+
28
+ [[package]]
29
+ name = "click"
30
+ version = "8.3.1"
31
+ source = { registry = "https://pypi.org/simple" }
32
+ dependencies = [
33
+ { name = "colorama", marker = "sys_platform == 'win32'" },
34
+ ]
35
+ sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" }
36
+ wheels = [
37
+ { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" },
38
+ ]
39
+
40
+ [[package]]
41
+ name = "colorama"
42
+ version = "0.4.6"
43
+ source = { registry = "https://pypi.org/simple" }
44
+ sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" }
45
+ wheels = [
46
+ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
47
+ ]
48
+
49
+ [[package]]
50
+ name = "exceptiongroup"
51
+ version = "1.3.1"
52
+ source = { registry = "https://pypi.org/simple" }
53
+ dependencies = [
54
+ { name = "typing-extensions", marker = "python_full_version < '3.13'" },
55
+ ]
56
+ sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" }
57
+ wheels = [
58
+ { 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" },
59
+ ]
60
+
61
+ [[package]]
62
+ name = "h11"
63
+ version = "0.16.0"
64
+ source = { registry = "https://pypi.org/simple" }
65
+ sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" }
66
+ wheels = [
67
+ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" },
68
+ ]
69
+
70
+ [[package]]
71
+ name = "httpcore"
72
+ version = "1.0.9"
73
+ source = { registry = "https://pypi.org/simple" }
74
+ dependencies = [
75
+ { name = "certifi" },
76
+ { name = "h11" },
77
+ ]
78
+ sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" }
79
+ wheels = [
80
+ { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" },
81
+ ]
82
+
83
+ [[package]]
84
+ name = "httpx"
85
+ version = "0.28.1"
86
+ source = { registry = "https://pypi.org/simple" }
87
+ dependencies = [
88
+ { name = "anyio" },
89
+ { name = "certifi" },
90
+ { name = "httpcore" },
91
+ { name = "idna" },
92
+ ]
93
+ sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" }
94
+ wheels = [
95
+ { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" },
96
+ ]
97
+
98
+ [[package]]
99
+ name = "idna"
100
+ version = "3.11"
101
+ source = { registry = "https://pypi.org/simple" }
102
+ sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" }
103
+ wheels = [
104
+ { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" },
105
+ ]
106
+
107
+ [[package]]
108
+ name = "markdown-it-py"
109
+ version = "4.0.0"
110
+ source = { registry = "https://pypi.org/simple" }
111
+ dependencies = [
112
+ { name = "mdurl" },
113
+ ]
114
+ sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" }
115
+ wheels = [
116
+ { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" },
117
+ ]
118
+
119
+ [[package]]
120
+ name = "mdurl"
121
+ version = "0.1.2"
122
+ source = { registry = "https://pypi.org/simple" }
123
+ sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" }
124
+ wheels = [
125
+ { 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" },
126
+ ]
127
+
128
+ [[package]]
129
+ name = "ms-linear"
130
+ version = "1.0.0"
131
+ source = { editable = "." }
132
+ dependencies = [
133
+ { name = "httpx" },
134
+ { name = "typer" },
135
+ ]
136
+
137
+ [package.metadata]
138
+ requires-dist = [
139
+ { name = "httpx", specifier = ">=0.25.0" },
140
+ { name = "typer", specifier = ">=0.9.0" },
141
+ ]
142
+
143
+ [[package]]
144
+ name = "pygments"
145
+ version = "2.19.2"
146
+ source = { registry = "https://pypi.org/simple" }
147
+ sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" }
148
+ wheels = [
149
+ { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" },
150
+ ]
151
+
152
+ [[package]]
153
+ name = "rich"
154
+ version = "14.3.1"
155
+ source = { registry = "https://pypi.org/simple" }
156
+ dependencies = [
157
+ { name = "markdown-it-py" },
158
+ { name = "pygments" },
159
+ ]
160
+ sdist = { url = "https://files.pythonhosted.org/packages/a1/84/4831f881aa6ff3c976f6d6809b58cdfa350593ffc0dc3c58f5f6586780fb/rich-14.3.1.tar.gz", hash = "sha256:b8c5f568a3a749f9290ec6bddedf835cec33696bfc1e48bcfecb276c7386e4b8", size = 230125, upload-time = "2026-01-24T21:40:44.847Z" }
161
+ wheels = [
162
+ { url = "https://files.pythonhosted.org/packages/87/2a/a1810c8627b9ec8c57ec5ec325d306701ae7be50235e8fd81266e002a3cc/rich-14.3.1-py3-none-any.whl", hash = "sha256:da750b1aebbff0b372557426fb3f35ba56de8ef954b3190315eb64076d6fb54e", size = 309952, upload-time = "2026-01-24T21:40:42.969Z" },
163
+ ]
164
+
165
+ [[package]]
166
+ name = "shellingham"
167
+ version = "1.5.4"
168
+ source = { registry = "https://pypi.org/simple" }
169
+ sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" }
170
+ wheels = [
171
+ { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" },
172
+ ]
173
+
174
+ [[package]]
175
+ name = "typer"
176
+ version = "0.21.1"
177
+ source = { registry = "https://pypi.org/simple" }
178
+ dependencies = [
179
+ { name = "click" },
180
+ { name = "rich" },
181
+ { name = "shellingham" },
182
+ { name = "typing-extensions" },
183
+ ]
184
+ sdist = { url = "https://files.pythonhosted.org/packages/36/bf/8825b5929afd84d0dabd606c67cd57b8388cb3ec385f7ef19c5cc2202069/typer-0.21.1.tar.gz", hash = "sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d", size = 110371, upload-time = "2026-01-06T11:21:10.989Z" }
185
+ wheels = [
186
+ { url = "https://files.pythonhosted.org/packages/a0/1d/d9257dd49ff2ca23ea5f132edf1281a0c4f9de8a762b9ae399b670a59235/typer-0.21.1-py3-none-any.whl", hash = "sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01", size = 47381, upload-time = "2026-01-06T11:21:09.824Z" },
187
+ ]
188
+
189
+ [[package]]
190
+ name = "typing-extensions"
191
+ version = "4.15.0"
192
+ source = { registry = "https://pypi.org/simple" }
193
+ sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" }
194
+ wheels = [
195
+ { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" },
196
+ ]
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+ # Wrapper script for ms-linear CLI
3
+ # Handles uv/pip installation transparently
4
+
5
+ # Source uv environment if available
6
+ if [ -f "$HOME/.local/bin/env" ]; then
7
+ source "$HOME/.local/bin/env"
8
+ fi
9
+
10
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
+ cd "$SCRIPT_DIR/ms-linear"
12
+
13
+ if command -v uv &> /dev/null; then
14
+ # Prefer uv if available (faster)
15
+ uv sync --quiet 2>/dev/null
16
+ uv run python -m ms_linear "$@"
17
+ else
18
+ # Fall back to pip
19
+ pip install -q -e . 2>/dev/null
20
+ python3 -m ms_linear "$@"
21
+ fi
@@ -1,123 +0,0 @@
1
- ---
2
- name: ms:pause-work
3
- description: Create context handoff when pausing work mid-phase
4
- allowed-tools:
5
- - Read
6
- - Write
7
- - Bash
8
- ---
9
-
10
- <objective>
11
- Create `.continue-here.md` handoff file to preserve complete work state across sessions.
12
-
13
- Enables seamless resumption in fresh session with full context restoration.
14
- </objective>
15
-
16
- <context>
17
- @.planning/STATE.md
18
- </context>
19
-
20
- <process>
21
-
22
- <step name="detect">
23
- Find current phase directory from most recently modified files.
24
- </step>
25
-
26
- <step name="gather">
27
- **Collect complete state for handoff:**
28
-
29
- 1. **Current position**: Which phase, which plan, which task
30
- 2. **Work completed**: What got done this session
31
- 3. **Work remaining**: What's left in current plan/phase
32
- 4. **Decisions made**: Key decisions and rationale
33
- 5. **Blockers/issues**: Anything stuck
34
- 6. **Mental context**: The approach, next steps, "vibe"
35
- 7. **Files modified**: What's changed but not committed
36
-
37
- Ask user for clarifications if needed.
38
- </step>
39
-
40
- <step name="write">
41
- **Write handoff to `.planning/phases/XX-name/.continue-here.md`:**
42
-
43
- ```markdown
44
- ---
45
- phase: XX-name
46
- task: 3
47
- total_tasks: 7
48
- status: in_progress
49
- last_updated: [timestamp]
50
- ---
51
-
52
- <current_state>
53
- [Where exactly are we? Immediate context]
54
- </current_state>
55
-
56
- <completed_work>
57
-
58
- - Task 1: [name] - Done
59
- - Task 2: [name] - Done
60
- - Task 3: [name] - In progress, [what's done]
61
- </completed_work>
62
-
63
- <remaining_work>
64
-
65
- - Task 3: [what's left]
66
- - Task 4: Not started
67
- - Task 5: Not started
68
- </remaining_work>
69
-
70
- <decisions_made>
71
-
72
- - Decided to use [X] because [reason]
73
- - Chose [approach] over [alternative] because [reason]
74
- </decisions_made>
75
-
76
- <blockers>
77
- - [Blocker 1]: [status/workaround]
78
- </blockers>
79
-
80
- <context>
81
- [Mental state, what were you thinking, the plan]
82
- </context>
83
-
84
- <next_action>
85
- Start with: [specific first action when resuming]
86
- </next_action>
87
- ```
88
-
89
- Be specific enough for a fresh Claude to understand immediately.
90
- </step>
91
-
92
- <step name="commit">
93
- ```bash
94
- git add .planning/phases/*/.continue-here.md
95
- git commit -m "wip: [phase-name] paused at task [X]/[Y]"
96
- ```
97
- </step>
98
-
99
- <step name="confirm">
100
- ```
101
- ✓ Handoff created: .planning/phases/[XX-name]/.continue-here.md
102
-
103
- Current state:
104
-
105
- - Phase: [XX-name]
106
- - Task: [X] of [Y]
107
- - Status: [in_progress/blocked]
108
- - Committed as WIP
109
-
110
- To resume: /ms:resume-work
111
-
112
- ```
113
- </step>
114
-
115
- </process>
116
-
117
- <success_criteria>
118
- - [ ] .continue-here.md created in correct phase directory
119
- - [ ] All sections filled with specific content
120
- - [ ] Committed as WIP
121
- - [ ] User knows location and how to resume
122
- </success_criteria>
123
- ```
@@ -1,40 +0,0 @@
1
- ---
2
- name: ms:resume-work
3
- description: Resume work from previous session with full context restoration
4
- allowed-tools:
5
- - Read
6
- - Bash
7
- - Write
8
- - AskUserQuestion
9
- - SlashCommand
10
- ---
11
-
12
- <objective>
13
- Restore complete project context and resume work seamlessly from previous session.
14
-
15
- Routes to the resume-project workflow which handles:
16
-
17
- - STATE.md loading (or reconstruction if missing)
18
- - Checkpoint detection (.continue-here files)
19
- - Incomplete work detection (PLAN without SUMMARY)
20
- - Status presentation
21
- - Context-aware next action routing
22
- </objective>
23
-
24
- <execution_context>
25
- @~/.claude/mindsystem/workflows/resume-project.md
26
- </execution_context>
27
-
28
- <process>
29
- **Follow the resume-project workflow** from `@~/.claude/mindsystem/workflows/resume-project.md`.
30
-
31
- The workflow handles all resumption logic including:
32
-
33
- 1. Project existence verification
34
- 2. STATE.md loading or reconstruction
35
- 3. Checkpoint and incomplete work detection
36
- 4. Visual status presentation
37
- 5. Context-aware option offering (checks CONTEXT.md before suggesting plan vs discuss)
38
- 6. Routing to appropriate next command
39
- 7. Session continuity updates
40
- </process>
@@ -1,78 +0,0 @@
1
- # Continue-Here Template
2
-
3
- Copy and fill this structure for `.planning/phases/XX-name/.continue-here.md`:
4
-
5
- ```yaml
6
- ---
7
- phase: XX-name
8
- task: 3
9
- total_tasks: 7
10
- status: in_progress
11
- last_updated: 2025-01-15T14:30:00Z
12
- ---
13
- ```
14
-
15
- ```markdown
16
- <current_state>
17
- [Where exactly are we? What's the immediate context?]
18
- </current_state>
19
-
20
- <completed_work>
21
- [What got done this session - be specific]
22
-
23
- - Task 1: [name] - Done
24
- - Task 2: [name] - Done
25
- - Task 3: [name] - In progress, [what's done on it]
26
- </completed_work>
27
-
28
- <remaining_work>
29
- [What's left in this phase]
30
-
31
- - Task 3: [name] - [what's left to do]
32
- - Task 4: [name] - Not started
33
- - Task 5: [name] - Not started
34
- </remaining_work>
35
-
36
- <decisions_made>
37
- [Key decisions and why - so next session doesn't re-debate]
38
-
39
- - Decided to use [X] because [reason]
40
- - Chose [approach] over [alternative] because [reason]
41
- </decisions_made>
42
-
43
- <blockers>
44
- [Anything stuck or waiting on external factors]
45
-
46
- - [Blocker 1]: [status/workaround]
47
- </blockers>
48
-
49
- <context>
50
- [Mental state, "vibe", anything that helps resume smoothly]
51
-
52
- [What were you thinking about? What was the plan?
53
- This is the "pick up exactly where you left off" context.]
54
- </context>
55
-
56
- <next_action>
57
- [The very first thing to do when resuming]
58
-
59
- Start with: [specific action]
60
- </next_action>
61
- ```
62
-
63
- <yaml_fields>
64
- Required YAML frontmatter:
65
-
66
- - `phase`: Directory name (e.g., `02-authentication`)
67
- - `task`: Current task number
68
- - `total_tasks`: How many tasks in phase
69
- - `status`: `in_progress`, `blocked`, `almost_done`
70
- - `last_updated`: ISO timestamp
71
- </yaml_fields>
72
-
73
- <guidelines>
74
- - Be specific enough that a fresh Claude instance understands immediately
75
- - Include WHY decisions were made, not just what
76
- - The `<next_action>` should be actionable without reading anything else
77
- - This file gets DELETED after resume - it's not permanent storage
78
- </guidelines>