Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jeremylongshore/grammarly-observability
Implement Grammarly observability with metrics and logging.
Passed 20 of 22 test cases with the skill, and 6 of 22 without it.
and 22 more in the full report
14 fixed6 passed either way2 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
In the Grammarly API error tracking logic, what exact metric name is incremented when an exception occurs, and what tags are attached?
| Checked | Without skill | With skill |
|---|---|---|
| Increments metric name 'grammarly.api.errors'. | Missed | Passed |
| Tags the error counter with the HTTP status code. | Missed | Passed |
The instructions your model reads when the skill loads.
Grammarly API integrations process user text through scoring, AI rewriting, and plagiarism endpoints where latency and accuracy directly affect user experience. Monitor text check response times, suggestion quality signals, API error rates, and token consumption to stay within rate limits. Catching degradation early prevents users from seeing stale suggestions or silent failures in real-time editing flows.
| Metric | Type | Target | Alert Threshold |
|---|---|---|---|
| Text check latency p95 | Histogram | < 300ms | > 800ms |
| API error rate | Gauge | < 1% | > 5% |
| Suggestion acceptance rate | Gauge | > 40% | < 20% (quality signal) |
| Token usage (daily) | Counter | < 80% quota | > 90% quota |
| Plagiarism check latency | Histogram | < 2s | > 5s |
| AI rewrite throughput | Counter | Stable | Drop > 30% |
async function trackGrammarlyCall(api: 'score' | 'ai' | 'plagiarism', textLen: number, fn: () => Promise<any>) {
const start = Date.now();
try {
const result = await fn();
metrics.histogram('grammarly.api.latency', Date.now() - start, { api });
metrics.increment('grammarly.api.calls', { api });
metrics.gauge('grammarly.text.length', textLen, { api });
return result;
} catch (err) {
metrics.increment('grammarly.api.errors', { api, status: err.status });
throw err;
}
}
async function grammarlyHealth(): Promise<Record<string, string>> {
const latencyP95 = await metrics.query('grammarly.api.latency', 'p95', '5m');
test cases passed, vs 6 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.