ai-startup-skills
创业公司做 AI 产品的 7 步 Agent Skill 合集:验证 → BP → 政策 → 路演 → 获客 → 定价 → 注册。
Translation pending
MPOB-UKM Biodiesel Mandate Decision Studio, user level: four objectives and the monthly B20/B30 decision, step by step.
OtherJavaScript · CSSGitHub @mukhrizizrafOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗https://mukhrizizraf.github.io/mpob-user-level-dashboard/ works in any browser, on a phone, tablet or computer. Companion: the Developer level, which has the evidence behind every step.
A step-by-step app for MPOB / MOF staff to decide each month whether Malaysia's biodiesel mandate stays at B20 or moves to B30. Part of the MPOB-UKM Endowment Chair Research Grant 2026, Topic 3: a sustainable self-funding framework for the national biodiesel mandate.
All values are simulated placeholders, not official MPOB figures. The controls explore saved research results; they do not rerun the research models. B15 is a proposed safeguard only. The Windfall Profit Levy (WPL) is a baseline reference only, never a recommended funding source.
| Tab | Objective |
|---|---|
| Home | To decide, each month, whether Malaysia's biodiesel blend stays at B20 or moves to B30. |
| OBJ1 · Price | To develop an automatic pricing mechanism for biodiesel (APM-Bio). |
| OBJ2 · Shock test | To evaluate whether a Biodiesel Stabilisation Fund (BSF) can withstand price shocks. |
| OBJ3 · Money sources | To determine the best sources of funding for the BSF. |
| OBJ4 · Mandate rule | To develop a dynamic rule for moving between B20 and B30. |
| Decision now | To decide the biodiesel blend for the chosen prices and fund. |
Implements the code review in 07_Codex_Analysis/code review .md: input drafts that never change silently (CR01), Decision
overrides only after a real edit (CR02), reset buttons that do what they say (CR03), snapshot and scenario labelling at every width
(CR04), funding parts labelled by period and never called "money available" (CR05), phone-friendly comparisons (CR06),
WCAG 4.5:1 colour pairs in every theme (CR08), caveats beside the headline results (CR09), Lottie clean-up (CR10), a real tablist
with arrow keys and focus handling (CR11), "Not tested" kept apart from zero and failure (CR12), a visible saved-run badge (CR18),
calm motion that follows the reduced-motion setting live (CR19, CR20), a snapshot check at start-up (A02) and a print record (A03).
The hive (src/home.js, canvas) runs one animation loop for the whole app; it rests while the page is hidden or the journey
fills the screen, and is a still picture under Reduce motion. The step pictures (src/art.js, inline SVG) each
move on their own (a drip, swaying fronds, a waving flag, falling coins, a flipping calendar), tilt and shift in layers under the
pointer, and a light sweeps across the step in hand. Five follow the live numbers: the balance tips by the price gap, the flag
turns green or amber, the shield turns red when the fund is short, the B30 stamp comes down when approval is on, and the ladder,
the drop and the savings jar move to the blend and the savings share. They rest while the row is off screen and stand still under
Reduce motion. The Mirror Hall (src/hall.js) stays in the build but neither level mounts it any more.
The step cards arrive through src/morph.js: when an objective or Decision now opens, the cards of the page being left break
into dust in their colours, the dust spirals into a vortex over the step row, and the new cards spin out of it, fly up in an arc
and drop into their places with a small bounce before handing over to the real cards. This happens once per page per visit: going back to an objective already seen, the cards just pop up in place (a short spring rise, 30ms apart). The hive and its writing are untouched.
The flying cards are copies in a fixed layer, so the real buttons stay usable; under Reduce motion the cards simply appear.
src/motion.js is a small spring engine (no library). Every animation starts from what is on screen, carries velocity and can be
interrupted: tabs fold away like a foldable phone's hinge, step cards follow your finger and keep its momentum, the selection pill
stretches toward the tab you pick, and the verdict settles when the blend changes. Numbers are written at once; only containers move.
With Reduce motion turned on in the device settings, everything becomes a short cross-fade.
V3_DASHBOARD_SNAPSHOT.json), embedded at build time, and data/ingredients.json, the
snapshot month's methanol and glycerol inputs from the master workbook (cells E201 and F201).src/model.js copies V3's calculation rules line for line, and test.mjs proves both give identical results.Needs Node 20 or later. No npm install. Inside the project the scripts read V3 directly and write
../MPOB_Mandate_Decision_Studio_user_level.html; in this repository they use data/, vendor/ and reference/v3/ and write index.html.
npm run build # or: node build.mjs
npm test # rules match V3; snapshot check; page embeds the same snapshot; nothing loads from the network
npm run shoot -- shots # optional: headless Chrome/Edge walk-through + the review's acceptance checks (SCHEME=dark for dark mode)
| Path | Role |
|---|---|
index.html | The built app (generated; do not edit by hand) |
src/index.html | Page shell with build placeholders |
src/styles.css | Design tokens (light + dark), the ring-step infographic, controls |
src/shared.css | Shared with the Developer level: mobile baseline, review fixes, motion hooks, themes, print |
src/model.js | V3 calculation rules and number formats |
src/motion.js | Shared spring engine, swipe gesture, CSS spring curves |
src/theme.js | Shared look selector (six looks) |
src/home.js | Shared: the biodiesel journey on Home (one long camera move, sponsor marks) and the living hive behind every page, which writes the step in hand |
src/hall.js | Shared: the Mirror Hall step cards (marbled liquid and reflections, WebGL) |
brand/ | Sponsor logos mpob.svg and ukm.png, embedded small on the journey's last screen at build time. The MPOB and UKM logos are the trademarks of the Malaysian Palm Oil Board and Universiti Kebangsaan Malaysia, shown only to credit their support of this study. |
src/art.js | Shared: step pictures: a moving drawing of each step in its box, five of them following the live numbers (brings its own CSS) |
src/sound.js | Shared: quiet Web Audio cues (clicks, slider ticks, page notes, card pops, verdict chords, look shimmer, journey bells and kalimba notes) the mute button and the Sound switch |
src/guide.js | Shared: Slide to start the journey on Home, and the carry-on hint |
src/morph.js | Shared: step morph: old cards turn to dust, new cards spin out of a vortex, fly and drop into place (brings its own CSS) |
src/app.js | Tabs, steps, live bindings, input handling |
src/lottie-icons.mjs | Project-authored Lottie result marks (B30 check, B20 hold, B15 caution) |
data/ | Research snapshot (simulated) and the snapshot month's ingredient inputs |
src/sound.js).src/guide.js).#obj2-5 style anchors, so a link opens on the same tab and step. Values reset on reload.vendor/lottie/ | lottie-web 5.13.0 light player, MIT licence (Bodymovin) |
reference/v3/ | V3 rule files, used only by the parity tests |
build.mjs, test.mjs, shoot.mjs | Build, tests, browser check |