← Back to Skills Marketplace
sbauch

Bracketsbot Skill

by sbauch · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ⚠ suspicious
223
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install brackets-bot
Description
Generate, validate, and submit BracketsBot NCAA tournament brackets.
README (SKILL.md)

BracketsBot Skill

This skill helps agents run the bracketsbot CLI safely and consistently.

When To Use

Use this skill when user asks to:

  • generate tournament bracket picks with AI/model logic
  • step through matchups and decide winners incrementally
  • run a custom policy function over the bracket
  • prepare (not directly sign) transaction payloads for onchain submission
  • generate a shareable frontend URL so a human can review and submit a model-picked bracket (in-progress or full)

First-run onboarding (do this before filling a bracket)

When: The user has just asked to generate a bracket, fill out picks, or do something with the BracketsBot bracket—and you have not already agreed on how to proceed in this conversation.

Do not run walk-next, walk-run-policy, or semantic-run until you have done onboarding and the user has answered (or clearly chosen a path).

1. Relay this (or similar) text first:

“I can help you build a March Madness bracket for BracketsBot. We’ll pick winners for all 63 games, then you can submit it on-chain. Before I start, I need a couple of choices from you.”

2. Ask these questions (one at a time or together):

  • How do you want to pick the games?

    • Together: We chat about every game step by step. I’ll follow simple rules, learn your approach, and make suggestions as we go.
    • Instructed: You give me a single general instruction for your bracket. I’ll check each matchup on my own and pick winners based on your rules.
    • Coded: We write a complex model using team statistics. At each matchup I’ll run our code that weighs stats and other heuristics. Which do you prefer?”
  • How do you think you’ll want to submit when we’re done?

    • Browser link: I’ll give you a link; you open it and submit with your browser wallet (e.g. MetaMask) on the BracketsBot site—no extra wallet tools needed.
    • Wallet/CLI: You’ll use something like Bankr or another signer; I’ll prepare the transaction and you sign from there. No need to decide now; I’ll ask again when the bracket is complete. Any preference for now?”

3. After they answer, proceed with the workflow that matches their choice: Together → A (stepwise walk), Instructed → B (semantic-run with their rule), Coded → C (walk-run-policy with a stats module). If they didn’t choose a submission path yet, that’s fine; ask again when the bracket is complete (see below).

Key Principles

  1. Canonical winner ID is seed (1..64) for all predictions/submission.
  2. Two distinct tasks: (1) filling out the bracket (picks), and (2) submission (getting it on-chain). Do first-run onboarding before filling (see above). When the bracket is complete (63 picks), prompt the user for how they want to submit—don’t assume.
  3. Prefer validation before submission (validate command).
  4. Use stepwise commands for chat-agent loops, policy command for developer code loops.
  5. For chat agents, prefer natural-language policy execution (do not write JS unless user asks).

When the bracket is complete (63 picks): ask how to submit

After generating or walking a full bracket, prompt the user for their preferred submission path:

  1. Suggest the share link first: Run share-link (or share-link --predictions-file ./out/model-bracket-output.json if the bracket came from Instructed or Coded and was written to that file). Give them the shareUrl and say they can open it in a browser and submit with their browser wallet (MetaMask, Coinbase Wallet, etc.) on the BracketsBot site—no CLI or external wallet needed.
  2. Otherwise ask: “Do you want to use a wallet skill or CLI (e.g. Bankr, prepare-submit-tx) to sign and submit from here?” If yes, run prepare-submit-tx and hand the payload to their chosen tool.

Example prompt you can use: “Your bracket is complete. How do you want to submit? I can give you a link to open in your browser and submit with your browser wallet, or we can prepare a transaction for you to sign with Bankr / another wallet tool—which do you prefer?”

Commands

Prefer direct CLI commands:

bracketsbot validate --json
bracketsbot prepare-submit-tx --json

Stepwise / instructed / share:

bracketsbot walk-next --json
bracketsbot walk-apply --winner-seed \x3Cseed> --json
bracketsbot walk-run-policy --policy-module \x3Cpath> --json
bracketsbot semantic-run --policy "\x3Cpolicy text>" --predictions-file \x3Cfile> --json
bracketsbot share-link --json

share-link: Defaults to in-progress walk state (./out/model-walk-picks.json). After walk-apply (Together), run share-link with no arguments to get a link for the current picks. For a full bracket from Instructed or Coded (e.g. written to ./out/model-bracket-output.json), run share-link --predictions-file ./out/model-bracket-output.json. The frontend shows only the picks in the link (no auto-fill).

If bracketsbot is not on PATH in local development, fallback to:

pnpm run cli \x3Ccommand> ...

Recommended Workflows

A) Together (stepwise chat)

User chose Together in onboarding: chat each game, learn their approach.

  1. call walk-next
  2. apply the user's rules / suggestions to teamA vs teamB; call walk-apply --winner-seed ...
  3. repeat until done: true
  4. Then ask how they want to submit (share link vs wallet tool)

Example natural-language policy prompts:

  • "Pick based on mascot battle outcomes."
  • "Always favor better defense unless the underdog has higher recent momentum."
  • "Prioritize upset potential in round 1, then revert to strongest teams."

B) Instructed (one general rule)

User chose Instructed in onboarding: one general instruction; agent applies it to every matchup.

  1. Agent reasons through all 63 matchups using the user's rule; produces 63 winner seeds.
  2. Write picks to a JSON file.
  3. Run semantic-run --policy "\x3Cuser's instruction>" --predictions-file \x3Cfile>.
  4. Then ask how they want to submit (share link vs wallet tool)

C) Coded (stats/heuristic module)

User chose Coded in onboarding: we write a model using team stats; code runs at each matchup.

  1. create module exporting chooseWinner (weighs stats, etc.)
  2. call walk-run-policy --policy-module ...
  3. call validate
  4. Then ask how they want to submit (share link vs wallet tool)

D) Share link (frontend review / submission)

When the user wants to open the bracket in the frontend to review or submit:

  1. In-progress (Together, stepwise walk): run share-link with no arguments. It reads the same file walk-apply writes. Give the user the shareUrl from the JSON output.
  2. Full bracket (Instructed or Coded, output in a file): run share-link --predictions-file ./out/model-bracket-output.json (or the path where picks were written). Give the user the shareUrl.

The frontend shows only the picks in the URL (no auto-fill of remaining games). If the user doesn’t have wallet tools set up (e.g. no Bankr or CLI signer), the share link is the submission path: they open it in a browser and submit using their browser-based wallet (e.g. MetaMask, Coinbase Wallet) from the BracketsBot site.

Wallet Submission

Two paths; the agent should ask when the bracket is complete (see “When the bracket is complete” above):

  • Browser: Run share-link, give the user the URL; they open it and submit on the BracketsBot frontend with their browser wallet. No CLI or external wallet needed.
  • Wallet tools: Use prepare-submit-tx, then submit via bankr submit json (if Bankr is installed) or another EVM signer (see reference/WALLET_INTEGRATIONS.md).

Avoid requiring private-key custody in this package unless user explicitly requests local submit flow.

Important Files

  • reference/WALK_STATE.md
  • reference/WALLET_INTEGRATIONS.md
Usage Guidance
This skill largely does what it says (generate/validate brackets and prepare unsigned on-chain payloads), but there are a few practical mismatches you should consider before installing or letting an agent run it automatically: - Runtime requirements: The package contains a Node CLI (package.json) and npm dependencies (viem, incur). Ensure your agent/runtime has Node and the dependencies installed (pnpm/npm) before expecting the CLI to run; the registry metadata did not declare these requirements. If your agent runs commands automatically, it may attempt to call a binary that isn't present. - Unsigned txs vs signing: The skill prepares unsigned transaction payloads (chainId, to, data, value). It does not need your private keys, and SKILL.md repeatedly instructs to ask the user before signing/submitting. Never sign or broadcast a prepared tx without manually verifying chainId, destination address ('to'), and value. Review scripts/prepare-submit-transaction.mjs to confirm the 'to' address and contract it targets. - Local file writes: The tool persists walk state in out/model-walk-picks.json (default). If you run this in shared environments, be aware of file-write behavior and concurrency guidance in WALK_STATE.md. - External wallet examples: Example flows show using Bankr or other CLI wallets. Those require separate wallet tooling and credentials—this skill doesn't request them but will produce payloads that such tools can sign. Only proceed with signing if you trust the payload and the contract. - Review the code before running: Because the package bundles scripts that can construct transactions, quickly scan scripts/prepare-submit-transaction.mjs and related files to confirm they don't point to unexpected network endpoints or hard-coded recipient addresses you don't want to interact with. If you want to proceed safely: run the CLI locally in a contained environment, inspect the generated unsigned tx payload, and use a testnet/dry-run to verify behavior before using real funds or giving the agent autonomous execution rights.
Capability Analysis
Type: OpenClaw Skill Name: brackets-bot Version: 0.1.0 The brackets-bot skill bundle is a legitimate tool for managing NCAA tournament brackets, providing a CLI and agent instructions for generating, validating, and preparing on-chain submissions. It includes network functionality in scripts/share-link.mjs and scripts/walk-next-game.mjs to sync bracket state and generate shareable URLs via https://brackets.bot, which is consistent with its stated purpose. The skill follows a non-custodial model, using viem in scripts/prepare-submit-transaction.mjs to generate unsigned transaction payloads for external wallet tools like Bankr, and the SKILL.md instructions provide helpful onboarding and workflow guidance for the AI agent without any evidence of prompt injection or malicious intent.
Capability Assessment
Purpose & Capability
Name/description match the included code: the repo contains a CLI, match/tournament data, policy examples, and scripts to prepare unsigned on-chain transactions. However, the registry metadata claims 'No install spec' and 'no required binaries/env', while the packaged tool is a Node CLI (package.json -> bin: './scripts/cli.mjs') and expects a Node runtime and optional tools (pnpm, jq, bankr) for some flows. That mismatch (no declared runtime requirements vs. a real CLI) is inconsistent.
Instruction Scope
SKILL.md instructions stay on-purpose: they document generating picks, stepping through matchups, running policies, validating, producing a share link, and preparing unsigned transaction payloads. The skill explicitly instructs agents to ask the user before signing/submitting on-chain and to prefer share-links for human browser submission. It does write/read local state files (out/model-walk-picks.json by default) and references env vars/options for file paths (PICKS_FILE, TOURNAMENT_FILE, etc.), which is expected for a CLI that persists walk state.
Install Mechanism
No install spec is provided in the registry metadata, but the package includes a package.json with dependencies (incur, viem) and a Node CLI. Running the CLI as recommended (pnpm run cli ...) requires Node and package installation. The absence of a declared install/install instructions (and no required binaries listed) is a practical inconsistency that could cause an agent to attempt to run commands that don't exist in its environment. Dependency 'viem' indicates EVM transaction construction capability (expected for prepare-submit-tx) but also increases runtime footprint.
Credentials
The skill declares no required environment variables or credentials, which aligns with its stated policy of preparing unsigned transactions only. Example flows reference external wallet tooling (Bankr CLI) and warn to verify chainId/to/value before signing, but the skill itself does not request secrets. A reviewer should confirm prepare-submit-transaction implementation to see the recipient address and chainId (the code may embed or compute 'to' and 'chainId' values).
Persistence & Privilege
The skill is not 'always:true' and does not request elevated platform privileges. Its CLI writes and reads local state files (out/model-walk-picks.json) to support stepwise workflows; this is expected behavior for the described use-case. There is no indication it modifies other skills or system-wide agent settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install brackets-bot
  3. After installation, invoke the skill by name or use /brackets-bot
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
brackets-bot 0.1.0 initial release: - Introduces onboarding flow to guide users through building NCAA brackets using BracketsBot CLI. - Supports three bracket-picking modes: stepwise chat (“Together”), general rule (“Instructed”), and custom-coded model (“Coded”). - Provides clear submission options: shareable frontend link for browser-based wallet signing or transaction payload for CLI/wallet tool. - Emphasizes validation before submission and offers recommended workflows for each picking mode. - Includes detailed CLI command usage and guidance on when to use each.
Metadata
Slug brackets-bot
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Bracketsbot Skill?

Generate, validate, and submit BracketsBot NCAA tournament brackets. It is an AI Agent Skill for Claude Code / OpenClaw, with 223 downloads so far.

How do I install Bracketsbot Skill?

Run "/install brackets-bot" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Bracketsbot Skill free?

Yes, Bracketsbot Skill is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Bracketsbot Skill support?

Bracketsbot Skill is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Bracketsbot Skill?

It is built and maintained by sbauch (@sbauch); the current version is v0.1.0.

💬 Comments