SimpleFunctions
/disciplineRisk Management3-5 minutes

Full position discipline check — adversarial review of all positions against entry hypotheses, falsification conditions, and cognitive biases.

Author

simplefunctions 1.0.0

Category

Risk Management

Tools Used

get_positionsinspect_bookwhat_ifget_contextget_feed
#positions#risk#bias-check#adversarial

Position Discipline Check

What this skill does

Reviews every open position with adversarial rigor. Forces you to confront the possibility that your thesis is wrong, your sizing is emotional, and your counterparty knows something you don't.

This is not a status update. This is a stress test of your decision-making.

When to use it

  • Weekly as a scheduled discipline review
  • After any major news event that could invalidate a thesis
  • When your portfolio P&L makes you feel either very good or very bad
  • Before adding to any existing position
  • Instructions

    Start by gathering all data. Call these tools:

  • 1. get_positions — all current positions with P&L
  • 2. inspect_book with tickers for ALL your positions (use the batch tickers parameter)
  • 3. get_context — current thesis state, confidence, edges
  • 4. get_feed — recent evaluations to check for signals you may have missed
  • Then for EACH open position, work through these five checks:

    Check 1: Entry Hypothesis

    State in one sentence: why did you enter this position? What was the core belief? If you cannot state it clearly, that itself is a finding.

    Check 2: Falsification Condition

    What specific, observable event would prove your entry hypothesis wrong? Not "things could change" — a concrete condition. Example: "If OPEC announces 2M bpd production increase, the supply shock thesis breaks." If no falsification condition was defined at entry, define one now. Has this condition been met or partially met? Check recent feed signals.

    Check 3: From-Zero Test

    Forget you own this position. If you were evaluating it fresh today:
  • Would you buy it at the current price?
  • How many contracts would you buy? (Compare to your actual holding)
  • If your fresh answer is significantly less than your actual position, you have position bias. Name it.
  • Check 4: Counterparty Analysis

    Who is on the other side of your trade? Why are they willing to sell/buy at this price? Possibilities: market maker hedging (neutral), informed trader (they know something), retail flow (noise). Use inspect_book data: is the orderbook one-sided? Is there unusual depth on one side?

    Check 5: Time Horizon Alignment

    Does your thesis timeline match the contract expiry? A thesis that's "correct over 2 years" in a contract expiring in 3 months is a bad trade. How many days until expiry? Is there a catalyst before then that would move the price?

    Portfolio-Level Checks

    After reviewing each position individually:

    Concentration: Is any single position >30% of your total portfolio cost? If yes, articulate why the sizing is justified, not just why the thesis is right.

    Correlation: Are your positions all betting on the same macro outcome? If your thesis is wrong, do ALL positions lose simultaneously?

    Patience Audit: When was the last time you recommended "do nothing"? If every check ends with an action item, you may be over-trading.

    Output Format

    For each position: ` [TICKER] — [SIZE] @ [ENTRY] → [CURRENT] ([P&L]) Entry hypothesis: ... Falsification: ... [MET / NOT MET / PARTIALLY MET] From-zero test: Would buy [X] contracts (actual: [Y]) → [ALIGNED / OVERSIZED / UNDERSIZED] Counterparty: ... Time horizon: [X days to expiry] [ALIGNED / MISALIGNED] ACTION: [HOLD / REDUCE / ADD / EXIT / WATCH] `

    Portfolio summary: ` Concentration: [OK / WARNING: {ticker} is {X}% of portfolio] Correlation: [OK / WARNING: {N} positions correlated on {theme}] Patience: [OK / WARNING: last "do nothing" was {X} days ago] Overall discipline score: [1-10] `

    Be brutally honest. The purpose of this skill is to find the trades you should NOT be in, not to confirm the ones you should.

    Use this skill

    npm i -g @spfunctions/cli && sf agent
    > /discipline