content-grade 1.0.33 → 1.0.34
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 -2
- package/bin/content-grade.js +60 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -945,6 +945,8 @@ The web dashboard works the same way — every tool call goes through `claude -p
|
|
|
945
945
|
|
|
946
946
|
ContentGrade is built in public. The community is the roadmap.
|
|
947
947
|
|
|
948
|
+
**→ [COMMUNITY.md](COMMUNITY.md)** — how to report bugs, request features, and claim an Early Adopter seat.
|
|
949
|
+
|
|
948
950
|
### GitHub Discussions
|
|
949
951
|
|
|
950
952
|
**[Join the conversation →](https://github.com/StanislavBG/Content-Grade/discussions)**
|
|
@@ -1007,7 +1009,7 @@ See [docs/social-proof/built-with-badge.md](docs/social-proof/built-with-badge.m
|
|
|
1007
1009
|
|
|
1008
1010
|
---
|
|
1009
1011
|
|
|
1010
|
-
## Community
|
|
1012
|
+
## Community & Feedback
|
|
1011
1013
|
|
|
1012
1014
|
[](https://github.com/StanislavBG/Content-Grade)
|
|
1013
1015
|
|
|
@@ -1017,7 +1019,9 @@ If Content-Grade saves you time, a ⭐ goes a long way. It helps more developers
|
|
|
1017
1019
|
|
|
1018
1020
|
**Early adopter program:** The first 50 seats are still open — early adopters get permanent free Pro tier. [Claim your seat →](https://content-grade.github.io/Content-Grade/#early-adopter)
|
|
1019
1021
|
|
|
1020
|
-
**Found a bug
|
|
1022
|
+
**Found a bug?** [Open an issue →](https://github.com/StanislavBG/Content-Grade/issues/new/choose) — every report shapes what gets built next.
|
|
1023
|
+
|
|
1024
|
+
**[GitHub Discussions →](https://github.com/StanislavBG/Content-Grade/discussions)** — questions, ideas, and show & tell. Built something with content-grade? Open a Discussion — we want to see it.
|
|
1021
1025
|
|
|
1022
1026
|
---
|
|
1023
1027
|
|
package/bin/content-grade.js
CHANGED
|
@@ -156,6 +156,8 @@ function showFreeTierCTA(count) {
|
|
|
156
156
|
console.log(` ${WH}${count}/${limit} free analyses · ${remaining} left · Unlimited with Pro ($9/mo): ${CY}${UPGRADE_LINKS.free}${R}`);
|
|
157
157
|
}
|
|
158
158
|
hr();
|
|
159
|
+
console.log(` ${D}⭐ Like ContentGrade? Star us: https://github.com/StanislavBG/Content-Grade${R}`);
|
|
160
|
+
maybeShowFeedbackCTA(count);
|
|
159
161
|
}
|
|
160
162
|
|
|
161
163
|
// ── Early Adopter program enrollment CTA ─────────────────────────────────────
|
|
@@ -190,6 +192,27 @@ function maybeShowEarlyAdopterCTA(count) {
|
|
|
190
192
|
hr();
|
|
191
193
|
}
|
|
192
194
|
|
|
195
|
+
// ── Feedback CTA ──────────────────────────────────────────────────────────────
|
|
196
|
+
|
|
197
|
+
function hasFeedbackCTAShown() {
|
|
198
|
+
return Boolean(loadConfig().feedbackCTAShown);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function markFeedbackCTAShown() {
|
|
202
|
+
const cfg = loadConfig();
|
|
203
|
+
cfg.feedbackCTAShown = true;
|
|
204
|
+
saveConfig(cfg);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Show once, after the 3rd run, to seed the GitHub Issues feedback loop.
|
|
208
|
+
function maybeShowFeedbackCTA(count) {
|
|
209
|
+
if (count !== 3) return; // only after exactly the 3rd run
|
|
210
|
+
if (hasFeedbackCTAShown()) return; // only once per install
|
|
211
|
+
markFeedbackCTAShown();
|
|
212
|
+
blank();
|
|
213
|
+
console.log(` ${D}Found a bug or have a suggestion? Open an issue: ${CY}https://github.com/StanislavBG/Content-Grade/issues/new${R}`);
|
|
214
|
+
}
|
|
215
|
+
|
|
193
216
|
// Single-line usage counter appended after every command run.
|
|
194
217
|
// count = total runs used today (after this run).
|
|
195
218
|
function showUsageFooter(count) {
|
|
@@ -205,6 +228,8 @@ function showUsageFooter(count) {
|
|
|
205
228
|
console.log(` ${D}[ ${count}/${limit} free runs used · ${remaining} left. Unlimited: ${UPGRADE_LINKS.free} ]${R}`);
|
|
206
229
|
}
|
|
207
230
|
maybeShowEarlyAdopterCTA(count);
|
|
231
|
+
maybeShowFeedbackCTA(count);
|
|
232
|
+
console.log(` ${D}⭐ Like ContentGrade? Star us: https://github.com/StanislavBG/Content-Grade${R}`);
|
|
208
233
|
}
|
|
209
234
|
|
|
210
235
|
// Returns { ok: boolean, count: number, limit: number } for tier-aware daily limit checks.
|
|
@@ -1519,6 +1544,8 @@ function cmdHelp() {
|
|
|
1519
1544
|
blank();
|
|
1520
1545
|
console.log(` ${CY}check-updates${R} Check if a newer version is available on npm`);
|
|
1521
1546
|
blank();
|
|
1547
|
+
console.log(` ${CY}feedback${R} Open GitHub Issues to report a bug or request a feature`);
|
|
1548
|
+
blank();
|
|
1522
1549
|
console.log(` ${CY}help${R} Show this help`);
|
|
1523
1550
|
blank();
|
|
1524
1551
|
console.log(` ${B}FLAGS${R}`);
|
|
@@ -1532,6 +1559,7 @@ function cmdHelp() {
|
|
|
1532
1559
|
console.log(` ${CY}--verbose${R} Show debug info: model, timing, raw response length`);
|
|
1533
1560
|
console.log(` ${CY}--version${R} Print version and exit`);
|
|
1534
1561
|
console.log(` ${CY}--no-telemetry${R} Skip usage tracking for this invocation`);
|
|
1562
|
+
console.log(` ${CY}--feedback${R} Open GitHub Issues in your browser`);
|
|
1535
1563
|
blank();
|
|
1536
1564
|
|
|
1537
1565
|
console.log(` ${B}EXAMPLES${R}`);
|
|
@@ -1579,6 +1607,27 @@ function cmdHelp() {
|
|
|
1579
1607
|
blank();
|
|
1580
1608
|
}
|
|
1581
1609
|
|
|
1610
|
+
// ── Feedback command ─────────────────────────────────────────────────────────
|
|
1611
|
+
|
|
1612
|
+
const FEEDBACK_URL = 'https://github.com/StanislavBG/Content-Grade/issues/new';
|
|
1613
|
+
|
|
1614
|
+
function cmdFeedback() {
|
|
1615
|
+
blank();
|
|
1616
|
+
console.log(` ${B}Report an issue or request a feature${R}`);
|
|
1617
|
+
blank();
|
|
1618
|
+
console.log(` ${CY}${FEEDBACK_URL}${R}`);
|
|
1619
|
+
blank();
|
|
1620
|
+
const { platform } = process;
|
|
1621
|
+
const opener = platform === 'darwin' ? 'open' : platform === 'win32' ? 'start' : 'xdg-open';
|
|
1622
|
+
try {
|
|
1623
|
+
spawn(opener, [FEEDBACK_URL], { stdio: 'ignore', shell: platform === 'win32', detached: true }).unref();
|
|
1624
|
+
console.log(` ${GN}✓${R} Opening in your browser…`);
|
|
1625
|
+
} catch {
|
|
1626
|
+
console.log(` ${D}(Could not open browser — copy the URL above)${R}`);
|
|
1627
|
+
}
|
|
1628
|
+
blank();
|
|
1629
|
+
}
|
|
1630
|
+
|
|
1582
1631
|
// ── First-run detection ───────────────────────────────────────────────────────
|
|
1583
1632
|
|
|
1584
1633
|
function isFirstRun() {
|
|
@@ -2063,8 +2112,9 @@ const _savePath = (_saveMode && _rawArgs[_saveIdx + 1] && !_rawArgs[_saveIdx + 1
|
|
|
2063
2112
|
? _rawArgs[_saveIdx + 1]
|
|
2064
2113
|
: null;
|
|
2065
2114
|
const _demoMode = _rawArgs.includes('--demo');
|
|
2115
|
+
const _feedbackMode = _rawArgs.includes('--feedback');
|
|
2066
2116
|
const args = _rawArgs.filter((a, i) => {
|
|
2067
|
-
if (['--no-telemetry', '--json', '--quiet', '--verbose', '--ci', '--save', '--demo'].includes(a)) return false;
|
|
2117
|
+
if (['--no-telemetry', '--json', '--quiet', '--verbose', '--ci', '--save', '--demo', '--feedback'].includes(a)) return false;
|
|
2068
2118
|
if (a === '--threshold') return false;
|
|
2069
2119
|
if (i > 0 && _rawArgs[i - 1] === '--threshold') return false;
|
|
2070
2120
|
if (_saveMode && i > 0 && _rawArgs[i - 1] === '--save' && !a.startsWith('-')) return false;
|
|
@@ -2235,7 +2285,9 @@ if (_rawArgs.includes('--help') || _rawArgs.includes('-h')) {
|
|
|
2235
2285
|
}
|
|
2236
2286
|
}
|
|
2237
2287
|
|
|
2238
|
-
if (
|
|
2288
|
+
if (_feedbackMode) {
|
|
2289
|
+
cmdFeedback();
|
|
2290
|
+
} else if (_demoMode) {
|
|
2239
2291
|
recordEvent({ event: 'grade_run', is_pro: isProUser(), command:'demo' });
|
|
2240
2292
|
cmdDemo().catch(err => {
|
|
2241
2293
|
blank();
|
|
@@ -2335,6 +2387,12 @@ if (_demoMode) {
|
|
|
2335
2387
|
});
|
|
2336
2388
|
break;
|
|
2337
2389
|
|
|
2390
|
+
case 'feedback':
|
|
2391
|
+
case 'issue':
|
|
2392
|
+
case 'report':
|
|
2393
|
+
cmdFeedback();
|
|
2394
|
+
break;
|
|
2395
|
+
|
|
2338
2396
|
case 'help':
|
|
2339
2397
|
case '--help':
|
|
2340
2398
|
case '-h':
|
package/package.json
CHANGED