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 +21 -0
- package/README.md +90 -16
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
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
|
|
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
|
|
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
|
-
#
|
|
69
|
-
|
|
73
|
+
# Scores only — minimizes output tokens
|
|
74
|
+
ironprose analyze --file draft.md --output json --score-only
|
|
70
75
|
|
|
71
|
-
#
|
|
72
|
-
ironprose analyze
|
|
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
|
-
#
|
|
75
|
-
ironprose
|
|
76
|
-
|
|
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
|
-
#
|
|
85
|
-
ironprose
|
|
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
|
-
|
|
88
|
-
|
|
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 |
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"hasInstallScript": true,
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"name": "ironprose",
|
|
26
|
-
"version": "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.
|
|
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
|
+
"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.
|
|
115
|
+
"version": "0.4.0",
|
|
116
116
|
"volta": {
|
|
117
117
|
"node": "18.14.1",
|
|
118
118
|
"npm": "9.5.0"
|