bundled-skills/trading-ledger/SKILL.md
A trading journal that captures the decision, not just the fill: thesis, plan, and emotion at the moment of entry, written to the user's own Notion database; reviews grade decisions, not P&L.
npx skillsauth add FrancoStino/opencode-skills-antigravity trading-ledgerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A journaling skill in the tradition of the Market Wizards interviews: a written record of every trade's decision process, reviewed on a schedule. The user reports a trade in plain language — "bought 500 NVDA at 135, stop at 128, betting the post-earnings dip fills" — and the agent writes ticker, size, and price to the user's own Notion database plus the part every spreadsheet journal loses: the thesis, the plan, and the emotion. If no reason is stated, it asks on the spot, because entry reasons decay overnight. Reviews grade decision quality against the user's own plan — a per-plan loss scores better than a lucky win. Core contract: never fabricate when unsure; mark To-confirm and batch-ask.
Use Notion search to find candidate databases (type database, not pages) whose title
contains "trading-ledger". Before any query or create-pages call, show the user the
candidate title and data_source_id (collection://... UUID) and ask them to confirm the exact
database for this session. A single title match is not sufficient confirmation. If the connector
returns owner or schema metadata, show it as an additional identity check. Use only the
user-confirmed ID for the remainder of the session; do not re-run fuzzy selection after a
confirmation.
The companion Notion template (free, linked in the source repo) ships this schema — select values are a controlled enum, copy them exactly:
Entry (title); Ticker (text — strikes/expiries here: NVDA / NVDA 0620C150 / ESU6)Market (select): US Stocks / US Options / US Futures / A-Shares / HK Stocks / CN Futures / Crypto / OtherDirection (select): Long / Short · Size (text, with units)Entry Price / Exit Price (number) · Entry Date / Exit Date (date — expand to "date:Entry Date:start": "YYYY-MM-DD"; a bare value fails with HTTP 400)Thesis (text) — the soul of the journal; if missing, ask on the spotPlan (text) — stop / target / contingency; ask if missingEmotion (select): Calm / FOMO / Panic / Revenge / Boredom / Overconfidence — tag only what the user admits or what is plain in their words; don't diagnoseExecution (select): Per plan / Early exit / Delayed stop / Impulse / Unplanned add — filled at closeP&L (number, realized) · Status (select): Open / Closed / To-confirm / Reviewed · Review (text) · Notes (text)Parse → create a row with Status=Open. A missing thesis is the one field worth interrupting for — ask immediately. Anything else uncertain: record what you have, put the question in Notes, mark To-confirm.
Find that ticker's Status=Open row → fill Exit Price / Exit Date / P&L / Execution → set Closed. Grade Execution against the user's own Plan: stopped where planned = Per plan; ran before the target = Early exit; held through the stop = Delayed stop. No matching open row → create one marked To-confirm and ask whether the entry was never logged.
Status=To-confirm rows → collect all open questions into one message.Closed + all Open rows. For each closed trade, three questions: Did the thesis play out? (wrong thesis + profit = luck — say so). How was the execution? (a per-plan loss is a good trade). What share of trades were emotion-tagged? Write conclusions into Review, move Closed → Reviewed, and for every open position ask: does the entry thesis still hold today?Parsing rules: infer Market from symbol and context (ambiguous → ask); bought put = Short exposure + note it is a long put; record only given prices/sizes — never look up market prices to fill gaps; "today" = the user's local trading date — confirm before writing.
User: picked up some TSM July calls this morning, same thesis as before earnings
Agent: Logged ✅ TSM July calls · Long · Open
❓ To-confirm: which strike/expiry, how many contracts, at what price?
❓ And the plan — holding through earnings, or is there a stop?
User: 0731 475C, 1 contract at 18.50, holding to earnings
Agent: Updated ✅ Ticker: TSM 0731C475 · Thesis: pre-earnings run-up · Plan: hold through earnings
User: review my trades
Agent: 3 closed since last review:
· NVDA long — thesis played out, exited per plan. Good trade.
· TSLA short — thesis wrong, but stopped exactly where planned. Good trade, bad outcome.
· SPY calls — profitable, but Entry was tagged FOMO and there was no plan. Lucky, not good.
Open positions: TSM call — earnings run-up thesis still holds until the 7/29 print.
To-confirm rows. If the connector cannot query the ledger, stop after logging the user's new facts and ask them to provide the relevant row details instead of guessing matches."date:Entry Date:start": "YYYY-MM-DD".create-pages succeeds but the date column is empty (known Notion MCP issue: notion-mcp-server#121 — expanded date fields silently dropped).
Solution: After the session's first create, read the row back; if the date is empty, fill it with update-page.Status=Open + ticker; if multiple open rows match, ask which one.@time-ledger - The same "parse plain language → own Notion DB → ask instead of guessing" pattern applied to time tracking.data-ai
Snapshot a site's SEO state and detect ranking, indexation, metadata, canonical, robots, schema, and on-page regressions over time.
development
Coordinate focused subagents on substantial work, keep their ownership non-overlapping, and integrate verified results. Use for large-scope Codex tasks; keep trivial work with the coordinator.
data-ai
Use when an owner asks to find a cofounder or project partner. Assess only that agent's own owner and rank only approved profiles other agents posted for their own owners.
devops
Install, configure, verify, repair, update, and uninstall Hyprland on Fedora Linux with GPU-aware detection (NVIDIA/AMD/Intel).