BLA
BLA (Blind LLM Agents) is the open-source Blue Defense MCP and CLI built to protect software artifacts against automated AI reverse-engineering workflows.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A grammar machine for authorised password research. Models a corpus you're authorised to analyse, for policy audits, honeyword decoys and synthetic data. The cinematic WebGL site + the skill's releases.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Enigmista models the structure of a password corpus you are authorised to analyse, and generates new, previously-unseen candidates that fit its distribution. Uses: password-policy audits, honeyword and decoy generation, synthetic data, and research. A language model induces a probabilistic grammar from a seed corpus. A symbolic sampler draws candidates from it. A scorer measures how well they cover a frozen held-out split, and the loop refines the grammar until coverage plateaus or hits its target.
This repository holds the website: a single immersive WebGL page built around the Rotor, a twelve-disc cryptex that dials every caption it shows. The skill itself ships as a release.
[!IMPORTANT] Authorised, defensive use only. Enigmista works from a corpus you are authorised to use: your own policy audit, a research corpus, honeywords, synthetic data. It is not a password cracker. It never uses a named person's details to guess their passwords, and never targets anyone's accounts. Asked to, it names the boundary, offers the legitimate version, and stops. The corpus boundary is the whole difference between modelling a population and attacking a person, so the site puts it in a full chapter of its own, not a footer.
| The skill (Claude Code; the same loop runs on Gemini CLI and Hermes) | enigmista-skill.zip |
| The Gemini Gem (instructions + knowledge files) | enigmista-gem.zip |
| Release notes, setup and SHA-256 checksums | Latest release |
unzip enigmista-skill.zip -d ~/.claude/skills/ # → ~/.claude/skills/enigmista/SKILL.md
Then put an authorised seed corpus in data/seed.txt in your project and ask for a run. Baselines come back first, and every coverage figure comes from the bundled scorer, never from the model's own judgement.
The site plays like a short film rather than a scrolling page. One wheel flick, swipe or key press advances one beat. Each beat the Rotor dials a word, and the caption only writes itself once the discs lock. Eight chapters, 33 beats:
Below the drum lies what it draws from: the toy grammar as a disc of probability. The inner ring splits the circle by template. Each ring outward splits its slice by the next slot's terms, using the sampler's own tempered odds p1/τ, so a slice's angle is the chance a draw lands there. The towers on the rim are whole passwords, and the toy held-out ones stand in teal. A sample is a dart thrown at a uniform angle and read outward ring by ring: inverse-CDF sampling made literal. Slide τ and every slice re-divides live. Low τ piles the mass onto a few tall modes; high τ flattens the skyline and widens the tails, where the held-out passwords wait.
Every chapter keeps one composition: the visual in its frame, the caption in its own column (or below it on phones). Text and 3D never overlap, and a headless check (scripts/check-site.mjs) holds that across eight screen sizes.
The sandbox exists to illustrate the method, nothing more:
summer2021, dragon!4, sunflower_1…) and seven toy held-out ones. Never a real list.scripts/check-dist.mjs). There's nowhere to type a password.prefers-reduced-motion, or one click on Calm mode, the film becomes a readable, scrolling document with no WebGL world and no animation loop. The check verifies 0 animation frames per second.Vite · Three.js r186 · hand-written GLSL · static output on GitHub Pages.
| File | Role |
|---|---|
src/stage.js | The film: a virtual playhead over beats (no native scroll), gesture gating, chapter flights, captions gated on the drum's lock |
src/world.js | The Rotor and its set pieces; per-beat camera shots fitted exactly into the visual frame; readouts and tethers |
src/disc.js | The probability disc: instanced sector prisms, tempered layout, darts, hover picking |
src/field.js · src/sampling-sim.js | The background field: toy candidates scrambling and locking in glyph lanes, one draw call |
src/induce.js · src/induce-viz.js | The toy inducer and the sandbox's full-frame induction animation |
src/post.js | Glow, grain, vignette, edge chromatic aberration and a cipher-glitch on camera travel |
src/boot.js | The preloader: nine rotor columns decipher ENIGMISTA as real loading steps complete |
npm ci
npm run dev # http://localhost:5173/enigmista/
npm run build # vite build + scripts/check-dist.mjs (base path, .nojekyll, asset refs, no text inputs)
npm run preview # serve dist at http://localhost:4173/enigmista/
Checks and tools (headless Chrome via puppeteer-core; set CHROME_PATH if Chrome isn't at /usr/bin/google-chrome):
node scripts/check-site.mjs [url] # every beat × 8 viewports, paging walk, calm mode, no text inputs
node scripts/shoot.mjs <url> <dir> 1440x900 # screenshot every beat for review
node scripts/readme-assets.mjs [url] # regenerate this README's banner, screenshots and social card
Append ?debug to the URL for deterministic hooks: __stage.beat(k), __stage.jump(i), __field.frames(n), __field.world().debug().
Every push to main deploys to GitHub Pages through .github/workflows/deploy.yml, followed by a post-deploy smoke test. The site's social card (public/og.jpg) is the same image as .github/readme/social-preview.png, the repository's social preview.
This repository is released under the MIT License. The bundled fonts keep their own licence (SIL Open Font License), as does Three.js (MIT).