{
  "schema": "modtrick.bootstrap/v1",
  "name": "ModTrick Agent Bootstrap",
  "version": "1.7.0",
  "updated": "2026-07-30",
  "thesis": "Everything is a mod. Games are ModRuntime hosts. modtrick.com teaches contracts + packages.",
  "domains": {
    "primary": "https://modtrick.com",
    "fallback": "https://modtrick.pages.dev"
  },
  "docs": {
    "law": "/docs/EVERYTHING-IS-A-MOD.md",
    "howToBuildAMod": "/docs/HOW-TO-BUILD-A-MOD.md",
    "modConfig": "/docs/MOD-CONFIG.md",
    "addModdingToGame": "/docs/agents/ADD-MODDING-TO-GAME.md",
    "onboard": "/docs/agents/ONBOARD.md",
    "hostIntegration": "/docs/agents/host-integration.md",
    "harnessMatrix": "/docs/agents/harness-matrix.md",
    "agentsMd": "/AGENTS.md",
    "llmsTxt": "/llms.txt",
    "modCatalog": "/agents/mod-catalog.json"
  },
  "shared": {
    "modKit": "/mods/_shared/mod-kit.js"
  },
  "skill": {
    "id": "modtrick",
    "package": "/pkg/modtrick/SKILL.md",
    "references": [
      "/pkg/modtrick/references/architecture.md",
      "/pkg/modtrick/references/mod-config.md",
      "/pkg/modtrick/references/host-integration.md",
      "/pkg/modtrick/references/harness-matrix.md",
      "/pkg/modtrick/references/how-to-build-a-mod.md",
      "/pkg/modtrick/references/add-modding-to-game.md"
    ],
    "installScript": "/pkg/install.ps1",
    "installScriptPython": "/pkg/install.py",
    "targets": [
      "~/.grok/skills/modtrick",
      "~/.claude/skills/modtrick",
      ".codex/skills/modtrick",
      ".cursor/skills/modtrick"
    ]
  },
  "host": {
    "modRuntime": "/host/mod-runtime.js",
    "frameContext": "/host/frame-context.js",
    "readme": "/host/README.md"
  },
  "catalog": {
    "home": "/",
    "assets": "/assets/",
    "packs": "/packs/",
    "studio": "/studio/",
    "playground": "/studio/playground.html",
    "outpostGame": "/game/outpost/"
  },
  "packs": {
    "core-gameplay": {
      "demo": "/game/outpost/",
      "mods": [
        "threejs-grid-floor",
        "threejs-orbit-camera",
        "threejs-fps-controller",
        "threejs-hud",
        "threejs-interact",
        "threejs-particles",
        "threejs-easyfire",
        "threejs-snowflow",
        "threejs-post-fx",
        "threejs-gltf-kit",
        "threejs-collectibles",
        "threejs-minimap",
        "threejs-simple-character",
        "threejs-third-person",
        "threejs-health",
        "threejs-timer",
        "threejs-npc",
        "threejs-weather-rain",
        "threejs-inventory",
        "threejs-checkpoint",
        "threejs-audio-bus",
        "threejs-billboards",
        "threejs-quest",
        "threejs-portal",
        "threejs-day-cycle",
        "threejs-toast",
        "threejs-debug-stats",
        "threejs-currency",
        "threejs-dialogue-box",
        "threejs-light-rig"
      ]
    },
    "seascape-kit": {
      "demo": "/mods/threejs-ocean/",
      "mods": ["threejs-sky", "threejs-ocean"]
    }
  },
  "mods": [
    {
      "id": "threejs-sky",
      "engine": "threejs",
      "manifest": "/mods/threejs-sky/mod.json",
      "entry": "/mods/threejs-sky/sky-mod.js",
      "demo": "/mods/threejs-sky/",
      "export": "createSky",
      "tier": "free",
      "agent": "/mods/threejs-sky/mod.json"
    },
    {
      "id": "threejs-ocean",
      "engine": "threejs",
      "manifest": "/mods/threejs-ocean/mod.json",
      "entry": "/mods/threejs-ocean/ocean-mod.js",
      "demo": "/mods/threejs-ocean/",
      "export": "createOcean",
      "tier": "free"
    },
    {
      "id": "threejs-orbit-camera",
      "engine": "threejs",
      "manifest": "/mods/threejs-orbit-camera/mod.json",
      "entry": "/mods/threejs-orbit-camera/orbit-camera-mod.js",
      "export": "createOrbitCamera",
      "tier": "free",
      "needsOptions": ["camera", "domElement"]
    },
    {
      "id": "threejs-fps-controller",
      "engine": "threejs",
      "manifest": "/mods/threejs-fps-controller/mod.json",
      "entry": "/mods/threejs-fps-controller/fps-controller-mod.js",
      "export": "createFpsController",
      "tier": "free",
      "needsOptions": ["camera", "domElement"]
    },
    {
      "id": "threejs-post-fx",
      "engine": "threejs",
      "manifest": "/mods/threejs-post-fx/mod.json",
      "entry": "/mods/threejs-post-fx/post-fx-mod.js",
      "export": "createPostFx",
      "tier": "free",
      "needsOptions": ["renderer", "camera"],
      "renderPath": "call handle.render(time) instead of renderer.render"
    },
    {
      "id": "threejs-particles",
      "engine": "threejs",
      "manifest": "/mods/threejs-particles/mod.json",
      "entry": "/mods/threejs-particles/particles-mod.js",
      "export": "createParticles",
      "tier": "free"
    },
    {
      "id": "threejs-easyfire",
      "engine": "threejs",
      "manifest": "/mods/threejs-easyfire/mod.json",
      "entry": "/mods/threejs-easyfire/easyfire-mod.js",
      "export": "createEasyFire",
      "tier": "free",
      "demo": "/mods/threejs-easyfire/"
    },
    {
      "id": "threejs-snowflow",
      "engine": "threejs",
      "manifest": "/mods/threejs-snowflow/mod.json",
      "entry": "/mods/threejs-snowflow/snowflow-mod.js",
      "export": "createSnowflow",
      "tier": "free",
      "demo": "/mods/threejs-snowflow/"
    },
    {
      "id": "threejs-interact",
      "engine": "threejs",
      "manifest": "/mods/threejs-interact/mod.json",
      "entry": "/mods/threejs-interact/interact-mod.js",
      "export": "createInteract",
      "tier": "free",
      "needsOptions": ["camera", "domElement", "targets"]
    },
    {
      "id": "threejs-gltf-kit",
      "engine": "threejs",
      "manifest": "/mods/threejs-gltf-kit/mod.json",
      "entry": "/mods/threejs-gltf-kit/gltf-kit-mod.js",
      "export": "createGltfKit",
      "tier": "free"
    },
    {
      "id": "threejs-grid-floor",
      "engine": "threejs",
      "manifest": "/mods/threejs-grid-floor/mod.json",
      "entry": "/mods/threejs-grid-floor/grid-floor-mod.js",
      "export": "createGridFloor",
      "tier": "free"
    },
    {
      "id": "threejs-hud",
      "engine": "threejs",
      "manifest": "/mods/threejs-hud/mod.json",
      "entry": "/mods/threejs-hud/hud-mod.js",
      "export": "createHud",
      "tier": "free"
    },
    {
      "id": "threejs-collectibles",
      "engine": "threejs",
      "manifest": "/mods/threejs-collectibles/mod.json",
      "entry": "/mods/threejs-collectibles/collectibles-mod.js",
      "export": "createCollectibles",
      "tier": "free",
      "demo": "/game/outpost/"
    },
    {
      "id": "threejs-minimap",
      "engine": "threejs",
      "manifest": "/mods/threejs-minimap/mod.json",
      "entry": "/mods/threejs-minimap/minimap-mod.js",
      "export": "createMinimap",
      "tier": "free",
      "demo": "/game/outpost/"
    },
    {
      "id": "threejs-simple-character",
      "engine": "threejs",
      "manifest": "/mods/threejs-simple-character/mod.json",
      "entry": "/mods/threejs-simple-character/simple-character-mod.js",
      "export": "createSimpleCharacter",
      "tier": "free",
      "demo": "/game/outpost/"
    },
    {
      "id": "threejs-third-person",
      "engine": "threejs",
      "manifest": "/mods/threejs-third-person/mod.json",
      "entry": "/mods/threejs-third-person/third-person-mod.js",
      "export": "createThirdPerson",
      "tier": "free",
      "needsOptions": ["camera", "domElement", "target"],
      "demo": "/game/outpost/"
    },
    {
      "id": "threejs-health",
      "engine": "threejs",
      "manifest": "/mods/threejs-health/mod.json",
      "entry": "/mods/threejs-health/health-mod.js",
      "export": "createHealth",
      "tier": "free"
    },
    {
      "id": "threejs-timer",
      "engine": "threejs",
      "manifest": "/mods/threejs-timer/mod.json",
      "entry": "/mods/threejs-timer/timer-mod.js",
      "export": "createTimer",
      "tier": "free"
    },
    {
      "id": "threejs-npc",
      "engine": "threejs",
      "manifest": "/mods/threejs-npc/mod.json",
      "entry": "/mods/threejs-npc/npc-mod.js",
      "export": "createNpc",
      "tier": "free"
    },
    {
      "id": "threejs-weather-rain",
      "engine": "threejs",
      "manifest": "/mods/threejs-weather-rain/mod.json",
      "entry": "/mods/threejs-weather-rain/weather-rain-mod.js",
      "export": "createWeatherRain",
      "tier": "free"
    },
    {
      "id": "threejs-inventory",
      "engine": "threejs",
      "manifest": "/mods/threejs-inventory/mod.json",
      "entry": "/mods/threejs-inventory/inventory-mod.js",
      "export": "createInventory",
      "tier": "free"
    },
    {
      "id": "threejs-checkpoint",
      "engine": "threejs",
      "manifest": "/mods/threejs-checkpoint/mod.json",
      "entry": "/mods/threejs-checkpoint/checkpoint-mod.js",
      "export": "createCheckpoint",
      "tier": "free"
    },
    {
      "id": "threejs-audio-bus",
      "engine": "threejs",
      "manifest": "/mods/threejs-audio-bus/mod.json",
      "entry": "/mods/threejs-audio-bus/audio-bus-mod.js",
      "export": "createAudioBus",
      "tier": "free"
    },
    {
      "id": "threejs-billboards",
      "engine": "threejs",
      "manifest": "/mods/threejs-billboards/mod.json",
      "entry": "/mods/threejs-billboards/billboards-mod.js",
      "export": "createBillboards",
      "tier": "free"
    },
    {
      "id": "threejs-quest",
      "engine": "threejs",
      "manifest": "/mods/threejs-quest/mod.json",
      "entry": "/mods/threejs-quest/quest-mod.js",
      "export": "createQuest",
      "tier": "free"
    },
    {
      "id": "threejs-portal",
      "engine": "threejs",
      "manifest": "/mods/threejs-portal/mod.json",
      "entry": "/mods/threejs-portal/portal-mod.js",
      "export": "createPortal",
      "tier": "free"
    },
    {
      "id": "threejs-day-cycle",
      "engine": "threejs",
      "manifest": "/mods/threejs-day-cycle/mod.json",
      "entry": "/mods/threejs-day-cycle/day-cycle-mod.js",
      "export": "createDayCycle",
      "tier": "free"
    },
    {
      "id": "threejs-toast",
      "engine": "threejs",
      "manifest": "/mods/threejs-toast/mod.json",
      "entry": "/mods/threejs-toast/toast-mod.js",
      "export": "createToast",
      "tier": "free"
    },
    {
      "id": "threejs-debug-stats",
      "engine": "threejs",
      "manifest": "/mods/threejs-debug-stats/mod.json",
      "entry": "/mods/threejs-debug-stats/debug-stats-mod.js",
      "export": "createDebugStats",
      "tier": "free"
    },
    {
      "id": "threejs-currency",
      "engine": "threejs",
      "manifest": "/mods/threejs-currency/mod.json",
      "entry": "/mods/threejs-currency/currency-mod.js",
      "export": "createCurrency",
      "tier": "free"
    },
    {
      "id": "threejs-dialogue-box",
      "engine": "threejs",
      "manifest": "/mods/threejs-dialogue-box/mod.json",
      "entry": "/mods/threejs-dialogue-box/dialogue-box-mod.js",
      "export": "createDialogueBox",
      "tier": "free"
    },
    {
      "id": "threejs-light-rig",
      "engine": "threejs",
      "manifest": "/mods/threejs-light-rig/mod.json",
      "entry": "/mods/threejs-light-rig/light-rig-mod.js",
      "export": "createLightRig",
      "tier": "free"
    }
  ],
  "testGame": {
    "id": "outpost",
    "url": "/game/outpost/",
    "purpose": "End-to-end methodology verification: 10+ mods on shared bus",
    "inspect": "window.__OUTPOST__.checks"
  },
  "asec": {
    "layers": ["META", "GENESIS", "SHADOW", "MGS"],
    "mgsOrder": ["install", "tune", "verify", "maintain"],
    "requiredOnEveryMod": true
  },
  "agentSteps": [
    { "id": 0, "action": "fetch_this_document", "url": "/agents/bootstrap.json" },
    { "id": 1, "action": "read_law", "url": "/docs/EVERYTHING-IS-A-MOD.md" },
    { "id": 2, "action": "read_how_to_build", "url": "/docs/HOW-TO-BUILD-A-MOD.md" },
    { "id": 3, "action": "read_add_modding_to_game", "url": "/docs/agents/ADD-MODDING-TO-GAME.md" },
    { "id": 4, "action": "install_skill", "script": "/pkg/install.ps1" },
    { "id": 5, "action": "add_mod_runtime_to_game", "files": ["/host/mod-runtime.js", "/host/frame-context.js"] },
    {
      "id": 6,
      "action": "vendor_core_gameplay_stack",
      "preferred": [
        "threejs-grid-floor",
        "threejs-orbit-camera",
        "threejs-sky",
        "threejs-hud"
      ],
      "optional": [
        "threejs-fps-controller",
        "threejs-ocean",
        "threejs-particles",
        "threejs-easyfire",
        "threejs-snowflow",
        "threejs-weather-rain",
        "threejs-interact",
        "threejs-post-fx",
        "threejs-gltf-kit"
      ]
    },
    {
      "id": 7,
      "action": "wire_tick_bus",
      "note": "Pass options: camera/domElement/renderer where needsOptions; runtime.tick(time, dt)"
    },
    { "id": 8, "action": "verify_mgs", "note": "Use each mod asec.mgs.verify; playground is acceptance test" },
    { "id": 9, "action": "promote_all_features_to_mods", "note": "No free-floating runtime code without mod.json" }
  ],
  "pastePromptForUsers": "Add ModTrick modding to this game. Everything is a mod. Fetch https://modtrick.com/agents/bootstrap.json and follow docs/agents/ADD-MODDING-TO-GAME.md. Vendor core-gameplay mods + host/mod-runtime.js. Wire loadAll + tick. Update AGENTS.md.",
  "invokePhrases": [
    "/modtrick",
    "/modtrick-bootstrap",
    "everything is a mod",
    "how to build a mod",
    "add modding to my game",
    "use modtrick.com",
    "ModRuntime",
    "core gameplay kit",
    "install orbit camera mod"
  ],
  "refuse": [
    "Inline shaders without mod package",
    "Silent claim of complete physical sim when SHADOW residual exists",
    "Parallel plugin system that bypasses ModRuntime"
  ],
  "shortCircuit": {
    "eligibleIf": [
      "skill modtrick present on disk",
      "game has host/mod-runtime.js or equivalent",
      "at least one mod.json loaded"
    ],
    "then": "skip re-architecture; only add/register requested mods"
  }
}
