writing:analyze SKILL.md skillA
writing:analyze from bendrucker/claude is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add bendrucker/claude/writing:analyze@git:20261029.c1d931dPins git:20261029.c1d931d in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- bendrucker/claude
- Path
plugins/writing/skills/analyze/SKILL.md- Versions recorded
- 15
- Latest version
- git:20261029.c1d931d, committed Oct 29, 2026
- First version recorded
- Jul 27, 2026
- Size
- 1,877 bytes
- Repository stars
- 18
- License
- MIT
Audit the writing hook from its run log: outcomes, latency, per-check fire counts, and whether each alert was acted on. Use when reviewing hook health, judging a Vale check's precision in practice, or deciding which checks to demote or retire.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Writing Analyze
The hook dispatcher (`hooks/lint.ts`) appends one JSONL line per run to `~/.claude/writing-hooks/log.jsonl` (controlled by `WRITING_HOOKS_LOG`, see the plugin README). `hook-health.ts` reads it:
```bash
bun ${CLAUDE_SKILL_DIR}/scripts/hook-health.ts
bun ${CLAUDE_SKILL_DIR}/scripts/hook-health.ts --since 2026-07-01 --json
bun ${CLAUDE_SKILL_DIR}/scripts/hook-health.ts --log /path/to/log.jsonl
```
It reads the default log (plus its `.1` rotation) and reports run count, outcomes, latency percentiles including the silent hot path, and per check its fire count, an acted-on column, and the alerts no whole-file re-lint reached.
The acted-on column pairs each shown alert with the next whole-file re-lint of the same file: a check that re-lint no longer raises was acted on, one it still raises was written past. Every file edit since the PostToolUse move lints the saved file. Older entries count only a `Write` as whole-file. Every shown alert no re-lint reached counts as `unconfirmed`, so the two columns account for all of them. The acted-on column reads `n/a` until pairs close. Recall is not measurable from this log, since a check that never fires leaves no line.
…Read the whole file at its exact version.
How to install
mdr add bendrucker/claude/writing:analyze@sha256:2a734e70e6046175The line at the top of this page pins the label git:20261029.c1d931d, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_f3blp7m2fjowo4zb)
5 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 15 versions of this file, between Jul 27, 2026 and Oct 29, 2026, about one every 7 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261029.c1d931d latest | 2026-10-29 | c1d931d | 1,877 B | A | view · diff |
| git:20261017.145ac56 | 2026-10-17 | 145ac56 | 15,042 B | A | view · diff |
| git:20261006.a882371 | 2026-10-06 | a882371 | 16,243 B | A | view · diff |
| git:20260917.e57dc35 | 2026-09-17 | e57dc35 | 16,239 B | A | view · diff |
| git:20260915.644dbe6 | 2026-09-15 | 644dbe6 | 14,611 B | A | view · diff |
| git:20260915.070a31a | 2026-09-15 | 070a31a | 14,036 B | A | view · diff |
| git:20260912.4e90f62 | 2026-09-12 | 4e90f62 | 14,037 B | A | view · diff |
| git:20260907.2c76f99 | 2026-09-07 | 2c76f99 | 13,646 B | A | view · diff |
| git:20260907.965b1d6 | 2026-09-07 | 965b1d6 | 12,326 B | A | view · diff |
| git:20260907.fb1cc37 | 2026-09-07 | fb1cc37 | 11,826 B | A | view · diff |
| git:20260907.7d84d20 | 2026-09-07 | 7d84d20 | 9,785 B | A | view · diff |
| git:20260907.9b2c61d | 2026-09-07 | 9b2c61d | 9,825 B | A | view · diff |
| git:20260907.2358d65 | 2026-09-07 | 2358d65 | 7,962 B | A | view · diff |
| git:20260906.c69685d | 2026-09-06 | c69685d | 7,071 B | A | view · diff |
| git:20260727.14c22cf | 2026-07-27 | 14c22cf | 6,180 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (1877 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
bendrucker/claude · 18 stars · license MIT · pushed 2026-11-07 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_f3blp7m2fjowo4zb GET https://markdownregistry.com/api/v1/resolve?ref=bendrucker/claude/writing:analyze GET https://markdownregistry.com/api/v1/blob/2a734e70e6046175e4ecb1a0ed52e4ec484f702b23dc72147a9cb72ed3293f06
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.