FallForge · how it works

Five phases. Twenty minutes.

FallForge is a 5-phase pipeline that turns your existing online footprint into a fully-configured FallHub instance. Here's what happens under the hood.

Phase 1 · Discover

Read your online footprint.

FallForge fetches your landing page and up to five signal pages (about, prices, reviews, contact, FAQ). It extracts the text, follows the internal links, extracts social handles (Instagram, Facebook, Twitter, LinkedIn, TikTok) and OTA IDs (Airbnb room number, Booking hotel slug).

The vertical is auto-detected via keyword fingerprinting — a scored match against ~40 keywords per vertical. If the top match's confidence is above 35% you proceed; below, FallForge asks you to pick.

Local mode: browser fetches directly. Some hosts block cross-origin — for those, FallForge falls back to the hosted Cloudflare Worker (if you opted in) or asks you to override.

// what Discover produces
{
  "url": "https://rivendell-cottage.co.uk",
  "text": "1,200 words of extracted content...",
  "links": [12],
  "socials": {
    "instagram": "@rivendell_cottage",
    "airbnb": "12345"
  },
  "detected_vertical": {
    "top": "hospitality",
    "confidence": 0.87
  }
}
Phase 2 · Kernel distil

Turn evidence into a grounding kernel.

The raw evidence goes into your chosen frontier LLM (Claude Opus 4.8 by default under the 80/20 blend). The system prompt instructs the model to populate the vertical's kernel schema — every fact into the right slot, and critically, populate the not_present list to prevent future hallucination.

The model is told: if a field isn't mentioned, leave it null. Do not invent. You get a kernel that's sparse where your site is sparse and dense where your site is rich.

Voice tone extracted from any visible reply patterns. Banned phrases picked out from what you've explicitly avoided.

// what Kernel produces
{
  "property": {
    "name": "Rivendell Cottage",
    "sleeps": 6,
    "amenities": ["wifi", "log burner"],
    "not_present": [
      "hot tub",
      "swimming pool",
      "sauna"
    ]
  },
  "voice": {
    "tone": "warm",
    "banned_phrases": [
      "at your earliest convenience"
    ]
  }
}
Phase 3 · Wire

Package the FallHub install as a ZIP.

FallForge assembles a bundle:

  • kernel.json — the distilled facts with your router config baked in
  • bom.json — bill of materials · what was picked and why
  • README.md — human-readable summary for you
  • INSTALL.md — step-by-step deploy guide
  • modules-to-install.txt — list of recommended estate modules

The ZIP downloads to your machine. If you provided a GitHub PAT, FallForge also pushes to a fresh public repo (auto-init'd) — you then enable Pages from the GitHub UI.

// recommended modules per vertical
{
  "hospitality": [
    "botler",
    "fallsecurity",
    "fallaccount",
    "fallreach"
  ],
  "trades": [
    "botler",
    "fallsecurity",
    "fallaccount",
    "fallcrm-elite"
  ],
  ...
}
Phase 4 · Calibrate

Autopilot tuning · runs on your instance.

To keep FallForge sovereign-first, autopilot calibration runs after you deploy — on your instance. You open sim.html, run a wave of fake customers, and the calibrator watches:

After ~30 messages of practice, the calibrator writes a suggested guardrail config into your kernel. You review, apply, or ignore.

Phase 5 · Handoff

You get the keys.

The final screen shows what was installed, the router blend chosen, the modules recommended, and the download button. If GitHub push succeeded, your live URLs are shown. If not, you get the ZIP + instructions to deploy on any static host.

Under the hood

Open source · MIT.

Every piece of FallForge is in one GitHub repo: github.com/sjgant80-hub/fallforge

Fork it. Modify it. Run it. Add your own vertical. Publish it back to the estate.