elspais 0.11.0__py3-none-any.whl → 0.11.1__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.
elspais/cli.py CHANGED
@@ -22,9 +22,16 @@ def create_parser() -> argparse.ArgumentParser:
22
22
  epilog="""
23
23
  Examples:
24
24
  elspais validate # Validate all requirements
25
+ elspais validate --fix # Auto-fix fixable issues
25
26
  elspais trace --format html # Generate HTML traceability matrix
27
+ elspais trace --view # Interactive HTML view
26
28
  elspais hash update # Update all requirement hashes
29
+ elspais changed # Show uncommitted spec changes
30
+ elspais analyze hierarchy # Show requirement hierarchy tree
31
+ elspais config show # View current configuration
27
32
  elspais init # Create .elspais.toml configuration
33
+
34
+ For detailed command help: elspais <command> --help
28
35
  """,
29
36
  )
30
37
 
@@ -64,6 +71,21 @@ Examples:
64
71
  validate_parser = subparsers.add_parser(
65
72
  "validate",
66
73
  help="Validate requirements format, links, and hashes",
74
+ formatter_class=argparse.RawDescriptionHelpFormatter,
75
+ epilog="""
76
+ Examples:
77
+ elspais validate # Validate all requirements
78
+ elspais validate --fix # Auto-fix hashes and formatting
79
+ elspais validate --skip-rule hash.* # Skip all hash rules
80
+ elspais validate -j # Output JSON for tooling
81
+ elspais validate --mode core # Exclude associated repo specs
82
+
83
+ Common rules to skip:
84
+ hash.missing Hash footer is missing
85
+ hash.mismatch Hash doesn't match content
86
+ hierarchy.* All hierarchy rules
87
+ format.* All format rules
88
+ """,
67
89
  )
68
90
  validate_parser.add_argument(
69
91
  "--fix",
@@ -79,7 +101,7 @@ Examples:
79
101
  validate_parser.add_argument(
80
102
  "--skip-rule",
81
103
  action="append",
82
- help="Skip specific validation rules",
104
+ help="Skip validation rules (can be repeated, e.g., hash.*, format.*)",
83
105
  metavar="RULE",
84
106
  )
85
107
  validate_parser.add_argument(
@@ -101,7 +123,7 @@ Examples:
101
123
  "--mode",
102
124
  choices=["core", "combined"],
103
125
  default="combined",
104
- help="core: skip sponsor repos, combined: include all (default: combined)",
126
+ help="Scope: core (this repo only), combined (include sponsor repos)",
105
127
  )
106
128
 
107
129
  # trace command
@@ -113,7 +135,7 @@ Examples:
113
135
  "--format",
114
136
  choices=["markdown", "html", "csv", "both"],
115
137
  default="both",
116
- help="Output format (default: both)",
138
+ help="Output format: markdown, html, csv, or both (markdown + csv)",
117
139
  )
118
140
  trace_parser.add_argument(
119
141
  "--output",
@@ -130,17 +152,17 @@ Examples:
130
152
  trace_parser.add_argument(
131
153
  "--embed-content",
132
154
  action="store_true",
133
- help="Embed full requirement content in HTML output",
155
+ help="Embed full requirement markdown in HTML for offline viewing",
134
156
  )
135
157
  trace_parser.add_argument(
136
158
  "--edit-mode",
137
159
  action="store_true",
138
- help="Include edit mode UI in HTML output",
160
+ help="Enable in-browser editing of implements and status fields",
139
161
  )
140
162
  trace_parser.add_argument(
141
163
  "--review-mode",
142
164
  action="store_true",
143
- help="Include review mode UI in HTML output",
165
+ help="Enable collaborative review with comments and flags",
144
166
  )
145
167
  trace_parser.add_argument(
146
168
  "--server",
@@ -168,7 +190,7 @@ Examples:
168
190
  # hash command
169
191
  hash_parser = subparsers.add_parser(
170
192
  "hash",
171
- help="Manage requirement hashes",
193
+ help="Manage requirement hashes (verify, update)",
172
194
  )
173
195
  hash_subparsers = hash_parser.add_subparsers(dest="hash_action")
174
196
 
@@ -195,7 +217,7 @@ Examples:
195
217
  # index command
196
218
  index_parser = subparsers.add_parser(
197
219
  "index",
198
- help="Manage INDEX.md file",
220
+ help="Manage INDEX.md file (validate, regenerate)",
199
221
  )
200
222
  index_subparsers = index_parser.add_subparsers(dest="index_action")
201
223
 
@@ -211,7 +233,7 @@ Examples:
211
233
  # analyze command
212
234
  analyze_parser = subparsers.add_parser(
213
235
  "analyze",
214
- help="Analyze requirement hierarchy",
236
+ help="Analyze requirement hierarchy (hierarchy, orphans, coverage)",
215
237
  )
216
238
  analyze_subparsers = analyze_parser.add_subparsers(dest="analyze_action")
217
239
 
@@ -221,7 +243,7 @@ Examples:
221
243
  )
222
244
  analyze_subparsers.add_parser(
223
245
  "orphans",
224
- help="Find orphaned requirements",
246
+ help="Find requirements with no parent (missing or invalid Implements)",
225
247
  )
226
248
  analyze_subparsers.add_parser(
227
249
  "coverage",
@@ -258,7 +280,7 @@ Examples:
258
280
  version_parser.add_argument(
259
281
  "check",
260
282
  nargs="?",
261
- help="Check for updates",
283
+ help="Check for updates (not yet implemented)",
262
284
  )
263
285
 
264
286
  # init command
@@ -286,6 +308,17 @@ Examples:
286
308
  edit_parser = subparsers.add_parser(
287
309
  "edit",
288
310
  help="Edit requirements in-place (implements, status, move)",
311
+ formatter_class=argparse.RawDescriptionHelpFormatter,
312
+ epilog="""
313
+ Examples:
314
+ elspais edit --req-id REQ-d00001 --status Draft
315
+ elspais edit --req-id REQ-d00001 --implements REQ-p00001,REQ-p00002
316
+ elspais edit --req-id REQ-d00001 --move-to roadmap/future.md
317
+ elspais edit --from-json edits.json
318
+
319
+ JSON batch format:
320
+ {"edits": [{"req_id": "...", "status": "...", "implements": [...]}]}
321
+ """,
289
322
  )
290
323
  edit_parser.add_argument(
291
324
  "--req-id",
@@ -326,7 +359,7 @@ Examples:
326
359
  # config command
327
360
  config_parser = subparsers.add_parser(
328
361
  "config",
329
- help="View and modify configuration",
362
+ help="View and modify configuration (show, get, set, ...)",
330
363
  )
331
364
  config_subparsers = config_parser.add_subparsers(dest="config_action")
332
365
 
@@ -422,7 +455,7 @@ Examples:
422
455
  # rules command
423
456
  rules_parser = subparsers.add_parser(
424
457
  "rules",
425
- help="View and manage content rules",
458
+ help="View and manage content rules (list, show)",
426
459
  )
427
460
  rules_subparsers = rules_parser.add_subparsers(dest="rules_action")
428
461
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: elspais
3
- Version: 0.11.0
3
+ Version: 0.11.1
4
4
  Summary: Requirements validation and traceability tools - L-Space connects all libraries
5
5
  Project-URL: Homepage, https://github.com/anspar/elspais
6
6
  Project-URL: Documentation, https://github.com/anspar/elspais#readme
@@ -376,19 +376,19 @@ Options:
376
376
  --help Show help
377
377
 
378
378
  Commands:
379
- validate Validate requirements format, links, hashes
379
+ validate Validate requirements format, links, and hashes
380
380
  trace Generate traceability matrix
381
381
  hash Manage requirement hashes (verify, update)
382
- reformat-with-claude Transform requirements using AI (Acceptance Criteria → Assertions)
382
+ index Manage INDEX.md file (validate, regenerate)
383
+ analyze Analyze requirement hierarchy (hierarchy, orphans, coverage)
383
384
  changed Detect git changes to spec files
384
- analyze Analyze requirement hierarchy
385
- edit Edit requirements in-place (status, implements, move)
386
- config View and modify configuration
387
- rules View and manage content rules
388
- index Validate or regenerate INDEX.md
385
+ version Show version and check for updates
389
386
  init Create .elspais.toml configuration
387
+ edit Edit requirements in-place (implements, status, move)
388
+ config View and modify configuration (show, get, set, ...)
389
+ rules View and manage content rules (list, show)
390
+ reformat-with-claude Reformat requirements using AI (Acceptance Criteria -> Assertions)
390
391
  mcp MCP server commands (requires elspais[mcp])
391
- version Show version and check for updates
392
392
  ```
393
393
 
394
394
  See [docs/commands.md](docs/commands.md) for comprehensive command documentation.
@@ -401,6 +401,9 @@ git clone https://github.com/anspar/elspais.git
401
401
  cd elspais
402
402
  pip install -e ".[dev]"
403
403
 
404
+ # Enable git hooks (verifies docs stay in sync before push)
405
+ git config core.hooksPath .githooks
406
+
404
407
  # Run tests
405
408
  pytest
406
409
 
@@ -1,6 +1,6 @@
1
1
  elspais/__init__.py,sha256=grQHU0RmRQChHUEb_cH_OuGmxADj5fDSNNayhXEQco4,1014
2
2
  elspais/__main__.py,sha256=rCMaObqJeT_6dhyfND7S4dh_lv30j7Ww3Z7992YYwaE,130
3
- elspais/cli.py,sha256=ZPhYfPednJsLLqIkJOenJ58lEodlsfLVsbmbTz2xdnE,17866
3
+ elspais/cli.py,sha256=v6iFpfLe3_E5m74Hhyudq_qphp6TPSmIEvTI3z5JdmM,19530
4
4
  elspais/commands/__init__.py,sha256=jS7ry2ez7xri-fUlYUw9fGKJi5yTHtVN4PU8voHjgLI,155
5
5
  elspais/commands/analyze.py,sha256=5hE6YRL8AoAz2ukkR1rj6aiD2TNJi63UHYVJXmKoOUs,7135
6
6
  elspais/commands/changed.py,sha256=H0v95I6eXqcYXfqIUHKb3rP_2jMiH52bkXMe0TXM6y8,4872
@@ -94,8 +94,8 @@ elspais/trace_view/specs/tv-d00015-status-modifier.md,sha256=MK7YwLWr0KFZXImJefF
94
94
  elspais/trace_view/specs/tv-d00016-js-integration.md,sha256=wofQ4qkCCILpjzFTtAKIwL7FB47KGoPpW9ox2k-BQ7c,1658
95
95
  elspais/trace_view/specs/tv-p00001-html-generator.md,sha256=tv4cP0CynaRPxHKTzGN3r9CXqQBbioVX2ESOcOBKnUI,1792
96
96
  elspais/trace_view/specs/tv-p00002-review-system.md,sha256=JQJSwNbZ_Hkqk43QQ9JKKhTBsfI0rF1Hp_3RIR6hS-4,1609
97
- elspais-0.11.0.dist-info/METADATA,sha256=G0pBJOA3mjBhwFEHLxj3kQjpr-Kwgrs7Db_-VkrVrT0,11457
98
- elspais-0.11.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
99
- elspais-0.11.0.dist-info/entry_points.txt,sha256=yWZZEfn2fBSKSzGoS-fMQ9YoTkyeu6-i7Oht6NsdKpk,45
100
- elspais-0.11.0.dist-info/licenses/LICENSE,sha256=x_dNMsy_askp2MmKXZFL2bKW_tDiJHcRTyAg0TY1RMI,1063
101
- elspais-0.11.0.dist-info/RECORD,,
97
+ elspais-0.11.1.dist-info/METADATA,sha256=ysGy8f5kiNLFOeqFbL5EM9Z73OO3-scXK9OqlAQhvoE,11634
98
+ elspais-0.11.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
99
+ elspais-0.11.1.dist-info/entry_points.txt,sha256=yWZZEfn2fBSKSzGoS-fMQ9YoTkyeu6-i7Oht6NsdKpk,45
100
+ elspais-0.11.1.dist-info/licenses/LICENSE,sha256=x_dNMsy_askp2MmKXZFL2bKW_tDiJHcRTyAg0TY1RMI,1063
101
+ elspais-0.11.1.dist-info/RECORD,,