CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

blog-ingest

Feed and whole-publication ingestion: turn an entire blog, newsletter, or RSS/Atom archive into brain source pages. Covers feed discovery, pagination walking, normalization to a common article shape, canonical-URL dedup, idempotent re-runs, 429 pacing, and empty-husk repair. This is the PUBLICATION-scope skill — a single article URL routes to idea-ingest instead. Per-article enrichment hands off to the brain-ingest-gate skill; public posts only (gated content is skipped, never worked around).

Quality

84%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

81%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 highly actionable, well-sequenced batch procedure: every step carries executable specifics (paths, conventions, commands, thresholds), validation checkpoints and error-recovery loops are explicit throughout, and failure modes have concrete handling. The main weakness is repetition — the gated-content rule and the enrichment-handoff rule are each restated three to five times in near-verbatim form, which inflates token cost without adding guidance.

Suggestions

State the gated-content rule once in the Contract and reference it from the Substack section and Anti-Patterns instead of repeating near-verbatim wording ('no endpoint workarounds, no session cookies, no credentialed fetches' / 'no alternate endpoints, no session cookies, no subscriber credentials') in three places.

Consolidate the brain-ingest-gate handoff explanation — currently spread across 'What this is', the Contract, Untrusted content, Procedure step 6, and Anti-Patterns — into Procedure step 6 plus a single Contract bullet.

Trim the 'Why this matters' paragraph in Untrusted content to the one novel sentence (flagged directives resurface via gbrain recall as future prompts); the rest re-explains prompt injection, and cut the 'What this is' overlap with the frontmatter description.

DimensionReasoningScore

Conciseness

The body is dense and skill-specific — it explains no generic concepts (no 'what is RSS' padding) — but enforcement statements repeat well beyond minor trimming: the gated-content rule appears near-verbatim three times ('No endpoint workarounds, no session cookies, no credentialed fetches' in the Contract, 'no alternate endpoints, no session cookies, no subscriber credentials, no "tricks"' in the Substack section, and again in Anti-Patterns), the brain-ingest-gate handoff is restated in five sections, the 'What this is' section overlaps the frontmatter description, and the 'Why this matters' paragraph re-explains prompt injection basics. This fits anchor 3 ('mostly efficient but could be tightened') better than anchor 4's 'minor instances'.

3 / 5

Actionability

Guidance is fully executable for an agent-procedure skill: exact conventional feed paths ('/feed', '/rss', '/rss.xml', '/atom.xml', '/feed.xml', '/index.xml'), the WordPress '?paged=2' convention, concrete pacing numbers ('Default 1.5 seconds between fetches', 'exponential backoff starting at 5s, doubling to a 30s cap; honor a Retry-After header'), real commands ('gbrain sync --no-pull --no-embed', 'gbrain write-request <request_id>'), exact output paths and slug rules ('max 80 chars', disambiguation example 'weekly-update-a1b2c3'), a husk threshold ('word_count under ~50'), and a complete output-format template. Per the rubric's code_vs_instruction note, absence of code is not penalized when guidance is this actionable; it matches anchor 5.

5 / 5

Workflow Clarity

A numbered six-step procedure (feed discovery → pagination walking → normalize → canonical-URL dedup → write → handoff) with explicit validation checkpoints ('Enumerate the FULL list of candidate URLs first, dedup it, and report the count to the user before fetching bodies'; the test-before-bulk ramp '3-5 posts first, then 10, then the rest'), feedback loops for error recovery (husk detect → slow re-fetch → repair-or-delete; 429 backoff → pause and record position after 3+ repeats), a resumable run manifest for large runs, and a dedicated 'When it fails' error-recovery section. This is a batch operation WITH validation, so the batch-cap of 3 does not apply; it matches anchor 5.

5 / 5

Progressive Disclosure

Structure is good: clear section headers, and external convention references are well signaled via blockquote callouts and one level deep ('../conventions/brain-first.md', 'test-before-bulk.md', 'untrusted-content.md', 'agent-operator-protocol.md', 'skills/conventions/regex-discipline.md'). However, no bundle files exist (references/, scripts/, assets/ are absent, so the ../conventions paths cannot be verified in this bundle), and all ~300 lines — including Substack specifics, husk repair, and pacing details — live inline in SKILL.md where some could split into reference files. This matches anchor 4 ('good structure; most content appropriately placed; minor organization gaps') rather than anchor 5's 'content appropriately split'.

4 / 5

Total

17

/

20

Passed

Description

83%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, well-bounded description that names seven concrete capabilities, states its scope unambiguously, and explicitly routes the adjacent single-article and enrichment scopes to other skills. The only weakness is that user-facing trigger phrases ('ingest this whole blog', 'save this substack') live in separate frontmatter fields rather than in the description itself, holding trigger coverage and completeness at 4.

DimensionReasoningScore

Specificity

The description enumerates seven concrete capabilities — 'feed discovery, pagination walking, normalization to a common article shape, canonical-URL dedup, idempotent re-runs, 429 pacing, and empty-husk repair' — plus the core action 'turn an entire blog, newsletter, or RSS/Atom archive into brain source pages'. This matches anchor 5 (multiple specific concrete actions, comprehensive coverage) and exceeds anchor 4, which allows minor coverage gaps; none are visible. Voice is third person throughout ('Covers...', 'hands off'), so no voice penalty applies.

5 / 5

Completeness

The 'what' is explicit and concrete (whole-publication ingestion into brain source pages with named sub-capabilities). The 'when' is addressed through explicit scope/routing guidance — 'This is the PUBLICATION-scope skill — a single article URL routes to idea-ingest instead' — which qualifies as equivalent explicit trigger guidance, avoiding the missing-'Use when' cap of 3. But the description field itself contains no concrete user-facing trigger phrases (those live in the separate when_to_use field), so it matches anchor 4 ('when' could be more explicit or specific) rather than anchor 5.

4 / 5

Trigger Term Quality

Natural domain keywords are present — 'blog', 'newsletter', 'RSS/Atom archive', 'feed', 'publication' — giving good coverage of terms users would say. However, common phrasings like 'substack', 'backfill', or 'ingest every post' appear only in the separate triggers/when_to_use frontmatter fields, not in the description itself, so anchor 4 ('good keyword coverage; a few natural terms missing') fits better than anchor 5's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

The description draws sharp boundaries against its two nearest neighbors — 'a single article URL routes to idea-ingest instead' and 'Per-article enrichment hands off to the brain-ingest-gate skill' — and stakes out a clear niche (publication-scope, public-posts-only ingestion). This matches anchor 5: distinct triggers, minimal conflict risk. It is more bounded than anchor 4's 'minor overlap risk with closely related skills'.

5 / 5

Total

18

/

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: 4 suspicious

Warning

Total

14

/

16

Passed

Repository

garrytan/gbrain

Path

plugin/skills/blog-ingest/SKILL.md

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.