Reject algorithmic "similar item" recommendations. You are in control of your own needs.
You search for an RTX 4090 Workstation, and the platform pushes an RTX 4060 Ti 8G Gaming Laptop, labeling it as the "best value." You search for a Gasket-mount mechanical keyboard, and the platform pushes a $1.99 membrane keyboard, stuffing the title with "Mechanical," "Esports," and "RGB." This isn't a recommendation. It's manipulation. Platforms use "similar items" to dilute your actual intent, flood your feed to hijack your attention, and wait for you to forget your original goal before precisely reeling you back in.
### The Anti-Nudge Protocol does one simple thing: It gives the right to refuse back to you.
###✅ Hard Parameter Filtering (100% Accurate)
- VRAM under 24GB? Instantly filtered out.
- Not a Gasket mount? Instantly filtered out.
- ABS keycaps prone to shine? Instantly filtered out.
###✅ Semantic Matching (Local Model, Zero Network Calls)
- Computes semantic similarity locally using Xenova/all-MiniLM-L6-v2.
- Your search intent remains completely private — platforms never see it.
- Computes semantic similarity locally using Xenova/all-MiniLM-L6-v2.
- Your search intent remains completely private — platforms never see it.
###✅ Config-Driven (Open Source & Community-Driven)
- Filtering rules for GPUs, keyboards, and more are all defined in simple JSON files.
- Experts can tweak the parameters; everyone else can just use the ready-made presets.
- Minimal Toolchain: Ditched
ts-node(incompatible with Node 24), switched totsx. Zero global dependencies. Everything installs locally. - Decisions Are Traceable: Every core logic block is commented. No magic code. Six months later, I can still understand why I made these choices.
- Anti-Manipulation First: Users are always informed. No silent rule changes, no hidden features. This is where we draw the line.
Local vector matching. Search "cream-colored linen pants" and get 100% semantically matched results, not "polyester beige approximations."
Then: intent encryption → verifiable sorting → full user sovereignty over demand fulfillment.
Web2 sells dopamine. Web3 should guard endorphins. We don't build to satisfy your desires more efficiently. We build to answer your needs honestly. We refuse to dangle approximations. We refuse to ambush you mid-declutter. What we give back is the right to say "no"—and the right to get exactly what you asked for.
Icing on the cake 🍰, or a friend in need? 🤝
Feature adder ✨ or Bug fixer 🐛?
Polish, or Lifeline?
Nice-to-Have or a Must-Have? 😏
We choose Lifeline.
We build for Must-Have.
We code not to impress, but to liberate.
| Principle | What It Means |
|---|---|
| Anti-Alienation | When algorithms exploit your limits, tech becomes a cage. Sorting logic is open-source and auditable. |
| Intent Sovereignty | Your searches, clicks, and dismissals belong to you. Platforms have no right to "re-engage." |
| Verifiable Matching | Results must be traceable, explainable, and rejectable. You deserve to know why something ranked first. |
| Endorphin-Driven | Technology should serve calm and clarity, not anxiety and impulse. |
| Layer | What We Actually Use |
|---|---|
| Engine | TypeScript + Xenova/all-MiniLM-L6-v2 (local embeddings) |
| Config System | JSON schemas + inheritance (base ← digital ← category) |
| UI Prototype | Static HTML + vanilla JS |
| Runtime | tsx (Node 24 compatible) |
⚠️ Planned but not yet implemented: Transformers.js, PGlite, Rust/WASM, ZK proofs, SSI/SBT identity. These are roadmap items, not current features.
| Version | Goal | Status |
|---|---|---|
| v0.0.1 | Local intent capture + pseudo-match engine + CLI output | ✅ Done |
| v0.0.2 | Decay cycle simulation + re-engagement interception | ✅ Done |
| v0.0.3 | Visual UI prototype + config-driven filtering | ✅ You are here |
| v0.0.4 | Open-source scoring function + unit tests | 🔄 Next (2 weeks) |
| v0.0.5 | Chrome extension MVP (inject Taobao/JD results) | 📅 3 weeks |
| v0.1.0 | Full MVP + Gitcoin Grant application | 📅 1 month |
- Intent Sovereignty: Your intent cannot be manipulated.
- Local First: All computation stays on your device. Data never leaves.
- Auditable: Dependency versions locked. Security assessments in
CONTRIBUTING.md. - Security Over Features: Blind upgrades forbidden. Governance beats novelty.
Born from personal pain → collective solution.
If you feel the same itch: fork it, break it, fix it, polish it.
Adding a product category takes four steps:
- Define dimensions in
src/schemas/(copybase.schema.json) - Write weight configs in
src/configs/official/ - Add hard-filter logic in
src/engine/match-engine.ts - Submit a PR
No deep TypeScript required. If you understand the product, you can contribute.
See CONTRIBUTING.md for the full spec.
MIT License — Free software, free people.
From “being computed” → back to “living”.
Let serotonin and endorphins return.
Let real human emotions grow again — in the gaps between code.
Massive thanks to AI as a pair programming partner: untangling architecture decisions, catching bugs I introduced at 2 AM, and helping turn rough ideas into structured code.
The vision was always human. The execution just needed a very patient sparring partner.
如需中文介绍,请参阅 README_zh.md。