Two files, one repository
ogisetiawan/account-switcher ships 3 formats across 11 indexed files. The question worth asking is whether the second one says anything the first does not.
| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 6 | 0 | 0% |
| Commands | 0 | 2 | 0 | 0% |
| Section tags | 1 | 2 | 0 | 33% |
What each file covers
Sections
0 shared · 6 only in A · 0 only in B- − Account Switcher Agent
- − Purpose
- − Technology Stack
- − Important Files
- − Work Rules
- − Behavior
Commands
0 shared · 2 only in A · 0 only in B- − eslint-plugin-import
- − prettier-plugin-multiline-arrays
Section tags
1 shared · 2 only in A · 0 only in B- − do-not
- − agent-behaviour
- lint-format
Line diff
ogisetiawan/account-switcher · AGENTS.md
@@ −1 @@
1# Account Switcher Agent
2
3This repository is a browser extension for switching accounts across Chrome and Firefox. The codebase is implemented in TypeScript and built with a combination of Webpack and esbuild. The primary source files live under `src/`, and the generated output is placed in `dist/`.
4
5## Purpose
6
7As an assistant for this repository, your job is to:
8- help implement and maintain the browser extension logic
9- preserve cross-browser compatibility between Chrome and Firefox
10- follow the existing build and packaging approach
11- avoid editing generated output in `dist/`
12
13## Technology Stack
14
15- Node.js 18.16+ runtime
16- TypeScript 5.5.3 with `strict: true`
17- Webpack 5 for module bundling and TypeScript transpilation via `ts-loader`
18- esbuild for actual extension build output in `build/build.js` and `build/build-chrome.js`
19- ESLint 8.56.0 with `@typescript-eslint` and `eslint-plugin-import`
20- Prettier 3.6.2 with `prettier-plugin-multiline-arrays`
21- WebExtension manifests for Chrome and Firefox
22- `web-ext` for Firefox development and runtime
23- Type definitions: `@types/chrome`, `@types/firefox-webext-browser`, `@types/webextension-polyfill`
24
25## Important Files
26
27- `src/background/index.ts`
28- `src/popup/index.ts`
29- `src/manifest.chrome.json`
30- `src/manifest.firefox.json`
31- `build/build.js`
32- `build/build-chrome.js`
33- `webpack.config.js`
34- `tsconfig.json`
35- `package.json`
36
37## Work Rules
38
39- Always work in `src/`; do not modify files under `dist/`
40- Use the existing module path aliases: `@background/*`, `@popup/*`, `@shared/*`
41- Keep TypeScript strict and avoid unchecked `any` usage
42- Keep the extension build target at browser-compatible JS (`chrome88`) as configured
43- Apply formatting and linting with the repository scripts
44
45## Behavior
46
47When making changes:
48- preserve the extension messaging and storage conventions
49- keep the build scripts consistent with Chrome vs Firefox packaging
50- do not introduce breaking changes to manifest permission or host permission handling
51- test changes logically against the extension architecture before suggesting them
52
ogisetiawan/account-switcher · .clinerules/50-testing-and-change-safety.md
@@ +1 @@
1---
2description: Testing, linting, formatting, and safe change workflow for account-switcher
3globs: ["src/**/*.ts", "src/**/*.tsx", "package.json", "eslint.config.*", ".eslintrc*", ".prettierrc*"]
4alwaysApply: false
5---
6
7Quality rules:
8- Apply formatting and linting through the repository's existing scripts.
9- Do not introduce a new formatter, linter, or test approach unless explicitly asked.
10- Keep fixes scoped to the user request; avoid mixing feature work with broad refactors.
11
12Safe change workflow:
13- For bug fixes, describe the failing scenario and the smallest viable fix.
14- For behavior changes, state what remains backward compatible and what changes.
15- If no automated test exists, still reason through affected flows before suggesting a final change.
16- When relevant, call out follow-up checks for popup behavior, background messaging, storage handling, and manifest impact.
@@ −1 +1 @@
1−# Account Switcher Agent
1+---
2+description: Testing, linting, formatting, and safe change workflow for account-switcher
3+globs: ["src/**/*.ts", "src/**/*.tsx", "package.json", "eslint.config.*", ".eslintrc*", ".prettierrc*"]
4+alwaysApply: false
5+---
26
3−This repository is a browser extension for switching accounts across Chrome and Firefox. The codebase is implemented in TypeScript and built with a combination of Webpack and esbuild. The primary source files live under `src/`, and the generated output is placed in `dist/`.
7+Quality rules:
8+- Apply formatting and linting through the repository's existing scripts.
9+- Do not introduce a new formatter, linter, or test approach unless explicitly asked.
10+- Keep fixes scoped to the user request; avoid mixing feature work with broad refactors.
411
5−## Purpose
6−
7−As an assistant for this repository, your job is to:
8−- help implement and maintain the browser extension logic
9−- preserve cross-browser compatibility between Chrome and Firefox
10−- follow the existing build and packaging approach
11−- avoid editing generated output in `dist/`
12−
13−## Technology Stack
14−
15−- Node.js 18.16+ runtime
16−- TypeScript 5.5.3 with `strict: true`
17−- Webpack 5 for module bundling and TypeScript transpilation via `ts-loader`
18−- esbuild for actual extension build output in `build/build.js` and `build/build-chrome.js`
19−- ESLint 8.56.0 with `@typescript-eslint` and `eslint-plugin-import`
20−- Prettier 3.6.2 with `prettier-plugin-multiline-arrays`
21−- WebExtension manifests for Chrome and Firefox
22−- `web-ext` for Firefox development and runtime
23−- Type definitions: `@types/chrome`, `@types/firefox-webext-browser`, `@types/webextension-polyfill`
24−
25−## Important Files
26−
27−- `src/background/index.ts`
28−- `src/popup/index.ts`
29−- `src/manifest.chrome.json`
30−- `src/manifest.firefox.json`
31−- `build/build.js`
32−- `build/build-chrome.js`
33−- `webpack.config.js`
34−- `tsconfig.json`
35−- `package.json`
36−
37−## Work Rules
38−
39−- Always work in `src/`; do not modify files under `dist/`
40−- Use the existing module path aliases: `@background/*`, `@popup/*`, `@shared/*`
41−- Keep TypeScript strict and avoid unchecked `any` usage
42−- Keep the extension build target at browser-compatible JS (`chrome88`) as configured
43−- Apply formatting and linting with the repository scripts
44−
45−## Behavior
46−
47−When making changes:
48−- preserve the extension messaging and storage conventions
49−- keep the build scripts consistent with Chrome vs Firefox packaging
50−- do not introduce breaking changes to manifest permission or host permission handling
51−- test changes logically against the extension architecture before suggesting them
52−
12+Safe change workflow:
13+- For bug fixes, describe the failing scenario and the smallest viable fix.
14+- For behavior changes, state what remains backward compatible and what changes.
15+- If no automated test exists, still reason through affected flows before suggesting a final change.
16+- When relevant, call out follow-up checks for popup behavior, background messaging, storage handling, and manifest impact.
