agentsclimarketplace

Demo ship

Skill kody-w/rapp-skills/demo-ship

Portable Agent Skills for non-RAPP systems and launchpads for single-file RAPP agents

Install
npx -y skills add kody-w/rapp-skills --skill demo-ship

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 20 days oldThe repository was created 20 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Deploy the current agents to the cloud function, prove them end-to-end against the LIVE endpoint, generate the M365-styled HTML demo page, pop it open, and notify. One verb for the whole chain — never hand work back unverified. USE THIS SKILL when Kody says anything like: "upload to the function and test", "deploy and give me the demo", "push the latest to the function then test", "give me the demo page / test script / html walkthrough", "so I can test", "pop open the demo", "run the demo script against the cloud", or names a customer demo that needs to be live-testable. Also use for the local variant ("pop it up locally so I can test here").

SKILL.md

19.9 KB, as published. Nobody here has run it

demo-ship — deploy, prove, package, open, notify

The contract: work is never handed back unverified. This skill ends with a demo page open in the browser, an e2e transcript proving the cloud endpoint answered correctly, and a ding + iMessage. If any stage fails, fix and re-run that stage — do not present a partially verified demo.

Stage 1 — Deploy

Target is the shared function app unless another is named:

  • Function app: <function-app> (sub <subscription-id>, RG <resource-group>), model gpt-5.2-chat.
  • Account: your work account (NOT a guest identity, NOT a personal account). Refresh with az login --tenant <tenant-id> if tokens are stale.
  • Deploy: cd rapp_ai && func azure functionapp publish <function-app> --build remote
  • If the cloud returns 503 after deploy: tenant policy may have flipped storage publicNetworkAccess off again on the function's storage account — run az storage account update -n <storage-account> -g <resource-group> --public-network-access Enabled and restart the app. Check this FIRST on any 503, before diagnosing code.
  • Local variant: cd rapp_ai && func start on port 7072 (7071 is reserved for the brainstem). Consumers read RAPP_AI_PORT / RAPP_AI_URL.

Stage 2 — Prove it end-to-end (non-negotiable)

Run the demo script / e2e test against the endpoint YOU just deployed (cloud URL for cloud deploys — never claim cloud readiness from a local run):

  • Get the function key yourself (az functionapp keys list with the subscription pinned); do not ask Kody for creds that are already in local.settings.json or az.
  • Drive the REAL conversation flow the demo uses, in order, one agent call per turn (step-wise demo rule: the orchestrator calls ONE connected agent per turn, verbatim, then stops).
  • Check agent_logs in every response — a plausible assistant_response with faked tool results is a FAIL (gpt-4.1-class models fabricate tool output).
  • If the demo has a reset agent ("reset the demo"), run it first so the run starts from a clean state, and run it again at the end so Kody's first take is clean.
  • Save the request/response transcript to the project's outputs folder; the final summary must quote at least one real response as evidence.

Stage 3 — The demo page

Generate ONE self-contained HTML demo page (no external deps), following the house demo pattern:

  • M365 Copilot chat look; up-arrow drives the script (each press advances to the next scripted user turn), plus a per-step copy-to-clipboard button (clipboard survives Teams formatting; this is why the buttons exist).
  • Attach-front / lookup-backend: if the flow involves an uploaded document, the page front-stages the artifact (downloadable, correct file type — PDFs stay PDFs, never silently converted) and the backend reads its bundled copy by name. Never pretend to read from a source the AI wouldn't have access to.
  • Endpoint config at the top of the file: RAPP_AI_URL default to the deployed function, overridable, so the same page drives local and cloud.
  • Style: match the demo's real palette. NO emojis anywhere. NO default magenta/purple AI gradient. Plain professional Microsoft look.
  • Customer-facing hygiene: the page describes the end agents and customer value only — no RAPP/build/tooling talk, no other customers' project names.

Stage 4 — Pop it open

Open the page (open <file> or the live URL) so it is on screen when Kody comes back. If a repo/editor is part of the ask ("so I can demo from there"), open that too.

Stage 5 — Notify

afplay /System/Library/Sounds/Glass.aiff AND iMessage <your-phone-number> via osascript -e 'tell application "Messages" to send "<one-line status + what to click>" to buddy "<your-phone-number>"'. The message states what was deployed, that e2e passed (with the count of turns verified), and what file/URL is open for him.

Failure discipline

  • A stage that fails gets fixed and re-run; the summary reports what failed and what the fix was. Never report "done" with a caveat buried below it.
  • If deploy succeeds but e2e fails and the fix isn't obvious within a few attempts, STOP, leave the environment as-is, and report exactly which turn failed with the raw response — do not paper over it in the demo page.
  • Never deploy from a dirty tree without committing locally first (feature branch is fine); the deployed artifact must be reproducible from a commit.
<!-- toaster:generated:begin -->

Parameters

The typed contract this capability answers to (JSON Schema — the deterministic layer):

{
  "properties": {
    "file": {
      "description": "Derived from `<file>` used in the documented command at line 61.",
      "type": "string"
    },
    "function_app": {
      "description": "Derived from `<function-app>` used in the documented command at line 12.",
      "type": "string"
    },
    "resource_group": {
      "description": "Derived from `<resource-group>` used in the documented command at line 12.",
      "type": "string"
    },
    "storage_account": {
      "description": "Derived from `<storage-account>` used in the documented command at line 18.",
      "type": "string"
    },
    "tenant_id": {
      "description": "Derived from `<tenant-id>` used in the documented command at line 14.",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
<!-- toaster:generated:end --> <!-- toaster:generated:begin -->

Deterministic steps

Lifted verbatim from the procedure above by toaster.py toast. Run them in order, substituting the typed parameters; do not paraphrase:

az login --tenant <tenant-id>
cd rapp_ai && func azure functionapp publish <function-app> --build remote
az storage account update -n <storage-account> -g <resource-group> --public-network-access Enabled
cd rapp_ai && func start
az functionapp keys list
open <file>
<!-- toaster:generated:end --> <!-- rci-capsule:v1:H4sIAAAAAAAC/7V7CZOjSJLuX5HVmu10D5UF4hBQs7tmgCQQtxACSdtrXdyHuMQNa/PfXyBlVlf3zM6s2Xuvra2zhSI8PDzcv+/zSPK/PzldG5f1p69Fl2WfP/lBnfROm5TFp6//+d+f7knhf/r6ySmiLPj0+VOWFMGnr2v086fKqZ0cfBN2hbeM/tWpKjCgLe8BmPnp3z6ev4Hn//Hpr5//F6bqoCm72gt+jeqy+52xj2/ent/8I3P4b+baoHCK9tfE/9HS6+Fb4v8jI9RvRpq2rJ0o+NXxvLIr2h9NvX/19v7VPzC4Wf8Qr+T5xW9xAp/B1P9aIt94dVK9Qv9pG1RZOa3aOFh5XV0HRbsCixVts2rL19Os7PzVR5g/r6q67IPlm3wVFP5bW76BH2COkxRNuzz/pZAP1m75siqTov28AuaC2mmfk1YKtiHemnbKAn8lmIq88oO8XFVgTWC6rFZJuyqrAKzjAKtF2Sbh9OWXQiuCVR/U7ios66eZIS4z4FsMVl390qHIGl8VARixipd5Q1nfV67j3VddAR4mYRL4X1bn025lCofT6iQdZBmYCIpfCqn0p1XjTA1YcGrjpIhWWXIPvq5++dSByDj+Rxw+IvB0rA2a9pdPn8Eg/xW/5WGUgMDkwSsGy7ZeI6quiZ8WMmeZ9jf2wIfiB4M/WPktNiv4NaJ4HR34GLd5thqc7N7GIFej+DW5KVeHlef8aG8J6hLR7wZfj+vuhycfZn84xde5L2NBxAsnD0CAQIaAZMxBlJ+OtbHTgqgH/jNXXLBB4PrbsrLjZgE4NSYD/nRN8P3UstJzslXv1AkojtVPL+fAiXfV66sMHMWPO1jFQR388unnLyCTg9HJqyxoAFyAJI6BG0tgPuAkAd99+vrfnzJQESCrK3CUIL0/g7oKquaJMF7+LJgZrBSBpHl7e5Xo6sdS/a28lxp7zfD8VQ2w5VcnWf3rvz5PbeXMXf3bAYIvV1XnZgk45t/DEVjE7ZIMGADhan8ofOI388Ch9wJfvRc4iIa/VMtbsfqb2l+9Ras/ohRY5bm891YE7ZL5y+igaVa7YjkH/we8+Ye7AsdWt98Ho8jvfPxxs/cAVAvY7g+Df7D8zLV3uPkNmP76X38FhwRyq+6edsCZfPqXZxq9NXFSfdTwq5reQQb8ACX8RIYXJLzg4BdQteaSoGXR1o7Xfl39+c/Pgk+aHzAAwMsfAeDPf16ZMRjU3JMsW/CpWQ1JG4O8fhXBs9Ce7iev2nDrcmiCesGiVYCCkqydj0pZHFyw4jeE/MA7MLgZQNr6vxReCQDVa7PphWZgnWUKtEoUcDxgsS+rQ7jAzhJ6sHToJFnzeRUm43N4Hby9ihRU2WvAK0gAW8olFMCHoHniNYhT3SbP8vnY7HNLX5ZQ/cu/rE7P2euPIL8g/xlGp46Cdgncso8mdoDbPwAdOOuuyJZUcsB6oBafIQZY4H9dZr+t9j8M/br69vvs/7b6qelc8BT89zvjLGX27fPK4MHzP+Txt58/r/LSD7LVt6hq34gv6BvA9/bbl2Ul5lUAX1cTmPLC949y+UnVTBCDqFsAI/FBRJIWRPz1tArqBmRt9jH65y8rIwjByvEvxep1/N/+ISZ8WyXh6smiIAqg6sFJPLHt7T2MYNv/7xDi22IX5MRvWVUHbVeDpQkEWzlh+4Te17LvrlYlqPxplTsTSHvAHGGWVBU4xXfkWHb57QUP6gsdmCc4fFuVYfjC+9WLg757+6fmbxDpPXFAOj7t/f/HrG/LOq8ieMLS00EQsC8rLg5AVbdLHe8PxslcPRl5WgL0GXAQYBrAaYkTFWWzFJsHEup5WvKP1PP3D+250rfF4J//XJVgURIhUQAaP4Gf6yX1l3qr+6VEXny2OOnWT8oMcpBZHMC1DtDjMhIIh28Go+u/Modfdc0wvwHO/v7gbMjffl+c6EeM9ae8Apz4g7j6qQDpUgQRgL8lOj8vM40f+Hv1XRU8UWqpgx+Z/DsyXbXzKgUU/p5DYCM/vbIM+LPsCSDW8+Pr6+b3wsrLnCT/npUOgLLlvMK6zEGZvYgd5MfP78jAB+3vVQ4gjWftNkEWrn769j9RyrdXTT7h6AfYWCJdJUUR+D//ZfUOf05zXz3V23IaXv2UIQtWLlXqZIuL0wLk356+fWmCtgUJ0XxJAR58W0SNM7/KuE5eenZl7Bh5YRWw2+bZmYBiKoffogyUDIDnpWBqf2GFEojSp1ZeLdJlgZrVUqyLrz8tuuNtSJr3qXWXAUm5WCprLwYHBPTw4jWY16w0dbcsWwCqCPx3ix/GPj9lL/Am/7zYfWpFUGBV8/PT+Vc1fHvO+RWAGKhr4N9yXtOSrRVIyA/aWMAwc7omARkEZjQNiPbSt3wMe4986NwX6gJLlWW22Ogy0Aski/rbMwd59dOCzfiX9RvIB3D+T8AGaeC4deI9Nf4yrezaqmtfLr7D2TMMsbPYWcrovctYNODr42/qFNDAwnugBMKkBsnavPTy8uxZoc3i3XveeVngPB+3wYtj32e+gM35nv+LkSVXALa9jLZgm8uungaefp6c9zSog8dCJfD3+P1A++/aHbB/Ck4LWHvtFFgtM5ATf3nlfAIIZ3ESgEHugJPIl5p7dADgF5fAiuDjkjwgR7PfjgnEJugX/vKC32MD9nGC5o8twTKE/+islhRaKuttEUVg63/TXC0YsgpGQCALGYICb0CYgdMgwT9kTFyCBH81LmBKuwx9L+alZwPgViUZKLuFk0G9l/e/AJjsqjenBipp5S9V9C4jnqFacDNwvPipUsCp+70DNvbRVS7RKYA774OBu2DtV8YDv6qsa17c/bbUEVjHK6tpQUMPsJtbOjUQd13blsWyyvdnr5DX/dMTM3Dy5Vjq3HkW/l9enAH+HeJXu/uyAII+gkp45SrTtsDlN5BcxYKmyy7BDhcdCXLo61MJLOe7oEJS9GW2LATy79UoLqKr9AD+Lz3vM0ve+fdp7u0p4V4RWtRaCJTr6ie/HIpl7gLrn1fvenG1iOdVO1XfS1ff7hdSBhy//N/nFyI/twtGFkBgvsMWCOTPr/502d/L7SdYg42DJHW7wl/67iWaK3d6SrkvK/UJ7+CYgKJ4r/wXf73X2Iu4nyaZA5BeXeYXf2pfauOdtdvyGb7dB9EAb8Ik+qi/dulA30OXLDj4Ox4EyRg6AGQ+auuDm56R+37rAEixrpP3OL0jQgPcfyX3e/a9WGjZ/5OmXmW9XDV8Bfqo9eLvIPOn5lV7FdByINFBDLQVeJwmz1uAYek6n88+XMufYOXAVVeDFnTxDEQiqgEJgsdfVnq2oA0AhRAEI3nKTSXx6rIpw1epvLD6vXl+A0e/1Fw8RWD6Oy28tvG8mXHfs+R1rfK8inlu6aP37p2sAzxSgFP/aAhAMZWrJajwU03CCwg/y9rJ7kvbtHqp9w8TzZ8+EOzV2f8ebvDvWffbdcwyQPu4RHjhybcfGr0nnz4b/IVLwan+vJxR8uwsAI2CXQVg7HLh8mJsr1zuE5YEBUsvPRA4jqqEAz9ZWBFMWhqaj5xZeP6nH642ngD1zM32/Xrg88cFx5Jw5R/aHuJjO+r37vGbEwIqnFbwaVqUGywnQMXVE3wCetVvYH5hti9OEobfVoy6/d6ugZZlUTBvVQzA+63ocjeowdb7xAEmy8Z554i3YPWnNgCCAAibbCHFRUn88undSPPLpyXTm+V0f/n0b4ulpUd+chhAPQhE6bkLkMKJd/+P12i380HUwPC/Xf+XT39apORCDfm7m086bF6GBsAqHxX1+RWhRSNWYIeL/Psutl4qfon40m788r1p/vlFq09by1HDi1RcTnUJ+CK84iT/iPce9K/dU343XlItu3rRB/Pevj5Xfza5K9B1Lkw8Lnrne6v7l3fZ9yLNJSMA2b8vDWa9j10+v0uhZ6sMdviBYa8py6UcCBCI3Ht37wGkAjbcrl4aYzd4wnf7IU7eL/CaDkDZoiEBLTxD9HL0A0yXlZJmwb3S7RPAlE/ji8ZYhcGwWugyr9rmKdJOpqZ/Xmj+XVAERZ8ACsifvXrzljTvUuXlbTA6yxUB2FeyIBQI/8duPw5nsVk7w98Iuo9rAGcRiwtAPiuu+P3N4XObr/C87/Qd1v2kbgERgsp8LgSEzFKWefJky+/XcS+19FMIArgcLaiTAniZvDQYOOGf//I70P6N2p6ax100DoAav/OesvNDtT3X+fK8HvJAY/39Fm9Bo+eddF6e4mS5mn9eZwNmqpvldg+YAnttk+D56XnFDX7+8UJ7IYN39vr2gU/dku4fsXln6ScTgmRbcBbg9FKFm/Xi1UK9zzv5GoTi018///6XD/90xd9fgvwvV16jf3flP/yu4p+t/ccrlf/L1f/4W4l/tvwfW////frU313/t1+t/LOVf7yw+d+uif+dNZ8hf3QJaCdfF83v35fuQpeLT4A52kVWApeWTx93AouHz4vF5X/cDQ7mCHhzYF7/cDBp4RucTFDRzWEskkzSPGfW/X49Dldv71SivGWhw4HNieaWmiLVUgLGz1da9tbbmdW1OzU76t3g18F91lKtqNamZPJz3/thZtPwZt0RaDdB8T5Lw8YKTe4hdkRRjxu8rW5n9zG690vsQyMMb7jrdbCgNa8SzmbPn23HznnNOZJUbu+J9ZZcl5S8I7kDgkhib4sjX10vAStGVt4i1KYRw2bnzkMyCjO6N+9mryB+g1ONTPGDS9pObqubbljb7M6vNYpOENOGCPtQOs2AHvC97mjXZpabU4LiHKO2EZpisl6rdDwJVnV1nPPmdverhoLV9DINc2nNTQivdRgv9lk98IVuPLLufEn3vrIhrjtP3M7wtaEGzJUwtWmh49lkd/j5aq6tKCW5an+7Epl9w9igcNtgw3OQj1iGNDFD3t+VYVaY1MqJLLB7bM1GOcTFBo4L52PeGAN3NKFk2ympd6vzvjQtuBkLitvSKESa+3nDRoGuBHQ+mCwJ+7rOjTl0C705ULnG3zukcsBndguR9xuX2BJO+d2G3zuwPtMe5eud3c3bG83d2T1+4EommSadKeP2utY7Jy12aHpwIy2NeCv1Dcd/dDkUm7s1rUjuoT7QCnTjY8hKquqG8xu9nqAmnnau34eHFL5BzbhGHu16Q/fyes1QSgdfWbh0fdmL+4E9wpHctCNTUZaSEMElG9eTeKxna6tPJJ30/ewcKFnUD4yAwMY57uGNRFozLsntpi/hKEd3mIx5MbtDqTwfkEN4cSStqnyla/bczmrgx7FdH2Vh2u/Xya4EUiu6zRdmpO+qsDXClEml2UvprjxvioNo+1u2v9nnW6HbvGdeOfHoxPFNbedQm10ibS0PKx6+1TZDUTlbiNnI03V3LFmBpzPzZG1DVfYcVKZ8WR2JCOGgCboijyHN6wTVGc5A1sCVjG/uGnp74HxVUEw4jswoDMPuMMn4IUcT7h6NPQkBG8K+GiD4CkGwPvooHnohiMmlVrexFM7EcBb9GZ5T2GjyBma8+rCR1jK32XaM04NAbY9NgsDS6E+h1kGG2w99VtTUVqm56no29pyct9ez5VL7muT0JqkvYdRZSiQL93xUBPnguS1Cx1IzRTttu4Hg/sFPt6vKkh2Dca5L0qXvaRmT1g2zGVmW7kOUpG7nWVZYaO/VMZPc91FJHwsM25nwgF63XiR7sMrA5Bqj20PpV/Qk03Z4LOMC5NBIHAeC2rJc+IiDICWYm+HW2LaNOLYYY6l2xwNuc5NKMYiG0lKTYuurHXnQjTCu+N5mKIcFWBSCSB+EEVTN487vaci9D5g4ZYJyODyOU+E1TYfarMvZ95lo4JNF1j1ykIeDfGDglr0Jmw3dJGosGD6iNzQV1GSnWIHmRyGCjIE6OGtm7Sb09sLtsXmn8iJ0JIWWT4Sj5LXGmb9j6dZpHRb31qeOQwjbz9LtvD1Ls+lHosME122me9ShPK6tjDmMx6wxdUs/huKmITYs1tJQ13tHo0iLPtWz7XYPJ+6Rj4X2ZtsPrnLCSDFp14jPXMNo6t7IWYvJoHjrsHBPFacZMoUszGeb6nAf1ft0sHAbm+HL1aVE0rlVNcLpBVHX2cgwu6zU7mwnTW1w2cN38x7SzZZBxINvwLf+qOOZcAmggbvoOLM10wEkjsUfRCqwM7i1odmcMYvannvowEVsetor+ak4H5n9+nYgGU2sjwPXZCFEDGu07R6FMetiSzIdN2veBuTCzRcZhWnx84VSiIKO2Gvcklc7uV0weCu0U37zA9Rx9IFHCzNhGbHM63PIg7o9ppveFBrZ1SeB4Y69hUakShs2rXemm+eXR5sowh3aW3zP7Ki5NoUb/dDdGYo5cdAdw7EN0Gg3h5FJ0rPMnTWaiw9S/IgMuR8YDu9IdRrxGqEOgnDdoUkmb2N3Ytj7AR3Ig2Ij7ezz5UHwmEkYG4iGa1tikUHsIx6drw5zLas5Y/WQ28K9VYwMHklTHChHPH/sTCON9rDJjdsbZD2M4Mpcoe0sH5SSgWJYd0fcaMlzTXMHXLxWVCuTwzGsiIdG9VU1HcKzoGjYkHYRw52EajsSLGBxii7Xe8TZZ2dC4A2VvtKQVI8YfTmqj9gTqvIUFDC5QTSTUbRUjm5DSyLnUszXUBTRDlQODNUEx61KndAuIDLXVVhKtmnypDecRt+3OKNVD5qa2SNkGM3AT2d/FzzOUMtuzyLMqU0x1/hxk7EHkmaSnJvX9+Kq6geWJaG1pAdRdmJi63hi2X6nn4V7xl4YTIlSLSKog4yzEoz604Eb7cR4mNcL2sEIb7b+uqDCcBrSTaaAYY/Hrrunl4jyofJGHU/53mItZNtunRKPII5rjtu8GsXxMGznCVX3aU00TnytvAfXoroW93tOiAFD1DXFwqM1WkjLEjaTS1UgiHyaRENqINGE3Y3H8Vbr50HECoRhYs7jzyPpR1I1u8e4bZIeSZy5HffjWRF4deddUXwuWbQ6+w7XAsjUldI4+JTO91whOqpgtjK3ZnLkztZT32FtrDPwHGCFfXG2p+1x73HQMbgiMyUE8oOpjP0kXhgTuzPXHSKMPZrWkiRVtAwiIRDINuK7Apy+e4jUUgDTtifS8du6WecYYo2NL8p+sxOx637WNrEdVdcO2NjpDWNLEd8rG/feIsM0HiPcQtOQXNeB5RJcTO2vhynUmZOhs7WGedG8fsj8dOWzgTeCmHccseKunol01T4FfHj2tsGdJQ3Whtj2iD3OZ7rj8xEtBCYphzTcXmDRVtNx47GbuFPQED6qTWOCbdt3Ik+oQAmV4wyjVT0IkMugJbHP+Jlwtsf+Op7OUnpa6/3OYQWAolEw9AULmQ5cSp47VsczIKBAHzQp8TCMoR7Qyaof08DrR/fI9vCF305QoKwjH1FmI9Qbx0qPiijxI3J2oCmxdsy5iIMrb9LQkF7pA3utw/jO4qnNesH56txugm/dw+14gNkH04jGdMnX0aYJMxbaAJtu0OiubAD5oLoqjFPEpjpRQ1/uTsKdRzP8ISKHIyXs+Jk/HPCqleIo11MzvkpYFyakHhY5UAzdGAKxeb12U7HW1xPVbzRDQwtdCLbbE1yOJoS4ALxydtsbwglirWy0O56xEyAWyj22kYjOxhijPPLGwRTa0UMed4BfUYKZDL3WrGR7K6nCyMBR9OJ8yhH8sdsn2J0gMYLcSqV4oaWQiPnJu7MbE3Pb/LjuasWaqnuw5YwjvLPWdcrlsaJQ6m0tuYGqQChG8hUQLcp5Zv0DezmlFhbhKHFl5YcVNVpWkShlEAV60NEuDtGTTW+t463HH8ou1sLtBuVE0rBT7czewhAJyOPecZgTI+hdy1zY2mQcJ/BCNIWsa28yqbnB6IHqmv6gI8f10dMp4gFlte1iEsvqTJ/bY3OqtDGhmElsIyhec1W35xlk7w4US069e2mb9i4S442HjlMGjt5JptDm1BqXeS6XjSQu4thL/TVD5lsynwI3unX1DijAHeYa3KmzUrqf29J3nXXpT1sY23inqQmKSQ5rL6nizB9cr1Ddc93sPRPv5U0hH1Wcha9Hjj6pUv2w7roAndWbLhFuE8k4F9yhg37PlQdqmLi4G7HodqjVgzyvy8DDghOnRm1x2Z41RcbTcYvc61tthuFZpCGOOdTydh3REncrXK3LZvRs5F1l2Vl5YYKLvjtSO/1UlBQEMMyp/B5ofKHTCLY6+Xg65WUpwdgsR+PYlLA8UJ5wqqowR1QuosRyPh606BF1VNW19EWEEK0L5O1tv91cTxyn7Jl63Ot39QRkJipGGIw+dk632SUBc9Cusb8/jE7oAUhmC32GLmTlM1v1wJ96QJOzqJBwbaVNAtO7yHG0bNhig+G7Qe8w2g0jvUE2fdRnEzP0KV65hv7EqXafchLaiGeECdl1adb07Yxy9XDsUr8o92xnNRWfwAFGQ0YqwISKbZu9gY0gE8j0Yu5ChyoLB47Y+5GgN6zdo3opYSlKbj0AJ1e4KADokAfv2uaNSxBwl+z39XiXaWcvoPDkcjjCWcFxzo8QC9BXM67CFXDq/hDlCQy7DqnDPWny/TwLuDErPAyrORxeckKHb41+TfCrX8A9AEAXR6BzqPIhuS8Uzx9KWBC8A+zSRihPF8jzlTwEqvIctDBTkc7YNzqf7pLi7lA6MxKGqSnsWhlIfR3CoKXqN4oDuc06WVeXMynA5x0yh1PFiaodd7uLbpRXmqA1XShxJOH5WyLgiOCvo4gh6JCYB7aWECgISR528I6JoK1vlBiQM72ShFekkoV+J1ThjN4R1ZQvN1N2VUdpufUsYIS+Ji99OBeY59CwDsHkpSYC2jdkDO7Rzszu2Ez2SEw7ReyXmqJcLO486mGmaFpOXihETzdeflK7k0QcOE9rDxy6RszdnGy6enMpdpMwJxM8qbMUxQOU2kjmT4aXoqdG6s21FHSXmFDHQm3X2onYuPnsJ26SSL0Y96dr2jY3lNkJtpRDo5qoblR32DGuh8AcdndVp7ajsx+PI7TVnNwXJ7WYgxu2pnMP3mxGLCmKPDhJoSj5+HrdCkFPI2ctrLWaznBqbmUplp2ALZxRCpz79Zi2Jq4cRK3KoVLhLe92lh0eos+m7tybG13nyb4Zd7O7tQKC9PxtYIk2T1E3Qavx0x5AcWNNhukkjkCZWBl2N3Zt046UumaNJV7HdZlxucN8yx167WaeAhQIwmoPYNQUevJaDSrRtvO4x7q4cHD+YOD3CjsF+CmGVKlKjfWFoDOlbj1PPLvFVAsCD3d+kQZ3TfXVE28GDnYa1ulNMztZX3NmWiD2OBY1iV/MRJa3oSMAekCxAg+mTKIFmptkg9Qz9Z4/SIAdBnrLGv1UUWywP++h5DpfE2rKLZGuG18J5MIciFNHJOVlzz4Cuypi5HxITxRoq3foIypE+SakXjXYklPUCl5PyawXNwTeE6lVSiaVx324vXYQr+EJEmJpdQuCHY1Pvn1dE9Hk5UfUd85QcyC0s9Le3Mwr8owZyROa+6nk1IjHwxNhaIBanB4qp7lF+cestBY2h3RbZE4BRwfMonljSPxmCEggMH3VlnwWVSA8wIk6NEBbH6jFuNvLmhje6wwuTbXdW+fqFvqKO1zpsxS6x3UxkUp9NkbZLQz7NoUhpWRipUx8h8X09kCsTcxej+KW3+Dbx4U8U+eBvo2GQqttR5qKeMF6MbHgTmxlTNFwMhcAaIiphgfCuXzwPRzGUk7bsas4ntXOoh0nrI3X+X1okbHM8pt3yCtA37a4Z8AMnE7Xxv6euGlJicId6WhzU981FvDTyTT7a8+QtztVz7EhYAF3Y+1jMpBWDyh+oslK3Dv7dl+nsz5R82mS8t0mQxFeM/vkpj7GW/PwLiXGbCy9lfAOEQY0SeULG/LKpNq8domF4U7T/GMb3VPhDisOyEEjPES9GggPJzQtuYhiLA4Let1Mbehdqeiqn7vjvGkMxdaUxq0Uyn4cZxuYkdbX6yDabYQQtNd6KhzUvmHjhzTwzneZmWmstW4RSU9cjN8jkPpHYh5dttlHw7VIRcJ73OxOXCvEWnMl+KAyUO/Ra9VxST6FWmrEkcMNIxLMmRTjbqD3vk8pGE/mBnyq6MRLeXWGTaV2b1t/diAFraQmxPBQpcw5M2bbRjGMJoQhHUKMAz2ty82yfNfuRO/WcyCQ9j3MY6RLuChvKRda94cH5LLDbGawDSVJIJ0zkpTGKkUphE9PRGHku1phpZORbUKp8CpFT53z0BKhMzqn+UiuPZpNwl2k5caGmm8n04d6fI0W1wNIipnDfHJLT+zmQNth6gSP0ad6LTmcN9XF5B6kQqaKaEK67uD57Ox9sCe5dIU6d3eJcLUePnsmCdROTC73gGIGuqq1G7h9TCNRl56KbHvrfsfqJrZOFWld20ORVV4zTiftUrd+Lfr7M9wdjLN4rBXhehGtqq26a97pW9Sp5jATyygVq6w/zg681kyP2ekPwh+qNsZhTYTFYSIcoXbw26kn/Mt+MOLJuOwCVrI64fxw5siVFTcV11HnzGhDCXjmHLeXogI5bnqXdYpfWOGaQHqwAc7oR5GtqVa/bOp5W8bqVAgBt+2KKwIR6ziwyEDJhyJ+7OMSsSN4A6l1c4vOdb153LDCz9GNmjtbDS8Ipu7lWQZnUSicmhLorNEPfBg3hhuvC43cq/Q0nSPygKF6beI2yl+GrZaYdzTrvK0xSzVfnI5dL+l4gZjFsRWvhAvQ3ksDZO9EJ9KvQ5ZSkd7gCVveVpq69g+2SKjmDTtEFmRlk5bmjpucbrY6eBKOTI7r8mdyYlVFr6HjsNmbqeuYHCHbXV1Ywroh8Yc7WBGS3GkyGCcEVR8doavQDsW50qpn0FpmSne7B6Xp9ZSVkDeRP4qQMfRrp/dsX5rc6VxdCf3R7r1GPdczntRux7bhfpuKFE+dRiQ3z8y9jzdnGJOwDDeGUDj58h1CfBm/nRtY39shr8bqWmwh1BrbM0WdIU8pLuNsOmEj6zczXivsXqqDXLcv1dzONnnCj1CRX66FRU4X9mqJd26E7/htHPfBwsLT9aSdu445Ij5vhO5jI9ZI1rin3s6DQYNM/iipNByXwb7yWvJE1LKHKmkXG/TdNYJa2xLtSbooNAYlFuZvQu/iATVRmOXuQsyo8zAfzS2pt80so3vZ8pwLaOsomrAtlVC8G2Wd4D6Zel9VIhf0bb7r44qhT5q2a0fR4bYynYO8HC5mqCCQ6VVhvEEBXXKBb9pTSfAnsrsBvdbgTuxDJHkp/cstKJET0JO9a9XHit/Z1I7sSodEAaWZJSGfoRjQdzC2o4Yjamg7MVph1NXyz9UjtO4uInrBhZ/29wO0IXvWFTwPo7S43yFA2dFT8KhOx2LyomI0tmmPeskevzYFNm917RzyOSaeH5c+oFGTb67Fxm5EzNc5pQfYcOL9Iraa8EDA0j6U/dG3y1FQIJvbgIDgN0irWy3SoAvdHc6oVa7VrX6ZAky2HFsngsHmZOxg3mQQl7ksgpqnT5s5cA9IsS1UZegNe3DpwKYCqxIckzre1qhQNmYJj+X9KKg21Ewxl7WTM94Jhe2cQYEwH5r8zGGdQNZgv5zofc8V9aUYwWcSAgKDihxBeSTi8ZQLLamPOGsA6bqHHqYSmxOEHjfEbvS6w+i6JRG6najIQpPtIh2B0Out0FG3aQuHHIIN7af7eOxZB7Y20f2SjZMMQRdR4dvqkjK0B5kqs9mB7kcj5CyATIoSGo/C5cIKvEpothunc3nIP864JjWOfCPjsZToMYvX/YQTQA+P46VwH9EDRq4dipfrUTV5oTEcyXMj72ZiCW9s7nvheORPIgFhhDlMJzPRLKdT0+g2Q/Y6zHhzoIY4vHrBNgku86nUsiuB6rR0OiMdpUPkPk/PCs0Ljw4jWPERyKrG8y2SmNoe5k9B6koNpaX0tbpe73eZsCbCMhsKiOBWba/CwTed9K7W96LKql3phRqzOXjIVZVOfIjj9OaGHVup0DZNPq4f+tk5Erxfr8OacJQ0hpXjkaTQ+HE6ug5qdg7S7dFurZLETTrEqXZLlB7qKqO+uXd32wXJcVxLkgurSMed7qWemoyuUSc4Xe8lzCbhDpEn+BIKW6pmevTUFe4m5PBsIs/aZAZiJ1TnGz5ZpOhXGdJDpxnzEWoTtf72Chs3s7gnsH47sYbMq5wADbKDkWI4VvLOUnQJRU5Yd+Zq6YwKE8ZAjX5zCYrsKHx7aCUOmwZHOwTKTVvbF3eLXO2i2u+tPOS5kSw40Md6uH+r8aK+IY/xcKnSR7K/7a6PPeIGsijdBAUI23lGYliU5POp2kM4UVRX5Xqv9TlkOUneFcLU9g+08JBAPvDUOXjk05pAO1+Dj6iG4FZuN0irV/itQ/CIOuqh18Eeeeq3mk9SlIGeO+20vRYJHmF2cJ8uxvYhnYSuk4HcRErYK65wmpsNDsQqpE1aFtmGMtJSpM+EMtmWWBvHbnMDlpyKuO7pi+UEF90Tdh4FNUCYeFnti2u50fexyJ5LcmegxHDJ4TqR67VIWJHZ5QktpTs+qwhPrJX7Q6G9XhiQwtMag90Hk3jtrpoxbOvTcLV4EpPOM8sFoNGTbuicBx7n++25VA9kPfcHz3Vjox+dQjKFS0qJieekl1kRpJTSMt1zio41Q41AA227veVMTxrZNMX0GLj4hUzFhHTmwblr/GaH2Wc9F2YK3zPUrD6Ekc+r/lTmKoN3oC9NWYuWyJg+WpU5bkQxcUu/hY29JrrOLb+KFnlR1LY9oofSdTz5nLiBh4Soq46yJwX3KlSF9OFtaOxu15CckDtpBgTVXmm9LABgH88tRW2des6ChjWPWeHQkckqVzgvtaEgYgGuuHuENgOeHvBMBCCOzAJo+ovLDb7zLdXzhxxXjkCp2fleLMNbf1EvRH97CIdL7KbBvGshb845npKoiZv5hjMsPsp2BMk0W48SFGFf2By3uUJuh9SYdEHXbHg2UTHbF17OJX4nlhMLU8hVN9cnjzDXsXPA8nKUqMrLdmGHSSYuqN7p0A4nnyqhB5CYxuSvd/hFUW51S11zSoC2BKfBhvNAGweXfUTYUahaovImY0MV5CNmHe7YOYpVq2zXbDaBduaedZltF60nZIlLSNSQNMciDGjhSERlHOmutpu4tMc3e04ojAQzoDNVFS7KaHDMEDtnK0U0Fuf7/i7sTyN9cU97zxrPWrXd8gpVHaHrBlF05to92ElrYFuKwlkpsMAQ645Uo5vktlv/cprIrttJpCl6FyChpPtmp1vSozkHekZaoa1zKaI+hsoKECVv7lukKqH1Gkfoxr65s4fTg0Xeg4dP3E100NZ7pE90+6BLla1YJT/RG2biHWQHm0L5uIr3mBBtlCIG/eJkNskFDRZUrZ7vuz3MIC0vlqonRQzz6fPzNaP3F5O+/70aDD//hvRLvvx1XRM7KLEBX9O061P+OggIknQ3gUOjjkdv1qRDIhsa34QBSvsbDyU3RBjgQPVg3sbxaVAnHqgef009Xz95/ulbsbws/enrf35aXsT9+nyv5OsPK7al07Rf/fdXYJ7vSDX/Tqyef+z475tPn/+Hae8vCX99+4/Xmyr/BQZ6CXB8/QV5TqrKZnkDc/p4H6vJuujHbS+bfb4y+evynjkQQx8DWyd6/8PM5Y8nXm/oAKPA7F//D6YL4/P5PQAA -->

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.