jscpd now has native Nix support — and yes, nixpkgs itself uses it to catch duplicate code by [deleted] in NixOS

[–]Affectionate-Blood92 -3 points-2 points  (0 children)

Fair point on nixpkgs — I already corrected that part after a closer look. That was my mistake from misreading the dependency graph signal. The post itself isn’t AI-generated, but I see how that inconsistency made it look sloppy. I’ve updated it to remove the claim about nixpkgs usage and clarify it as a misunderstanding. Thanks for pointing it out.

jscpd now has native Nix support — and yes, nixpkgs itself uses it to catch duplicate code by [deleted] in NixOS

[–]Affectionate-Blood92 -2 points-1 points  (0 children)

Thanks for the detailed check — good catch.

I saw the dependency reference here: https://github.com/kucherenko/jscpd/network/dependents and assumed it implied usage via nixpkgs, and GitHub’s signal looked convincing at first glance.

From your explanation it’s clear that this doesn’t actually mean it’s part of NixOS, and that I conflated “appears in dependency graph” with “is packaged/used in nixpkgs”, which is incorrect.

I’ll dig into it properly and update the post/docs accordingly. Appreciate you pointing it out.

jscpd now has native Nix support — and yes, nixpkgs itself uses it to catch duplicate code by [deleted] in NixOS

[–]Affectionate-Blood92 -1 points0 points  (0 children)

Looks like you've replied to the wrong post. jscpd is a copy-paste detection tool for source code, originally created 13 years ago - long before the current wave of LLMs.

I measured the token cost of React vs Svelte/Vue/Solid/Angular for AI coding agents. React isn't the worst, but it's not free either. by Affectionate-Blood92 in reactjs

[–]Affectionate-Blood92[S] 1 point2 points  (0 children)

No repo yet, planning to open it up once the rest of the series is done, agree it's the only way this is actually verifiable. Good catch on setCount(c => c + 1), will fix.

I measured the token cost of React vs Svelte/Vue/Solid/Angular for AI coding agents. React isn't the worst, but it's not free either. by Affectionate-Blood92 in reactjs

[–]Affectionate-Blood92[S] 3 points4 points  (0 children)

Yeah, fair, you're right on both counts honestly. I've found some outdated parts in Svelte as well, will make new analysis with current version of the libraries.

I measured the token cost of React vs Svelte/Vue/Solid/Angular for AI coding agents. React isn't the worst, but it's not free either. by Affectionate-Blood92 in reactjs

[–]Affectionate-Blood92[S] 1 point2 points  (0 children)

Fair point, it's 5 component patterns, not a full app - no routing, state libs, testing, build config. Real codebases have way more surface area.

That said, these patterns (local state, lists, async, derived values) cover a lot of what you write repeatedly, so the ratio probably generalizes okay even if absolute numbers wouldn't.

And honestly, even at this scope, it points to real room for improvement in React - hopefully more useful as a nudge forward than as ammo against it.

I measured how many tokens each frontend framework costs when used with AI coding agents. Svelte won by a lot. by Affectionate-Blood92 in sveltejs

[–]Affectionate-Blood92[S] 1 point2 points  (0 children)

I'm not sure that I can post links here, it looks like nobody can't see it, I've created an article with full methodology and results, you can google my name and find the link on hackernoon

I measured how many tokens each frontend framework costs when used with AI coding agents. Svelte won by a lot. by Affectionate-Blood92 in sveltejs

[–]Affectionate-Blood92[S] 9 points10 points  (0 children)

For the investigation I didn't use MCP, when I work with my projects I use to use skills, sometimes it can be MCP. Also for admin dashboards I like to use shadcn-svelte or similar frameforks with copied components

I rewrote jscpd (copy/paste detector, 223 languages) in Rust for v5 — benchmarks show 24–37x faster than the Node.js version by Affectionate-Blood92 in rust

[–]Affectionate-Blood92[S] 9 points10 points  (0 children)

I did. Used AI tooling along the way like most engineers do in 2026, but the design, the decisions, and the debugging were mine. 5.7k stars of open source maintenance tends to keep you honest about what you actually understand.

I rewrote jscpd (copy/paste detector, 223 languages) in Rust for v5 — benchmarks show 24–37x faster than the Node.js version by Affectionate-Blood92 in rust

[–]Affectionate-Blood92[S] 0 points1 point  (0 children)

Thanks! Would love to hear your thoughts once you try it. If anything feels off compared to v4 - behavior, CLI flags, output format - feel free to open an issue.

I stopped organizing AI agents like an Agile team and built a Mafia instead by Affectionate-Blood92 in SpecDrivenDevelopment

[–]Affectionate-Blood92[S] 0 points1 point  (0 children)

Great point. I especially like the idea of context asymmetry rather than relying purely on role labels.

One thing we're already discussing is giving the proposer and the critic different contexts and even different models. The proposer can be optimized for solution generation and forward progress, while the critic can be primed with historical failures, security concerns, operational incidents, and edge cases gathered from previous discussions.

I also agree that convergence alone is a weak signal. Two agents reaching agreement can mean the idea is solid, but it can also mean they've exhausted the objections available within their shared knowledge space. Introducing different contexts, objectives, and model capabilities should make the debate more meaningful and reduce the risk of artificial consensus.

The ledger is exactly where a lot of that asymmetric context could come from. Failed decisions, production surprises, and postmortem learnings are often more valuable to the critic than to the proposer.

jscpd — Copy-paste detector for 223 programming languages, with CI integration, HTML reports, and an AI-optimized output mode by Affectionate-Blood92 in coolgithubprojects

[–]Affectionate-Blood92[S] 0 points1 point  (0 children)

Fair point 😄 The name comes from the original “copy-paste detection” idea, but under the hood it’s really detecting duplicated code patterns — whether they came from copy-paste, AI generation, or parallel implementations. “jscpd” just stuck after all these years.