CtrlK
BlogDocsLog inGet started
Tessl Logo

extract-source-sample

Given the path to a finished content-goose ad-run folder, extract everything that defines that ad — recipe shot list, VO script, characters, voices, world, atom-skills, master mp4 — and emit a `source-sample.json` in the exact shape the `upload-ad-sample` skill writes to the Goose Ads library. Also links every character and voice to the central character library at `<repo-root>/assets/character-library/` (repo-root derived from the run-dir, not a hardcoded path), and if a character isn't in the library yet, adds it first then links. Use when the user wants to remix one of their existing ads — this skill produces the source JSON that the script-rewriting step and `remix-ad` consume.

68

Quality

85%

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

77%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.

An exceptionally actionable, well-sequenced agent workflow with genuine validation checkpoints for its risky operations (LFS audit, library extension). Its weaknesses are duplication — the full output schema appears both inline and in an unlinked reference file — and decision rules that restate inline guidance, which inflate the token cost without adding new information.

Suggestions

Replace the ~50-line inline `source-sample.json` shape (SKILL.md:104-151) with a short field-derivation summary plus an explicit pointer: 'Full schema and invariants: see [references/source-sample-schema.md](references/source-sample-schema.md)' — the reference file already contains this content verbatim but is currently never linked.

Cut the Decision rules section (SKILL.md:464-484) down to only the rules not already stated inline (e.g. keep the catalog_id-null and read-only-scope rules; drop the atoms-only, camelCase, and LFS rules that repeat earlier sections).

Move the full `character.json`/`index.json` library schemas and the no-match extension steps (SKILL.md:349-435) into a second reference file (e.g. references/character-library.md), keeping only the matching rules and a one-line summary in the body.

DimensionReasoningScore

Conciseness

The body is ~500 lines and duplicates content: the full `source-sample.json` shape (~50 lines, SKILL.md:104-151) restates what `references/source-sample-schema.md` already contains verbatim, and the Decision rules section (SKILL.md:464-484) restates rules already stated inline (atoms-only, camelCase settings, materialize LFS). Mostly efficient domain-specific detail, but it could be tightened by leaning on the reference — anchor 3.

3 / 5

Actionability

Fully executable throughout: exact files to read with fallbacks (SKILL.md:41-54), a concrete command for LFS materialization (`git lfs fetch --Include=<relative path>`), a real binary-vs-pointer test (`file <path>`, >10KB vs <200 bytes), complete JSON schemas with per-field derivation rules, filename→role tables, and a copy-ready summary template. Specific examples cover the common cases — anchor 5.

5 / 5

Workflow Clarity

A clear four-step sequence (read run → build JSON → link/extend library → write output + summary) with explicit validation checkpoints: audit every PNG with `file` before paid lipsync calls, materialize LFS pointers before copying binaries, refuse-to-fabricate nulls for unknown library fields, and a Failure modes section with recovery paths. The batch PNG audit and library writes — the risky operations here — each have a stated checkpoint and feedback loop, matching anchor 5.

5 / 5

Progressive Disclosure

Section structure is good, but the one bundle file (`references/source-sample-schema.md`) is never linked from the body — its entire schema content is inlined instead — and the only cross-references ([[feedback_lfs_pointer_audit_before_paid_calls]], [[feedback_fal_subscribe_error_envelope]]) point at memory notes, not bundle files. This is the anchor 3 pattern: structure present, but content that should live in the reference is inline and the reference is not clearly signaled.

3 / 5

Total

16

/

20

Passed

Description

92%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 strong description: concrete, comprehensive, and explicit about both what it does and when to use it, with clear boundary positioning against neighboring remix-pipeline skills. The only weakness is trigger phrasing that assumes familiarity with content-goose terminology rather than covering the natural variations a user might say.

DimensionReasoningScore

Specificity

The description enumerates concrete extracted artifacts ("recipe shot list, VO script, characters, voices, world, atom-skills, master mp4"), a precise output ("emit a source-sample.json in the exact shape the upload-ad-sample skill writes"), and concrete side effects ("links every character and voice to the central character library... adds it first then links"). This matches the anchor for multiple specific concrete actions with comprehensive coverage; nothing is vague or padded.

5 / 5

Completeness

It explicitly answers both questions: what ("extract everything that defines that ad... and emit a source-sample.json... Also links every character and voice to the central character library") and when ("Use when the user wants to remix one of their existing ads — this skill produces the source JSON that the script-rewriting step and remix-ad consume"). This mirrors the anchor 5 example's structure with a concrete 'Use when...' trigger.

5 / 5

Trigger Term Quality

Natural phrases a user would say are present ("remix one of their existing ads", "source-sample.json", "extract"), but coverage leans on project jargon ("content-goose ad-run folder", "atom-skills", "Goose Ads library") and misses common variations like "prep for remix" or "pull the sample from this run". Good keyword coverage with a few natural terms missing — anchor 4, not 5.

4 / 5

Distinctiveness Conflict Risk

It carves a clear niche (extracting a source sample from a finished ad run) and explicitly positions itself against adjacent skills (script-rewriting step, `remix-ad`, `upload-ad-sample`), so it is unlikely to trigger for the wrong skill. Clear niche with distinct triggers, matching anchor 5.

5 / 5

Total

19

/

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.

Validation14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (512 lines); consider splitting into references/ and linking

Warning

referenced_paths_exist

Referenced path issues: 6 missing, 2 deeper-than-1-level

Warning

Total

14

/

16

Passed

Repository
gooseworks-ai/goose-skills
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.