specpulse 1.0.4__tar.gz → 1.0.6__tar.gz

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 (81) hide show
  1. {specpulse-1.0.4/specpulse.egg-info → specpulse-1.0.6}/PKG-INFO +29 -19
  2. {specpulse-1.0.4 → specpulse-1.0.6}/README.md +417 -407
  3. {specpulse-1.0.4 → specpulse-1.0.6}/pyproject.toml +3 -1
  4. {specpulse-1.0.4 → specpulse-1.0.6}/setup.py +1 -1
  5. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/__init__.py +1 -1
  6. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/cli/main.py +617 -631
  7. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/core/specpulse.py +8 -2
  8. specpulse-1.0.6/specpulse/resources/commands/claude/plan.md +184 -0
  9. specpulse-1.0.6/specpulse/resources/commands/claude/pulse.md +91 -0
  10. specpulse-1.0.6/specpulse/resources/commands/claude/spec.md +160 -0
  11. specpulse-1.0.6/specpulse/resources/commands/claude/task.md +237 -0
  12. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/resources/commands/gemini/plan.toml +13 -5
  13. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/resources/commands/gemini/pulse.toml +4 -1
  14. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/resources/commands/gemini/spec.toml +12 -4
  15. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/resources/commands/gemini/task.toml +17 -5
  16. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/resources/memory/constitution.md +2 -2
  17. specpulse-1.0.6/specpulse/resources/scripts/pulse-init.ps1 +186 -0
  18. specpulse-1.0.6/specpulse/resources/scripts/pulse-init.py +171 -0
  19. specpulse-1.0.6/specpulse/resources/scripts/pulse-init.sh +96 -0
  20. specpulse-1.0.6/specpulse/resources/scripts/pulse-plan.ps1 +251 -0
  21. specpulse-1.0.6/specpulse/resources/scripts/pulse-plan.py +191 -0
  22. specpulse-1.0.6/specpulse/resources/scripts/pulse-plan.sh +127 -0
  23. specpulse-1.0.6/specpulse/resources/scripts/pulse-spec.ps1 +185 -0
  24. specpulse-1.0.6/specpulse/resources/scripts/pulse-spec.py +167 -0
  25. specpulse-1.0.6/specpulse/resources/scripts/pulse-spec.sh +104 -0
  26. specpulse-1.0.6/specpulse/resources/scripts/pulse-task.ps1 +263 -0
  27. specpulse-1.0.6/specpulse/resources/scripts/pulse-task.py +237 -0
  28. specpulse-1.0.6/specpulse/resources/scripts/pulse-task.sh +137 -0
  29. specpulse-1.0.6/specpulse/resources/templates/plan.md +206 -0
  30. specpulse-1.0.6/specpulse/resources/templates/spec.md +125 -0
  31. specpulse-1.0.6/specpulse/resources/templates/task.md +164 -0
  32. {specpulse-1.0.4 → specpulse-1.0.6/specpulse.egg-info}/PKG-INFO +29 -19
  33. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse.egg-info/SOURCES.txt +11 -0
  34. specpulse-1.0.6/tests/test_cross_platform_scripts.py +317 -0
  35. specpulse-1.0.6/tests/test_powershell_scripts.py +464 -0
  36. specpulse-1.0.6/tests/test_python_scripts.py +470 -0
  37. specpulse-1.0.4/specpulse/resources/commands/claude/plan.md +0 -73
  38. specpulse-1.0.4/specpulse/resources/commands/claude/pulse.md +0 -52
  39. specpulse-1.0.4/specpulse/resources/commands/claude/spec.md +0 -81
  40. specpulse-1.0.4/specpulse/resources/commands/claude/task.md +0 -78
  41. specpulse-1.0.4/specpulse/resources/scripts/pulse-init.sh +0 -37
  42. specpulse-1.0.4/specpulse/resources/scripts/pulse-plan.sh +0 -26
  43. specpulse-1.0.4/specpulse/resources/scripts/pulse-spec.sh +0 -29
  44. specpulse-1.0.4/specpulse/resources/scripts/pulse-task.sh +0 -23
  45. specpulse-1.0.4/specpulse/resources/templates/plan.md +0 -351
  46. specpulse-1.0.4/specpulse/resources/templates/spec.md +0 -291
  47. specpulse-1.0.4/specpulse/resources/templates/task.md +0 -143
  48. {specpulse-1.0.4 → specpulse-1.0.6}/LICENSE +0 -0
  49. {specpulse-1.0.4 → specpulse-1.0.6}/MANIFEST.in +0 -0
  50. {specpulse-1.0.4 → specpulse-1.0.6}/requirements.txt +0 -0
  51. {specpulse-1.0.4 → specpulse-1.0.6}/setup.cfg +0 -0
  52. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/cli/__init__.py +0 -0
  53. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/core/__init__.py +0 -0
  54. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/core/validator.py +0 -0
  55. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/resources/memory/context.md +0 -0
  56. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/resources/memory/decisions.md +0 -0
  57. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/utils/__init__.py +0 -0
  58. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/utils/console.py +0 -0
  59. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse/utils/git_utils.py +0 -0
  60. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse.egg-info/dependency_links.txt +0 -0
  61. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse.egg-info/entry_points.txt +0 -0
  62. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse.egg-info/not-zip-safe +0 -0
  63. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse.egg-info/requires.txt +0 -0
  64. {specpulse-1.0.4 → specpulse-1.0.6}/specpulse.egg-info/top_level.txt +0 -0
  65. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_100_coverage.py +0 -0
  66. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_100_percent_coverage.py +0 -0
  67. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_ai_commands.py +0 -0
  68. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_cli.py +0 -0
  69. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_cli_advanced.py +0 -0
  70. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_cli_comprehensive.py +0 -0
  71. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_command_integration.py +0 -0
  72. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_complete_coverage.py +0 -0
  73. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_console_advanced.py +0 -0
  74. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_console_comprehensive.py +0 -0
  75. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_core.py +0 -0
  76. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_core_comprehensive.py +0 -0
  77. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_full_coverage.py +0 -0
  78. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_gemini_commands.py +0 -0
  79. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_git_utils.py +0 -0
  80. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_git_utils_comprehensive.py +0 -0
  81. {specpulse-1.0.4 → specpulse-1.0.6}/tests/test_validator_comprehensive.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specpulse
3
- Version: 1.0.4
3
+ Version: 1.0.6
4
4
  Summary: Specification-Driven Development Framework
5
5
  Home-page: https://github.com/specpulse
6
6
  Author: SpecPulse
@@ -66,11 +66,12 @@ Dynamic: requires-python
66
66
 
67
67
  SpecPulse revolutionizes AI-assisted development by enforcing a **specification-first approach**. Instead of jumping straight into code, SpecPulse ensures every feature starts with clear specifications, validated plans, and tracked tasks - guaranteeing quality from day one.
68
68
 
69
- > **Latest Update (v1.0.4)**:
70
- > - **100% Working AI Commands**: Both Claude and Gemini commands now properly support arguments
71
- > - ✅ **95% Test Coverage**: Comprehensive test suite with 193+ tests
72
- > - ✅ **Fixed Command Formats**: Claude uses `$ARGUMENTS`, Gemini uses `{{args}}`
73
- > - ✅ **Enhanced Documentation**: Clearer examples and usage instructions
69
+ > **Latest Update (v1.0.6)**:
70
+ > - 🐛 **Critical Bug Fix**: Fixed cross-platform template initialization bug
71
+ > - ✅ **Proper Resource Management**: All cross-platform scripts now correctly copied from @specpulse/resources
72
+ > - ✅ **Complete Script Availability**: All 12 scripts (4 types × 3 platforms) properly installed
73
+ > - ✅ **Enhanced Package Configuration**: Fixed package data inclusion for Python and PowerShell scripts
74
+ > - ✅ **Improved Error Handling**: Better resource path resolution and script copying operations
74
75
 
75
76
  ### Why SpecPulse?
76
77
 
@@ -91,6 +92,13 @@ pip install specpulse --upgrade
91
92
  - Git (optional, for version control features)
92
93
  - Claude or Gemini CLI (for AI integration)
93
94
 
95
+ **Cross-Platform Support:**
96
+ - **Windows**: Python scripts + PowerShell fallback + Bash compatibility
97
+ - **Linux**: Python scripts + Bash fallback
98
+ - **macOS**: Python scripts + Bash fallback
99
+ - **Source Installation**: Works perfectly from source code (not just PyPI)
100
+ - **Automatic Detection**: AI commands automatically detect OS and choose appropriate script
101
+
94
102
  ## 🚀 Quick Start
95
103
 
96
104
  ### Step 1: Initialize Your Project
@@ -248,6 +256,13 @@ Stop guessing what users want:
248
256
 
249
257
  Claude and Gemini use slash commands that accept arguments via `$ARGUMENTS`:
250
258
 
259
+ **Cross-Platform Script Execution:**
260
+ - **Windows**: PowerShell (.ps1) → Python (.py) → Bash (.sh) fallback
261
+ - **Linux/macOS**: Python (.py) → Bash (.sh) fallback
262
+ - **Automatic Detection**: AI commands detect OS and choose appropriate script
263
+ - **Universal Compatibility**: Works whether installed via PyPI or source code
264
+ - **Unicode Support**: Full international character support (≤, ≥, →, ←)
265
+
251
266
  ```bash
252
267
  /pulse user-authentication # Start new feature with name
253
268
  /spec create OAuth2 login # Create specification with description
@@ -262,10 +277,14 @@ Claude and Gemini use slash commands that accept arguments via `$ARGUMENTS`:
262
277
 
263
278
  **Behind the Scenes:**
264
279
  - Commands capture arguments using `$ARGUMENTS` variable
265
- - Shell scripts in `scripts/` folder process the arguments
266
- - AI reads templates from `templates/` folder
280
+ - **Multi-platform scripts** in `resources/scripts/` folder process the arguments:
281
+ - `pulse-*.py` - Python scripts (universal)
282
+ - `pulse-*.ps1` - PowerShell scripts (Windows)
283
+ - `pulse-*.sh` - Bash scripts (Linux/macOS)
284
+ - AI reads templates from `resources/templates/` folder
267
285
  - Results are saved in `specs/`, `plans/`, `tasks/` folders
268
286
  - Memory system tracks progress in `memory/` folder
287
+ - **Automatic platform detection** ensures the right script runs on each OS
269
288
 
270
289
  **Claude vs Gemini:**
271
290
  - **Claude**: Uses Markdown command files (`.claude/commands/*.md`) with YAML frontmatter
@@ -420,26 +439,17 @@ pytest tests/
420
439
 
421
440
  - **[PyPI Package](https://pypi.org/project/specpulse/)** - Official package page
422
441
  - **[GitHub Repository](https://github.com/specpulse/specpulse)** - Source code and issues
423
- - **[Examples](https://github.com/specpulse/specpulse/tree/main/examples)** - Real-world usage
424
442
  - **Command Reference** - See AI Integration section above for full command list
425
443
 
426
444
  ## 📄 License
427
445
 
428
446
  MIT License - see [LICENSE](LICENSE) file for details.
429
447
 
430
- ## 🙏 Acknowledgments
431
-
432
- Built with inspiration from:
433
- - Test-Driven Development principles
434
- - Domain-Driven Design
435
- - Clean Architecture
436
- - Specification by Example
437
-
438
448
  ## 🚦 Project Status
439
449
 
440
450
  [![Build Status](https://img.shields.io/badge/build-passing-brightgreen)](https://github.com/specpulse/specpulse)
441
- [![Coverage](https://img.shields.io/badge/coverage-95%25-brightgreen)](https://github.com/specpulse/specpulse)
442
- [![Tests](https://img.shields.io/badge/tests-193%20passed-brightgreen)](https://github.com/specpulse/specpulse)
451
+ [![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)](https://github.com/specpulse/specpulse)
452
+ [![Tests](https://img.shields.io/badge/tests-37%2B%20passed-brightgreen)](https://github.com/specpulse/specpulse)
443
453
  [![Maintainability](https://img.shields.io/badge/maintainability-A-brightgreen)](https://github.com/specpulse/specpulse)
444
454
 
445
455
  ---