From mainbranch
Manages Main Branch business bets in repo: open with hypothesis and links, update progress, close with verdict, list active bets, narrate public copy.
npx claudepluginhub noontide-co/mainbranchThis skill uses the workspace's default tool permissions.
Business bets are hub nodes in `bets/`. They connect decisions, research,
Bootstraps new business repos with Main Branch structure or migrates single-offer repos to multi-offer. Onboards Claude Code users, gathers context, applies domain rubrics.
Generates structured Markdown task briefs at docs/briefs/ from notes or descriptions, with sections keyed to Conventional Commits types to guide coding agents (e.g., refactor preserves, fix reproduces). Briefset mode creates parent plus child briefs for multi-context tasks.
Evaluates product bets and shapes pitches using Shape Up appetite model and Bezos Type 1/Type 2 frameworks. For assessing initiative risks, resource allocation, and feature pitches.
Share bugs, ideas, or general feedback.
Business bets are hub nodes in bets/. They connect decisions, research,
campaigns, logs, documents, and outcomes without replacing any of them.
A bet is not an offer. An offer is a durable thing the business sells. A bet is a time-boxed operating hypothesis with appetite, target, deadline, evidence, and a verdict. A successful bet may graduate into an offer, workflow, content pillar, campaign, or decision; a failed bet should be closed with learning.
Use /mb-bet for five modes:
new - open a bet with hypothesis, appetite, metric, target, deadline, and links.update - add progress and link new evidence.close - record result, verdict, learning, and follow-up links.list - summarize active bets and deadlines.narrate - draft public-safe site, community, or social copy from repo truth.Do not publish automatically. Narration drafts are files or message drafts only.
Work from the business repo. If unsure, confirm that core/, research/,
decisions/, or bets/ exists in the current directory. If not, ask the
operator to start Claude from the business repo or run /mb-start.
Before writing, run:
mb status --json
Use the result to spot active bets and repo readiness. After writing or editing bet files, run:
mb validate --cross-refs
If validation warns about missing bidirectional bet links, repair the linked file frontmatter when it is clearly in scope.
Every bet file lives at bets/YYYY-MM-DD-slug.md and uses this frontmatter:
---
status: open
opened: YYYY-MM-DD
deadline: YYYY-MM-DD
appetite: "2 weeks"
hypothesis: "If we do X for Y, Z will happen because..."
metric: "qualified calls booked"
target: "10 qualified calls by deadline"
result: ""
linked_decisions: []
linked_research: []
linked_campaigns: []
linked_outcomes: []
public: false
channels: []
tags: []
---
Allowed statuses: open, paused, closed, canceled.
Use repo-relative paths in link fields:
linked_decisions: decisions/*.mdlinked_research: research/*.mdlinked_campaigns: campaigns/*/campaign.md or campaign artifactslinked_outcomes: log/*.md, documents/*.md, or outcome artifactsWhen linking an existing file to a bet, add the reverse link too:
linked_bets:
- bets/YYYY-MM-DD-slug.md
Use when the operator says they want to try, launch, test, prove, or make a bet.
bets/YYYY-MM-DD-slug.md.linked_bets frontmatter to linked decisions, research,
campaigns, and outcome files when those files already exist and the edit is
clearly safe.Body template:
# Bet Title
## Why This Bet
[The operating tension or opportunity.]
## Hypothesis
[Same claim as frontmatter, with context.]
## Work Plan
- [ ] [Concrete action]
## Evidence Log
- YYYY-MM-DD - Bet opened.
## Result
Open.
## Narration Notes
[Public-safe angles, claims to avoid, proof needed before sharing.]
Use when work happened but the bet is not finished.
Evidence Log entry.linked_decisions, linked_research, linked_campaigns, or
linked_outcomes if new files now matter.result blank unless there is a real result.linked_bets fields on newly linked files.Use when the deadline passed, the target is hit, or the operator decides to stop.
status: closed or status: canceled.result with the measured outcome and verdict.## Learning section or update it if present.linked_bets fields.Summarize active bets from mb status --json and direct file reads:
Keep it short. End with the next bet that needs attention.
Draft public-safe narration from the bet and linked repo truth. Do not invent results, metrics, claims, testimonials, or publishing channels.
Ask the operator which surface if unclear:
Draft format:
# Narration Draft
Surface: [site/community/social]
Source bet: bets/YYYY-MM-DD-slug.md
## Public Angle
[What can be shared safely.]
## Draft
[Post or page copy.]
## Claims To Verify
- [Any metric, result, or proof that needs source confirmation.]
## Source Links
- [repo-relative paths read]
If the bet has public: false, ask before drafting public copy. Offer a private
internal retrospective instead.
Tell the operator what changed, which files were linked, whether validation passed, and the exact next command:
mb status