Files
pnpm/cspell.json
T
Zoltan Kochan 8212de71e4 feat(skills): add defect-hotspots skill for recurring fix loops (#17021)
The skill finds areas where fixes keep landing and fixes need follow-up
fixes, then guides the analysis from those loops to the design flaw
behind them and the tests that would have caught them.

scripts/hotspots.mjs collects the evidence:

- fix commits per file and module, with fixes per thousand lines so
  size alone does not rank a module high;
- SZZ-style blame of each recent fix's removed lines, giving
  fix-on-recent-change and fix-on-fix edges and the commits that
  needed several follow-up fixes. Blame looks through commits that
  touch more than 30 source files, and edges into them are dropped,
  so file splits do not attract every later fix;
- issues opened in a recent window, linked to modules through the
  commits that close them.

implement-change now asks a bug fix to check whether the code it touches
was fixed recently and, if earlier fixes restored the same property, to
fix the cause or say why this fix is another case of it.
2026-10-17 12:05:04 +02:00

568 lines
8.7 KiB
JSON

{
"ignorePaths": [
"**/nodeReleaseKeys.ts",
"**/nodeReleaseKeys.d.ts",
"**/node_release_keys.rs",
"bench-work-env/**",
"target/**",
"vendor/**"
],
"words": [
"abrt",
"adduser",
"adipiscing",
"agentkeepalive",
"agentkeepalive's",
"aliasless",
"amet",
"andreineculau",
"APFS",
"appdata",
"applyq",
"archy",
"argumentless",
"armv",
"AUTHTOKEN",
"autocheckpoint",
"autocompleting",
"autofix",
"autofixed",
"autoinstalled",
"autozoom",
"babek",
"Backblaze",
"badheaders",
"baires",
"basedirs",
"bdist",
"behaviour",
"blabla",
"Bluesky",
"brasileiro",
"bryntum",
"btrfs",
"buildx",
"Bunzip",
"cafile",
"cafs",
"camelcase",
"canonicalizer",
"cantopen",
"canva",
"CDPATH",
"cerbos",
"certfile",
"chcp",
"chmods",
"clonedeep",
"clonefile",
"cmds",
"Codeberg",
"codegen",
"codeload",
"codenames",
"codesign",
"colorterm",
"compdef",
"COMPREPLY",
"comver",
"cooldown",
"copyfiles",
"corejs",
"corepack",
"corge",
"cowsay",
"creatordate",
"Creds",
"cryptiles",
"cves",
"CWORD",
"cwsay",
"cyclonedx",
"cygdrive",
"dashrc",
"deburr",
"dedup",
"denoland",
"denolib",
"dependson",
"deptype",
"desugared",
"desugars",
"devextreme",
"devowl",
"dgimuvys",
"didyoumean",
"dirents",
"dirtyforms",
"diskusage",
"dislink",
"dpkg",
"drivelist",
"duplexify",
"eacces",
"eagain",
"ebadplatform",
"ebusy",
"eexist",
"ehrkoext",
"eintegrity",
"eisdir",
"elifecycle",
"elit",
"embedder",
"embedders",
"emfile",
"enametoolong",
"endgroup",
"endregion",
"eneedauth",
"enoent",
"enotdir",
"enotempty",
"enten",
"eotp",
"eperm",
"epipe",
"erofs",
"errcode",
"errorlevel",
"esac",
"esep",
"etamponi",
"exdev",
"execa",
"execpath",
"exploitability",
"fakehash",
"fastlist",
"fellback",
"fetchings",
"filenamify",
"filesystem",
"filesystems",
"fnumber",
"foobarqar",
"foofoo",
"footgun",
"forgejo",
"forwardable",
"fsevents",
"fslib",
"gabor",
"garply",
"gcttmf",
"getaddrinfo",
"getattr",
"ghes",
"ghsa",
"ghsas",
"gitdir",
"gitea",
"globalconfig",
"globstar",
"gnueabihf",
"gpgsign",
"grault",
"gruntfile",
"gwhitney",
"gypfile",
"haptics",
"hardlink",
"hardlinked",
"hardlinking",
"hardlinks",
"hashbang",
"hashless",
"highmaps",
"hikljmi",
"hoistable",
"homepath",
"hosters",
"hostnames",
"hotspots",
"htpasswd",
"hyperdrive",
"idempotency",
"imagetools",
"imurmurhash",
"inodes",
"invalidformat",
"ionicons",
"isexe",
"istvan",
"italiano",
"jega",
"jhcg",
"jnbpamcxayl",
"journaled",
"junyi",
"kebabcase",
"kevva",
"keyfile",
"keyid",
"keytype",
"killcb",
"kloc",
"kochan",
"koorchik",
"kshrc",
"LASTEXITCODE",
"ldid",
"ldni",
"ledgered",
"leniolabs",
"libc",
"libnpmpublish",
"libnpx",
"libpnpm",
"libsql",
"libzip",
"licence",
"licences",
"lifecycles",
"lightningcss",
"linearization",
"linuxstatic",
"localappdata",
"lockfiles",
"loglevel",
"logstream",
"longlink",
"longpaths",
"loong",
"lowlink",
"ltrim",
"luca",
"malloc",
"manylinux",
"martensson",
"maxsockets",
"maxtimeout",
"mdast",
"metacharacter",
"metafile",
"millis",
"minioadmin",
"mintimeout",
"mkfifo",
"mksh",
"mmap",
"monorepolint",
"montudor",
"moonrepo",
"mountpoint",
"msgpack",
"msgpackr",
"msvc",
"msys",
"MSYSTEM",
"mtimes",
"musleabihf",
"mycomp",
"mycompany",
"myorg",
"mypackage",
"mytoken",
"napi",
"ndjson",
"nerfed",
"newteam",
"newversion",
"nistp",
"NOASSERTION",
"nodepath",
"nodetouch",
"noent",
"nonexec",
"noninjected",
"nonvulnerable",
"noopener",
"nopadding",
"noprofile",
"noproxy",
"norc",
"noreferrer",
"nosystem",
"nothrow",
"npath",
"npmcli",
"npmignore",
"npmjs",
"npmmirror",
"npmx",
"ntfs",
"nushell",
"ofjergrg",
"oldteam",
"onclickoutside",
"onstat",
"oomol",
"openharmony",
"openpgp",
"openpyxl",
"ossl",
"outfile",
"overrider",
"packlist",
"packr",
"packument",
"packuments",
"pacquet",
"paralleljs",
"parallelly",
"parseable",
"partialmatch",
"pathext",
"pathsep",
"peeker",
"pegjs",
"pgid",
"pids",
"pidtree",
"pify",
"pinnable",
"pkgid",
"pkgname",
"pkgs",
"plotly",
"plugh",
"pnpmfile",
"pnpmfiles",
"pnpmjs",
"pnpmrc",
"pnpmtest",
"pnpr",
"polyfilling",
"português",
"posix",
"postbuild",
"postfoo",
"postpack",
"postprepare",
"postpublish",
"postrestart",
"postshrinkwrap",
"poststart",
"poststop",
"posttest",
"postuninstall",
"postversion",
"preact",
"prebuild",
"prefoo",
"prefs",
"preinstall",
"premajor",
"preminor",
"preopens",
"prepatch",
"prepublish",
"prereleases",
"prerestart",
"preshrinkwrap",
"prestart",
"prestop",
"preuninstall",
"preversion",
"prioritizer",
"promisified",
"propfind",
"proxied",
"publickey",
"pwsh",
"pylock",
"pypi",
"pyproject",
"pythonhosted",
"qrcode",
"quux",
"rcompare",
"redownload",
"refclone",
"refetched",
"refetches",
"reflattened",
"reflink",
"reflinked",
"reflinks",
"rehoist",
"reimagining",
"reka",
"Rekor",
"relinks",
"renderable",
"reparses",
"replit",
"repoint",
"repointing",
"reqheaders",
"rescans",
"rescopable",
"rescope",
"rescoped",
"rescopes",
"rescoping",
"resolv",
"revisioned",
"rimrafed",
"riscv",
"rmgr",
"rpmdevtools",
"rpmlint",
"rsort",
"rstacruz",
"rushstack",
"rustc",
"rustup",
"safecrlf",
"sccache",
"scim",
"scopeless",
"scriptless",
"sdiff",
"searchexclude",
"searchlimit",
"searchopts",
"searchstaleness",
"secp",
"sels",
"semistrict",
"serde",
"serp",
"serverjs",
"setgid",
"SETLOCAL",
"setx",
"shasums",
"sheetjs",
"Sherov",
"shlex",
"shrc",
"SIGPIPE",
"sigstore",
"sindresorhus",
"sirv",
"skopeo",
"SLSA",
"soporan",
"sopts",
"spdxdocs",
"SPDXID",
"sqld",
"srcset",
"ssri",
"stackblitz",
"stacktracey",
"statter",
"stdtype",
"streamsearch",
"stringifying",
"strongconnect",
"subcmd",
"subdep",
"subdependencies",
"subdependency",
"subdeps",
"subdir",
"subdirs",
"subkey",
"subkeys",
"subpkg",
"subresource",
"supercede",
"Swatinem",
"syml",
"symref",
"syncer",
"syscall",
"syscalls",
"systemroot",
"szia",
"tabtab",
"taffydb",
"taiki",
"tarballtemplate",
"Tarjan",
"taskkill",
"teambit",
"tempy",
"testcase",
"thesys",
"tlog",
"TLSV",
"toctou",
"todomvc",
"toplevel",
"TOTP",
"tsgo",
"tsparticles",
"turso",
"typecheck",
"typeflag",
"TYPELESS",
"unallowed",
"Unawaited",
"uncacheable",
"unconfigured",
"undeprecate",
"underperformance",
"undispatched",
"undollar",
"unextractable",
"Unincluded",
"uninstallation",
"unmigrated",
"unnest",
"unparseable",
"unreleasable",
"unreviewed",
"Unseparated",
"unskip",
"unstar",
"untracks",
"unvalidated",
"usecase",
"userconfig",
"userprofile",
"ustar",
"uuidv",
"valign",
"venv",
"versionless",
"virtiofs",
"vuln",
"wabt",
"wafpickle",
"waitpid",
"wakeup",
"wasi",
"wasip",
"wbem",
"webauth",
"webcontainer",
"webdav",
"WIFEXITED",
"windir",
"windowspowershell",
"winst",
"wordbreaks",
"workleap",
"worktree",
"worktrees",
"wrappy",
"wscript",
"wslpath",
"WTERMSIG",
"xattr",
"xattrs",
"xmarw",
"yazl",
"zdotdir",
"zkochan",
"zoli",
"zoltan",
"zstd"
]
}