airgen-cli 0.1.8 → 0.2.0

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 (2) hide show
  1. package/README.md +261 -0
  2. package/package.json +9 -3
package/README.md ADDED
@@ -0,0 +1,261 @@
1
+ # airgen-cli
2
+
3
+ Requirements engineering from the command line. Manage requirements, architecture diagrams, traceability, baselines, and more — all from your terminal.
4
+
5
+ Pairs with [AIRGen Studio](https://airgen.studio) and the AIRGen MCP server.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install -g airgen-cli
11
+ ```
12
+
13
+ ## Configuration
14
+
15
+ Set credentials via environment variables or `~/.airgenrc`:
16
+
17
+ ```bash
18
+ # Environment variables
19
+ export AIRGEN_API_URL=https://api.airgen.studio/api
20
+ export AIRGEN_EMAIL=you@example.com
21
+ export AIRGEN_PASSWORD=your-password
22
+ ```
23
+
24
+ Or create `~/.airgenrc`:
25
+
26
+ ```json
27
+ {
28
+ "apiUrl": "https://api.airgen.studio/api",
29
+ "email": "you@example.com",
30
+ "password": "your-password"
31
+ }
32
+ ```
33
+
34
+ For semantic linting, also set a UHT token:
35
+
36
+ ```bash
37
+ export UHT_API_KEY=your-token # or UHT_TOKEN
38
+ ```
39
+
40
+ ## Quick start
41
+
42
+ ```bash
43
+ # List your tenants and projects
44
+ airgen tenants list
45
+ airgen projects list my-tenant
46
+
47
+ # List requirements
48
+ airgen reqs list my-tenant my-project
49
+
50
+ # Render a diagram in the terminal
51
+ airgen diag list my-tenant my-project
52
+ airgen diag render my-tenant my-project diagram-123
53
+
54
+ # Run semantic lint
55
+ airgen lint my-tenant my-project
56
+
57
+ # Get a compliance report
58
+ airgen report compliance my-tenant my-project
59
+ ```
60
+
61
+ ## Global options
62
+
63
+ | Flag | Description |
64
+ |---|---|
65
+ | `--json` | Output as JSON (works with any command) |
66
+ | `-V, --version` | Print version |
67
+ | `-h, --help` | Show help |
68
+
69
+ ## Commands
70
+
71
+ ### Tenants & Projects
72
+
73
+ ```bash
74
+ airgen tenants list # List all tenants
75
+ airgen projects list <tenant> # List projects in a tenant
76
+ airgen projects create <tenant> --name "X" # Create a project
77
+ airgen projects delete <tenant> <project> # Delete a project
78
+ ```
79
+
80
+ ### Requirements
81
+
82
+ ```bash
83
+ airgen reqs list <tenant> <project> # List (paginated)
84
+ airgen reqs list <tenant> <project> --page 2 --limit 50
85
+ airgen reqs get <tenant> <project> <ref> # Full detail
86
+ airgen reqs create <tenant> <project> --text "The system shall..."
87
+ airgen reqs update <tenant> <project> <id> --text "..." --tags safety,critical
88
+ airgen reqs delete <tenant> <project> <id> # Soft-delete
89
+ airgen reqs history <tenant> <project> <id> # Version history
90
+ airgen reqs search <tenant> <project> --query "thermal" --mode semantic
91
+ airgen reqs filter <tenant> <project> --pattern functional --tag safety
92
+ ```
93
+
94
+ ### Architecture Diagrams
95
+
96
+ ```bash
97
+ airgen diag list <tenant> <project> # List diagrams
98
+ airgen diag get <tenant> <project> <id> # Blocks + connectors JSON
99
+ airgen diag render <tenant> <project> <id> # Terminal display (default)
100
+ airgen diag render <tenant> <project> <id> --format mermaid # Mermaid syntax
101
+ airgen diag render <tenant> <project> <id> --format mermaid --wrap -o diagram.md
102
+ airgen diag create <tenant> <project> --name "X" --view block
103
+ airgen diag update <tenant> <project> <id> --name "Y"
104
+ airgen diag delete <tenant> <project> <id>
105
+ ```
106
+
107
+ **Blocks:**
108
+
109
+ ```bash
110
+ airgen diag blocks library <tenant> <project>
111
+ airgen diag blocks create <tenant> <project> --diagram <id> --name "X" --kind subsystem
112
+ airgen diag blocks delete <tenant> <project> <block-id>
113
+ ```
114
+
115
+ **Connectors:**
116
+
117
+ ```bash
118
+ airgen diag conn create <tenant> <project> --diagram <id> --source <id> --target <id> --kind flow --label "data"
119
+ airgen diag conn delete <tenant> <project> <conn-id> --diagram <id>
120
+ ```
121
+
122
+ ### Traceability
123
+
124
+ ```bash
125
+ airgen trace list <tenant> <project> # List trace links
126
+ airgen trace create <tenant> <project> --source <id> --target <id> --type derives
127
+ airgen trace delete <tenant> <project> <link-id>
128
+ airgen trace linksets list <tenant> <project> # Document linksets
129
+ ```
130
+
131
+ ### Baselines
132
+
133
+ ```bash
134
+ airgen bl list <tenant> <project>
135
+ airgen bl create <tenant> <project> --name "v1.0"
136
+ airgen bl compare <tenant> <project> --from <id1> --to <id2>
137
+ ```
138
+
139
+ ### Quality & AI
140
+
141
+ ```bash
142
+ airgen qa analyze "The system shall..." # Analyze single requirement
143
+ airgen qa score start <tenant> <project> # Background QA scoring
144
+ airgen qa draft "user needs thermal imaging" # Draft requirements from NL
145
+
146
+ airgen ai generate <tenant> <project> --prompt "..." # Generate candidates
147
+ airgen ai candidates <tenant> <project> # List pending candidates
148
+ airgen ai accept <candidate-id> # Promote to requirement
149
+ airgen ai reject <candidate-id> # Reject candidate
150
+ ```
151
+
152
+ ### Reports
153
+
154
+ ```bash
155
+ airgen report stats <tenant> <project> # Overview statistics
156
+ airgen report quality <tenant> <project> # QA score summary
157
+ airgen report compliance <tenant> <project> # Compliance + impl status
158
+ airgen report orphans <tenant> <project> # Untraced requirements
159
+ ```
160
+
161
+ All report commands auto-paginate through the full requirement set (up to 5000).
162
+
163
+ ### Implementation Tracking
164
+
165
+ ```bash
166
+ airgen impl status <tenant> <project> <req> --status implemented --notes "done in v2"
167
+ airgen impl summary <tenant> <project> # Coverage breakdown
168
+ airgen impl list <tenant> <project> --status blocked # Filter by status
169
+ airgen impl bulk-update <tenant> <project> --file updates.json
170
+
171
+ # Artifact linking
172
+ airgen impl link <tenant> <project> <req> --type file --path src/engine.ts
173
+ airgen impl unlink <tenant> <project> <req> --artifact <id>
174
+ ```
175
+
176
+ **Statuses:** `not_started`, `in_progress`, `implemented`, `verified`, `blocked`
177
+
178
+ **Bulk update file format:**
179
+
180
+ ```json
181
+ [
182
+ { "ref": "REQ-001", "status": "implemented", "notes": "shipped" },
183
+ { "ref": "REQ-002", "status": "in_progress" }
184
+ ]
185
+ ```
186
+
187
+ ### Import / Export
188
+
189
+ ```bash
190
+ airgen import requirements <tenant> <project> --file reqs.csv
191
+ airgen export requirements <tenant> <project> # Markdown
192
+ airgen export requirements <tenant> <project> --json # JSON
193
+ ```
194
+
195
+ ### Activity
196
+
197
+ ```bash
198
+ airgen activity list <tenant> <project> # Recent activity
199
+ airgen activity list <tenant> <project> --limit 50
200
+ ```
201
+
202
+ ### Documents
203
+
204
+ ```bash
205
+ airgen docs list <tenant> <project>
206
+ airgen docs get <tenant> <project> <slug>
207
+ airgen docs create <tenant> <project> --title "X" --kind structured
208
+ airgen docs delete <tenant> <project> <slug>
209
+ airgen docs export <tenant> <project> <slug> # Markdown export
210
+ airgen docs sec list <tenant> <project> <slug> # List sections
211
+ ```
212
+
213
+ ### Semantic Lint
214
+
215
+ Classifies domain concepts from your requirements using the [Universal Hex Taxonomy](https://universalhex.org) and flags ontological issues, structural problems, and coverage gaps.
216
+
217
+ ```bash
218
+ airgen lint <tenant> <project> # Full lint (top 15 concepts)
219
+ airgen lint <tenant> <project> --concepts 20 # Classify more concepts
220
+ airgen lint <tenant> <project> --format markdown -o lint-report.md
221
+ airgen lint <tenant> <project> --format json # Machine-readable
222
+ ```
223
+
224
+ **What it detects:**
225
+
226
+ - Ontological mismatches (e.g., non-physical entity with physical constraints)
227
+ - Abstract metrics missing statistical parameters
228
+ - Verification requirements mixed with functional requirements
229
+ - Degraded modes without performance criteria
230
+ - Ontological ambiguity between similar concepts
231
+ - Requirements lacking "shall" keyword
232
+
233
+ **Requires:** `UHT_TOKEN` or `UHT_API_KEY` environment variable. Get a token at [universalhex.org](https://universalhex.org).
234
+
235
+ ## JSON mode
236
+
237
+ Append `--json` to any command for machine-readable output:
238
+
239
+ ```bash
240
+ airgen reqs list my-tenant my-project --json | jq '.[].ref'
241
+ airgen report compliance my-tenant my-project --json | jq '.summary'
242
+ ```
243
+
244
+ ## Aliases
245
+
246
+ | Full command | Alias |
247
+ |---|---|
248
+ | `requirements` | `reqs` |
249
+ | `diagrams` | `diag` |
250
+ | `documents` | `docs` |
251
+ | `connectors` | `conn` |
252
+ | `baselines` | `bl` |
253
+ | `traces` | `trace` |
254
+ | `quality` | `qa` |
255
+ | `reports` | `report` |
256
+ | `projects` | `proj` |
257
+ | `sections` | `sec` |
258
+
259
+ ## License
260
+
261
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "airgen-cli",
3
- "version": "0.1.8",
3
+ "version": "0.2.0",
4
4
  "description": "AIRGen CLI — requirements engineering from the command line",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -9,7 +9,8 @@
9
9
  },
10
10
  "files": [
11
11
  "dist",
12
- "package.json"
12
+ "package.json",
13
+ "README.md"
13
14
  ],
14
15
  "scripts": {
15
16
  "build": "tsc -p tsconfig.json",
@@ -21,7 +22,12 @@
21
22
  "requirements",
22
23
  "engineering",
23
24
  "cli",
24
- "requirements-management"
25
+ "requirements-management",
26
+ "systems-engineering",
27
+ "traceability",
28
+ "sysml",
29
+ "mbse",
30
+ "uht"
25
31
  ],
26
32
  "license": "MIT",
27
33
  "repository": {