ironprose 0.3.0 → 0.4.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # ironprose-cli
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 7377bad: Add --genre and --locale flags to analyze subcommand
8
+ - 9f038b4: feat: add insights subcommand (closes #28)
9
+
10
+ ### Patch Changes
11
+
12
+ - af5822e: Added `insights` and `export` to the CLI's schema mapping so agents can introspect the endpoints.
13
+ - 0d1e061: Deduplicate diagnostics in compare introduced/fixed arrays
14
+ - d12ecf7: Add --output flag to list-rules subcommand
15
+ - ca5abbd: Document --output text stream split and fix 0-indexed line numbers
16
+ - 99fd4c0: Remove non-existent export endpoint from schema error message
17
+
18
+ ## 0.3.1
19
+
20
+ ### Patch Changes
21
+
22
+ - d947aa0: docs: wrap long CLI command examples in README and SKILL.md to prevent horizontal overflow on npmjs.com
23
+
3
24
  ## 0.3.0
4
25
 
5
26
  ### Minor Changes
package/README.md CHANGED
@@ -56,38 +56,112 @@ npx ironprose analyze "The dark night was very dark and she felt scared."
56
56
  npx ironprose --help
57
57
 
58
58
  # macOS/Linux
59
- curl --proto '=https' --tlsv1.2 -LsSf https://github.com/benchcutlogic/ironprose-cli/releases/latest/download/ironprose-cli-installer.sh | sh
59
+ curl --proto '=https' --tlsv1.2 -LsSf \
60
+ https://github.com/benchcutlogic/ironprose-cli/releases/latest/download/ironprose-cli-installer.sh | sh
61
+
62
+ # Agent skills (for AI coding agents)
63
+ npx skills install benchcutlogic/ironprose-cli
60
64
  ```
61
65
 
62
66
  ## Usage
63
67
 
64
68
  ```bash
65
- # Analyze a file
66
- ironprose analyze --file chapter-01.md
69
+ # Analyze text (JSON output — agents should always use this)
70
+ ironprose analyze --file chapter-01.md --output json
71
+ cat draft.md | ironprose analyze --output json
67
72
 
68
- # Pipe from stdin
69
- cat draft.md | ironprose analyze
73
+ # Scores only — minimizes output tokens
74
+ ironprose analyze --file draft.md --output json --score-only
70
75
 
71
- # Human-readable output
72
- ironprose analyze --file draft.md --output text
76
+ # Raw JSON passthrough — zero translation loss
77
+ ironprose analyze \
78
+ --json '{"text":"The dark night was very dark."}' \
79
+ --output json
80
+
81
+ # Schema introspection — discover endpoints at runtime
82
+ ironprose schema analyze
83
+ ironprose schema rate
73
84
 
74
- # Filter by rule or severity
75
- ironprose analyze --file draft.md --rules passive_voice,repetition
76
- ironprose analyze --file draft.md --severity-min warning
85
+ # Rate diagnostics closes the feedback loop
86
+ ironprose rate \
87
+ --json '{"rule":"repetition","rating":"false_positive","diagnostic_id":"d-001"}'
77
88
 
78
89
  # Compare revisions
79
- ironprose compare --original-file v1.md --revised-file v2.md
90
+ ironprose compare --original-file v1.md --revised-file v2.md --output json
80
91
 
81
92
  # List all rules
82
- ironprose list-rules
93
+ ironprose list-rules --output json
83
94
 
84
- # Inspect API schema
85
- ironprose schema analyze
95
+ # Human-readable output
96
+ ironprose analyze --file draft.md --output text
97
+ ironprose rate --rule repetition --rating helpful --diagnostic-id d-001
98
+
99
+ # Aggregate feedback insights (requires API key)
100
+ ironprose insights
101
+ ironprose insights --since 2024-01-01 --until 2024-12-31
102
+ ironprose insights --genre fiction
103
+ ironprose insights --work-id my-novel --since 2024-06-01
104
+ ```
105
+
106
+ ## Insights
107
+
108
+ The `insights` subcommand returns aggregate feedback data per analyzer rule — counts of `helpful`, `not_helpful`, and `false_positive` ratings plus a precision proxy. Requires an API key.
109
+
110
+ ```bash
111
+ # All-time insights
112
+ ironprose insights
113
+
114
+ # Filter by date range
115
+ ironprose insights --since 2024-01-01 --until 2024-12-31
116
+
117
+ # Filter by genre (prefix match)
118
+ ironprose insights --genre fiction
119
+
120
+ # Filter by work identifier
121
+ ironprose insights --work-id my-novel
122
+ ```
123
+
124
+ ```json
125
+ {
126
+ "rules": [
127
+ {
128
+ "rule": "repetition",
129
+ "helpful": 42,
130
+ "not_helpful": 3,
131
+ "false_positive": 1,
132
+ "precision_proxy": 0.91
133
+ }
134
+ ]
135
+ }
136
+ ```
137
+
138
+ ### `--output text` stream split
139
+
140
+ When `--output text` is used, the two output streams are **intentionally separate**:
86
141
 
87
- # Rate a diagnostic (closes the feedback loop)
88
- ironprose rate --rule repetition --rating false_positive --diagnostic-id d-001
142
+ | Stream | Content |
143
+ | -------- | ------------------------------------- |
144
+ | `stderr` | Diagnostics (one per line) |
145
+ | `stdout` | Score JSON |
146
+
147
+ To capture **both** in a single file or variable, merge stderr into stdout:
148
+
149
+ ```bash
150
+ ironprose analyze --file draft.md --output text 2>&1
89
151
  ```
90
152
 
153
+ To capture them separately:
154
+
155
+ ```bash
156
+ ironprose analyze --file draft.md --output text \
157
+ > score.json \
158
+ 2> diagnostics.txt
159
+ ```
160
+
161
+ ### Line numbers
162
+
163
+ Diagnostics include `start_line` / `end_line` fields that come from the API in **0-indexed** form (line 1 of the file = `0`). The `--output text` renderer converts these to **1-indexed** line numbers for human display (`L1`, `L2`, …). Raw `--output json` output preserves the 0-indexed values as returned by the API.
164
+
91
165
  ## Configuration
92
166
 
93
167
  | Variable | Description | Default |
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "MIT",
25
25
  "name": "ironprose",
26
- "version": "0.3.0"
26
+ "version": "0.4.0"
27
27
  },
28
28
  "node_modules/@isaacs/cliui": {
29
29
  "engines": {
@@ -542,5 +542,5 @@
542
542
  }
543
543
  },
544
544
  "requires": true,
545
- "version": "0.3.0"
545
+ "version": "0.4.0"
546
546
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "artifactDownloadUrls": [
3
- "https://github.com/benchcutlogic/ironprose-cli/releases/download/v0.3.0"
3
+ "https://github.com/benchcutlogic/ironprose-cli/releases/download/v0.4.0"
4
4
  ],
5
5
  "bin": {
6
6
  "ironprose": "run-ironprose.js"
@@ -112,7 +112,7 @@
112
112
  "zipExt": ".tar.gz"
113
113
  }
114
114
  },
115
- "version": "0.3.0",
115
+ "version": "0.4.0",
116
116
  "volta": {
117
117
  "node": "18.14.1",
118
118
  "npm": "9.5.0"