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 +46 -13
- {elspais-0.11.0.dist-info → elspais-0.11.1.dist-info}/METADATA +12 -9
- {elspais-0.11.0.dist-info → elspais-0.11.1.dist-info}/RECORD +6 -6
- {elspais-0.11.0.dist-info → elspais-0.11.1.dist-info}/WHEEL +0 -0
- {elspais-0.11.0.dist-info → elspais-0.11.1.dist-info}/entry_points.txt +0 -0
- {elspais-0.11.0.dist-info → elspais-0.11.1.dist-info}/licenses/LICENSE +0 -0
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
|
|
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="
|
|
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 (
|
|
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
|
|
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="
|
|
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="
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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=
|
|
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.
|
|
98
|
-
elspais-0.11.
|
|
99
|
-
elspais-0.11.
|
|
100
|
-
elspais-0.11.
|
|
101
|
-
elspais-0.11.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|