profile
Skill3 starsChanged 47 days agoMITView on GitHub
Create or update a strategy profile from an Option Omega screenshot, verbal description, or block data exploration. Use when profiling a strategy, setting up a new block, importing strategy settings, or when another skill reports a missing profile.
- Reads credentials
29 other projects use a version of this.
Adopted by
Most recently taken up by
- nockawa/NockMontheir own version, first seen Nov 8, 2026
- galiprandi/job-seekertheir own version, first seen Nov 5, 2026
- cismontane-harris2642/signal-prospecting-kittheir own version, first seen Nov 1, 2026
- YahyaLendani/opus-tuner-claude-skilltheir own version, first seen Nov 1, 2026
- DataWithBaraa/claude-code-data-engineering-skillstheir own version, first seen Nov 1, 2026
- r-rogozin/chessprinttheir own version, first seen Oct 25, 2026
Used with
Projects with it also use apply, coverage and 5 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
proficientlyjobsSkillapply
Fill out a job application on Greenhouse, Lever, or Workday
Also in 3 projects that use this
PydanticSkillcoverage
Fetch coverage diff from Codecov for the current branch or a specific PR. Shows uncovered lines, patch coverage, and overall coverage change.
Also in 3 projects that use this
dragonflydbSkillbenchmark
Benchmark Dragonfly (and compare against Valkey/Redis) on local or remote cloud instances, then produce a performance + memory report with charts and a raw-data appendix. Use this whenever the user runs /benchmark, or asks to benchmark / load-test / measure throughput, QPS, latency, or memory efficiency of Dragonfly or another Redis-compatible server, to compare Dragonfly vs Valkey or Redis, or to generate a benchmark report. Trigger it even when the user just describes the goal ("see how fast Dragonfly is on this box", "compare memory per key vs Valkey") without saying the word "benchmark".
Also in 3 projects that use this
AnthropicSkillstatus
Case status summary by audience — client-facing (plain language), internal (for the professor), or court-ready (formal caption format per local rules). Same facts, different framing and depth. Use when a student needs to update the client, brief the professor, or prepare a court status report.
Also in 3 projects that use this
Microsoft AzureSkilldocs
Also in 3 projects that use this
VercelSkillsetup
Set up Vercel CLI and project configuration. Use when the user says "set up Vercel", "configure Vercel", "link to Vercel", or "vercel init".
Also in 3 projects that use this
Other versions29 projects use a version of this.
Word for word · 1
- davidromeo/tradeblocks-skills★ 3100% same
Edited · 0
None found.
Wrote their own version · 28
- ccusage/ccusage★ 19ksame name
- ryoppippi/ccusage★ 19ksame name
- FalkorDB/FalkorDB★ 10ksame name
- pytorch/executorch★ 5.2ksame name
- verl-project/verl-omni★ 1.5ksame name
- nockawa/Typhon★ 253same name
- galiprandi/job-seeker★ 120same name
- the-void-ia/void-box★ 88same name
- DataWithBaraa/claude-code-data-engineering-skills★ 84same name
- Flemma-Dev/flemma.nvim★ 57same name
18 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- compareSkill
- dc-analysisSkill
- health-checkSkill
- is-this-optimum-realSkill
- market-dataSkill
- oo-captureSkill
- optimizeSkill
- portfolioSkill
- riskSkill
- wfaSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. 0 are common, 16 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 22 edited versions we read keep these.
16
Distinctive
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 9
Create or update a strategy profile so other skills (DC analysis, health check, portfolio, risk) have the context they need.
- Very specific: line 27
Ask which strategy to profile: Use list_blocks if needed to show available blocks.
- Very specific: line 28
Check for an existing profile: Call list_profiles for the target block.
- Very specific: line 29
If profile exists: load it with get_strategy_profile, display the current profile summary, and ask: "Want to update this profile or start …
- Distinctive: line 30
If updating: go to Step 5 (Update Flow).
- Distinctive: line 31
If no profile: continue to Step 2.
- Distinctive: line 35
Ask the user for their strategy details.
- Distinctive: line 60
If no screenshot: Ask the user to describe:
- Distinctive: line 69
Only ask about fields that are ambiguous or missing from the screenshot.
- Very specific: line 92
If an OO filter doesn't have an obvious TradeBlocks field mapping, record it as an execution filter with a descriptive description field.
- Distinctive: line 98
Use the block's trade data to verify and fill fields rather than assuming from structure type.
- Very specific: line 109
If it returns 0 steps — no intraday data is available.
- Very specific: line 110
If still no data — infer greeksBias from the structure (e.g., short front / long back calendar = theta_positive), present the inference to …
- Very specific: line 111
If the user wants verified greeks, suggest running /tradeblocks:market-data to import intraday option data first, then retry.
- Distinctive: line 113
After running these checks, ask the user:
- Distinctive: line 124
When updating an existing profile:
- Very specific: line 173
After user confirms, call profile_strategy with all fields.
- Distinctive: line 177
After saving, ask: "Does this strategy exist in other blocks with different sizing or allocation?"
- Very specific: line 182
Ask what differs — typically positionSizing fields:
- Distinctive: line 191
After all profiles are saved:
- Very specific: line 193
Verify by calling get_strategy_profile for each block and displaying the stored result.
- Very specific: line 214
Don't assume greeks bias from structure type — verify with decompose_greeks
- Distinctive: line 215
Don't guess exit delta thresholds — "Exit using leg delta(s)" in OO doesn't show the values, ask the user
- Distinctive: line 216
Don't skip the block mapping question — test names and block IDs often differ
- Distinctive: line 217
Don't create a profile without confirming with the user first
- Distinctive: line 218
Don't ask 10 questions when a screenshot answers 8 of them
- Very specific: line 219
Don't auto-set reEntry: true from data alone — multiple entries may be manual trades, not strategy rules.
- Distinctive: line 220
Don't assume all sides share the same exit rules — OO supports per-side exits (e.g., put side gets a time exit, call side doesn't).
“Common” is measured: kept by at least 6 in 10 of the 22 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Strategy Profile
Create or update a strategy profile so other skills (DC analysis, health check, portfolio, risk) have the context they need. Profiles capture the trader's intent — structure, entry logic, exit rules, and regime thesis — not just what the data shows.
When This Skill Triggers
- User says "profile my strategy", "set up a profile", "import my strategy"
- User shares an Option Omega screenshot of a backtest
- Another skill calls
get_strategy_profileand gets no result - User wants to update an existing profile after changing settings
Prerequisites
- TradeBlocks MCP server running
- At least one block with trade data loaded (verify with
list_blocks)
Process
Step 1: Check for Existing Profile
- Ask which strategy to profile. Use
list_blocksif needed to show available blocks. - Check for an existing profile. Call
list_profilesfor the target block.- If profile exists: load it with
get_strategy_profile, display the current profile summary, and ask: "Want to update this profile or start fresh?" - If updating: go to Step 5 (Update Flow).
- If no profile: continue to Step 2.
- If profile exists: load it with
Step 2: Gather Strategy Details
Ask the user for their strategy details. Lead with the screenshot request — it's the fastest path.
"Share a screenshot of your strategy from Option Omega — I can pull most of the details from that. You can paste it directly or give me a file path. If you don't have a screenshot, you can describe the strategy instead."
From an Option Omega screenshot, extract:
| Field | Where to Find It |
underlying | Underlying card (e.g., "QQQ", "SPX") |
structureType | Infer from legs — 4 legs with 2 DTE groups = double_calendar, etc. |
strategyName | Title bar (e.g., "Monday 2/4 DC - QQQ") — also check the subtitle line for structural notes (e.g., "Call strikes are offset DAY OPEN") |
legs | Legs card — each row shows S/B/C/P markers, QTY, delta or offset, DTE |
exitRules | Exit card — profit target %, time exit, "Exit using leg delta(s)". OO may show separate exit cards per side (e.g., "Exit - Put Side", "Exit - Call Side") — record each as a separate exit rule with the side noted in the description field |
positionSizing | Entry card — allocation %, max contracts; or Allocation card in portfolio view |
keyMetrics | Performance cards — P/L, CAGR, Sharpe, Sortino, Win%, Max DD, etc. |
Leg interpretation from the screenshot:
S(red) = Sell,B(green) = Buy — these indicate short/longC= Call,P= PutΔsymbol = delta-based strike selection (strikeMethod: "delta")±symbol = strike offset from Current Price (strikeMethod: "offset")↔symbol = strike offset from a reference price other than Current Price — check the strategy subtitle or ask the user. Options: Current Day's Open, Previous Day's Close, Previous Week's Close, Current Week's OpenDTEcolumn = days to expiration for that leg- Legs may have unequal quantities (e.g., 3 calls / 2 puts) — capture exact QTY per leg
If no screenshot: Ask the user to describe:
- Underlying and structure type
- Leg configuration (short/long, put/call, deltas or offsets, DTEs)
- Entry rules (time, day, frequency)
- Exit rules (profit target, stops, time exit)
- Position sizing approach
Step 3: Targeted Follow-ups
Only ask about fields that are ambiguous or missing from the screenshot. Common gaps:
| Gap | Question |
| Exit delta thresholds | "The screenshot says 'Exit using leg delta(s)' — what delta values trigger the exit?" |
| Expected VIX regimes | "What VIX environments do you expect this to perform best in?" (or offer to analyze from data) |
| Strategy thesis | "In one sentence, what's the thesis behind this strategy?" (optional) |
| Block mapping | "What's the block name in TradeBlocks? The test name '[screenshot name]' may differ from the block ID." |
Mapping OO filter names to TradeBlocks entryFilters:
OO uses its own terminology for entry conditions. Map them to TradeBlocks field names:
| OO Entry Condition | entryFilters field | source |
| VIX Move Up: Min X% | vixChangePct, operator: >=, value: X | market |
| VIX below/above X | VIX_Close, operator: </>, value: X | market |
| RSI between X-Y | RSI_14, operator: between, value: [X, Y] | market |
| Use ORB - [time] (Low/High/Both) | Document as execution filter with description | execution |
| Open trades at/between [time] | Document as execution filter | execution |
| Every [day(s)] | Document as execution filter | execution |
| Use exact DTE / Use exact strike offsets | Document as execution filter | execution |
If an OO filter doesn't have an obvious TradeBlocks field mapping, record it as an execution filter with a descriptive description field.
Do not ask about fields that can be verified from the block data — handle those in Step 4.
Step 4: Verify From Block Data
Use the block's trade data to verify and fill fields rather than assuming from structure type.
| Field | How to Verify | Tool |
greeksBias | See greeks verification chain below | decompose_greeks → fallback |
reEntry | Check if multiple entries occur on the same day | run_sql: SELECT date_opened, COUNT(*) as entries FROM trades.trade_data WHERE block_id = '...' GROUP BY date_opened HAVING COUNT(*) > 1. Important: Multiple entries in the data may reflect manual trades, not strategy design. If the SQL returns results, ask the user to confirm whether re-entry is part of the strategy rules or was a one-off. |
capLosses / capProfits | Check actual P/L distribution for structural caps | get_field_statistics on netPl or plPct |
closeOnCompletion | Check if all legs close simultaneously | run_sql to examine leg-level close behavior |
Greeks bias verification chain:
- Try
decompose_greekson a recent trade (it runs replay internally and auto-fetches intraday data from Massive.com ifMASSIVE_API_KEYis set). - If it returns 0 steps — no intraday data is available. Try a few different
trade_indexvalues (recent trades are more likely to have data). - If still no data — infer
greeksBiasfrom the structure (e.g., short front / long back calendar = theta_positive), present the inference to the user, and flag it as unverified: "I couldn't verify this from trade data — does this match your understanding?" - If the user wants verified greeks, suggest running
/tradeblocks:market-datato import intraday option data first, then retry.
After running these checks, ask the user:
"Want me to run additional exploratory analysis on the block to fill in any remaining details? I can check regime performance, entry patterns, and other characteristics."
If yes, run:
analyze_regime_performancewithsegmentBy: "volRegime"to suggestexpectedRegimesget_field_statisticson entry fields to detect implicit filtersfind_predictive_fieldsto surface fields that correlate with outcomes
Step 5: Update Flow
When updating an existing profile:
- Show current profile — Display a readable summary of what's stored.
- Accept new input — User provides an updated screenshot, describes changes, or says what they modified.
- Diff old vs new — Show what changed:
Profit target: 50% → 75% Allocation: 11% → 8% Added exit rule: delta > 70 - Confirm — User approves the diff before saving.
- Save — Call
profile_strategywith the full updated profile (upsert).
Step 6: Build and Save Profile
Assemble the full profile and present it for confirmation before saving.
Display the draft profile:
Strategy: [strategyName]
Block: [blockId]
Underlying: [underlying]
Structure: [structureType]
Greeks Bias: [greeksBias]
Legs:
1. [type] [strike] [expiry] x[quantity]
2. ...
Entry Filters:
- [each filter with source tag: market/execution]
Exit Rules:
- [each rule with type and trigger]
Position Sizing:
Method: [method]
Allocation: [allocationPct]%
Max Contracts: [maxContracts]
Expected Regimes: [list]
Thesis: [thesis]
Key Metrics:
Win Rate: [value]
Profit Target: [value]
...After user confirms, call profile_strategy with all fields.
Step 7: Multi-Block Cloning
After saving, ask: "Does this strategy exist in other blocks with different sizing or allocation?"
If yes:
- Help identify the other block(s) — use
list_blocksif needed. - Retrieve the just-created profile with
get_strategy_profile. - Ask what differs — typically
positionSizingfields:method: pct_of_portfolio vs fixed_contractsallocationPct/maxContracts/maxContractsPerTradebacktestAllocationPctvsliveAllocationPct
- Clone to each additional block via
profile_strategy, updating only the block-specific fields. - Confirm each clone was saved.
Step 8: Confirm and Next Steps
After all profiles are saved:
- Verify by calling
get_strategy_profilefor each block and displaying the stored result. - Suggest next steps based on the strategy:
- Double calendar? →
/tradeblocks:dc-analysis - Want a health check? →
/tradeblocks:health-check - Multiple strategies? →
/tradeblocks:portfolio - Concerned about overfitting? →
/tradeblocks:wfa
- Double calendar? →
Interpretation Reference
For details on profile field definitions, Option Omega screenshot parsing, and common structure types, see references/profile-fields.md.
Related Skills
/tradeblocks:dc-analysis- Deep analysis for double calendar strategies (uses profile extensively)/tradeblocks:health-check- Performance metrics and stress testing/tradeblocks:portfolio- Multi-strategy correlation analysis (uses profiles viaportfolio_structure_map)/tradeblocks:risk- Kelly criterion and tail risk (uses profile for sizing context)/tradeblocks:market-data- Import market data if regime analysis is needed during profiling
What NOT to Do
- Don't assume greeks bias from structure type — verify with
decompose_greeks - Don't guess exit delta thresholds — "Exit using leg delta(s)" in OO doesn't show the values, ask the user
- Don't skip the block mapping question — test names and block IDs often differ
- Don't create a profile without confirming with the user first
- Don't ask 10 questions when a screenshot answers 8 of them
- Don't auto-set
reEntry: truefrom data alone — multiple entries may be manual trades, not strategy rules. Confirm with the user. - Don't assume all sides share the same exit rules — OO supports per-side exits (e.g., put side gets a time exit, call side doesn't). Check each exit card separately.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

