Manages persistent work state (briefs) for local SEO engagements.

MITAuto-check: warningsProductivity & Automation

Install Brief

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add garrettjsmith/localseoskills --skill brief -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install garrettjsmith/localseoskills brief --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/garrettjsmith/localseoskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/brief .claude/skills/brief && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
brief
GitHub stars
120
Token cost
~1.9k tokens
SKILL.md length
930 words
Files
1
Skills in repo
38
Repo updated
First seen
Licence
MIT

At a glance

Manages persistent work state (briefs) for local SEO engagements.

  • Works in 8 steps: Create brief folder structure → Populate Identity section from answers… → Configure _brand.brief.md approval block… → …
  • Tasks that involve Local SEO
  • SKILL.md covers Structure, First Run Detection, When to Create a Brief… and Brief Location, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Brief is an agent skill from garrettjsmith/localseoskills. Manages persistent work state (briefs) for local SEO engagements. Automatically load this skill when starting work on a specific business or location, when a user says "resume," "continue," "pick up where we left off," or references a specific client or location by name. Also load when any tool call is about to be made for a business, that's the trigger to create or update a brief. Load when receiving output from a scheduled task.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Productivity & Automation, covering Local SEO and Scheduled and recurring tasks. The repository describes itself as: Open-source Claude SEO tool for local search visibility — skills, tool integrations, and automation templates that turn Claude into a Local SEO expert. The licence is MIT.

When your agent uses it

  • Tasks that involve Local SEO
  • Tasks that involve Scheduled and recurring tasks

Example prompts

  • “resume,”
  • “continue,”
  • “pick up where we left off,”
  • “/brief”

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Create brief folder structure
  2. Populate Identity section from answers and any context already in the conversation
  3. Configure _brand.brief.md approval block from Q4/Q5 answers
  4. Run initial audit automatically, don't ask permission
  5. Populate Findings from audit results
  6. Set Next Action to the single highest-priority fix
  7. Offer scheduled task setup
  8. Then return to what the user originally asked for

What it can do on your machine

Read from SKILL.md and the folder at commit 405ce20. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Brief loads about 1.9k tokens when it runs. Until then it costs about 110 tokens; SKILL.md has 930 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~110
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningTells the agent its actions are pre-authorized / not to stop for confirmationSKILL.md:80
    4. Run initial audit automatically, don't ask permission:

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from garrettjsmith/localseoskills at commit 405ce20, republished under its MIT licence (© garrettjsmith). 930 words, ~1,909 tokens.

Download SKILL.mdSave it as .claude/skills/brief/SKILL.md (or your agent's skills folder).
name
brief
description
Manages persistent work state (briefs) for local SEO engagements. Automatically load this skill when starting work on a specific business or location, when a user says "resume," "continue," "pick up where we left off," or references a specific client or location by name. Also load when any tool call is about to be made for a business, that's the trigger to create or update a brief. Load when receiving output from a scheduled task.
metadata.version
3.0.0
metadata.author
Garrett Smith

Brief Management

Briefs are persistent work state for local SEO engagements. One brief per location. Brand rollup for multi-location work. Scheduled task outputs extend the brief over time, building a compounding history of every scan, audit, report, and finding for each business.


Structure

briefs/
  {brand}/
    _brand.brief.md          ← config + rollup across all locations
    reports/                 ← brand-level rollup reports
    {location}/
      location.brief.md      ← always current, always lean
      reports/               ← weekly, monthly, QBR reports
      scans/                 ← geogrid scans, citation audits, page audits
      drafts/                ← GBP posts, review responses awaiting approval
      alerts/                ← monitoring alerts

First Run Detection

This is the most important section. When a user mentions a specific business and no brief exists, do not proceed with their request yet. Run setup first, then circle back to what they asked for.

Detection

Before doing any work for a specific business, check for an existing brief:

  • Claude Code: look for briefs/{brand-slug}/{location-slug}/location.brief.md
  • Claude Project: check Project knowledge base for a brief file for this business
  • If found: go to Resuming from a Brief
  • If not found: go to First Run Setup
First Run Setup

Tell the user:

"I don't have a brief for [Business Name] yet. Let me grab a few details so I can track everything going forward. This takes about 2 minutes."

Then ask these questions one at a time, not all at once:

Q1: "What's the primary keyword you want to rank for? (e.g. 'plumber buffalo ny')"

Q2: "What's the website URL?"

Q3: "How far does the service area extend? (e.g. 5 miles, 20 miles)"

Q4: "Are you managing this for a client, or is this your own business?"

  • If client, ask: "What's the client's email for reports?"
  • If own business, skip

Q5: "Do you want alerts and reports sent to a Slack channel?" (optional, skip if they say no)

That's it. Don't ask for more than these unless something is genuinely ambiguous.

After Questions
  1. Create brief folder structure:

    • briefs/{brand-slug}/{location-slug}/location.brief.md
    • briefs/{brand-slug}/{location-slug}/reports/
    • briefs/{brand-slug}/{location-slug}/scans/
    • briefs/{brand-slug}/{location-slug}/drafts/
    • briefs/{brand-slug}/{location-slug}/alerts/
    • briefs/{brand-slug}/_brand.brief.md
  2. Populate Identity section from answers and any context already in the conversation

  3. Configure _brand.brief.md approval block from Q4/Q5 answers

  4. Run initial audit automatically, don't ask permission:

    • LocalSEOData local_audit
    • LocalSEOData business_profile + profile_health
    • LocalSEOData geogrid_scan (7x7, primary keyword, stated radius)
    • LocalSEOData citation_audit
    • LocalSEOData review_velocity + google_reviews
    • LocalSEOData competitor_gap
  5. Populate Findings from audit results

  6. Set Next Action to the single highest-priority fix

  7. Offer scheduled task setup:

    "Brief created and initial audit done. I found [X critical, Y important issues]. [Top finding in one sentence].

    Want me to set up automated monitoring? I can configure weekly ranking scans, review monitoring, GBP change detection, and monthly reports to run automatically."

    If yes, go through task list from tasks/README.md, recommend based on audit findings, configure via /schedule If no, proceed with original request

  8. Then return to what the user originally asked for:

    "Now let me [original request]..."

For Claude Project / Browser Users

If no filesystem access: run the same conversation and audit, then output the brief as formatted text at the end of setup:

"Here's your brief. Add this to your Project knowledge base so I'll have it next time:" [brief content]


When to Create a Brief (Non-First-Run)

Outside of first run, create a brief mid-session if:

  • A tool call is about to be made for a business with no brief
  • User explicitly asks to create one

Do not create briefs for:

  • General local SEO questions with no specific business
  • Tool or skill explanations
  • Single-question answers with no live data

Brief Location

Claude Code / Cowork:

briefs/{brand-slug}/{location-slug}/location.brief.md

Claude Project: Upload brief file to Project knowledge base after creation. Tell user to do this if they haven't.


Show full SKILL.md (379 more words)Show less

Updating a Brief (Manual Sessions)

At end of every session:

  1. Session Log. One line: date + what was worked on
  2. Tools Run. Each tool call: date, tool, endpoint, one-line finding
  3. Findings. New issues, categorized Critical / Important / Monitor
  4. Deliverables. Mark completed, add new pending
  5. Next Action. Overwrite with single most important next step

Receiving Scheduled Task Output

When a scheduled task writes an output file:

  1. Read the output file
  2. Add one line to Session Log: [DATE] | {task type} → {one-line finding} → see {output path}
  3. If new Critical findings: update Findings section
  4. Update Next Action if the task surfaced a higher priority than current
  5. Update _brand.brief.md Locations table row for this location

The brief stays lean. Detail lives in the output files. The brief is the index.


Resuming from a Brief

When a user returns to a business:

  1. Read the brief
  2. Read the most recent output file in each subfolder for current state
  3. Summarize in 2-3 sentences: what's been done, key findings, current state
  4. State the Next Action
  5. Ask: "Want to pick up from here, or something specific?"

Do not re-run tools with results in scans/ unless user asks or data is >30 days old.


The Compounding Value

After months of scheduled tasks writing to a brief, the history is queryable:

  • "Why did rankings drop in March?" reads scans/ for that period
  • "How have reviews trended this year?" reads reports/ review monitors
  • "When did this competitor appear?" reads competitor monitors

Never delete output files. Archive if the folder gets unwieldy. The history is the value.


Lessons Flywheel

During every session, manual or scheduled, watch for:

  • Tool returning data that contradicts a skill file
  • A pattern emerging across 3+ locations not documented anywhere
  • GBP, algo, or AI platform behavior differing from documented expectations
  • A tool endpoint behaving unexpectedly

When observed, surface it explicitly:

"I noticed [X] during this session. This pattern isn't in the skill files. Want me to add it to meta/lessons.md for review?"

Wait for confirmation. Then write the lesson.


Multi-Location Brands

After each location session:

  • Update that location's row in _brand.brief.md Locations table
  • Add to Brand-Level Notes only if pattern appears in 3+ locations

Slug Format

Lowercase, hyphens, obvious:

  • Brand: keystone-insurance, mikes-plumbing
  • Location: buffalo, downtown-chicago, pittsburgh-pa

© garrettjsmith, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/brief of garrettjsmith/localseoskills.

Open the folder on GitHubat commit 405ce20

Compare with similar skills

Brief next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Brief compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Brief this skillgarrettjsmith/localseoskills120—~1.9kAutomated safety check: WarnMIT
Brightdata Local Searchdavila7/claude-code-templates32k—~1.2kAutomated safety check: NotesMIT
X Demand Radarkennyzir/7deer_skills322—~3.6kAutomated safety check: PassMIT
11 Channel Setup Globalminhnv0807/ai-business-skills610—~3.2kAutomated safety check: PassMIT
ScheduleTinyAGI/tinyagi3.6k—~1.4kAutomated safety check: PassMIT
FLOW SEO FrameworkAgriciDaniel/claude-seo19k2 repos~1.4kAutomated safety check: PassMIT

Similar skills

  • Brightdata Local Search

    davila7/claude-code-templates

    Set up and run local web searches using Bright Data SERP API with the unfancy-search pipeline (query expansion, SERP retrieval, RRF reranking).

    32k GitHub stars~1.2k tokensUpdated today
    Productivity & AutomationAuto-check: notes
  • X Demand Radar

    kennyzir/7deer_skills

    AI 热点雷达 - 在新 AI 工具/关键词爆火前发现它们,抢注域名、建站套利. An agent skill from kennyzir/7deer_skills.

    322 GitHub stars~3.6k tokensUpdated 9 days ago
    Productivity & AutomationAuto-check passed
  • 11 Channel Setup Global

    minhnv0807/ai-business-skills

    A skill your agent uses when the user needs to choose and stand up marketing channels and the tech behind them — channel selection scoring, platform-by-platform setup checklists, business account…

    610 GitHub stars~3.2k tokensUpdated 26 days ago
    Marketing & SEOAuto-check passed
  • Schedule

    TinyAGI/tinyagi

    Create, list, and delete scheduled tasks (recurring or one-time) that send messages to agents.

    3.6k GitHub stars~1.4k tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed
  • FLOW SEO Framework

    AgriciDaniel/claude-seo

    Brings the FLOW framework's stage-specific SEO prompts into the agent, from keyword discovery through backlinks, on-page work and conversion to local SEO, loaded on demand.

    19k GitHub starsUsed in 2 repos~1.4k tokens
    Marketing & SEOAuto-check passed
  • Send User Message

    TinyAGI/tinyagi

    Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp).

    3.6k GitHub stars~829 tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed

More from garrettjsmith/localseoskills

All 38 skills in this repo
  • Gbp API Automation

    garrettjsmith/localseoskills

    When the user wants to programmatically manage Google Business Profiles at scale via API, automate GBP updates, build GBP management tools, or integrate GBP data into their systems.

    120 GitHub stars~2.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Gbp Posts

    garrettjsmith/localseoskills

    When the user wants to create, schedule, or optimize Google Business Profile posts.

    120 GitHub stars~1.6k tokensUpdated 1 mo ago
    Auto-check passed
  • Local Content Briefs

    garrettjsmith/localseoskills

    Generate complete semantic content briefs for local SEO content — location pages, service pages, blog posts, FAQ content, and pillar pages.

    120 GitHub stars~3.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Local Content Strategy

    garrettjsmith/localseoskills

    Build a complete local content strategy from keyword research output.

    120 GitHub stars~2.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Local Falcon Tool

    garrettjsmith/localseoskills

    When the user wants to run a geogrid scan, check existing scan reports, track ranking trends over time, monitor GBP changes via Falcon Guard, or analyze reviews.

    120 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Local Keyword Research

    garrettjsmith/localseoskills

    When the user wants to research keywords for a local business, find local search opportunities, build a keyword map for location pages, or understand local search intent.

    120 GitHub stars~4.7k tokensUpdated 1 mo ago
    Auto-check passed

Questions about Brief

What does Brief do?

Manages persistent work state (briefs) for local SEO engagements. Brief is an agent skill from garrettjsmith/localseoskills. Manages persistent work state (briefs) for local SEO engagements.

When should I use Brief?

Brief fits situations like: tasks that involve Local SEO; tasks that involve Scheduled and recurring tasks.

How do I install Brief in Claude Code?

Run `npx skills add garrettjsmith/localseoskills --skill brief -a claude-code`. Or copy the skill folder (skills/brief in garrettjsmith/localseoskills) into .claude/skills/brief in your project. Claude Code loads it when a task matches its description.

How do I install Brief in Codex?

Run `npx skills add garrettjsmith/localseoskills --skill brief -a codex`. Or copy the skill folder (skills/brief in garrettjsmith/localseoskills) into .agents/skills/brief in your project. Codex loads it when a task matches its description.

Can I use Brief in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add garrettjsmith/localseoskills --skill brief -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/brief, .gemini/skills/brief, .github/skills/brief and .opencode/skills/brief in your project.

What does Brief need to run?

SKILL.md names no scripts, command-line tools or credentials: Brief is instructions for the agent only.

Does Brief access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Brief safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Brief use?

Brief is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Brief use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Brief?

Skills that share tags, products or a category with Brief: Brightdata Local Search (davila7/claude-code-templates, 32k stars), X Demand Radar (kennyzir/7deer_skills, 322 stars), 11 Channel Setup Global (minhnv0807/ai-business-skills, 610 stars) and Schedule (TinyAGI/tinyagi, 3.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Brief?

garrettjsmith (a GitHub user) maintains it in garrettjsmith/localseoskills, which has 120 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on August 15, 2026.

Source: garrettjsmith/localseoskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.