ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Operation: HUMAN — interactive cybersecurity investigations for beginners. Trust is the vulnerability.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Trust is the vulnerability.
An interactive cybersecurity training platform for beginners.
You investigate fictional incidents, examine the evidence, make a decision, and get a debrief that explains why.
Most breaches start with a person, not a zero-day. Reading a list of "phishing red flags" doesn't build the habit of
checking. Operation: HUMAN puts you at the investigator's desk: nothing is revealed until you look for it, and
nothing is scored until you commit to a decision.檢視完整 README ↗Trust is the vulnerability.
An interactive cybersecurity training platform for beginners. You investigate fictional incidents, examine the evidence, make a decision, and get a debrief that explains why.
Most breaches start with a person, not a zero-day. Reading a list of "phishing red flags" doesn't build the habit of checking. Operation: HUMAN puts you at the investigator's desk: nothing is revealed until you look for it, and nothing is scored until you commit to a decision.
| # | Mission | Skill | Evidence desk |
|---|---|---|---|
| 001 | The Impostor | Phishing / social engineering | Suspicious email + raw headers |
| 002 | Open Door | Access control, least privilege | Identity console of a stale contractor account |
| 003 | Red Relay | MFA fatigue, account takeover | Authenticator, chat, sign-in and mailbox-rule audit |
| 004 | Tailgate | Physical security, pretexting | Badge-reader log, visitor bookings, staff statements |
| 005 | Ghost Invoice | Business email compromise | "CEO" payment email with a disguised attachment + headers |
| 006 | Quiet Drive | Malware, removable media | Endpoint alert: USB bait, masqueraded file, beaconing |
| 007 | Deep Voice | Vishing & deepfakes | Coming soon |
Every mission uses the same flow:
| Step | What happens |
|---|---|
| 1. Briefing | Incident file, fictional organisation, objectives, estimated time. |
| 2. Evidence desk | A realistic inbox view. Click the sender, reply-to, link, body text and raw headers to log six pieces of evidence in the inspector. |
| 3. Decisions | Is it legitimate? and What should the employee do? Answers stay hidden until you submit. Feedback explains why every other option is risky. You can retry, but your score keeps your first answer. |
| 4. Debrief | Score out of 100, warning signs caught, warning signs missed (with explanations), the key lesson, replay. |
Scoring is deterministic: 50 points for evidence (frozen the moment you move on to decide) + 20 for the verdict + 30 for the action, both first try only.
A hands-on terminal that uses the same case. Pull apart the email, prove it was spoofed, and find out who already clicked.
analyst@lab:/$ grep spf case/suspicious.eml
spf=fail smtp.mailfrom=acct-review.invalid;
analyst@lab:/$ grep POST case/proxy.log
2026-10-14T08:01:29Z 10.4.12.37 POST http://northstar-portal.acct-review.invalid/login 302
analyst@lab:/$ submit 10.4.12.37
✔ Correct — task 3/5 solved.
Commands: ls cd cat head grep [-i] wc -l pwd whoami objectives hint submit <answer> clear, plus ↑/↓ history.
The terminal is a browser sandbox: a small command interpreter over in-memory files. It never runs anything on a real machine and has no network access, so it is safe to host publicly.
"By the numbers" is computed from the mission data itself (missions, skill areas, evidence items, decisions, lab tasks, training time), so it can never drift from the content. Below it, Your progress shows missions closed, best total score, average per mission and lab tasks solved, read from this browser's saved progress.
Completed missions (with best score) and solved lab tasks are remembered in your browser (localStorage). There are no accounts yet. Clearing site data resets everything.
Structure from PayZ (brushed-steel minimalism): three typefaces (Space Grotesk headings, Inter body, JetBrains Mono labels), hairline borders, 2px corners, no shadows, monospace eyebrows and buttons, a dot-grid breadcrumb strip, KPI tiles with a single rule, and status badges where a dot carries the meaning. One accent is used sparingly.
Colour from the 3D models. The palette is read from the GLB materials: graphite, gunmetal and dark-titanium bodies, with emissive cyan as the single UI accent. Violet and copper appear only inside the 3D scene.
3D backdrop (src/hero-model.jsx, plain three.js, lazy-loaded): the reactor model encloses the whole screen at very
low opacity, and the four atom models float small on slow ellipses, pushed apart so they never overlap. Every model is
normalised from its bounding box. The canvas ignores pointer events and holds still under prefers-reduced-motion.
Accessibility: keyboard-operable evidence and decisions, visible focus, focus moves to the heading on each step change,
aria-live inspector and terminal.
Browser ──► React SPA (Vite, hash routing)
├─ src/data/missions.js mission content as data (evidence, decisions, feedback)
├─ src/mission.jsx reusable mission player + scoreMission()
├─ src/data/labs.js lab files + runCommand() sandbox interpreter
├─ src/lab.jsx terminal UI
├─ src/progress.js per-browser progress (localStorage)
└─ src/hero-model.jsx lazy full-screen 3D backdrop (three.js)
┄┄► Mission API (server/, Express) ← built, not yet wired to the UI
server-authoritative scoring · bearer-token attempt ownership
input validation · rate limit · CORS allowlist · no stack traces
Adding a mission means adding a data object. The briefing, evidence desk, decision and debrief components are shared.
The API contract is documented in docs/api.md: GET /api/missions, POST /api/missions/:slug/attempts,
POST /api/attempts/:id/evidence, /decisions and /complete. Public mission data never includes the answer key.
├─ src/
│ ├─ main.jsx routes + pages (Home, Missions, Labs, About)
│ ├─ mission.jsx Mission player
│ ├─ lab.jsx Lab terminal
│ ├─ progress.js localStorage progress
│ ├─ hero-model.jsx three.js backdrop (reactor + floating atoms)
│ ├─ app.css design system
│ └─ data/ missions.js, labs.js
├─ server/ Express mission API (index.js, missions.js)
├─ public/models/ GLB 3D assets (reactor + 4 atoms)
├─ docs/ api.md, agent-orchestration.md
├─ Dockerfile, nginx.conf, docker-compose.yml
└─ vite.config.js BASE_PATH-aware build
Requires Node 20+.
git clone https://github.com/Kavish0001/Task-Wispr-Flow.git
cd Task-Wispr-Flow
npm install
npm run dev # → http://localhost:5173
Optional: start the mission API in a second terminal.
cd server
npm install
npm start # → http://localhost:8787/api/health
Or start the whole stack with Docker:
docker compose up --build # → http://localhost:8080
| Target | How |
|---|---|
| GitHub Pages (current demo) | BASE_PATH=/Task-Wispr-Flow/ npm run build, copy dist/index.html to dist/404.html, publish dist/ to the gh-pages branch. |
| Vercel / Netlify | Import the repo, framework Vite, build npm run build, output dist. No env vars needed. |
| API | Any Node host (Render, Fly, Railway). Set CORS_ORIGINS to the frontend URL. See docs/api.md for all env vars. |
One coordinating agent plus specialist agents, each with its own files:
a backend agent (server/, docs/api.md) and a read-only security & QA agent whose findings were fixed
before release (for example, a prototype-key crash in the lab filesystem and a score-inflation path).
Details are in docs/agent-orchestration.md. No AI runs inside the product.
.invalid TLD. Organisations and people are fictional; IPs are private (10.x) or documentation (198.51.100.x) ranges.dangerouslySetInnerHTML. All content renders as React text..env* files are git-ignored.