specpulse 1.0.3__py3-none-any.whl → 1.0.5__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.
Files changed (32) hide show
  1. specpulse/__init__.py +1 -1
  2. specpulse/resources/commands/claude/plan.md +180 -50
  3. specpulse/resources/commands/claude/pulse.md +79 -24
  4. specpulse/resources/commands/claude/spec.md +156 -43
  5. specpulse/resources/commands/claude/task.md +229 -48
  6. specpulse/resources/commands/gemini/plan.toml +59 -48
  7. specpulse/resources/commands/gemini/pulse.toml +21 -39
  8. specpulse/resources/commands/gemini/spec.toml +40 -28
  9. specpulse/resources/commands/gemini/task.toml +69 -51
  10. specpulse/resources/memory/constitution.md +2 -2
  11. specpulse/resources/scripts/pulse-init.ps1 +186 -0
  12. specpulse/resources/scripts/pulse-init.py +171 -0
  13. specpulse/resources/scripts/pulse-init.sh +80 -21
  14. specpulse/resources/scripts/pulse-plan.ps1 +251 -0
  15. specpulse/resources/scripts/pulse-plan.py +191 -0
  16. specpulse/resources/scripts/pulse-plan.sh +113 -12
  17. specpulse/resources/scripts/pulse-spec.ps1 +185 -0
  18. specpulse/resources/scripts/pulse-spec.py +167 -0
  19. specpulse/resources/scripts/pulse-spec.sh +86 -11
  20. specpulse/resources/scripts/pulse-task.ps1 +263 -0
  21. specpulse/resources/scripts/pulse-task.py +237 -0
  22. specpulse/resources/scripts/pulse-task.sh +123 -9
  23. specpulse/resources/templates/plan.md +142 -287
  24. specpulse/resources/templates/spec.md +80 -246
  25. specpulse/resources/templates/task.md +114 -93
  26. {specpulse-1.0.3.dist-info → specpulse-1.0.5.dist-info}/METADATA +67 -34
  27. specpulse-1.0.5.dist-info/RECORD +41 -0
  28. specpulse-1.0.3.dist-info/RECORD +0 -33
  29. {specpulse-1.0.3.dist-info → specpulse-1.0.5.dist-info}/WHEEL +0 -0
  30. {specpulse-1.0.3.dist-info → specpulse-1.0.5.dist-info}/entry_points.txt +0 -0
  31. {specpulse-1.0.3.dist-info → specpulse-1.0.5.dist-info}/licenses/LICENSE +0 -0
  32. {specpulse-1.0.3.dist-info → specpulse-1.0.5.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specpulse
3
- Version: 1.0.3
3
+ Version: 1.0.5
4
4
  Summary: Specification-Driven Development Framework
5
5
  Home-page: https://github.com/specpulse
6
6
  Author: SpecPulse
@@ -66,7 +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.1)**: Fixed command documentation and improved AI integration clarity.
69
+ > **Latest Update (v1.0.5)**:
70
+ > - ✅ **Complete Cross-Platform Support**: Works seamlessly on Windows, Linux, and macOS
71
+ > - ✅ **100% Test Success Rate**: Comprehensive test suite with 37+ tests across all platforms
72
+ > - ✅ **Python & PowerShell Scripts**: Full script compatibility beyond bash
73
+ > - ✅ **Automatic Platform Detection**: AI commands choose the right script automatically
74
+ > - ✅ **Unicode Support**: Full international character support (≤, ≥, →, ←)
70
75
 
71
76
  ### Why SpecPulse?
72
77
 
@@ -87,6 +92,13 @@ pip install specpulse --upgrade
87
92
  - Git (optional, for version control features)
88
93
  - Claude or Gemini CLI (for AI integration)
89
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
+
90
102
  ## 🚀 Quick Start
91
103
 
92
104
  ### Step 1: Initialize Your Project
@@ -114,25 +126,21 @@ specpulse init --ai gemini
114
126
 
115
127
  ```bash
116
128
  # Initialize a new feature
117
- /pulse init user-authentication
118
-
119
- # Create the specification
120
- /spec create "User login with OAuth2 and email/password"
129
+ /pulse user-authentication
130
+ # Creates structure for 001-user-authentication feature
121
131
 
122
- # Validate the specification
123
- /spec validate
132
+ # Create the specification
133
+ /spec create user login with OAuth2 and email/password
134
+ # Or just: /spec (for interactive mode)
124
135
 
125
136
  # Generate implementation plan
126
137
  /plan generate
127
-
128
- # Validate plan against constitution
129
- /plan validate
138
+ # Or: /plan validate (to check existing plan)
130
139
 
131
140
  # Break down into tasks
132
141
  /task breakdown
133
-
134
- # Check task progress
135
- /task status
142
+ # Or: /task update (to update task status)
143
+ # Or: /task status (to see progress)
136
144
  ```
137
145
 
138
146
  ### Step 4: Validate & Ship
@@ -244,28 +252,52 @@ Stop guessing what users want:
244
252
 
245
253
  ### 🤖 Deep AI Integration
246
254
 
247
- **Claude Commands:**
255
+ **How AI Commands Work:**
256
+
257
+ Claude and Gemini use slash commands that accept arguments via `$ARGUMENTS`:
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
+
248
266
  ```bash
249
- # Feature initialization
250
- /pulse init <feature-name> # Initialize new feature with structure
251
-
252
- # Specification management
253
- /spec create <description> # Generate specification from requirements
254
- /spec update # Update existing specification
255
- /spec validate # Check specification completeness
256
-
257
- # Planning commands
258
- /plan generate # Create implementation plan from spec
259
- /plan validate # Validate plan against constitution
260
-
261
- # Task management
262
- /task breakdown # Generate tasks from plan
263
- /task update # Update task status
264
- /task status # Show task progress
267
+ /pulse user-authentication # Start new feature with name
268
+ /spec create OAuth2 login # Create specification with description
269
+ /spec update # Update existing specification
270
+ /spec validate # Validate specification completeness
271
+ /plan generate # Generate plan from specification
272
+ /plan validate # Validate plan against constitution
273
+ /task breakdown # Create task list from plan
274
+ /task update # Update task statuses
275
+ /task status # Show current progress
265
276
  ```
266
277
 
267
- **Gemini Commands:**
268
- Same commands with TOML-based configuration for enhanced parsing.
278
+ **Behind the Scenes:**
279
+ - Commands capture arguments using `$ARGUMENTS` variable
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
285
+ - Results are saved in `specs/`, `plans/`, `tasks/` folders
286
+ - Memory system tracks progress in `memory/` folder
287
+ - **Automatic platform detection** ensures the right script runs on each OS
288
+
289
+ **Claude vs Gemini:**
290
+ - **Claude**: Uses Markdown command files (`.claude/commands/*.md`) with YAML frontmatter
291
+ - Arguments passed via `$ARGUMENTS` variable to shell scripts
292
+ - **Gemini**: Uses TOML command files (`.gemini/commands/*.toml`) with simple format
293
+ - Arguments handled via `{{args}}` placeholder in prompts
294
+ - Both support arguments and work the same way from user perspective
295
+
296
+ **Command Arguments:**
297
+ - Commands can accept arguments: `/command arg1 arg2`
298
+ - Claude: Arguments passed to scripts via `$ARGUMENTS`
299
+ - Gemini: Arguments injected via `{{args}}` placeholder
300
+ - Commands can be used without arguments for interactive mode
269
301
 
270
302
  ## 📊 Real-World Impact
271
303
 
@@ -425,7 +457,8 @@ Built with inspiration from:
425
457
  ## 🚦 Project Status
426
458
 
427
459
  [![Build Status](https://img.shields.io/badge/build-passing-brightgreen)](https://github.com/specpulse/specpulse)
428
- [![Coverage](https://img.shields.io/badge/coverage-94%25-brightgreen)](https://github.com/specpulse/specpulse)
460
+ [![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)](https://github.com/specpulse/specpulse)
461
+ [![Tests](https://img.shields.io/badge/tests-37%2B%20passed-brightgreen)](https://github.com/specpulse/specpulse)
429
462
  [![Maintainability](https://img.shields.io/badge/maintainability-A-brightgreen)](https://github.com/specpulse/specpulse)
430
463
 
431
464
  ---
@@ -0,0 +1,41 @@
1
+ specpulse/__init__.py,sha256=mFqNY7y8V56Bi5jEyLNImuQO17yO4h91E6tE90ZxWN0,270
2
+ specpulse/cli/__init__.py,sha256=DpX6FoRJtSNjudsmZ3mTih_RIaWyiIgxew4-f8mOmFY,70
3
+ specpulse/cli/main.py,sha256=bnf9xka3AIAyhkjCXGKI-T45eTKyzx0bwE68TOkTfU0,24486
4
+ specpulse/core/__init__.py,sha256=VKHGdPDM38QM9yDIq05jxol4q8WFlFAeltOzYLsPuto,132
5
+ specpulse/core/specpulse.py,sha256=YVqZMDO3AIbCsAHY32wIuUV1cH-hIKAcFkqR5WrInVw,29962
6
+ specpulse/core/validator.py,sha256=dnaNUx7tj8V2K1TE6WPwrNWEiCpqC_b_DKryq6-A7Hk,12057
7
+ specpulse/resources/commands/claude/plan.md,sha256=G5V97UcTms6KgU4N2o8Chay64DMGoxUvq4xqhdv7Lfg,5958
8
+ specpulse/resources/commands/claude/pulse.md,sha256=Ki4iz5c4emXPHfIVMaXAuYEynHE8gmvWlnu3RXTvtNw,3116
9
+ specpulse/resources/commands/claude/spec.md,sha256=xGnyT-7xcp2-NvBrbdcNsrbcHGN6--Z6doUMre-9wvE,5365
10
+ specpulse/resources/commands/claude/task.md,sha256=R9gyuiQh4J5SlqWp1RMjEPdKELwXISmC4JZ4flio8oI,7643
11
+ specpulse/resources/commands/gemini/plan.toml,sha256=JdS03OYTxJ2i8CXV5EJ4y-dV1A4ybjykf8ulkd3EbvU,1752
12
+ specpulse/resources/commands/gemini/pulse.toml,sha256=qQVbgg00LYDrtNPMyGNlrgeIeAKHyWCws5AKmT1f4sg,1006
13
+ specpulse/resources/commands/gemini/spec.toml,sha256=x0oPTewcqJWef3VDRmwbNyezGggENGw52-lwcQSQRU8,1790
14
+ specpulse/resources/commands/gemini/task.toml,sha256=omnRxtLlBXNOz7sWmQAactFU_sPxUIYBbKBBlFubfC4,2062
15
+ specpulse/resources/memory/constitution.md,sha256=uPqK-3petpoKXmjoPf3x4L-kRzDO7zXeYYjW6_fFFEI,8286
16
+ specpulse/resources/memory/context.md,sha256=6021CJIJNTMOIB6xTxc3ehEGOUglIfl_IyJQXwzjw3U,562
17
+ specpulse/resources/memory/decisions.md,sha256=ZwzVyOPB2mIzwveWpGmedej7ncI81GALg8WVy6AeZA4,686
18
+ specpulse/resources/scripts/pulse-init.ps1,sha256=3_2Fj-glwgWO8XzdKGC_TklAGtO_20zE5vABofiGmEI,5494
19
+ specpulse/resources/scripts/pulse-init.py,sha256=LL2IJOmADj0x5mXnWCYyfUmdrHkk60UG96hGRl91NeM,6695
20
+ specpulse/resources/scripts/pulse-init.sh,sha256=bxA0HN0D3TXYKQ9qFtzTFuuhhRnQ1sVvaTXTwMbDfxg,3042
21
+ specpulse/resources/scripts/pulse-plan.ps1,sha256=i2CzT6dGY0bVXQG1iscOk6HZBdDf4wikUcVhYDtBPLY,7572
22
+ specpulse/resources/scripts/pulse-plan.py,sha256=8VuBK8eFg-LFu6EseYsTnG8sIynfmonbF2LIPFptiso,7561
23
+ specpulse/resources/scripts/pulse-plan.sh,sha256=YIc-HQgZNY-sngIiNe9_wJh08PHnSQ_KB4UEzaMjUTk,3703
24
+ specpulse/resources/scripts/pulse-spec.ps1,sha256=6C71kPpXCOF_DWH1sbmjiOSG9v-us2r2dppX0Ids2fI,5496
25
+ specpulse/resources/scripts/pulse-spec.py,sha256=rC52OJpcy2ist3mFRK2UFGCtTH6A6VrtDgdbB8hKy3M,6502
26
+ specpulse/resources/scripts/pulse-spec.sh,sha256=W7c9HvgvuK6CW3KkN-LezuQa9nTOmcSM1wVuUFXKsS4,3129
27
+ specpulse/resources/scripts/pulse-task.ps1,sha256=CO7PkHiFHp-WvbkIv-bHRsoQq4JM7THhdBvpBG1wCKs,7841
28
+ specpulse/resources/scripts/pulse-task.py,sha256=JyZVjPpDb9DaZf8Id3du29XLGTRPLdqan0FCSQCdPuc,9381
29
+ specpulse/resources/scripts/pulse-task.sh,sha256=pOGO_TK5V73UuIHTWX_GOt0I1LHYkTQA6_mMPFy-ZT0,4446
30
+ specpulse/resources/templates/plan.md,sha256=nym4lCmf9TzQ2XbIJGdx1H5zUd_2dF85RZoYiekk48g,6465
31
+ specpulse/resources/templates/spec.md,sha256=kAR4OIoBg0127c5nA_wcmVko6pY6SRAx8ZGmk9QZr8M,3612
32
+ specpulse/resources/templates/task.md,sha256=J1k2LksoXVubrYDuar36VXlA_YB_JCFUm-_aG6pzMVo,4595
33
+ specpulse/utils/__init__.py,sha256=VTGRDsVLl2JIXYyHB9Sidxj5acY_W-LJI2MMtY1pwb0,122
34
+ specpulse/utils/console.py,sha256=xn4Koc1_ph61bvBTlvPOwAbqZ5ac7TZ51xTWJbwG0sc,12973
35
+ specpulse/utils/git_utils.py,sha256=RzJBZoyWp5on1_wq2lY1bs__UJsGKSDpAUeDKFdRYlQ,6095
36
+ specpulse-1.0.5.dist-info/licenses/LICENSE,sha256=ImSFezK-Phy0oTBqZipcajsJfPZT8mmg8m3jkgNdNhA,1066
37
+ specpulse-1.0.5.dist-info/METADATA,sha256=UswKYeF4ZBCpQ4ADB5p8JEr49elKb-JhiM_Ryr_tBCM,16768
38
+ specpulse-1.0.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
39
+ specpulse-1.0.5.dist-info/entry_points.txt,sha256=GwMaCKWSCFZlJMrTNavEYrnREynIS6dM3B0ILxnaouA,83
40
+ specpulse-1.0.5.dist-info/top_level.txt,sha256=pEfkFil5xe38J00OHrBrJ07xpbm6bRnGhI8B07O9KeI,10
41
+ specpulse-1.0.5.dist-info/RECORD,,
@@ -1,33 +0,0 @@
1
- specpulse/__init__.py,sha256=jyEZnW74ap-Myn1nXo5LOSr7bZ2uRw-hHKJzQe4vQcY,270
2
- specpulse/cli/__init__.py,sha256=DpX6FoRJtSNjudsmZ3mTih_RIaWyiIgxew4-f8mOmFY,70
3
- specpulse/cli/main.py,sha256=bnf9xka3AIAyhkjCXGKI-T45eTKyzx0bwE68TOkTfU0,24486
4
- specpulse/core/__init__.py,sha256=VKHGdPDM38QM9yDIq05jxol4q8WFlFAeltOzYLsPuto,132
5
- specpulse/core/specpulse.py,sha256=YVqZMDO3AIbCsAHY32wIuUV1cH-hIKAcFkqR5WrInVw,29962
6
- specpulse/core/validator.py,sha256=dnaNUx7tj8V2K1TE6WPwrNWEiCpqC_b_DKryq6-A7Hk,12057
7
- specpulse/resources/commands/claude/plan.md,sha256=X9VZjJn5_BFDdAEsZDajDY3jIka71O-7UzuZrkhDuUM,1097
8
- specpulse/resources/commands/claude/pulse.md,sha256=ZP5ro49q-vTlILhvSs-yVG3KrPDHxnepqM12s5CT-fQ,854
9
- specpulse/resources/commands/claude/spec.md,sha256=CqbsQ0iyOVXPx0Shw7LCwD1U5ArLTuQkLwG_qaXenKI,1095
10
- specpulse/resources/commands/claude/task.md,sha256=fmWx9Un_gN3QpRpcTuN7IBjuCKfN27vX9EeKSgaAtVw,973
11
- specpulse/resources/commands/gemini/plan.toml,sha256=W6BtdGu6as7bBgaRQjvMpehraLnnk9MGw6bE0dzDMgY,1056
12
- specpulse/resources/commands/gemini/pulse.toml,sha256=3lfbWMBC2tVOanGQ1uNaLozUj9rAgcyNIgvAmgWCJVI,1078
13
- specpulse/resources/commands/gemini/spec.toml,sha256=5xL6lWzLncedC6KKAidZ9OBDheKcEWcxCYfOuRcR_Pk,822
14
- specpulse/resources/commands/gemini/task.toml,sha256=HRMB11jTENZ0iWNUDKQfKXThJmU96wCNYGtRW-J-l-c,1048
15
- specpulse/resources/memory/constitution.md,sha256=MUrX9a6inWAa58Oas-Ff_s1sIs04ehr7sSGOYjdAFv4,8286
16
- specpulse/resources/memory/context.md,sha256=6021CJIJNTMOIB6xTxc3ehEGOUglIfl_IyJQXwzjw3U,562
17
- specpulse/resources/memory/decisions.md,sha256=ZwzVyOPB2mIzwveWpGmedej7ncI81GALg8WVy6AeZA4,686
18
- specpulse/resources/scripts/pulse-init.sh,sha256=eImg2T7hpJ_yU761Nq23CpjtGuHKnWWE2Vj0nBRDxM8,1121
19
- specpulse/resources/scripts/pulse-plan.sh,sha256=XqAoQ_41pxGeCpAX0Fz87J2GTEU978sKhd1lMo0Nuhs,607
20
- specpulse/resources/scripts/pulse-spec.sh,sha256=fAHplatF6PghfGlmvjLQViBHIP4c0HbifdPrIv1TnEE,746
21
- specpulse/resources/scripts/pulse-task.sh,sha256=KLKigNYNHhu252r8OyBt8sNgWYKDwOwME8J3_sMR3Bs,533
22
- specpulse/resources/templates/plan.md,sha256=GOwXF2B4F1sssO8JqQxmLGDazTiUIbT39wEmHv-epnA,9707
23
- specpulse/resources/templates/spec.md,sha256=iCtcKUA31p4MHbvnWefkCY_T53EI5HLuU-3YsQ5E4BI,9160
24
- specpulse/resources/templates/task.md,sha256=TBR0BSbQFWKwFZBx1NU6wmzeRVdzrydS4X4I3hFlbCY,3300
25
- specpulse/utils/__init__.py,sha256=VTGRDsVLl2JIXYyHB9Sidxj5acY_W-LJI2MMtY1pwb0,122
26
- specpulse/utils/console.py,sha256=xn4Koc1_ph61bvBTlvPOwAbqZ5ac7TZ51xTWJbwG0sc,12973
27
- specpulse/utils/git_utils.py,sha256=RzJBZoyWp5on1_wq2lY1bs__UJsGKSDpAUeDKFdRYlQ,6095
28
- specpulse-1.0.3.dist-info/licenses/LICENSE,sha256=ImSFezK-Phy0oTBqZipcajsJfPZT8mmg8m3jkgNdNhA,1066
29
- specpulse-1.0.3.dist-info/METADATA,sha256=45aL3igvbm_kSF04qBSu3hhMepngB9B9VOT5mWmkgoI,14325
30
- specpulse-1.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
- specpulse-1.0.3.dist-info/entry_points.txt,sha256=GwMaCKWSCFZlJMrTNavEYrnREynIS6dM3B0ILxnaouA,83
32
- specpulse-1.0.3.dist-info/top_level.txt,sha256=pEfkFil5xe38J00OHrBrJ07xpbm6bRnGhI8B07O9KeI,10
33
- specpulse-1.0.3.dist-info/RECORD,,