scopemate 0.1.0__py3-none-any.whl

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.
@@ -0,0 +1,410 @@
1
+ Metadata-Version: 2.4
2
+ Name: scopemate
3
+ Version: 0.1.0
4
+ Summary: 🪜 A CLI tool for Purpose/Scope/Outcome planning
5
+ Author: Anoop Thomas Mathew
6
+ Author-email: Anoop Thomas Mathew <atmb4u@gmail.com>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/atmb4u/scopemate
9
+ Project-URL: Bug Tracker, https://github.com/atmb4u/scopemate/issues
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Operating System :: Microsoft :: Windows
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Operating System :: MacOS
18
+ Classifier: Intended Audience :: Developers
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: License :: OSI Approved :: MIT License
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Requires-Dist: openai>=1.0.0
25
+ Requires-Dist: pydantic>=2.0.0
26
+ Requires-Dist: twine>=6.1.0
27
+ Dynamic: author
28
+ Dynamic: license-file
29
+ Dynamic: requires-python
30
+
31
+ # 🪜 scopemate
32
+
33
+ A CLI tool for breaking down complex tasks into smaller subtasks with LLM-powered scope estimation and planning.
34
+
35
+ ## Conceptual Framework
36
+
37
+ Scopemate is built around a three-part framework for strategic decision making:
38
+
39
+ ### 🧭 Purpose → Strategic Relevance
40
+
41
+ **"Why does this matter now?"**
42
+
43
+ - Is it aligned with a company priority, customer need, or mission-critical goal?
44
+ - If we didn't do it, would anything break or stall?
45
+ - Does this move us closer to where we want to be?
46
+
47
+ > **✅ If not strategic, it's a distraction.**
48
+
49
+ ### 📦 Scope → Executable Shape
50
+
51
+ **"Can we actually do this — fast and clearly?"**
52
+
53
+ - Is it defined tightly enough to start today or this week?
54
+ - Can one person or squad own it end-to-end?
55
+ - What's the smallest useful version we can ship?
56
+
57
+ > **✅ If it's vague or sprawling, it needs slicing.**
58
+
59
+ ### 🎯 Outcome → Meaningful Result
60
+
61
+ **"What will change once this is done?"**
62
+
63
+ - Will this give us clarity, value, or unlock something else?
64
+ - How will we measure success — learning, delivery, or stability?
65
+ - What does "done" look like in a way others can see?
66
+
67
+ > **✅ If the outcome is fuzzy, stop and clarify.**
68
+
69
+ ## Features
70
+
71
+ - Break down complex tasks into smaller subtasks
72
+ - LLM-driven scope estimation & breakdown
73
+ - Interactive task breakdown with alternative approaches
74
+ - Automatic fixing of inconsistent time estimates
75
+ - Checkpointing (pause & resume)
76
+ - Auto-detect when child tasks take more time than parents
77
+ - Auto-adjust parent scope estimates based on child complexity
78
+ - Pydantic validation
79
+ - Cross-platform support (Windows, macOS, Linux)
80
+ - Works with Python 3.10 and above
81
+
82
+ ## Requirements
83
+
84
+ - Python 3.10 or higher
85
+ - OpenAI API key set as environment variable (`OPENAI_API_KEY`)
86
+
87
+ ## Installation
88
+
89
+ ### From PyPI (Recommended)
90
+
91
+ The easiest way to install scopemate is from PyPI:
92
+
93
+ ```bash
94
+ # Install using pip (any platform)
95
+ pip install scopemate
96
+
97
+ # Or using pip3 on some systems
98
+ pip3 install scopemate
99
+ ```
100
+
101
+ ### Platform-Specific Installation Scripts
102
+
103
+ #### macOS and Linux
104
+
105
+ ```bash
106
+ # Clone the repository
107
+ git clone https://github.com/atmb4u/scopemate.git
108
+ cd scopemate
109
+
110
+ # Install using the script (automatically checks Python version)
111
+ ./install.sh
112
+ ```
113
+
114
+ #### Windows
115
+
116
+ ```powershell
117
+ # Clone the repository
118
+ git clone https://github.com/atmb4u/scopemate.git
119
+ cd scopemate
120
+
121
+ # Install using the script (automatically checks Python version)
122
+ .\install.bat
123
+ ```
124
+
125
+ ### Manual Installation from Source
126
+
127
+ ```bash
128
+ # Clone the repository
129
+ git clone https://github.com/atmb4u/scopemate.git
130
+ cd scopemate
131
+
132
+ # Install in development mode
133
+ pip install -e .
134
+ ```
135
+
136
+ ### Setting up the OpenAI API Key
137
+
138
+ scopemate requires an OpenAI API key to function. Set it as an environment variable:
139
+
140
+ #### macOS/Linux
141
+ ```bash
142
+ export OPENAI_API_KEY=your-api-key-here
143
+ ```
144
+
145
+ #### Windows Command Prompt
146
+ ```cmd
147
+ set OPENAI_API_KEY=your-api-key-here
148
+ ```
149
+
150
+ #### Windows PowerShell
151
+ ```powershell
152
+ $env:OPENAI_API_KEY = "your-api-key-here"
153
+ ```
154
+
155
+ For permanent setup, add this to your shell profile or environment variables.
156
+
157
+ ## Usage
158
+
159
+ ### Quick Start
160
+
161
+ ```bash
162
+ # Run in interactive mode (recommended for first-time users)
163
+ scopemate --interactive
164
+ ```
165
+
166
+ ### Command-line Options
167
+
168
+ ```bash
169
+ # Get help and see all available options
170
+ scopemate --help
171
+
172
+ # Generate a project plan with purpose and outcome
173
+ scopemate --purpose="Build a REST API for user management" --outcome="A documented API with authentication and user CRUD operations" --output="project_plan.json"
174
+
175
+ # Fix inconsistent estimates in an existing plan
176
+ scopemate --fix-estimates --input="project_plan.json" --output="fixed_plan.json"
177
+ ```
178
+
179
+ ### Interactive Mode Workflow
180
+
181
+ The interactive mode (`scopemate --interactive`) will guide you through:
182
+
183
+ 1. **Initial Setup**:
184
+ - Create a new task or load an existing plan
185
+ - Set the main purpose and intended outcome
186
+
187
+ 2. **Task Definition**:
188
+ - Define the scope of work
189
+ - Set dependencies and identify risks
190
+ - Define acceptance criteria
191
+
192
+ 3. **Task Breakdown**:
193
+ - Automatically break down complex tasks into manageable subtasks
194
+ - Review and modify suggested breakdowns
195
+ - Explore alternative approaches to solving the problem
196
+
197
+ 4. **Validation and Refinement**:
198
+ - Automatically detect and fix inconsistent time estimates
199
+ - Check for tasks where children take more time than parents
200
+ - Adjust parent scope estimates based on child complexity
201
+
202
+ 5. **Save and Export**:
203
+ - Save your plan to a JSON file
204
+ - Resume work later using checkpoints
205
+
206
+ ### Output Format
207
+
208
+ scopemate generates a structured JSON output with the following format:
209
+
210
+ ```json
211
+ {
212
+ "tasks": [
213
+ {
214
+ "id": "TASK-abc123",
215
+ "title": "Task title",
216
+ "purpose": {
217
+ "detailed_description": "Why this task matters",
218
+ "alignment": ["Strategic goal 1", "Strategic goal 2"],
219
+ "urgency": "strategic"
220
+ },
221
+ "scope": {
222
+ "size": "complex",
223
+ "time_estimate": "sprint",
224
+ "dependencies": ["Dependency 1"],
225
+ "risks": ["Risk 1", "Risk 2"]
226
+ },
227
+ "outcome": {
228
+ "type": "customer-facing",
229
+ "detailed_outcome_definition": "What will be delivered",
230
+ "acceptance_criteria": ["Criterion 1", "Criterion 2"],
231
+ "metric": "Success measurement",
232
+ "validation_method": "How to validate"
233
+ },
234
+ "meta": {
235
+ "status": "backlog",
236
+ "priority": 1,
237
+ "created": "2023-06-01T12:00:00Z",
238
+ "updated": "2023-06-01T12:00:00Z",
239
+ "due_date": null,
240
+ "confidence": "medium"
241
+ },
242
+ "parent_id": null
243
+ }
244
+ ]
245
+ }
246
+ ```
247
+
248
+ ### Integrating with Other Tools
249
+
250
+ You can use scopemate's JSON output with other project management tools:
251
+
252
+ - Import tasks into JIRA using their API
253
+ - Convert to CSV for import into spreadsheets
254
+ - Integrate with custom project dashboards
255
+
256
+ ## Development
257
+
258
+ ### Setting Up Development Environment
259
+
260
+ #### Prerequisites
261
+
262
+ - Python 3.10 or higher
263
+ - Git
264
+
265
+ #### Using pip
266
+
267
+ ```bash
268
+ # Clone the repository
269
+ git clone https://github.com/atmb4u/scopemate.git
270
+ cd scopemate
271
+
272
+ # Install development dependencies
273
+ pip install -r requirements-dev.txt
274
+
275
+ # Install the package in development mode
276
+ pip install -e .
277
+ ```
278
+
279
+ #### Using uv (Recommended)
280
+
281
+ [uv](https://github.com/astral-sh/uv) is a fast Python package installer and resolver:
282
+
283
+ ```bash
284
+ # Install uv if you don't have it
285
+ pip install uv
286
+
287
+ # Clone the repository
288
+ git clone https://github.com/atmb4u/scopemate.git
289
+ cd scopemate
290
+
291
+ # Install development dependencies with uv
292
+ uv pip install -r requirements-dev.txt
293
+
294
+ # Install the package in development mode
295
+ uv pip install -e .
296
+ ```
297
+
298
+ ### Running Tests
299
+
300
+ ```bash
301
+ # Run all tests
302
+ pytest
303
+
304
+ # Run tests with verbose output
305
+ pytest -v
306
+
307
+ # Run a specific test file
308
+ pytest tests/test_basic.py
309
+
310
+ # Run tests with coverage report
311
+ pytest --cov=scopemate
312
+ ```
313
+
314
+ ### Building Distribution Packages
315
+
316
+ #### macOS and Linux
317
+
318
+ ```bash
319
+ # Build distribution packages
320
+ ./publish.sh
321
+
322
+ # Upload to PyPI (when ready)
323
+ twine upload dist/*
324
+ ```
325
+
326
+ #### Windows
327
+
328
+ ```powershell
329
+ # Build distribution packages
330
+ .\publish.bat
331
+
332
+ # Upload to PyPI (when ready)
333
+ twine upload dist/*
334
+ ```
335
+
336
+ ### Code Style and Linting
337
+
338
+ We use ruff for linting and code formatting:
339
+
340
+ ```bash
341
+ # Run linter
342
+ ruff check src tests
343
+
344
+ # Format code
345
+ ruff format src tests
346
+ ```
347
+
348
+ ### Testing Cross-Platform Compatibility
349
+
350
+ Use tox to test across multiple Python versions:
351
+
352
+ ```bash
353
+ # Install tox
354
+ pip install tox
355
+
356
+ # Run tox
357
+ tox
358
+
359
+ # Run tox for a specific Python version
360
+ tox -e py310
361
+ ```
362
+
363
+ ## Repository Structure
364
+
365
+ ```
366
+ .
367
+ ├── LICENSE # MIT License
368
+ ├── MANIFEST.in # Package manifest
369
+ ├── README.md # Project documentation
370
+ ├── publish.sh # Build and publish script (Unix)
371
+ ├── publish.bat # Build and publish script (Windows)
372
+ ├── install.sh # Installation script (Unix)
373
+ ├── install.bat # Installation script (Windows)
374
+ ├── pyproject.toml # Project configuration
375
+ ├── requirements.txt # Project dependencies
376
+ ├── requirements-dev.txt # Development dependencies
377
+ ├── setup.py # Package setup
378
+ ├── tox.ini # Tox configuration
379
+ ├── tests/ # Test directory
380
+ │ ├── __init__.py # Test package initialization
381
+ │ ├── test_basic.py # Basic tests
382
+ │ └── test_platform.py # Platform compatibility tests
383
+ └── src/ # Source code
384
+ └── scopemate/ # Main package
385
+ ├── __init__.py # Package initialization
386
+ ├── __main__.py # Entry point
387
+ ├── breakdown.py # Task breakdown logic
388
+ ├── cli.py # Command-line interface
389
+ ├── core.py # Core functionality
390
+ ├── engine.py # Main application logic
391
+ ├── interaction.py # User interaction helpers
392
+ ├── llm.py # LLM integration
393
+ ├── models.py # Data models
394
+ ├── storage.py # Task storage
395
+ └── task_analysis.py # Task analysis helpers
396
+ ```
397
+
398
+ ## Contributing
399
+
400
+ Contributions are welcome! Please feel free to submit a Pull Request.
401
+
402
+ 1. Fork the repository
403
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
404
+ 3. Commit your changes (`git commit -m 'Add some amazing feature'`)
405
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
406
+ 5. Open a Pull Request
407
+
408
+ ## License
409
+
410
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
@@ -0,0 +1,17 @@
1
+ scopemate/__init__.py,sha256=3cyRjjI2wC2pG8VeXONVOrow_dJMKUCzre8EtYfrV0s,472
2
+ scopemate/__main__.py,sha256=nPNZe_QEoOHQ_hXf17w72BHz1UFPKuW2g3whTLwuM8E,195
3
+ scopemate/breakdown.py,sha256=lasv2Gt1yziE_GV4DgCBWVg3TIPuggT3Tf77ny5n7Iw,19650
4
+ scopemate/cli.py,sha256=o05Od9NEP76sQRegc3dqs-d-DCpYip2KC1GXjriiCZQ,5059
5
+ scopemate/core.py,sha256=wpXCpb5Kdpqul9edNCx2Da94137XCc1w-3KQc9-Tf3s,700
6
+ scopemate/engine.py,sha256=wlE39lzKoJthi6twestlyEqvEjqNEXQYvNTOfT4aGZw,9521
7
+ scopemate/interaction.py,sha256=qWFU3QM_KPwaGdh4Rw7ewCIeYiT6Wa_H9e6bnmNoJzw,9531
8
+ scopemate/llm.py,sha256=hD37Mk54kchdECKYmCNF3yxg0U-vW-h4y8tpNghlS3Q,14031
9
+ scopemate/models.py,sha256=ZvFn8iegMDgCgoLjvWxj7_C7XLDWrgkF8ySuktfRaqw,4962
10
+ scopemate/storage.py,sha256=lloD_2f2E3q_inHLiL9Kp8F_tyeerG45_rSLKXvGh4Y,3102
11
+ scopemate/task_analysis.py,sha256=I-tH62MfYAwlHbLonjlPKBGa-X_II9QqpWS_OsjLaxU,12644
12
+ scopemate-0.1.0.dist-info/licenses/LICENSE,sha256=4fqQFK5AkkXmg6FBG9Wr06gCR7BMQl02TvsPYt-YL6s,1076
13
+ scopemate-0.1.0.dist-info/METADATA,sha256=Wmb1wOEmCkigLUXIS0d1BujGzV0uTpx9IpNIvyrtIJI,10557
14
+ scopemate-0.1.0.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
15
+ scopemate-0.1.0.dist-info/entry_points.txt,sha256=XXusGEDxI6NlrYmSBcPDtjV3QvsHWVWPSrt4zD4UcLg,49
16
+ scopemate-0.1.0.dist-info/top_level.txt,sha256=riMrI_jMCfZMb7-ecWBwqOBLdUsnPOxSu2Pgvqx7Too,10
17
+ scopemate-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (78.1.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ scopemate = scopemate.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Anoop Thomas Mathew
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ scopemate