Agent skill

Oma Market

by first-fluke in first-fluke/oh-my-agent

Research customer pain points, trends, and competitors through the OMA market engine.

MITAuto-check: notesMarketing & SEO

Install Oma Market

skills CLI
$ npx skills add first-fluke/oh-my-agent --skill oma-market -a claude-code

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

GitHub CLI
$ gh skill install first-fluke/oh-my-agent oma-market --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/first-fluke/oh-my-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/oma-market .claude/skills/oma-market && 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
oma-market
GitHub stars
1.3k
Token cost
~2.3k tokens
SKILL.md length
1,027 words
Files
9
Skills in repo
57
Repo updated
First seen
Licence
MIT

At a glance

Research customer pain points, trends, and competitors through the OMA market engine.

  • Works in 4 steps: Run oma market detect-trap "". Exit 2 →… → Run oma market resolve --json. ok: false… → Read the upstream contract at… → …
  • Market discovery
  • SKILL.md covers Scheduling, Structural Flow, Logical Operations and References
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Oma Market is an agent skill from first-fluke/oh-my-agent. Research customer pain points, trends, and competitors through the OMA market engine. Use for market discovery or voice-of-customer analysis.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files (for example `resources/checklist.md`, `resources/error-playbook.md` and `resources/execution-protocol.md`).

It sits in Marketing & SEO, covering Market research. The repository describes itself as: Mechanical verification for AI coding agents — skills pack or full harness (stop-hook gates, artifact checks, independent judges). The licence is MIT.

When your agent uses it

  • Market discovery
  • Voice-of-customer analysis

Example prompts

  • “/oma-market”

Requirements

  • Python 3

Workflow steps

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

  1. Run oma market detect-trap "". Exit 2 → surface the REFUSE reason and reframe suggestion, stop.
  2. Run oma market resolve --json. ok: false → report reason (missing engine → oma market update; missing Python → the install hint) and stop…
  3. Read the upstream contract at engine.skillMd top to bottom. It is long by design; do not skim. Treat engine.root as its SKILL_DIR.
  4. Classify intent per resources/intent-rules.md; map to engine flags and framework set.

What it can do on your machine

Read from SKILL.md and the folder at commit 268bb4a. 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 (its code samples are yaml and bash).

    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

Oma Market loads about 2.3k tokens when it runs. Until then it costs about 38 tokens; SKILL.md has 1,027 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:132
    p wizard may write `~/.config/last30days/.env` with user consent.

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 first-fluke/oh-my-agent at commit 268bb4a, republished under its MIT licence (© first-fluke). 1,027 words, ~2,337 tokens.

Download SKILL.mdSave it as .claude/skills/oma-market/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
oma-market
description
Research customer pain points, trends, and competitors through the OMA market engine. Use for market discovery or voice-of-customer analysis.

Market Research Agent - Community Signal Intelligence

Scheduling

Goal

Run the upstream last30days research engine (always the latest release, managed by oma) for community-signal research, then frame the result for the user's intent (pain / trend / competitor / discovery) with strategic frameworks and save one brief under .agents/results/market/.

Intent signature
  • User asks about pain points, user complaints, or voice-of-customer signals for a product or category.
  • User asks what is trending, growing, or declining in a space this week or month.
  • User asks how one product compares to another in community sentiment or positioning.
  • User asks for discovery or exploratory market research on a topic, a person, a company, or a ticker.
When to use
  • Extracting real user pain points from community posts (Reddit with real upvotes and top comments, HN, X, Bluesky, GitHub Issues)
  • Detecting trends in a category over a window (--days 7|30|90|180)
  • Competitor sentiment analysis and SWOT / Porter's 5F positioning
  • Open-ended discovery research (--discover), person mode, hiring signals (--hiring-signals), follow-up drills (--drill)
When NOT to use
  • General web research without market framing -> use oma-search directly
  • Academic literature -> use oma-scholar
  • Live dashboards or scheduled monitoring -> oma schedule <action> wrapping this skill
Expected inputs
  • Topic string; optional --intent pain|trend|competitor|discovery (else classified per resources/intent-rules.md)
  • Optional window (--days), --vs <entity> (competitor), --frameworks auto|none|swot,5f,pestel
  • Any native last30days flag (see oma market run --help) — passed through verbatim
Expected outputs
  • Single markdown brief at .agents/results/market/{topic-slug}-{YYYYMMDD}.md
  • First line: the engine's badge (🌐 last30days v{VERSION} · synced {date}); body per the upstream OUTPUT CONTRACT; framework sections appended per intent; engine footer preserved
  • Raw engine artifacts under market.save_dir (default .agents/results/market/raw/)
yaml
outputs:
  - name: market-brief
    description: Single LAW-compliant markdown brief with framework sections
    artifact: ".agents/results/market/*.md"
    required: true
Dependencies
  • oma market resolve / oma market run — engine location, Python 3.12+ resolution, --save-dir default
  • The upstream SKILL.md at the resolved engine root (skillMd in oma market resolve --json) — the authoritative research contract
  • resources/intent-rules.md, resources/frameworks/, resources/output-laws.md, resources/execution-protocol.md
Control-flow features
  • oma market detect-trap gate before anything else (exit 2 = REFUSE, exit 4 = invalid)
  • Engine is always the latest release: oma market resolve refreshes the managed copy (throttled) and falls back to the cached copy offline; a pinned market.path / LAST30DAYS_HOME opts out
  • Sources needing keys/cookies auto-skip inside the engine; keyless sources (Reddit, HN, GitHub, Polymarket, arXiv, Techmeme, Digg, web) always run
  • Framework auto-toggle by intent (pain/trend → SWOT; competitor → SWOT + Porter's 5F; discovery → SWOT + PESTEL)

Structural Flow

Entry
  1. Run oma market detect-trap "<topic>". Exit 2 → surface the REFUSE reason and reframe suggestion, stop.
  2. Run oma market resolve --json. ok: false → report reason (missing engine → oma market update; missing Python → the install hint) and stop. Never fall back to WebSearch-only synthesis and present it as market research.
  3. Read the upstream contract at engine.skillMd top to bottom. It is long by design; do not skim. Treat engine.root as its SKILL_DIR.
  4. Classify intent per resources/intent-rules.md; map to engine flags and framework set.
Scenes
  1. PREPARE: detect-trap, resolve, read upstream SKILL.md, classify intent.
  2. UPSTREAM STEPS: follow the upstream SKILL.md exactly — Step 0 (first-run setup wizard, consent-driven), intent parsing, Step 0.45 (its own query-quality preflight), Step 0.5 / 0.55 (handle, subreddit, hashtag resolution when WebSearch is available), Step 0.75 (query plan). Skip only its "Runtime Preflight" Python-hunt block: oma market run already resolved the interpreter.
  3. RUN: wherever the upstream contract says "${LAST30DAYS_PYTHON}" "${SKILL_DIR}/scripts/last30days.py" <args>, run oma market run <args> with the same arguments (foreground, 5-minute timeout, --emit=compact). --save-dir is added automatically from market.save_dir unless you pass one.
  4. SYNTHESIZE: produce the brief exactly as the upstream OUTPUT CONTRACT dictates (badge first line, Ranked Evidence Clusters, LAWs). Then append the framework sections selected for the intent, using only clusters present in the engine output as evidence (resources/frameworks/).
  5. FINALIZE: run the self-check in resources/output-laws.md, write .agents/results/market/{topic-slug}-{YYYYMMDD}.md, preview the first 50 lines.
Show full SKILL.md (424 more words)Show less
Transitions
  • --vs <entity> or "A vs B" phrasing → competitor intent → upstream COMPARISON flow (two passes + head-to-head as its contract specifies) → SWOT + Porter's 5F.
  • Person / company / ticker topics → upstream person / hiring-signals / StockTwits handling applies unchanged.
  • engine.status: stale → include the note in the report (research ran on the cached engine version).
Failure and recovery
  • detect-trap exit 2 → REFUSE; do not run the engine; --force only on explicit user reconfirmation.
  • oma market resolve not ok → stop with the reason; no engine run.
  • Engine non-zero exit → report stderr verbatim; do not synthesize from partial stdout unless the upstream contract says the emitted compact output is still valid.
  • Upstream Python-version gate / setup wizard messages → relay to the user exactly as the upstream contract instructs.
Exit
  • Success: brief written with badge, clusters, frameworks, and engine footer; path reported.
  • Partial: engine ran with skipped sources (footer lists them) — say so; never pad with invented evidence.

Logical Operations

Actions
ActionSSL primitiveEvidence
detect-trap preflightVALIDATETopic arg, trap pattern rules
Resolve engine + PythonCALL_TOOLoma market resolve --json
Read upstream contractREADengine.skillMd
Classify intentSELECTresources/intent-rules.md
Upstream pre-research stepsINFERUpstream SKILL.md Steps 0–0.75
Run engineCALL_TOOLoma market run <args>
Synthesize + frameworksWRITEUpstream OUTPUT CONTRACT, resources/frameworks/
Self-check + write briefWRITEresources/output-laws.md, .agents/results/market/
Tools and instruments
  • oma market detect-trap <topic> (preflight gate)
  • oma market resolve [--refresh|--offline] [--json] (engine + Python resolution; managed latest)
  • oma market update (force-refresh the managed engine)
  • oma market run <engine args…> (passthrough to the resolved upstream engine’s Python entry point)
Canonical command path
bash
TOPIC="VS Code pain points"
oma market detect-trap "$TOPIC"
oma market resolve --json            # read .engine.skillMd, then follow it
# … upstream Steps 0 / 0.45 / 0.5 / 0.55 / 0.75 …
oma market run "$TOPIC" --plan "$QUERY_PLAN_FILE" --subreddits=vscode --emit=compact --save-suffix=v3
Resource scope
ScopeResource target
NETWORKInside the engine only (its per-source fetchers); GitHub for the managed engine refresh
LOCAL_FS~/.cache/oma-market/last30days/<tag>/ (engine), ~/.config/last30days/ (engine config, keys), .agents/results/market/ (brief + raw)
PROCESSoma market subcommands → the resolved upstream Python entry point
Preconditions
  • Topic passes detect-trap.
  • oma market resolve is ok (engine present; Python ≥ 3.12 found on PATH, via uv, or pinned with market.python / LAST30DAYS_PYTHON).
Effects and side effects
  • Writes the brief to .agents/results/market/{topic-slug}-{YYYYMMDD}.md and raw engine files to market.save_dir.
  • First run: the upstream setup wizard may write ~/.config/last30days/.env with user consent.
  • If Python 3.12+ is absent, oma market resolve stops before the upstream setup wizard. Relay its install hint; after an authorized interpreter installation, retry resolution. Do not expect the skipped upstream Python preflight to install it.

References

  • Execution protocol: resources/execution-protocol.md
  • Intent routing: resources/intent-rules.md
  • Output contract: resources/output-laws.md
  • Applicable framework: resources/frameworks/swot.md, resources/frameworks/porters-5f.md, or resources/frameworks/pestel.md (load only the selected framework)
  • Validation: resources/checklist.md
  • Recovery: resources/error-playbook.md
  • Upstream engine instructions: read the resolved engine.skillMd path from oma market resolve --json; upstream scripts are managed engine files, not bundled skill resources.

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

Files

SKILL.md and 8 other files in skills/oma-market of first-fluke/oh-my-agent.

  • SKILL.md
  • resources/checklist.md
  • resources/error-playbook.md
  • resources/execution-protocol.md
  • resources/frameworks/pestel.md
  • resources/frameworks/porters-5f.md
  • resources/frameworks/swot.md
  • resources/intent-rules.md
  • resources/output-laws.md

Open the folder on GitHubat commit 268bb4a

Used in 1 other repository

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in first-fluke/oh-my-agent, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Oma Market 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.

Oma Market compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Oma Market this skillfirst-fluke/oh-my-agent1.3k—~2.3kAutomated safety check: NotesMIT
Customer ResearchNexus-JPF/note-companion8706 repos~3.2kAutomated safety check: PassMIT
Creative Directorsmixs/creative-director-skill247—~5.1kAutomated safety check: PassCC-BY-4.0
Audience ResearchScrapeCreators/social-media-research-skills3.4k—~635Automated safety check: NotesMIT
Last 30 Days Trend Researchnexu-io/open-design100k—~1.3kAutomated safety check: PassMIT
Bggg Data Redditbinggandata/bggg-skills605—~1.2kAutomated safety check: PassMIT

Similar skills

  • Customer Research

    Nexus-JPF/note-companion

    When the user wants to conduct, analyze, or synthesize customer research.

    870 GitHub starsUsed in 6 repos~3.2k tokens
    Marketing & SEOAuto-check passed
  • Creative Director

    smixs/creative-director-skill

    AI creative director with recursive self-assessment. An agent skill from smixs/creative-director-skill.

    247 GitHub stars~5.1k tokensUpdated 2 mo ago
    Marketing & SEOAuto-check passed
  • Audience Research

    ScrapeCreators/social-media-research-skills

    A skill your agent uses when the user wants to evaluate a creator, influencer, or brand audience using public profile signals, TikTok audience demographics, follower/following data, comments…

    3.4k GitHub stars~635 tokensUpdated 1 mo ago
    Marketing & SEOAuto-check: notes
  • Last 30 Days Trend Research

    nexu-io/open-design

    Produces a cited Markdown briefing on recent community sentiment and social reaction to a topic, labeling every source it could not actually check.

    100k GitHub stars~1.3k tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • Bggg Data Reddit

    binggandata/bggg-skills

    Collect auditable Reddit search results and full comment trees at scale, preserve the source JSON, and normalize posts and comments into analysis-ready JSONL.

    605 GitHub stars~1.2k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Comment Mining

    ScrapeCreators/social-media-research-skills

    A skill your agent uses when the user wants to mine comments and replies for audience reactions, customer language, questions, objections, complaints, product ideas, buying intent, sentiment, or…

    3.4k GitHub stars~1k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check: notes

More from first-fluke/oh-my-agent

All 57 skills in this repo
  • OMA Multi-Agent Orchestration

    first-fluke/oh-my-agent

    Decomposes a complex feature into tasks, dispatches parallel specialist agents with durable state, and supervises verification, QA review and retries.

    1.3k GitHub stars~4.1k tokensUpdated yesterday
    Auto-check passed
  • OMA Multi-Agent Orchestrator

    first-fluke/oh-my-agent

    Splits a complex feature into prioritized tasks, spawns specialist CLI subagents in parallel, tracks them through shared memory and verifies each result.

    1.3k GitHub stars~3.1k tokensUpdated yesterday
    Auto-check passed
  • Architecture Decisions and ADRs

    first-fluke/oh-my-agent

    Evaluates system boundaries and tradeoffs and writes architecture recommendations, option comparisons or ADRs, with a Mermaid diagram when structure changes.

    1.3k GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed
  • OMA Brainstorm

    first-fluke/oh-my-agent

    Explores goals, constraints and alternative designs one question at a time and saves an approved design document before any planning or coding starts.

    1.3k GitHub stars~2.8k tokensUpdated yesterday
    Auto-check passed
  • Oma Coordination

    first-fluke/oh-my-agent

    Coordinate assigned specialist tasks and handoffs manually. An agent skill from first-fluke/oh-my-agent.

    1.3k GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Oma Image

    first-fluke/oh-my-agent

    Generate raster images or reference-guided variations through the OMA image CLI.

    1.3k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Oma Market

What does Oma Market do?

Research customer pain points, trends, and competitors through the OMA market engine. Oma Market is an agent skill from first-fluke/oh-my-agent. Research customer pain points, trends, and competitors through the OMA market engine.

When should I use Oma Market?

Oma Market fits situations like: market discovery; voice-of-customer analysis.

How do I install Oma Market in Claude Code?

Run `npx skills add first-fluke/oh-my-agent --skill oma-market -a claude-code`. Or copy the skill folder (skills/oma-market in first-fluke/oh-my-agent) into .claude/skills/oma-market in your project. Claude Code loads it when a task matches its description.

How do I install Oma Market in Codex?

Run `npx skills add first-fluke/oh-my-agent --skill oma-market -a codex`. Or copy the skill folder (skills/oma-market in first-fluke/oh-my-agent) into .agents/skills/oma-market in your project. Codex loads it when a task matches its description.

Can I use Oma Market 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 first-fluke/oh-my-agent --skill oma-market -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/oma-market, .gemini/skills/oma-market, .github/skills/oma-market and .opencode/skills/oma-market in your project.

What does Oma Market need to run?

SKILL.md names no scripts, command-line tools or credentials: Oma Market is instructions for the agent only. Our summary lists: Python 3.

Does Oma Market 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 Oma Market safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Oma Market use?

Oma Market 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 Oma Market use?

About 2.3k tokens (SKILL.md is roughly 9.3k 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 Oma Market?

Skills that share tags, products or a category with Oma Market: Customer Research (Nexus-JPF/note-companion, 870 stars), Creative Director (smixs/creative-director-skill, 247 stars), Audience Research (ScrapeCreators/social-media-research-skills, 3.4k stars) and Last 30 Days Trend Research (nexu-io/open-design, 100k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Oma Market?

first-fluke (a GitHub organization) maintains it in first-fluke/oh-my-agent, which has 1,336 GitHub stars. The repository holds 57 skills in this directory. The repository was last updated on October 10, 2026.

Source: first-fluke/oh-my-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.