Persian Writing
ali2000hos/persian-writing
Write natural, human-sounding Persian (Farsi) and build correct right-to-left Persian deliverables.
Generates a fully structured SEO content outline (not a finished brief) and exports it as a formatted .docx Word document.
$ npx skills add Infrasity-Labs/dev-gtm-claude-skills --skill brief-outline-generator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Infrasity-Labs/dev-gtm-claude-skills brief-outline-generator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Infrasity-Labs/dev-gtm-claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/brief-outline-generator .claude/skills/brief-outline-generator && rm -rf skills-srcUse ~/.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/
Install the "brief-outline-generator" agent skill from https://github.com/Infrasity-Labs/dev-gtm-claude-skills/tree/main/skills/brief-outline-generator into .claude/skills/brief-outline-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brief-outline-generator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Infrasity-Labs/dev-gtm-claude-skills/tree/main/skills/brief-outline-generatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Infrasity-Labs/dev-gtm-claude-skills --skill brief-outline-generator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Infrasity-Labs/dev-gtm-claude-skills brief-outline-generator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Infrasity-Labs/dev-gtm-claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/brief-outline-generator .agents/skills/brief-outline-generator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "brief-outline-generator" agent skill from https://github.com/Infrasity-Labs/dev-gtm-claude-skills/tree/main/skills/brief-outline-generator into .agents/skills/brief-outline-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brief-outline-generator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Infrasity-Labs/dev-gtm-claude-skills --skill brief-outline-generator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Infrasity-Labs/dev-gtm-claude-skills brief-outline-generator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Infrasity-Labs/dev-gtm-claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/brief-outline-generator .cursor/skills/brief-outline-generator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "brief-outline-generator" agent skill from https://github.com/Infrasity-Labs/dev-gtm-claude-skills/tree/main/skills/brief-outline-generator into .cursor/skills/brief-outline-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brief-outline-generator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Infrasity-Labs/dev-gtm-claude-skills.git --path skills/brief-outline-generator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Infrasity-Labs/dev-gtm-claude-skills --skill brief-outline-generator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Infrasity-Labs/dev-gtm-claude-skills brief-outline-generator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Infrasity-Labs/dev-gtm-claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/brief-outline-generator .gemini/skills/brief-outline-generator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "brief-outline-generator" agent skill from https://github.com/Infrasity-Labs/dev-gtm-claude-skills/tree/main/skills/brief-outline-generator into .gemini/skills/brief-outline-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brief-outline-generator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Infrasity-Labs/dev-gtm-claude-skills brief-outline-generatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Infrasity-Labs/dev-gtm-claude-skills --skill brief-outline-generator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Infrasity-Labs/dev-gtm-claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/brief-outline-generator .github/skills/brief-outline-generator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "brief-outline-generator" agent skill from https://github.com/Infrasity-Labs/dev-gtm-claude-skills/tree/main/skills/brief-outline-generator into .github/skills/brief-outline-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brief-outline-generator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Infrasity-Labs/dev-gtm-claude-skills --skill brief-outline-generator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Infrasity-Labs/dev-gtm-claude-skills brief-outline-generator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Infrasity-Labs/dev-gtm-claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/brief-outline-generator .opencode/skills/brief-outline-generator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "brief-outline-generator" agent skill from https://github.com/Infrasity-Labs/dev-gtm-claude-skills/tree/main/skills/brief-outline-generator into .opencode/skills/brief-outline-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brief-outline-generator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
brief-outline-generatorGenerates a fully structured SEO content outline (not a finished brief) and exports it as a formatted .docx Word document.
Brief Outline Generator is an agent skill from Infrasity-Labs/dev-gtm-claude-skills. Generates a fully structured SEO content outline (not a finished brief) and exports it as a formatted .docx Word document. The output is a skeleton for a writer to fill in — section headings, topic prompts, angles — not pre-written paragraphs. Use this skill whenever a user provides a blog title, focus keyword, domain URL, or any combination of those and asks to generate an outline, brief, blog brief, SEO brief, article structure, or content plan. Also trigger when the user says "create a brief for X", "generate…
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including scripts and reference files (for example `README.md`, `references/section-rules.md` and `scripts/generate-brief.py`).
It sits in Documents & Office, covering Word documents, Content strategy and On-page SEO. It works with Microsoft Word. The repository describes itself as: Open-source Claude skills for GEO, AI discoverability, and developer GTM workflows. Built for developer-focused companies that want their documentation to be found, parsed, and… The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 02cfefb. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
firefly.aiFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Brief Outline Generator loads about 4k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 226 tokens; SKILL.md has 1,880 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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); the scripts in this folder are not scanned.
The full file from Infrasity-Labs/dev-gtm-claude-skills at commit 02cfefb, republished under its MIT licence (© Infrasity-Labs). 1,880 words, ~3,977 tokens.
.claude/skills/brief-outline-generator/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.Generates a content outline as a formatted .docx file. The output is a skeleton — section headings, short topic prompts, angles for each section — that a writer fills in with their own conclusions, numbers, and prose.
This is an outline generator, not a brief generator. If your output reads like an article in note form, you've gone too far. Read references/section-rules.md before generating anything.
The DOCX is always produced by running scripts/generate-brief.py. Do not reimplement the renderer. Do not write inline docx code. Assemble the config JSON and run the script.
| Field | Required | Notes |
|---|---|---|
title | ✅ | Blog post title. Warn if > 70 chars. |
focus_keyword | ✅ | Primary keyword |
sitemap_url | ✅ | Full sitemap URL, e.g. https://firefly.ai/sitemap.xml. domain_url is derived from this automatically. |
word_count_range | ✅ | e.g. 1500-2000 |
target_intent | ✅ | Informational, Commercial, Transactional, or Navigational |
target_product | ⬜ | Product name — triggers a product integration section if provided |
secondary_keywords | ⬜ | Pre-supplied list; skip generation if provided |
title: non-empty; warn (don't block) if > 70 charsfocus_keyword: non-emptysitemap_url: non-empty, starts with http:// or https:// (accept any path — .xml, .xml.gz, or extensionless dynamic URLs are all valid)word_count_range: two positive integers separated by - (e.g. 1500-2000)target_intent: one of Informational, Commercial, Transactional, Navigational (case-insensitive)Derive two values from sitemap_url:
domain_url — strip the path to get the origin, e.g. https://firefly.ai/sitemap.xml → https://firefly.ai. Used in the config JSON.domain_hostname — strip the protocol too, e.g. https://firefly.ai → firefly.ai. Used in tool calls that require a bare hostname (e.g. site:firefly.ai).Stop and report all validation errors before proceeding.
Read references/section-rules.md in full now. It contains:
topic_summary, no Writer Directives box, TLDR carries 2–3 topic pointers)Do not skip this step. Generating without reading the rules produces brief-style output every time.
DataForSEO tools are deferred — load them before calling. Call tool_search(query="on_page content parsing") at the start of this step.
Call web_fetch on sitemap_url.
<loc> tags) → extract every <loc> URL. These are your site URLs.dataforseo:serp_organic_live_advanced with keyword="site:{domain_hostname}" (e.g. site:firefly.ai) to get all indexed URLs.Cap at 20 URLs. If more exist, prioritise: homepage → product/use-case pages → blog/resource pages.
For each URL from 3a, call dataforseo:on_page_content_parsing with enable_javascript: true.
This returns fully rendered page text — headings, body copy, product descriptions, etc. Collect all output.
If a page fails (bot protection, timeout), skip it and continue — do not abort.
From the homepage content parsed in 3b, extract:
<title> → meta_title<meta name="description"> content → meta_descriptionSurface character count advisories if outside recommended ranges:
meta_title outside 50–60 chars → "Note: fetched meta title is N chars (recommended: 50–60)."meta_description outside 150–160 chars → "Note: fetched meta description is N chars (recommended: 150–160)."These are passed into the config as meta_title and meta_description and rendered in the metadata table.
From all parsed page content, extract and store:
Store as domain_context. Do not render domain_context in the output document. If all fetches fail, set domain_context = null and continue.
Based on the title pattern, pick one of:
If multiple seem to fit, use the defaults from section-rules.md. If still unclear, ask the user.
Announce the chosen archetype to the user before generating — one line, e.g. "Detected archetype: How-to. Generating outline with intro → strategies → case studies → implementation → FAQs." Let them override if they disagree.
Fetch USA monthly search volumes for the focus keyword and each secondary keyword using DataForSEO.
DataForSEO tools are deferred — load them before calling.
tool_search(query="keyword search volume google ads") to load the DataForSEO keyword tools.dataforseo:kw_data_google_ads_search_volume with the full list of keywords (focus + all secondaries) in a single call. Use location_code for the USA (2840).search_volume field for each keyword.3400 → "3,400"). Volumes under 1,000 stay as plain digits (e.g. "500", "30"). Volume of 0 should be rendered as "0", not "N/A" — it's a real datapoint."N/A" and continue. Don't abort the whole run.tool_search returns no DataForSEO tools (connector not installed), set every volume to "N/A" and surface a one-line warning: "DataForSEO connector not available — keyword volumes set to N/A."Never omit the volume field on any keyword. Every row must have one.
Flag volume mismatches. If the focus keyword's volume is more than 10× smaller than any secondary keyword's volume, tell the user before generating: "Note: your focus keyword has volume X, but secondary keyword Y has volume Z. Consider whether Y should be the focus." Let them decide; don't auto-swap.
Store as:
"focus_keyword_volume": "2,400",
"secondary_keywords": [
{ "keyword": "disaster recovery plan", "volume": "1,900" },
{ "keyword": "cloud DR strategy", "volume": "N/A" }
]If no secondary keywords were supplied, generate 5 by combining base terms from the focus keyword, top domain key terms, and modifiers ("best practices", "guide", "checklist", "for teams", current year). Then fetch volumes for them the same way.
Use the section set for the archetype you chose in Step 4. Do not force every topic into a how-to template. A listicle has no Problem or Case Studies section. A comparison has no Implementation steps.
Each section object shape:
{
"heading": "H2",
"title": "Section Title",
"rules": ["short topic prompt 1", "short topic prompt 2"],
"subsections": [
{
"heading": "H3",
"title": "Subsection Title",
"rules": ["..."],
"subsections": []
}
]
}Fields removed from the previous schema (do not use):
topic_summarydirectivesvisualfaqsrules); the writer drafts answers.Bullets in rules follow the hard rules in section-rules.md:
Length follows substance, not a fixed cap. Use as many bullets as the section honestly needs — 2 if 2, 9 if 9. The "typical ranges" in section-rules.md are orientation, not limits. Padding to hit a target number is wrong; truncating to hit one is also wrong.
TLDR section: include a TLDR heading with 2–3 short topic pointers (each ≤ 12 words) that name what the writer should cover in the TLDR. Pointers are topics, not finished takeaways. Pull from the article's central tension, the main shift the reader should make, and the practical next step. See the TLDR section in references/section-rules.md for good/bad examples.
FAQs section: Use the rules field with a list of question strings — questions only, no answers. The writer drafts the actual answers. Each question is one bullet. Focus on how questions are framed: concrete and action-oriented ("How do I install a Claude skill?"), not abstract ("How does Claude decide which skill to invoke?"). All user-supplied keywords (focus + each secondary) must appear naturally across the question set — paraphrased into something a real searcher would type, never keyword-stuffed. Typically 5–8 questions but no fixed cap. See the FAQs section in section-rules.md for examples.
Before assembling the config, walk the outline and verify (this is from section-rules.md):
topic_summary, directives, or faqs fields present? → Strip if present. FAQ questions live in rules as flat bullets."How do I install...", "What is the difference between..."), not abstract ("How does Claude decide...")? → Rewrite vague ones.If all 12 pass, proceed.
Write the complete config to /home/claude/brief-config.json:
{
"title": "...",
"focus_keyword": "...",
"focus_keyword_volume": "N/A",
"domain_url": "...",
"word_count_range": "...",
"target_intent": "...",
"target_product": "...",
"archetype": "how_to",
"meta_title": "...",
"meta_description": "...",
"secondary_keywords": [
{ "keyword": "...", "volume": "N/A" }
],
"output_path": "/mnt/user-data/outputs/outline-{file_slug}.docx",
"outline": [ ... ]
}Slug note: Two slugs are generated internally:
focus_keyword, e.g. "cloud disaster recovery" → cloud-disaster-recovery.title, e.g. "How Do Platform Teams Implement Cloud Disaster Recovery" → outline-how-do-platform-teams-implement-cloud-disaster-recovery.docx.The output_path in the config should reflect the title-based file slug.
Do not include domain_context in the config. It informs generation upstream; it never appears in the rendered doc.
python /path/to/skill/scripts/generate-brief.py --config /home/claude/brief-config.jsonThe script handles all DOCX rendering. Do not write any docx code yourself.
If the script exits non-zero, report the error from stdout/stderr and show the outline as plain text as a fallback.
Call present_files with the output path. Report:
✅ Outline generated: outline-{file_slug}.docx
Archetype: {archetype}
Slug (URL): {url_slug} (from focus keyword)
Slug (file): {file_slug} (from title)
Audience: {audience}
Focus KW: {focus_keyword} ({volume})
Secondary KWs: {kw} ({vol}), ...
Sections: {N} sectionsThe script produces a .docx with:
focus_keyword, not the title. Focus keyword and each secondary keyword get their own row with volume in col 3 (amber background). Domain and Domain Context rows are NOT included in the table.heading field renders as [H2] or [H3] grey label prefix + heading text. rules render as bullet points. No topic_summary block, no Writer Directives box — those have been removed from the format.references/section-rules.md — Outline-first rules, archetypes, per-section rules, good/bad examples. Read in Step 2 before doing anything else.scripts/generate-brief.py — The DOCX renderer. Always run this. Never reimplement it.examples/ — Canonical good outlines, for reference only. Read these to calibrate bullet length, density, and tone — not to copy section structure, headings, or topics. The archetype rules in references/section-rules.md decide structure for the current topic. Never use an example outline as a template for the user's outline, even if the topic looks similar.© Infrasity-Labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 10 other files (scripts, references) in skills/brief-outline-generator of Infrasity-Labs/dev-gtm-claude-skills.
Open the folder on GitHubat commit 02cfefb
Brief Outline Generator 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Brief Outline Generator this skillInfrasity-Labs/dev-gtm-claude-skills | 136 | — | ~4k | Automated safety check: Pass | MIT | |
| Persian Writingali2000hos/persian-writing | 368 | — | ~4.4k | Automated safety check: Warn | MIT | |
| Rfp Response Content Generationpnp/sharepoint-skills | 133 | — | ~4.8k | Automated safety check: Pass | MIT | |
| MarkitdownImCa0/just-laws | 781 | 14 repos | ~3.2k | Automated safety check: Notes | MIT | |
| DOCXrvdbreemen/OTGW-firmware | 207 | 33 repos | ~4.3k | Automated safety check: Pass | Proprietary | |
| Word Document Reader and WriterHKUDS/DeepTutor | 41k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 |
ali2000hos/persian-writing
Write natural, human-sounding Persian (Farsi) and build correct right-to-left Persian deliverables.
pnp/sharepoint-skills
Section-by-section proposal drafting agent. An agent skill from pnp/sharepoint-skills.
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
rvdbreemen/OTGW-firmware
A skill your agent uses whenever the user wants to create, read, edit, or manipulate Word documents (.docx files).
HKUDS/DeepTutor
Reads, creates and edits Word .docx files with python-docx, and drops to raw OOXML for tracked changes, comments and byte-exact edits.
isjiamu/gzh-design-skill
微信公众号文章排版引擎,将 Markdown 转换为可直接粘贴到公众号编辑器的 HTML。主题风格从 references/theme-index.md 注册的自定义主题库中选取,自动章节编号、关键词下划线标记、引言卡片、目录导航、代码块、图片/GIF、作者签名。支持 Markdown / Word(.docx) / PDF / 纯文本输入(非 Markdown…
Infrasity-Labs/dev-gtm-claude-skills
Generates a fully structured SEO content brief for a target keyword and optionally pushes it to a Notion database.
Infrasity-Labs/dev-gtm-claude-skills
Audits any API documentation site by crawling every endpoint page and scoring each one across 5 checks: description quality, OpenAPI spec presence, body param descriptions, response codes, and…
Infrasity-Labs/dev-gtm-claude-skills
Audits any developer documentation site across 33 checks in 7 categories and produces a scored report (out of 100) with Pass / Warn / Fail status per check.
Infrasity-Labs/dev-gtm-claude-skills
Generates a 3-month SEO performance HTML report for any domain using DataForSEO data.
Infrasity-Labs/dev-gtm-claude-skills
Email triage system that handles both one-time setup and recurring triage in a single skill.
Infrasity-Labs/dev-gtm-claude-skills
Audits any domain's AI-readiness by using curl to directly probe robots.txt, llms.txt, and llms-full.txt, then scores each file against a structured checklist and delivers a formatted report with…
Works with
Categories
Generates a fully structured SEO content outline (not a finished brief) and exports it as a formatted .docx Word document. Brief Outline Generator is an agent skill from Infrasity-Labs/dev-gtm-claude-skills.docx Word document.
Brief Outline Generator fits situations like: A user provides a blog title; any combination of those and asks to generate an outline; article structure; the user says create a brief for X.
Run `npx skills add Infrasity-Labs/dev-gtm-claude-skills --skill brief-outline-generator -a claude-code`. Or copy the skill folder (skills/brief-outline-generator in Infrasity-Labs/dev-gtm-claude-skills) into .claude/skills/brief-outline-generator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Infrasity-Labs/dev-gtm-claude-skills --skill brief-outline-generator -a codex`. Or copy the skill folder (skills/brief-outline-generator in Infrasity-Labs/dev-gtm-claude-skills) into .agents/skills/brief-outline-generator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Infrasity-Labs/dev-gtm-claude-skills --skill brief-outline-generator -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-outline-generator, .gemini/skills/brief-outline-generator, .github/skills/brief-outline-generator and .opencode/skills/brief-outline-generator in your project.
Going by SKILL.md and its folder, Brief Outline Generator needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: firefly.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Brief Outline Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Brief Outline Generator: Persian Writing (ali2000hos/persian-writing, 368 stars), Rfp Response Content Generation (pnp/sharepoint-skills, 133 stars), Markitdown (ImCa0/just-laws, 781 stars) and DOCX (rvdbreemen/OTGW-firmware, 207 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Infrasity-Labs (a GitHub user) maintains it in Infrasity-Labs/dev-gtm-claude-skills, which has 136 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on June 28, 2026.
Source: Infrasity-Labs/dev-gtm-claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.