pre-trade-discipline-gate
tradermonty/claude-trading-skills
Pre-trade checklist gate blocking planless, oversized, revenge-risk, and circuit-breaker-blocked manual orders.
What is pre-trade-discipline-gate?
Evaluates a local pre-trade checklist before manual order entry, blocking entries that lack written plans, exceed position size limits, violate revenge-trade windows, or conflict with market-regime or circuit-breaker decisions. Journals all decisions for trader-memory-core review without placing orders or calling broker APIs.
- Validates entry against written plan, predefined stop, and confirmed position size
- Detects oversized risk by comparing actual_risk_dollars to planned_risk_dollars
- Blocks revenge trades by checking trader-memory-core for recent losses within cooldown window
- Integrates upstream exposure-coach and drawdown-circuit-breaker recommendations
- Journals all decisions with full checklist answers for audit and trader-memory-core linking
- Links pre-trade decisions to thesis state without advancing review schedules
How to install pre-trade-discipline-gate
npx skills add https://github.com/tradermonty/claude-trading-skills --skill pre-trade-discipline-gate- Python 3.9+
- Local JSON or YAML checklist file with candidate answers (symbol, thesis_id, order_intent, entry_in_written_plan, stop_predefined, size_within_plan, planned_risk_dollars, actual_risk_dollars)
- Optional: trader-memory-core thesis state under state/theses/
- Optional: exposure_decision JSON from market-regime-daily / exposure-coach
- Optional: circuit_breaker_decision JSON from drawdown-circuit-breaker
How to use pre-trade-discipline-gate
- 1.Create a JSON or YAML checklist file with candidate orders, including symbol, thesis_id, order_intent, and boolean confirmations for written plan, stop, and size
- 2.Populate planned_risk_dollars and actual_risk_dollars as finite non-negative numbers for each actionable candidate
- 3.Run the CLI: python3 skills/pre-trade-discipline-gate/scripts/check_pre_trade_discipline.py --answers-file <checklist> --state-dir state/theses --market-regime-decision <exposure_decision.json> --circuit-breaker-decision <circuit_breaker_decision.json> --output-dir reports/pre-trade-discipline --journal-dir state/journal/pre-trade-discipline
- 4.Interpret the decision: GO (proceed), REVIEW_REQUIRED (fix inputs), NO_GO (blocked by rule), or NO_ACTIONABLE_ORDERS (no manual entries)
- 5.Review the markdown report and JSONL journal entry; link the decision artifact to the thesis for later trader-memory-core audit
Use cases
- Block a manual entry that lacks a written plan or predefined stop before it reaches the broker
- Prevent oversized positions by catching actual_risk_dollars exceeding planned_risk_dollars at order time
- Stop revenge trades during the cooldown window after a recent loss
- Enforce market-regime restrictions (REDUCE_ONLY, CASH_PRIORITY) before entry
- Halt trading during circuit-breaker cooldown or halted periods
- Discretionary traders using manual order entry workflows
- Trading teams implementing pre-trade discipline and checklist adherence
- Traders integrating trader-memory-core thesis tracking with order gates
- Risk managers enforcing position-sizing and revenge-trade rules
pre-trade-discipline-gate FAQ
Only ENTRY_READY, ACTIONABLE, ACTIONABLE_DAY1, and MANUAL_ORDER intents are gated. WATCHLIST, DELAYED_EP_WATCH, PEAD_HANDOFF, IGNORE, and REJECTED are journaled but do not create an order permission.
The candidate is blocked with a NO_GO decision. The gate enforces that actual risk must not exceed the plan.
No. The gate is intentionally offline. It produces a pre-trade decision artifact and journals the result; manual order entry remains the trader's responsibility.
It reads trader-memory-core thesis state to check for losing exits or partial losses within the revenge window. If a recent loss is found, actionable candidates are blocked.
Yes, but missing or unreadable upstream artifacts produce REVIEW_REQUIRED for actionable orders. Non-actionable orders remain NO_ACTIONABLE_ORDERS. Provide the artifacts when available for full rule enforcement.
Full instructions (SKILL.md)
Source of truth, from tradermonty/claude-trading-skills.
name: pre-trade-discipline-gate description: Evaluate a local pre-trade checklist before manual order entry, blocking planless, oversized, revenge-risk, market-regime-blocked, or circuit-breaker-blocked entries while journaling the decision for trader-memory-core review.
Pre-Trade Discipline Gate
Overview
Evaluate whether a planned manual order should proceed before it is placed at the broker. This skill reads a local checklist plus optional market-regime, circuit-breaker, and trader-memory-core artifacts. It produces a pre_trade_discipline_decision artifact and can link that artifact back to the related thesis without changing the thesis review schedule.
The gate is intentionally offline. It does not place orders, cancel orders, call a broker API, or fetch market data.
When to Use
- Immediately before placing any manual entry order
- When a candidate has passed chart validation and position sizing
- After a recent loss, to avoid revenge trades during the cooldown window
- When the workflow has an upstream
exposure_decisionandcircuit_breaker_decision - When you want checklist adherence to be visible in later trader-memory-core reviews
Prerequisites
- Python 3.9+
- A local JSON or YAML answers file with candidate-level checklist answers
- Optional trader-memory-core thesis state under
state/theses/ - Optional
exposure_decisionJSON from market-regime-daily / exposure-coach - Optional
circuit_breaker_decisionJSON from drawdown-circuit-breaker
Workflow
Step 1: Prepare the Checklist
Create a JSON or YAML file with candidate answers. Only actionable manual-order intents are gated. Watchlist and ignore intents are journaled as NO_ACTIONABLE_ORDERS.
{
"candidates": [
{
"symbol": "AAPL",
"thesis_id": "th_aapl_gm_20260703_0001",
"order_intent": "ENTRY_READY",
"entry_in_written_plan": true,
"stop_predefined": true,
"size_within_plan": true,
"planned_risk_dollars": 500,
"actual_risk_dollars": 500,
"notes": "Entry matches the journaled breakout plan."
}
]
}
Actionable intents are ENTRY_READY, ACTIONABLE, ACTIONABLE_DAY1, and MANUAL_ORDER. Non-actionable intents such as WATCHLIST, DELAYED_EP_WATCH, PEAD_HANDOFF, IGNORE, and REJECTED are recorded but do not create an order permission.
Provide both planned_risk_dollars and actual_risk_dollars for every actionable candidate. Use a finite, non-negative number or numeric string; zero is valid. Treat missing values, booleans, non-numeric strings, NaN, infinities, and negative values as REVIEW_REQUIRED inputs and review them before placing an order.
Step 2: Run the Gate
python3 skills/pre-trade-discipline-gate/scripts/check_pre_trade_discipline.py \
--answers-file state/manual-entry-checklist.json \
--state-dir state/theses \
--market-regime-decision reports/exposure_decision_latest.json \
--circuit-breaker-decision reports/circuit_breaker_decision_latest.json \
--output-dir reports/pre-trade-discipline \
--journal-dir state/journal/pre-trade-discipline
Set --as-of for deterministic testing or backfills:
python3 skills/pre-trade-discipline-gate/scripts/check_pre_trade_discipline.py \
--answers-file state/manual-entry-checklist.json \
--as-of 2026-07-03T12:00:00-04:00
Step 3: Interpret the Decision
| Decision | Meaning |
|---|---|
GO | All actionable manual-order candidates passed the checklist and upstream gates |
REVIEW_REQUIRED | Inputs are missing, unknown, or journaling failed; do not place orders until reviewed |
NO_GO | At least one actionable candidate violated a discipline rule |
NO_ACTIONABLE_ORDERS | The file contains no actionable manual orders; nothing should be placed |
By default the CLI exits 0 for every valid decision and exits 1 only for input or runtime errors. Use --fail-on-non-go when a shell pipeline should return 2 for any non-GO decision.
Rules
The gate blocks an actionable candidate when:
- The entry is not confirmed in the written plan
- The stop is not predefined
- The size is not confirmed within plan
- Either risk-dollar field is missing or is not a finite, non-negative number (
REVIEW_REQUIRED) actual_risk_dollarsexceedsplanned_risk_dollars- trader-memory-core has a losing exit or partial loss inside the revenge window
- exposure-coach recommendation is
REDUCE_ONLYorCASH_PRIORITY - drawdown-circuit-breaker recommendation is
COOLDOWN,HALTED, orTRADING_HALTED
Missing or unreadable market-regime or circuit-breaker artifacts produce REVIEW_REQUIRED for actionable orders. If no actionable order exists, the result remains NO_ACTIONABLE_ORDERS.
Outputs
The script writes:
pre_trade_discipline_decision_YYYY-MM-DD_HHMMSS.json- A matching markdown report unless
--json-onlyis set - A JSONL journal row under
state/journal/pre-trade-discipline/when--journal-diris provided
Each candidate result includes a checklist_answers object with the written-plan, stop, size, risk-dollar, and notes answers used for the decision, so later reviews can audit what was answered at order time. Invalid risk-dollar values are stored as JSON null. Valid JSON decimals that cannot round-trip through a binary float are retained as numeric strings so underflow or precision loss cannot change the gate decision.
If a candidate includes thesis_id and --state-dir is provided, the JSON report is linked into the thesis linked_reports list using trader-memory-core link_report. The skill does not call mark_reviewed and does not change monitoring review dates.
Resources
scripts/check_pre_trade_discipline.py- Main CLI and rule enginereferences/discipline_gate_framework.md- Rule definitions and integration notesskills/trader-memory-core/schemas/thesis.schema.json- Thesis state schema
Key Principles
- Manual execution only - The output is a pre-broker checklist gate, not an order router.
- Written plan first - No written entry plan, stop, or size confirmation means no manual entry.
- Producer-compatible state reading - Revenge-risk detection follows trader-memory-core timestamp and outcome behavior.
- Journal without review side effects - The gate links reports to theses without advancing review schedules.
Related skills
More from tradermonty/claude-trading-skills and the wider catalog.

residual-edge-analyzer
Separate strategy returns into baseline exposure and residual alpha using returns-based OLS attribution with HAC inference and rolling stability analysis.

scenario-analyzer
Analyze 18-month investment scenarios from news headlines with dual-agent review.

sector-analyst
Analyze sector rotation patterns and market cycle positioning from CSV data without API keys.

signal-postmortem
Record and analyze post-trade outcomes to track signal quality and feed improvement feedback to edge pipeline.

skill-designer
Generate Claude CLI prompts to auto-create complete skills from structured idea specifications.

skill-idea-miner
Mine Claude Code session logs to extract and score skill idea candidates for your weekly pipeline.