

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1234567891011121314# Strict TypeScript: Standalone Features A1516## Task1718Fix all strict-mode TypeScript errors in 7 standalone feature files and add them to `CORE_FILES`.1920## Branch2122```23git checkout main && git pull origin main && git checkout -b cursor/strict/standalone-features-a24```2526## Files (108 errors total)2728### `injected/src/features/api-manipulation.js` (8 errors)29```30(101,24): error TS7053: Element implicitly has an 'any' type (string index on {}).31(119,28): error TS2339: Property 'enumerable' does not exist on type '{ get: () => any; }'.32(122,28): error TS2339: Property 'configurable' does not exist on type '{ get: () => any; }'.33(129,51): error TS2339: Property 'enumerable' does not exist on type '{ get: () => any; }'.34(129,96): error TS2339: Property 'enumerable' does not exist on type '{ get: () => any; }'.35(130,53): error TS2339: Property 'configurable' does not exist on type '{ get: () => any; }'.36(130,100): error TS2339: Property 'configurable' does not exist on type '{ get: () => any; }'.37(153,23): error TS7015: Element implicitly has an 'any' type because index expression is not of type 'number'.38```3940### `injected/src/features/autofill-import.js` (23 errors)41```42(39,5): TS7008: Member '#exportButtonSettings' implicitly has an 'any' type.43(41,5): TS7008: Member '#settingsButtonSettings' implicitly has an 'any' type.44(43,5): TS7008: Member '#signInButtonSettings' implicitly has an 'any' type.45(45,5): TS7008: Member '#exportConfirmButtonSettings' implicitly has an 'any' type.46(48,5): TS2564: Property '#elementToCenterOn' has no initializer.47(51,5): TS2564: Property '#currentOverlay' has no initializer.48(54,5): TS2564: Property '#currentElementConfig' has no initializer.49(56,5): TS7008: Member '#domLoaded' implicitly has an 'any' type.50(58,5): TS7008: Member '#processingBookmark' implicitly has an 'any' type.51(144,24): TS7006: Parameter 'fn' implicitly has an 'any' type.52(387,20): TS7006: Parameter 'element' implicitly has an 'any' type.53(469,37): TS7006: Parameter 'pathname' implicitly has an 'any' type.54(561,60): TS7006: Parameter 'text' implicitly has an 'any' type.55(568,60): TS7006: Parameter 'text' implicitly has an 'any' type.56(582,62): TS7006: Parameter 'text' implicitly has an 'any' type.57(636,20): TS7006: Parameter '_' implicitly has an 'any' type.58(644,31): TS7006: Parameter 'name' implicitly has an 'any' type.59(644,37): TS7006: Parameter 'data' implicitly has an 'any' type.60(645,20): TS7017: Element implicitly has an 'any' type (globalThis).61(653,36): TS7006: Parameter 'action' implicitly has an 'any' type.62(660,36): TS7006: Parameter 'pathname' implicitly has an 'any' type.63(685,50): TS2769: No overload matches this call.64(688,16): TS18048: 'exportPanel' is possibly 'undefined'.65```6667### `injected/src/features/breakage-reporting.js` (8 errors)68```69(26,24): TS2339: Property 'opener' does not exist on type '{ jsPerformance: number[]; referrer: string; }'.70(30,24): TS2339: Property 'pageReloaded' does not exist on type.71(46,24): TS2339: Property 'detectorData' does not exist on type.72(57,28): TS2339: Property 'expandedPerformanceMetrics' does not exist on type.73(61,24): TS2339: Property 'detectorData' does not exist on type.74(62,59): TS2339: Property 'detectorData' does not exist on type.75(66,28): TS2339: Property 'breakageData' does not exist on type.76(69,28): TS2339: Property 'breakageData' does not exist on type.77```7879### `injected/src/features/breakage-reporting/utils.js` (5 errors)80```81(48,13): TS7034: Variable 'timeoutId' implicitly has type 'any'.82(50,13): TS7034: Variable 'observer' implicitly has type 'any'.83(53,17): TS7005: Variable 'observer' implicitly has an 'any' type.84(54,17): TS7005: Variable 'timeoutId' implicitly has an 'any' type.85(147,61): TS18046: 'e' is of type 'unknown'.86```8788### `injected/src/features/cookie.js` (8 errors)89```90(48,5): TS7034: Variable 'loadedPolicyResolve' implicitly has type 'any'.91(125,72): TS7006: Parameter 'exception' implicitly has an 'any' type.92(217,95): TS2532: Object is possibly 'undefined'.93(244,10): TS7006: Parameter 'args' implicitly has an 'any' type.94(263,21): TS7053: Element implicitly has an 'any' type (string index on config type).95(264,21): TS7053: Element implicitly has an 'any' type.96(264,41): TS7053: Element implicitly has an 'any' type.97(269,9): TS7005: Variable 'loadedPolicyResolve' implicitly has an 'any' type.98```99100### `injected/src/features/harmful-apis.js` (29 errors)101102**Error categories:**103- TS7017 (globalThis no index signature): 16 errors — lines 23, 107, 109, 126, 230, 233, 236, 272, 282, 288, 299, 311, 324, 348, 361, 364, 367104- TS2683 ('this' implicitly any): 8 errors — lines 55, 88, 92, 114, 127, 272, 275, 385105- TS7006 (param implicitly any): 2 errors — lines 136, 161106- TS7053 (string index on {}): 1 error — line 191107- TS2532 (possibly undefined): 1 error — line 388108109### `injected/src/features/windows-permission-usage.js` (27 errors)110111**Error categories:**112- TS7006 (param implicitly any): 19 errors — various parameter types needed113- TS7034/TS7005 (variable implicitly any): 4 errors — timer variables114- TS7017 (globalThis): 4 errors — lines 386-389115116## Fix Patterns117118- **TS7006/TS7008**: Add `@param` or `@type` JSDoc annotations.119- **TS2339**: Extend the type definition to include missing properties, or define proper `@typedef`.120- **TS7017 (globalThis)**: Use `/** @type {Record<string, unknown>} */ (globalThis)` or assign to typed variable.121- **TS2683 ('this' implicitly any)**: Use arrow functions or add `@this {Type}` annotation.122- **TS2564**: Definite assignment assertion or initialize.123- **TS7034/TS7005**: Add explicit type at declaration.124- **TS18046/TS18048**: Type guards for unknown/undefined.125- **TS2769**: Check overload signatures, narrow types.126127## Workflow1281291. `npm ci`1302. Add all 7 files to CORE_FILES in `scripts/check-strict-core.js`1313. Fix each file's errors1324. `npm run tsc-strict-core` — must pass1335. `npm run test-unit` — must pass1346. `npm run lint` — must pass (run `npm run lint-fix` first if needed)1357. Commit: `fix(types): add strict checking for standalone feature files (batch A)`1368. `git push -u origin cursor/strict/standalone-features-a`137138## Constraints139140- Do NOT use `any` — use `unknown`, specific types, or proper interfaces141- Do NOT use `@ts-ignore` or `@ts-expect-error`142- Do NOT modify files outside the assigned list (except `scripts/check-strict-core.js`)143- Do NOT remove existing CORE_FILES entries144- Preserve existing behavior — type fixes only, no logic changes145
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| duckduckgo/content-scope-scriptstypes-generator/AGENTS.md · 70 | AGENTS.md | testarchtypesdo-not | 73/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-broker-protection-actions.mdc · 70 | Cursor rules | buildteststyletypes+4 | 93/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-broker-protection-rest.mdc · 70 | Cursor rules | teststyletypesgit+3 | 89/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-click-to-load.mdc · 70 | Cursor rules | teststyletypesgit+2 | 89/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-detectors.mdc · 70 | Cursor rules | teststyletypesgit+3 | 89/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-duckplayer-native.mdc · 70 | Cursor rules | teststyletypesgit+3 | 89/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-duckplayer.mdc · 70 | Cursor rules | setupteststyletypes+4 | 89/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-fingerprinting.mdc · 70 | Cursor rules | teststyletypesgit+3 | 89/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-message-bridge.mdc · 70 | Cursor rules | teststyletypesgit+3 | 89/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-standalone-features-b.mdc · 70 | Cursor rules | teststyletypesgit+3 | 89/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-standalone-features-c.mdc · 70 | Cursor rules | teststyletypesgit+4 | 89/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-web-compat-and-telemetry.mdc · 70 | Cursor rules | teststyletypesgit+3 | 89/100 | 14 days ago | |
| duckduckgo/content-scope-scripts.cursor/rules/strict-zero-errors-batch.mdc · 70 | Cursor rules | testtypesgitdo-not+1 | 81/100 | 14 days ago | |
| duckduckgo/content-scope-scriptsAGENTS.md · 70 | AGENTS.md | buildtestlint-formatstyle+5 | 83/100 | 14 days ago | |
| duckduckgo/content-scope-scriptsinjected/AGENTS.md · 70 | AGENTS.md | buildteststylearch+2 | 92/100 | 14 days ago | |
| duckduckgo/content-scope-scriptsmessaging/AGENTS.md · 70 | AGENTS.md | testarchtesting-strategyapi | 66/100 | 14 days ago | |
| duckduckgo/content-scope-scriptsspecial-pages/AGENTS.md · 70 | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 46 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 14 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| bybren-llc/safe-agentic-workflow.cursor/rules/10-backend-python.mdc · 399 | Cursor rules | testlint-formatstylegit+4 | 97/100 | today |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/duckduckgo-content-scope-scripts-cursor-rules-strict-standalone-features-a)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.