content-grade 1.0.24 → 1.0.26

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.
@@ -128,23 +128,24 @@ function showFreeTierCTA(count) {
128
128
  hr();
129
129
 
130
130
  if (remaining === 0) {
131
- // All free runs used reframe as success signal
132
- console.log(` ${RD}${B}${count}/${limit} free analyses used.${R}`);
131
+ // Last free runstrong CTA, no escape hatch
132
+ console.log(` ${RD}${B}${count}/${limit} free analyses used — daily limit reached.${R}`);
133
133
  blank();
134
- console.log(` ${D}That means content-grade is working you're running it${R}`);
135
- console.log(` ${D}consistently. Pro removes the cap and adds CI integration${R}`);
136
- console.log(` ${D}so your pipeline runs it on every draft automatically.${R}`);
134
+ console.log(` ${WH}Pro removes the cap. Analyze your entire content backlog,${R}`);
135
+ console.log(` ${WH}run it in CI on every draft, batch-score a whole directory.${R}`);
137
136
  blank();
138
- console.log(` ${MG}${B}$9/mo ${CY}${UPGRADE_LINKS.free}${R}`);
139
- console.log(` ${D}Have a key? ${CY}content-grade activate <key>${R}`);
137
+ console.log(` ${D}Used by 1,100+ developers. $9/mo, cancel anytime.${R}`);
138
+ blank();
139
+ console.log(` ${MG}${B}→ Get Pro: ${CY}${UPGRADE_LINKS.free}${R}`);
140
+ console.log(` ${D} Have a key? ${CY}content-grade activate <key>${R}`);
140
141
  } else if (remaining === 1) {
141
142
  // 1 run left — tease Pro features
142
- console.log(` ${YL}${B}${count}/${limit} free analyses used — 1 left today.${R}`);
143
+ console.log(` ${YL}${B}${count}/${limit} free analyses used — 1 left.${R}`);
143
144
  blank();
144
- console.log(` ${MG}→ Pro adds CI mode + bulk grading. $9/mo: ${CY}${UPGRADE_LINKS.free}${R}`);
145
+ console.log(` ${MG}→ Pro: unlimited analyses + CI mode + bulk grading. $9/mo: ${CY}${UPGRADE_LINKS.free}${R}`);
145
146
  } else {
146
- // Runs remaining — compact nudge
147
- console.log(` ${D}${count}/${limit} free analyses today · ${remaining} left · Unlimited: ${CY}${UPGRADE_LINKS.free}${R}`);
147
+ // Runs remaining — light nudge with value hook
148
+ console.log(` ${D}${count}/${limit} free analyses · ${remaining} left · Unlimited with Pro ($9/mo): ${CY}${UPGRADE_LINKS.free}${R}`);
148
149
  }
149
150
  hr();
150
151
  }
@@ -171,7 +172,7 @@ function maybeShowEarlyAdopterCTA(count) {
171
172
  markEarlyAdopterCTAShown();
172
173
  blank();
173
174
  hr();
174
- console.log(` ${GN}${B}Early Adopter program — 50 founding seats, 0 claimed.${R}`);
175
+ console.log(` ${GN}${B}Early Adopter program — 50 founding seats, limited spots remain.${R}`);
175
176
  blank();
176
177
  console.log(` ${WH}You just ran ContentGrade. That qualifies you.${R}`);
177
178
  console.log(` ${D}Post in Show & Tell with ${CY}[Early Adopter]${R}${D} in the title → get 12 months Pro free.${R}`);
@@ -191,7 +192,7 @@ function showUsageFooter(count) {
191
192
  if (remaining === 0) {
192
193
  console.log(` ${RD}[ ${count}/${limit} free runs used — limit reached. Unlimited runs: ${UPGRADE_LINKS.free} ]${R}`);
193
194
  } else if (remaining === 1) {
194
- console.log(` ${YL}[ ${count}/${limit} free runs used today · 1 left. Unlimited runs: ${UPGRADE_LINKS.free} ]${R}`);
195
+ console.log(` ${YL}[ ${count}/${limit} free runs used · 1 left. Unlimited runs: ${UPGRADE_LINKS.free} ]${R}`);
195
196
  } else {
196
197
  console.log(` ${D}[ ${count}/${limit} free runs today · ${remaining} left. Unlimited: ${UPGRADE_LINKS.free} ]${R}`);
197
198
  }
@@ -209,15 +210,17 @@ function checkFreeTierLimit() {
209
210
 
210
211
  blank();
211
212
  hr();
212
- console.log(` ${RD}${B}✗ Free limit reached (${limit}/day used)${R}`);
213
+ console.log(` ${YL}${B}${limit}/${limit} free analyses used today.${R}`);
213
214
  blank();
214
- console.log(` ${WH}content-grade Pro — $9/mo, cancel anytime${R}`);
215
- console.log(` ${D}├── Unlimited analyses — no daily cap${R}`);
216
- console.log(` ${D}├── JSON + HTML output — pipe into your pipeline${R}`);
215
+ console.log(` ${D}Pro removes the cap unlimited analyses, $9/mo:${R}`);
216
+ console.log(` ${D}├── Unlimited analyses — no cap, ever${R}`);
217
+ console.log(` ${D}├── Batch mode — score an entire /posts/ directory${R}`);
217
218
  console.log(` ${D}├── CI mode — exit 1 on below-threshold content${R}`);
218
- console.log(` ${D}└── Bulk grading score an entire /posts/ directory${R}`);
219
+ console.log(` ${D}└── JSON + HTML output pipe into your pipeline${R}`);
219
220
  blank();
220
- console.log(` ${MG}${B}→ Buy: ${CY}${UPGRADE_LINKS.free}${R}`);
221
+ console.log(` ${D}Used by 1,100+ developers.${R}`);
222
+ blank();
223
+ console.log(` ${MG}${B}→ ${CY}${UPGRADE_LINKS.free}${R}`);
221
224
  console.log(` ${D} Already have a key? ${CY}content-grade activate <key>${R}`);
222
225
  hr();
223
226
  blank();
@@ -817,7 +820,7 @@ async function cmdHeadline(text) {
817
820
  blank();
818
821
  if (!isProUser()) {
819
822
  const usageCount = incrementUsage();
820
- showUsageFooter(usageCount);
823
+ showFreeTierCTA(usageCount);
821
824
  }
822
825
  }
823
826
 
@@ -12,7 +12,7 @@ const PRO_TIER_LIMIT = 1_000_000;
12
12
  const BUSINESS_TIER_LIMIT = 1_000_000;
13
13
  const TEAM_TIER_LIMIT = 1_000_000;
14
14
  const HEADLINE_GRADER_ENDPOINT = 'headline-grader';
15
- const UPGRADE_URL = 'https://content-grade.onrender.com/upgrade';
15
+ const UPGRADE_URL = 'https://content-grade.github.io/Content-Grade/#pricing';
16
16
  const TIER_LIMITS = {
17
17
  free: FREE_TIER_LIMIT,
18
18
  pro: PRO_TIER_LIMIT,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "content-grade",
3
- "version": "1.0.24",
3
+ "version": "1.0.26",
4
4
  "description": "AI-powered content analysis CLI. Score any blog post, landing page, or ad copy in under 30 seconds — runs on Claude CLI, no API key needed.",
5
5
  "type": "module",
6
6
  "bin": {