content-grade 1.0.36 → 1.0.37
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/README.md +6 -6
- package/bin/content-grade.js +22 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ npx content-grade headline "Why Most Startups Fail at Month 18"
|
|
|
30
30
|
|
|
31
31
|
**One requirement:** [Claude CLI](https://claude.ai/code) must be installed and logged in (`claude login`). No API keys, no accounts, your content never leaves your machine.
|
|
32
32
|
|
|
33
|
-
**Free tier:**
|
|
33
|
+
**Free tier:** 5 analyses/day. No signup. `npx content-grade grade README.md` works immediately.
|
|
34
34
|
|
|
35
35
|
**Install globally** (recommended — skips the `npx` download on every run):
|
|
36
36
|
|
|
@@ -51,13 +51,13 @@ content-grade activate # unlock Pro: batch mode, 100/day
|
|
|
51
51
|
|
|
52
52
|
## Upgrade to Pro
|
|
53
53
|
|
|
54
|
-
**The free tier is real.**
|
|
54
|
+
**The free tier is real.** 5 analyses/day lets you evaluate ContentGrade properly.
|
|
55
55
|
|
|
56
56
|
Most developers hit the limit when they start trusting it enough to use it on every file — before publishing a post, on every PR, iterating until the score crosses 70. That's when Pro pays for itself.
|
|
57
57
|
|
|
58
58
|
| | Free | Pro |
|
|
59
59
|
|---|---|---|
|
|
60
|
-
| Analyses/day |
|
|
60
|
+
| Analyses/day | 5 | Unlimited |
|
|
61
61
|
| All 6 CLI commands | ✓ | ✓ |
|
|
62
62
|
| Web dashboard (6 tools) | ✓ | ✓ |
|
|
63
63
|
| Batch mode (`batch <dir>`) | — | ✓ |
|
|
@@ -215,7 +215,7 @@ Launch with `content-grade start` — opens at [http://localhost:4000](http://lo
|
|
|
215
215
|
| **EmailForge** | `/email-forge` | Subject line + body copy for click-through optimization |
|
|
216
216
|
| **AudienceDecoder** | `/audience` | Twitter handle → audience archetypes and content patterns |
|
|
217
217
|
|
|
218
|
-
Free tier: **
|
|
218
|
+
Free tier: **5 analyses/day**. [Pro ($9/mo)](https://buy.stripe.com/4gM14p87GeCh9vn9ks8k80a): **unlimited analyses** + batch mode.
|
|
219
219
|
|
|
220
220
|
---
|
|
221
221
|
|
|
@@ -312,10 +312,10 @@ content-grade analyze ./post.md --verbose
|
|
|
312
312
|
|
|
313
313
|
### Daily limit reached
|
|
314
314
|
|
|
315
|
-
Free tier:
|
|
315
|
+
Free tier: 5 analyses/day, resets at midnight UTC.
|
|
316
316
|
|
|
317
317
|
```
|
|
318
|
-
✗ Daily limit reached (
|
|
318
|
+
✗ Daily limit reached (5/5 free checks used today).
|
|
319
319
|
Upgrade to Pro for unlimited analyses: https://buy.stripe.com/4gM14p87GeCh9vn9ks8k80a
|
|
320
320
|
```
|
|
321
321
|
|
package/bin/content-grade.js
CHANGED
|
@@ -165,7 +165,6 @@ function showFreeTierCTA(count) {
|
|
|
165
165
|
console.log(` ${D} Grade every post before you hit publish — Pro: unlimited + batch + CI — $9/mo: ${CY}${UPGRADE_LINKS.free}${R}`);
|
|
166
166
|
}
|
|
167
167
|
hr();
|
|
168
|
-
console.log(` ${D}⭐ Like ContentGrade? Star us: https://github.com/StanislavBG/Content-Grade${R}`);
|
|
169
168
|
maybeShowFeedbackCTA(count);
|
|
170
169
|
}
|
|
171
170
|
|
|
@@ -222,6 +221,17 @@ function maybeShowFeedbackCTA(count) {
|
|
|
222
221
|
console.log(` ${D}Found a bug or have a suggestion? Open an issue: ${CY}https://github.com/StanislavBG/Content-Grade/issues/new${R}`);
|
|
223
222
|
}
|
|
224
223
|
|
|
224
|
+
// Community nudge — shown after every run, ungated (free AND Pro).
|
|
225
|
+
// One line, low noise. Converts CLI runs into visible community members.
|
|
226
|
+
const GITHUB_URL = 'https://github.com/StanislavBG/Content-Grade';
|
|
227
|
+
const DISCUSSIONS_URL = 'https://github.com/StanislavBG/Content-Grade/discussions';
|
|
228
|
+
|
|
229
|
+
function showCommunityNudge() {
|
|
230
|
+
blank();
|
|
231
|
+
console.log(` ${D}⭐ Found this useful? Star us on GitHub: ${CY}${GITHUB_URL}${R}`);
|
|
232
|
+
console.log(` ${D}💬 Questions or feedback? Discussions: ${CY}${DISCUSSIONS_URL}${R}`);
|
|
233
|
+
}
|
|
234
|
+
|
|
225
235
|
// Single-line usage counter appended after every command run.
|
|
226
236
|
// count = total runs used today (after this run).
|
|
227
237
|
function showUsageFooter(count) {
|
|
@@ -238,7 +248,6 @@ function showUsageFooter(count) {
|
|
|
238
248
|
}
|
|
239
249
|
maybeShowEarlyAdopterCTA(count);
|
|
240
250
|
maybeShowFeedbackCTA(count);
|
|
241
|
-
console.log(` ${D}⭐ Like ContentGrade? Star us: https://github.com/StanislavBG/Content-Grade${R}`);
|
|
242
251
|
}
|
|
243
252
|
|
|
244
253
|
// Returns { ok: boolean, count: number, limit: number } for tier-aware daily limit checks.
|
|
@@ -718,6 +727,7 @@ async function cmdAnalyze(filePath) {
|
|
|
718
727
|
} else {
|
|
719
728
|
showFreeTierCTA(usageCount);
|
|
720
729
|
}
|
|
730
|
+
if (!_ciMode) showCommunityNudge();
|
|
721
731
|
|
|
722
732
|
// CI exit code — shown after full output so user sees the score before exit
|
|
723
733
|
if (_ciMode) {
|
|
@@ -879,6 +889,7 @@ async function cmdHeadline(text) {
|
|
|
879
889
|
const usageCount = incrementUsage();
|
|
880
890
|
showFreeTierCTA(usageCount);
|
|
881
891
|
}
|
|
892
|
+
showCommunityNudge();
|
|
882
893
|
}
|
|
883
894
|
|
|
884
895
|
// ── Init command ──────────────────────────────────────────────────────────────
|
|
@@ -1256,6 +1267,7 @@ async function cmdBatch(dirPath) {
|
|
|
1256
1267
|
if (_jsonMode) process.stdout.write(JSON.stringify(results, null, 2) + '\n');
|
|
1257
1268
|
|
|
1258
1269
|
if (!isProUser() && results.length) showUsageFooter(getUsage().count);
|
|
1270
|
+
if (results.length) showCommunityNudge();
|
|
1259
1271
|
}
|
|
1260
1272
|
|
|
1261
1273
|
// ── Start command ─────────────────────────────────────────────────────────────
|
|
@@ -1507,7 +1519,7 @@ async function cmdMetrics() {
|
|
|
1507
1519
|
function cmdHelp() {
|
|
1508
1520
|
banner();
|
|
1509
1521
|
console.log(` ${D}AI-powered content quality scoring — readability, SEO, structure analysis${R}`);
|
|
1510
|
-
console.log(` ${D}v${_version} · ${CY}npmjs.com/package/content-grade${R}`);
|
|
1522
|
+
console.log(` ${D}v${_version} · ${CY}npmjs.com/package/content-grade${R} · ${CY}${GITHUB_URL}${R}`);
|
|
1511
1523
|
blank();
|
|
1512
1524
|
console.log(` ${B}QUICK START${R}`);
|
|
1513
1525
|
blank();
|
|
@@ -1614,6 +1626,13 @@ function cmdHelp() {
|
|
|
1614
1626
|
console.log(` Get Pro: ${CY}${UPGRADE_LINKS.free}${R} ${D}# direct checkout${R}`);
|
|
1615
1627
|
console.log(` Activate: ${CY}content-grade activate <your-license-key>${R}`);
|
|
1616
1628
|
blank();
|
|
1629
|
+
|
|
1630
|
+
console.log(` ${B}COMMUNITY${R}`);
|
|
1631
|
+
blank();
|
|
1632
|
+
console.log(` ⭐ GitHub: ${CY}${GITHUB_URL}${R}`);
|
|
1633
|
+
console.log(` 💬 Discussions: ${CY}${DISCUSSIONS_URL}${R}`);
|
|
1634
|
+
console.log(` 🐛 Issues: ${CY}${FEEDBACK_URL}${R}`);
|
|
1635
|
+
blank();
|
|
1617
1636
|
}
|
|
1618
1637
|
|
|
1619
1638
|
// ── Feedback command ─────────────────────────────────────────────────────────
|
package/package.json
CHANGED