Created by Mohammed Nasher Β· Open source (MIT) Β· Free for anyone to use
Helm is a self-contained product-loop engine for AI coding assistants. Before the build, you hand it an idea β "should I build provider subscriptions?", Β«ΩΨ³ΨͺΨ§ΩΩ ΩΨ¨ΩΩΩΨΒ» β and it returns a bet: a falsifiable hypothesis with a success target, a measurement window, guardrails, and a signed kill criterion, ranked against your other ideas by evidence rather than enthusiasm. After the launch, it reads the real numbers against those pre-set terms and renders a verdict β worked, didn't, inconclusive β with the learning that steers the next bet, recorded in a running ledger.
A helm is the wheel you take twice: at the harbor to set the course, and at sea β reading the stars β to correct it. The rest of the Forge suite builds features; Helm decides which features deserve building, and tells you the truth about the ones that shipped. It closes the suite's line into a loop.
Who built this? Helm is designed and authored by Mohammed Nasher (@mhd-nasher). Released open source under MIT β use it, fork it, ship with it. If it helps you, a β and a mention go a long way.
Most product-decision tooling fails in one of two ways: it lets the roadmap run on vibes (features ship and are never judged, bets sail without exit criteria, the newest idea always wins), or it drowns small teams in measurement theater (A/B significance demanded from 50 users, OKR ceremonies, verdicts re-litigated weekly). Helm refuses both:
- The Steady-Helm Law. Terms before the sail: every bet carries its metric, target, window, guardrails, and kill line before the build starts β a bet without a kill criterion is a wish. No verdict before the window closes, no steering on noise, no moving the target because the early numbers look bad. One reading, one verdict, one decision β then the helm is still.
- It routes, it doesn't adjudicate. Helm owns the loop only. The feature's definition β
Loom (
F-). Structure β Cairn (R-). Tests β Anvil (T-). Quality β Lens (Q-). Security β Bastion (B-). Ops β Relay (D-). Blocking findings dispatch as sealed subagent missions with the suite's strict return contract; the rest park in the ledger. - Relay says the ship is sound; Helm says whether the voyage was worth it. Uptime, error rates, and alerts are Relay's operational lane β Helm reads adoption, funnels, and the bet's own metric. Two different questions, never confused.
- It's stack-aware β down to what your numbers can prove. Firebase Analytics/Crashlytics flagship, web analytics, machine-consumer service metrics, and the plain-logs tier for internal tools β with the sample bar set at framing time: a 50-user app reads direction and words, honestly labeled, and nobody cosplays statistics.
- It's an advisor at the wheel; the human owns the ship. Kill, pivot, double-down, and anything touching pricing or money are proposed with evidence and approved by the human β with a funeral plan routed to the owning siblings when a kill is signed.
- It's verifiable. Helm ships with evals that prove it activates correctly, forces terms and surfaces unread windows, and refuses premature verdicts, moved goalposts, and significance theater.
| Failure mode | What it looks like | How Helm avoids it |
|---|---|---|
| The drift | Features ship and are never judged; bets have no exit; closed windows go unread; the roadmap is vibes. | Mandatory kill lines (H-004), the ledger with reading-due dates surfaced every run (H-061), verdicts that never shrug (H-050). |
| Verdict theater | A/B demands on 50 users; verdicts at day 3; targets lowered mid-window; three decisions per reading. | The Steady-Helm Law + the sample bar set at framing (H-036) + frozen terms (H-030) + one-reading-one-decision (H-062). |
| Mode | For | What it does |
|---|---|---|
| Mode 0 β Guided First Bet (Beginner) | "I have an idea and no clue if it's worth building." | Plain-language interview in the user's own language (Arabic first-class); ends with a framed, signed bet. |
| Mode A β Frame a Bet | An idea β a bet with terms, ready for Loom. | Hypothesis, dated evidence, the probe option, five signed terms, the ledger entry. |
| Mode B β Read the Results | A bet's window closed. | The disciplined reading: card β window β target-vs-actual β guardrails β funnel β words β ONE verdict + ONE decision. |
| Mode C β Rank the Backlog | Competing ideas. | Evidence-scored ranking with the ledger's lessons voting; ends with ONE named next bet. |
Every run starts at Step 0: detect the stack's signal sources, open (or found) the bet ledger β overdue readings surface first β gauge the sample honestly, and gauge the user's level.
- Version: 1.0.0
- Name:
helm - Author: Mohammed Nasher (@mhd-nasher)
- Tagline: where ideas become bets, and results become decisions
- Modes: Guided First Bet (beginner) Β· Frame a Bet Β· Read the Results Β· Rank the Backlog
- Owns: the product loop β bet framing, evidence ranking, post-launch verdicts, the bet ledger
- Routes: feature definition β Loom Β· structure β Cairn Β· tests β Anvil Β· quality β Lens Β· security β Bastion Β· operational monitoring β Relay
- Stack-aware: Firebase Analytics/Crashlytics flagship Β· web analytics Β· service metrics Β· plain-logs honesty tier
- Citable: every check maps to a stable
H-###id - Category: Product decisions, prioritization & outcome measurement
- Risk: Low (advisory β frames and judges; kill/pivot/pricing proposed, human approves; writes no code, touches no data)
- License: MIT
helm/
βββ SKILL.md # Entry point: identity, Honesty Contract, Step 0, modes, core checks, the Steady-Helm Law
βββ README.md
βββ FORGE_DNA.md # The shared suite contract + boundary table (read first)
βββ LICENSE CHANGELOG.md CITATION.cff CONTRIBUTING.md .gitignore
βββ reference/ # checks.md (the H-### catalogue) + plain-language mirror + stack-signal-profiles.md
β # + bet-terms.md + reading-results.md + verdict-craft.md + bet-ledger.md
β # + handoff-protocol.md + glossary.md
βββ workflows/ # guided-first-bet-for-beginners.md (Mode 0) + frame-a-bet.md (A)
β # + read-the-results.md (B) + rank-the-backlog.md (C)
βββ checklists/ # bet-review.md (deep) + pre-build-bet-gate.md (the H-GATE gate before Loom)
βββ templates/ # bet-template.md Β· verdict-template.md Β· bet-ledger-template.md
βββ examples/ # frame-subscriptions-bet.md (with the probe that replaced a month of building)
β # Β· read-results-offers-verdict.md Β· rank-backlog-five-ideas.md
βββ scripts/ # bet_lint.py (drift finder: missing kill lines, overdue readings; self-tested)
βββ evals/ # trigger-eval.json + evals.json + README.md (skill-TDD)
βββ assets/ # brand assets + generation prompts (matched to the sibling set)
Claude Code (recommended):
git clone https://github.com/mhd-nasher/helm.git ~/.claude/skills/helmThen start a new session. Helm auto-activates when you discuss whether an idea is worth building, what to build next, or whether a shipped feature worked β in English or Arabic.
Any other AI assistant: open SKILL.md and paste its content (plus the files it references as
needed) into your assistant's context, or attach the repo as a knowledge source.
Say what you're weighing, naturally:
- "Should I build this subscriptions feature, or is it a waste of time?" β Mode A (or 0), a signed bet
- "I have five ideas and one developer β which first?" β Mode C, the evidence ranking
- "The feature's been live six weeks β did it work?" β Mode B, the verdict
- Β«ΩΨ³ΨͺΨ§ΩΩ ΩΨ¨ΩΩΩΨΒ» / Β«ΩΩ Ψ§ΩΩ ΩΨ²Ψ© ΩΨ¬ΨΨͺΨΒ» / Β«ΩΨ΄ Ψ£Ψ¨ΩΩ Ψ§ΩΨ¬Ψ§ΩΨΒ» β the same three, in Arabic
Helm settles one bet per run β and when the decision is proposed, it stops.
From the repo root:
python3 scripts/bet_lint.py --self-testcd evals && python3 -c "import json; json.load(open('trigger-eval.json')); json.load(open('evals.json')); print('evals OK')"python3 scripts/bet_lint.py templates/bet-ledger-template.mdThe first proves the linter catches every drift class (9/9). The second validates the eval files. The third runs the linter against the intentionally-unfilled ledger template β expect leads: that's the tool refusing silent drift, which is the whole point.
Helm produces framed bets and evidence-cited verdicts, not business guarantees. A "worked" verdict means the pre-set target was met in its window β never "this product will succeed"; an "inconclusive" names what would settle it. Verdict confidence is capped by what your user count can actually prove, and that cap is chosen before the data arrives. Kill, pivot, and pricing decisions are proposed with their evidence and consequences β the wheel is always the human's.
| Skill | Owns | Helm's relationship |
|---|---|---|
| π§ Helm | The product loop β bets, priorities, verdicts | This repo. |
| π§΅ Loom | Feature definition & completeness | Helm's winning bet is Loom's ask; Loom's instrumentation (F-120s) makes Helm's metric measurable. |
| π Facet | The interface | A redesign is a bet β Helm frames it with a metric and a kill line; Facet executes once it sails. |
| πΏ Cairn | Architecture & structure | Structural causes and kill-removal design route to Cairn (R-###). |
| π¨ Anvil | Testing | Helm never writes tests; a kill's regression cover of what remains is Anvil's (T-###). |
| π Lens | Code quality & review | Quality smells noticed mid-reading park to Lens (Q-###). |
| π‘οΈ Bastion | Security & resilience | Exploit-shaped anomalies in the data route to Bastion (B-###). |
| π Relay | Ship & operate | Relay watches health continuously; Helm reads outcomes per window. Ops fires route to Relay (D-###). |
The natural flow: Helm sets the course β Loom defines β Facet gives it a face β Cairn designs β Anvil
tests β Lens cleans β Bastion guards β Relay ships β Helm reads the results β and the loop turns.
Non-linear by design β enter at any skill, or invoke forge and let the conductor run the chain.
Contributions welcome β new signal profiles, sharper Steady-Helm guardrails, more evals (especially
must_not cases), new checks with their evals, worked examples, and plain-language/translation
improvements. See CONTRIBUTING.md. A check without an eval doesn't ship.
Mohammed Nasher (@mhd-nasher) β design, authorship, and the Forge suite. If Helm saved you from building the wrong thing β or from keeping it β a β helps others find it.
MIT β free for anyone to use, fork, and build on.