CtrlK
BlogDocsLog inGet started
Tessl Logo

brand-research

Research a company or brand from its website and produce a reusable Brand Core covering products, audience, competitors, positioning, offers, messaging evidence, voice, and visual identity. Use before growth, ad, content, creator, or product work when reliable brand context is missing.

64

Quality

81%

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

71%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, actionable research workflow with a genuinely useful quality checklist, but it is a monolith disconnected from its own bundle: six scripts and a normative output-contract reference exist on disk and are never referenced, and the body's inlined contract contradicts the reference's layout and manifest schema. The deterministic verify_pack.py gate that would anchor the workflow's validation is orphaned.

Suggestions

Resolve the output-contract conflict: either align the body's brand-core/ layout and JSON schema with references/output-contract.md, or update the reference to match — then replace the inlined tree/schema with a pointer like "See [output-contract.md](references/output-contract.md) for the normative layout".

Wire the scripts into the workflow: replace the hand-listed file creation in step 6 with `python scripts/scaffold_brand.py --brand-dir ./<brand>`, reference scripts/fetch_asset.py in the asset steps, and add a final validation step running `python scripts/verify_pack.py --brand-dir ./<brand>` so the ship gate is actually enforced.

Consolidate the repeated optionality language: state once near the top that GooseWorks sync and paid asset generation are optional extensions, and trim the restatements in the inputs list, step 8, and step 9 to cut token overhead.

DimensionReasoningScore

Conciseness

The body is lean and assumes competence — no concept tutorials, no filler — e.g., "Do not turn marketing claims into facts. Label them as brand-stated claims until corroborated." Minor trimming is possible: the output tree in "Brand Core output" overlaps with the per-file specs in step 6, and the optionality of GooseWorks sync and paid assets is restated three times ("optional extensions—not prerequisites", "Only when requested", "never required to finish"). That puts it just below the 'every token earns its place' anchor.

4 / 5

Actionability

As an instruction-only skill it gives concrete, executable guidance: exact filenames, a per-file content spec ("sources.md: URL, access date, source type, and which claims it supports"), and a copy-paste-ready brand-core.json template with "Omit unknown values rather than inventing them". A few directives stay high-level — "Use `comment-mining` for relevant public social threads" and "use `competitor-ad-intelligence`" name other skills without any pointer or invocation detail — so it lands at 'mostly executable guidance; minor gaps' rather than fully copy-paste ready.

4 / 5

Workflow Clarity

Nine clearly sequenced steps with real checkpoints: step 1 has an error-recovery loop ("If the site is inaccessible or the identity remains ambiguous, ask for the minimum clarification"), step 7 is a confirmation gate ("Mark low-confidence findings and ask only about material gaps"), and the closing Quality checks act as a checklist. It falls short of the 5 anchor because validation is prose-level only — the bundle ships a deterministic gate (scripts/verify_pack.py, "Exits non-zero and prints every problem found") that the workflow never invokes, leaving a minor validation gap.

4 / 5

Progressive Disclosure

The body itself is well sectioned, but scored against the actual bundle it is poorly wired: references/output-contract.md and all six scripts/ files are never mentioned or linked from the body. Worse, the body inlines its own full output contract (the brand-core/ tree plus a 20-line JSON schema) that conflicts with the normative contract in references/output-contract.md (a brand-research/ folder with brand-summary.md, asset-urls.md, and a manifest.json schema) — content that clearly belongs in the reference file is duplicated inline, and in a divergent form. This matches 'references present but not clearly signaled; content that should be separate is inline' rather than the 2 anchor only because the body's own sectioning is clean.

3 / 5

Total

15

/

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 strong description: third-person, concrete about what is produced, and equipped with an explicit multi-context 'Use before...' trigger clause. The main headroom is broader natural-keyword coverage (competitor research, brand strategy phrasings) to make triggering even more reliable.

DimensionReasoningScore

Specificity

"Research a company or brand from its website and produce a reusable Brand Core covering products, audience, competitors, positioning, offers, messaging evidence, voice, and visual identity" names the domain, the source (website), and an enumerated output scope. It lists several specific capabilities with only minor gaps (e.g., it doesn't mention the structured brand-core.json echo or competitor/ad inspection), so it sits at the 'several specific actions; minor gaps' anchor rather than the comprehensive 5.

4 / 5

Completeness

The 'what' is explicit (research a company from its website and produce a Brand Core covering eight named areas) and the 'when' is an explicit trigger clause with concrete contexts: "Use before growth, ad, content, creator, or product work when reliable brand context is missing". This clearly matches the anchor for explicitly answering both what and when with concrete trigger phrases; it is not the 4 anchor because the 'when' is specific and multi-context rather than generic.

5 / 5

Trigger Term Quality

Natural phrases a user would say appear throughout: "company", "brand", "website", and the trigger contexts "growth, ad, content, creator, or product work" plus "brand context". Coverage is good but a few common variations (e.g., "competitor research", "brand strategy", "before writing copy/launching a campaign") are missing, matching the 'good keyword coverage; a few natural terms missing' anchor.

4 / 5

Distinctiveness Conflict Risk

The description carves a clear niche (website-sourced, reusable brand context for growth/ad/creator work) that is unlikely to fire for generic document or coding skills. Minor overlap risk remains with adjacent skills like general company research or competitor-analysis skills, matching 'mostly distinct; minor overlap risk' rather than the minimal-conflict 5.

4 / 5

Total

17

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

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.