Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ Anti-Nudge Protocol

Reject algorithmic "similar item" recommendations. You are in control of your own needs.

Why are we building this?

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.


Current Capabilities

###✅ 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.

Development Principles (Lessons Learned)

  1. Minimal Toolchain: Ditched ts-node (incompatible with Node 24), switched to tsx. Zero global dependencies. Everything installs locally.
  2. Decisions Are Traceable: Every core logic block is commented. No magic code. Six months later, I can still understand why I made these choices.
  3. Anti-Manipulation First: Users are always informed. No silent rule changes, no hidden features. This is where we draw the line.

What's Next?

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.


🎯 Coding Ethos

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.


🧭 Project Vision

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.

📦 Current Tech Stack (v0.0.3)

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.


🚧 Roadmap (Updated)

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

Design Principles

  • 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.

🤝 How to Contribute

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:

  1. Define dimensions in src/schemas/ (copy base.schema.json)
  2. Write weight configs in src/configs/official/
  3. Add hard-filter logic in src/engine/match-engine.ts
  4. Submit a PR

No deep TypeScript required. If you understand the product, you can contribute.

See CONTRIBUTING.md for the full spec.


📄 License

MIT License — Free software, free people.


🌱 Stay Real. Stay Human.

From “being computed” → back to “living”.
Let serotonin and endorphins return.
Let real human emotions grow again — in the gaps between code.

🙏 Acknowledgments

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

About

A protocol to resist algorithmic nudging and restore user intent sovereignty.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages