CtrlK
BlogDocsLog inGet started
Tessl Logo

citation-fixer

Audit and fix citation formatting across brain pages. Ensures every fact has an inline [Source: ...] citation matching the standard format. Extended in v0.25.1: scans for broken tweet/post references that lack actual URLs and resolves them via the host's X / Twitter API integration.

54

Quality

61%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/citation-fixer/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, largely actionable body undermined by changelog-tagged version noise repeated five times, a conformance-test stub section, and four references to files that do not exist anywhere in the bundle — one of which carries the skill's only validation guidance for a mutating batch operation. Cleaning the version tags and either shipping or removing the dangling references would materially raise conciseness and workflow clarity.

Suggestions

Strip the repeated "(v0.25.1)" markers (they also contradict frontmatter `version: 1.1.0`) and delete the trailing '## Output Format' conformance-test stub — both are pure token overhead.

Add an explicit post-patch validation step (e.g. re-scan the patched page for citation-format compliance and re-run the format check on a sample before batch-committing) so the batch/mutating workflow has a real feedback loop rather than a dangling `conventions/test-before-bulk.md` pointer.

Create a references/ directory containing the cited files (quality.md citation format, tweet-resolution pipeline detail, X API recipe usage) or rewrite the inlined detail directly, so no navigation target in the body is broken.

DimensionReasoningScore

Conciseness

Mostly efficient, but "**(v0.25.1)**" is stamped five times across Contract, Phases, and step headings (and conflicts with the frontmatter's `version: 1.1.0`), and the trailing "## Output Format" stub whose only content is "The literal section header here exists for the conformance test (`test/skills-conformance.test.ts`)" is pure padding. Version-tagged time-sensitive info outside a deprecated section and meta-noise for a test harness are exactly the unnecessary tokens the rubric penalizes.

3 / 5

Actionability

Concrete, near-executable guidance throughout: a runnable bash candidate-finder, exact search query patterns (`from:<handle> "<exact quote fragment>"`, `"<exact quote>" -is:retweet`), a before/after patch example, a JSON state-file schema, and a report template. Not 5 because the core integration point is hand-waved — "goes through whatever X integration the host has configured (typical shape: a recipe under `recipes/x-api/` ...)" — leaving the actual API call non-executable.

4 / 5

Workflow Clarity

The 5-phase sequence and 5-step tweet pipeline are clearly laid out, and Step 4 verifies candidates ("Confirm the text matches the quoted fragment"), but this is a mutating batch operation and the validation guidance is a dangling pointer ("see `conventions/test-before-bulk.md`" — the file does not exist in the bundle) with no post-patch re-validation loop. Per the rubric's cap, a batch/destructive skill without a working validation step cannot score above 3.

3 / 5

Progressive Disclosure

Section headers organize the ~190-line body, but everything is inlined (the full tweet-resolution pipeline and batch-mode detail would fit a reference file), and every external pointer — "[conventions/quality.md](../conventions/quality.md)", "[_output-rules.md](../_output-rules.md)", "conventions/test-before-bulk.md", "recipes/x-api/" — is dangling: the skill bundle contains no references/, scripts/, or assets/ directories at all. Structure exists, but navigation targets are unreliable, matching the 'some structure, could be better organized' anchor.

3 / 5

Total

13

/

20

Passed

Description

66%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A specific, fairly distinctive description with good trigger keywords, weakened by the absence of any 'use when' guidance and by changelog-style version framing ("Extended in v0.25.1") that spends tokens on non-capability information. Adding an explicit trigger clause would lift the two lowest dimensions.

Suggestions

Append a 'Use when...' clause, e.g. 'Use when fixing citation format on brain pages, auditing missing [Source: ...] citations, or repairing tweet references without links.'

Drop the 'Extended in v0.25.1:' changelog framing from the description; state the tweet-resolution capability as a present-tense capability instead.

Add natural synonyms such as 'sources', 'attributions', and 'broken links' to broaden trigger coverage.

DimensionReasoningScore

Specificity

Quotes like "Audit and fix citation formatting", "scans for broken tweet/post references that lack actual URLs", and "resolves them via the host's X / Twitter API integration" list several concrete actions, but coverage has minor gaps (no mention of reporting/batch sweeping) and the "Extended in v0.25.1" framing is changelog fluff rather than capability.

4 / 5

Completeness

The 'what' is clear and concrete, but there is no "Use when..." clause or equivalent explicit trigger guidance anywhere in the description — the rubric guideline caps this at 3. Not 4 because 'when' is not even weakly implied in the description text itself.

3 / 5

Trigger Term Quality

"citation formatting", "citations", "tweet/post references", "X / Twitter", and "URLs" give good natural keyword coverage, but common synonyms like "sources", "attributions", or "broken links" are missing. Not 5 because a few natural phrasings users would say are absent; not 3 because coverage clearly exceeds a single domain keyword.

4 / 5

Distinctiveness Conflict Risk

"brain pages", "inline [Source: ...] citation", and tweet-URL resolution carve out a mostly distinct niche with low conflict risk, though it could overlap slightly with generic link-checking or media-ingest skills.

4 / 5

Total

15

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 2 suspicious

Warning

Total

14

/

16

Passed

Repository
garrytan/gbrain
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.