Skill: ovels/al-brooks-price-action (version 1.0.0)

--- name: al-brooks-price-action description: | Analyze charts, OHLC bars, candlestick sequences, and trading context using Al Brooks style price action. Use this skill when the user asks for Brooks 风格价格行为分析、Always In 偏置、趋势 vs 震荡判断、 setup 识别（High 1/2/3/4、Low 1/2/3/4、breakout pullback、tight channel breakout pullback、 final flag、wedge top/bottom、double top/bottom pullback、ioi）、signal bar 质量、 scalp vs swing、entry/stop/target 规划，或明确的 no-trade 判定。 --- # Al Brooks Price Action Use this skill for discretionary price action analysis. Prioritize context, current tradeability, and the hard right edge of the chart. Do not drift into macro or indicator-heavy analysis unless the user explicitly asks for it. ## Load References Selectively - Read [references/core_concepts.md](references/core_concepts.md) when you need Brooks-style terminology, mental models, or a fast glossary. - Read [references/market_context_checklist.md](references/market_context_checklist.md) when the task is mainly about market phase, Always In, magnets, breakout mode, or whether the chart is tradable at all. - Read [references/setup_taxonomy.md](references/setup_taxonomy.md) when identifying or validating a concrete setup near the latest bars. - Read [references/entries_and_exits.md](references/entries_and_exits.md) when the user wants entry, stop, target, scalp vs swing, or trade management detail. ## Accepted Inputs - OHLC text or tables - chart screenshots - notes from another analyst or agent - multi-timeframe summaries If the input is incomplete, state what is missing and continue with the visible evidence instead of blocking. ## Operating Rules 1. Start with context, not the signal bar. Higher timeframe and recent structure outrank a single candle. 2. Focus on the live area. The active trade trigger should come from the latest 1-3 bars, not from an old pattern that already played out. 3. Default to `trading_range` or `no trade` when evidence is mixed. 4. Separate `actionable`, `watch`, and `none`. Do not force a trade. 5. Use Brooks-style terms, but explain the bottom line in plain language. 6. Counter-trend setups are lower quality unless the reversal evidence is unusually strong and location is excellent. 7. Do not hallucinate hidden bars or unreadable prices from screenshots. If a value is unclear, say so. ## Analysis Workflow 1. Identify instrument, timeframe, and whether the user cares about scalp, swing, or both. 2. Classify context: - `market_phase`: `trending`, `trading_range`, `broad_channel`, or `unknown` - `always_in`: `long`, `short`, or `unknown` - nearby magnets: prior high/low, breakout point, EMA, measured move target, range edge, gap close, session extreme 3. Decide the dominant story: - trend continuation - breakout test / breakout pullback - reversal attempt - breakout mode / two-sided range 4. Evaluate only the setup nearest the hard right edge: - setup name - direction - signal bar quality - context fit - whether confirmation is still needed 5. Produce one of three outcomes: - `actionable` - `watch` - `none` 6. If the setup is tradable, explain trigger, invalidation, first target, and whether it is better framed as scalp or swing. 7. If it is not tradable, say what would need to change to make it tradable. ## Preferred Output Use this shape unless the user asks for a different format. ### Market Context - `market_phase` - `always_in` - dominant side - magnets / important levels ### Active Setup - setup name - `long`, `short`, or `none` - why it qualifies - why it might fail ### Tradeability - `actionable`, `watch`, or `none` - entry trigger - stop logic - target logic - `scalp`, `swing`, or `none` - invalidation ### Bottom Line One short paragraph in plain language. ## Optional Machine-Readable Block When the user wants structured output, append a JSON block using this schema: ```json { "market_phase": "trending|trading_range|broad_channel|unknown", "always_in": "long|short|unknown", "setup_status": "actionable|watch|none", "setup_type": "string", "direction": "long|short|none", "signal_bar_quality": "high|medium|low|none", "entry_trigger": "string", "stop_logic": "string", "target_1": "string", "target_2": "string", "trade_style": "scalp|swing|none", "invalidation": "string", "confidence": 0.0 } ``` ## Special Cases - For screenshots: describe only what is visible, then infer cautiously. - For multi-timeframe requests: analyze higher timeframe first, lower timeframe second. - For post-trade reviews: separate "what the chart offered then" from "what is tradable now". - For automation prompts: keep labels stable and concise so downstream parsers can consume them.

path: agents/openai.yaml
content: interface:
  display_name: "Al Brooks Price Action"
  short_description: "Analyze charts and setups with a Brooks-style price action lens"
  default_prompt: "Use $al-brooks-price-action to classify the chart context, identify the active Brooks-style setup near the hard right edge, and decide whether it is actionable, watch, or no trade."

policy:
  allow_implicit_invocation: true


path: references/core_concepts.md
content: # Core Concepts

## Core Lens

- Price action is about reading the auction and the likely next path, not predicting with certainty.
- Context matters more than candle names. A setup is only useful when context, signal, and room all line up.
- Most bars in trading ranges disappoint. Most pullbacks in strong trends are attempts to rejoin the trend until proven otherwise.
- If the chart is ambiguous, treat it as a range and reduce aggression.

## Vocabulary

- `Always In`: the side that currently has control. Ask which side would be more painful to exit if you were trapped against it.
- `Trend`: repeated closes in one direction, limited overlap, and pullbacks that fail to reverse control.
- `Trading Range`: overlap, tails, failed breakouts, and disappointment in both directions.
- `Broad Channel`: a trend exists, but swings are large and two-sided enough to hurt late entries.
- `Magnet`: a price level the market is likely to test, such as a prior high/low, breakout point, EMA, open, or measured move target.
- `Breakout Mode`: compression where both sides are building pressure and either breakout could become the move.
- `Signal Bar`: the bar used for a stop-entry decision. Its body, close, and tails matter.
- `Follow-Through`: what the next bar or next few bars do after the signal bar.
- `Second Entry`: the second attempt after an initial reversal fails. Often better than the first reversal attempt.
- `Wedge`: three pushes in one direction with weakening momentum, usually near a meaningful location.
- `Final Flag`: a late trend pause that can fail and lead to a larger reversal.
- `Measured Move`: projecting a prior leg or range height to estimate a target.
- `Scalp`: a quick profit objective when context is mixed or room is limited.
- `Swing`: holding for a larger move when context, trend, and room are all favorable.

## Good Signal Bar vs Weak Signal Bar

- Good bull signal bar: closes near its high, has a meaningful body, and lacks a large top tail.
- Good bear signal bar: closes near its low, has a meaningful body, and lacks a large bottom tail.
- Weak signal bar: small body, prominent opposite tail, or poor location.
- A strong signal bar can still be a bad trade if it is in the middle of a range or directly into a magnet.

## Fast Heuristics

- If you are unsure whether it is a trend or a range, call it a range.
- Strong trends often go farther than reversal traders expect.
- Reversals usually need location, a credible signal, and often a second attempt or wedge logic.
- A setup count by itself is not enough. `High 2` in the middle of a choppy range is still low quality.
- The market often has more inertia than traders want. Do not flip bias without clear evidence.

## Stable Labels For Downstream Use

- `market_phase`: `trending`, `trading_range`, `broad_channel`, `unknown`
- `always_in`: `long`, `short`, `unknown`
- `setup_status`: `actionable`, `watch`, `none`


path: references/setup_taxonomy.md
content: # Setup Taxonomy

Use these definitions near the hard right edge. Setup names are secondary to context.

## Trend Continuation Setups

### High 1 to High 4

- Use for long continuation attempts inside a bull trend or bull leg.
- Count the number of pullback attempts after the trend resumes upward.
- Higher counts are not automatically better. Context still dominates.
- Better when:
  - trend is still intact
  - pullback is orderly, not a full reversal
  - signal bar is bullish or at least acceptable
- Downgrade when:
  - the pullback is deep and two-sided
  - the setup forms in the middle of a range
  - the market is pressing into resistance or a measured move target

### Low 1 to Low 4

- Use for short continuation attempts inside a bear trend or bear leg.
- Same logic as High 1 to High 4, mirrored for the short side.

### Breakout Pullback

- A breakout has already occurred and price is now testing the breakout area for the first meaningful time.
- Better when:
  - breakout had strong bodies and follow-through
  - pullback is small or hesitant
  - entry is in the direction of the breakout
- Downgrade when:
  - breakout lacked follow-through
  - pullback is too deep
  - the chart is in obvious breakout mode and not yet resolved

### Tight Channel Breakout Pullback

- A tight channel often ends with a breakout attempt and then a first pullback.
- Better when the channel was clear, relentless, and the first counter move was small.
- Downgrade when the channel has already widened into a broad channel.

### IOI

- Inside bar, outside bar, inside bar sequence.
- Often represents compression and breakout mode.
- Better when the pattern forms as a pause inside an existing trend.
- In a range, treat it more as breakout mode than as a high-confidence directional entry.

## Reversal Setups

### Wedge Top / Wedge Bottom

- Three pushes in one direction with reduced momentum or worsening follow-through.
- Better when the wedge appears:
  - at a channel line
  - after a climax
  - at a measured move target
  - near a major prior high or low
- Downgrade when:
  - it appears in the middle of a range
  - there is no credible reversal signal bar
  - the trend is still very strong and has not shown loss of pressure

### Double Top Pullback / Double Bottom Pullback

- A test of a prior extreme that fails to continue cleanly.
- Better when the second test has weaker momentum or a strong rejection bar.
- Downgrade when the two tests are too far apart to matter or when the entire structure is just range noise.

### Final Flag

- A late continuation structure near the end of a mature trend.
- It often looks like a normal pause until the breakout fails.
- Better when the trend is already climactic or stretched and the flag is late.
- Do not force this label early in a healthy trend.

## Signal Quality Checklist

Ask these for every setup:

- Is the setup aligned with `always_in`?
- Is the signal bar strong enough for a stop entry?
- Is there room to the first realistic target?
- Is the setup at a meaningful location?
- Does the market need one more bar of confirmation?

If the answer is mixed, use `watch` instead of `actionable`.

## Common Failure Patterns

- A nice-looking signal bar in the middle of a range
- A continuation setup after the trend has already become climactic
- A reversal setup without location
- A breakout pullback after a weak or failed breakout
- Counting bars mechanically while ignoring market phase


path: references/market_context_checklist.md
content: # Market Context Checklist

Use this checklist before naming a setup. Context decides whether a pattern matters.

## 1. Start With The Higher Timeframe

- Is price near a prior swing high or low?
- Is price testing a breakout point, channel line, EMA, gap, or measured move?
- Is there room to move, or is price trapped in the middle of a larger range?

## 2. Classify The Recent Environment

### `trending`

- Several closes in one direction
- Limited overlap
- Pullbacks are shallow or brief
- Breakouts get follow-through

### `trading_range`

- Repeated overlap
- Big tails
- Breakouts fail quickly
- Reversals occur every few bars

### `broad_channel`

- There is directional drift
- But swings are deep enough to punish weak entries
- Strong continuation is less reliable than in a tight trend

If you cannot clearly distinguish the environment, use `unknown` or downgrade to `trading_range`.

## 3. Decide `Always In`

Use the recent sequence, not a single bar.

### `always_in = long`

- Bull bars are stronger than bear bars
- Pullbacks are weak, overlapping, or quickly bought
- Price spends most of its time above EMA or above a recent breakout point

### `always_in = short`

- Bear bars are stronger than bull bars
- Rallies are weak, overlapping, or quickly sold
- Price spends most of its time below EMA or below a recent breakout point

### `always_in = unknown`

- Reversals keep failing both ways
- Opposing bars are symmetrical
- The chart is balanced or trapped around magnets

## 4. Mark The Magnets

Useful magnets include:

- prior day/session high or low
- prior swing high or low
- range top or range bottom
- breakout point
- EMA or moving average cluster
- measured move target
- opening price or gap close on intraday charts

If the market is very close to a magnet, expect hesitation, profit-taking, or failed follow-through.

## 5. Ask Who Is Trapped

- Are breakout traders stuck from the latest failed move?
- Are counter-trend traders trapped by a strong surprise bar?
- Is the market likely to move just far enough to punish the weaker side before choosing direction?

Trap logic often explains why follow-through appears or disappears.

## 6. Filter For Tradeability

Downgrade or reject the setup when:

- it is in the middle of a clear range
- it runs directly into a nearby magnet
- the signal bar is weak
- the setup is counter-trend without strong reversal evidence
- the market has repeatedly disappointed in both directions

## Bottom-Line Rule

First decide whether the chart is tradable. Only then decide which setup name fits. If tradeability is low, output `watch` or `none` even when you can describe a recognizable pattern.


path: references/entries_and_exits.md
content: # Entries And Exits

Use this file when the user wants a concrete trade plan. Keep the plan consistent with chart context.

## Entry Logic

### Stop Entry

- Default choice for strong continuation or strong reversal signals.
- Bull entry: above a good bull signal bar or above the confirming bar.
- Bear entry: below a good bear signal bar or below the confirming bar.

### Limit Entry

- More suitable inside trading ranges or on pullbacks to obvious support or resistance.
- Lower probability if used against a strong trend without other support.

### Market Entry

- Reserve for exceptional urgency, such as a strong surprise breakout with obvious trapped traders.
- Explain why waiting for a stop entry is likely to miss too much of the move.

## Stop Placement

- Start with context, not with the smallest possible stop.
- A small signal bar does not automatically justify a tight stop.
- Common stop logic:
  - beyond the signal bar when the setup and context are both strong
  - beyond the recent swing when a wider failure point matters more
  - beyond the opposite side of the setup when the market is noisy

## Targets

### Scalp

- Use when the market is in a range, room is limited, or the setup quality is mixed.
- Common targets:
  - a quick test of the prior bar extreme
  - a nearby swing point
  - the middle or opposite side of a small range

### Swing

- Use when context, momentum, and room all support a larger move.
- Common targets:
  - measured move
  - prior major high or low
  - trend resumption after the pullback

### Scale Out

- Consider partial profit when the setup is good but not clean enough for an all-or-nothing swing hold.
- A common pattern is partial profits at the first target and a runner for a measured move or trend leg.

## Scalp vs Swing Decision

Prefer `scalp` when:

- the chart is in a trading range
- the setup is counter-trend
- the first target is close
- signal quality is only moderate

Prefer `swing` when:

- the market is clearly trending
- the setup is trend-aligned
- there is room to a larger target
- follow-through probability is above average

## No-Trade Conditions

Output `none` when:

- there is no clear edge
- the setup is too close to a magnet
- the stop is too wide relative to the realistic target
- the chart is balanced and waiting for breakout resolution
- the market has become too climactic to chase but not credible enough to fade

## Compact Planning Template

- Entry trigger
- Stop logic
- First target
- Second target or `none`
- `scalp`, `swing`, or `none`
- Invalidation condition
- One-sentence reason this trade is worth taking or skipping


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)