Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Fixed
- **Reply template was being echoed with unfilled placeholders** (`est p`, `conv
n/100`, `+xpts`, `[URL]`). Replaced the `<token>` template in `SKILL.md` with a
filled example + an explicit "never output a literal placeholder" rule so BankrBot
substitutes real values.

### Changed (analysis ≠ sizing — the bet is the user's choice)
- **Separated analysis from sizing.** A discovery/analysis request ("show me the
markets", "what's the edge on X") now returns **analysis only** — no pre-sized bet,
Expand Down
15 changes: 11 additions & 4 deletions SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -338,12 +338,19 @@ come back with a pre-sized bet, a dollar amount, or a "place $X / reply yes" pro

**Default = ANALYSIS ONLY** (for "show me the markets", "what's the edge on X", any
discovery/analysis). No stake, no `$` amount, no confirm line — end by leaving the
decision to the user:
decision to the user. This is the **shape** — fill every field with the real value.
A correctly-filled reply looks exactly like this:
```
<Market> · <Venue> · YES <price or "live—verify [URL]"> · est <p> · conv <n>/100
edge +<x>pts → net EV +<y>% (after fees) · gate 4: <✅/❌> · verdict: <value / stand down>
<one-clause why> → want to size a bet? tell me your stake, or ask `why`
France to win the World Cup · Polymarket · YES 0.39 · est 0.42 · conv 72/100
edge +3pts → net EV +7.8% (after fees) · gate 4: · verdict: value
strong squad depth + form favor France → want to size a bet? tell me your stake, or ask `why`
```
> ⚠️ **Never output a literal placeholder.** Every field must be a real
> fetched/computed value. If a price wasn't fetched, print the **actual market URL**
> + "verify live" (not the text "[URL]"). Never emit bare tokens like `p`, `n`, `x`,
> `y`, `<price>`, `[URL]`, or `$<S>` — printing a placeholder means you failed to fill
> the field, and that reply is wrong.

Hard rules: ≈4 lines / under ~500 chars; one line per component; the "why" is ONE
clause, not a paragraph; name any failed gate.

Expand Down
Loading