

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456# Proxy Auth Transport Rules78910## Rule 1: Both transport modes required1112Every CLI command or browser UI action that calls a crit-web API must work in both modes:13- **Direct** (default): Go server makes HTTP requests with bearer token14- **Browser relay** (`proxy_auth: true`): Browser popup mediates the same API call through an authenticated session1516When adding a new crit-web interaction:171. Add the direct HTTP path in Go (share.go or relevant file)182. Add a server endpoint that returns the payload for the popup relay (server.go)193. Add a popup handler in `crit-web/assets/js/share_receiver/handlers.js` (note: the directory/route is named `share_receiver` / `/share-receiver` — this describes what the component *does* (receives share data), while `proxy_auth` describes *why* it's needed. Both names are correct at their level.)204. Add the relay call in `web/app.js` gated on `proxy_auth`2122## Rule 2: Relay is transport, not protocol2324The popup relay must hit the **same crit-web API endpoints** with the **same payload shapes** as the direct path. No relay-specific endpoints on crit-web. The popup handlers are same-origin fetch proxies.2526## Rule 3: Terminal CLI commands cannot use direct HTTP when proxy_auth is on2728When `proxy_auth: true` (global config), crit-web sits behind an SSO reverse proxy. The terminal cannot complete that auth flow — only the browser can (via the `/share-receiver` popup relay).2930**Terminal subcommands** that HTTP-call crit-web directly (today: `crit share`, `crit fetch`, `crit unpublish`) must call `checkProxyAuthCLIAllowed("crit <cmd>")` at the top of their `Run*` entrypoint and exit with the shared error message. Do not attempt the network call.3132**Browser UI actions** (Share / Pull / Unpublish / Re-share buttons in the review page) must still work: implement both transports per Rule 1 — direct when `proxy_auth` is false, popup relay when true (`web/crit-share.js` + crit-web `share_receiver/handlers.js`).3334Direct (non-proxy_auth) browser actions must go through the **local Go server**, never `fetch(shareURL + …)` cross-origin:3536| Action | Local endpoint |37|-----------|-----------------------------------------|38| Share | `POST /api/share` |39| Pull | `POST /api/share/pull` |40| Re-share | `POST /api/share/reshare` |41| Unpublish | `DELETE /api/share-url` |4243(The Go handlers attach the bearer token and talk to crit-web. Cross-origin browser fetches fail CORS on selfhosted+OAuth instances because preflight has no `Authorization`, and even with CORS fixed the browser never sends the token.)4445The `share-transport` Playwright project (`test/e2e/tests/share-transport.sharetransport.spec.ts`) drives these three actions against a stub crit-web on a different origin and fails if the page issues any request to it, so a regression to cross-origin fetches is caught in CI. Extend that spec when you add a browser action that talks to crit-web.4647When adding a **new** crit-web interaction, decide which surface owns it:48- **Browser-only** (like today's share/pull/unpublish behind SSO): block the terminal path with `checkProxyAuthCLIAllowed`; add relay handler + frontend branch.49- **Terminal-only** (rare): document that it won't work behind SSO, or don't add it.50- **Both**: direct Go HTTP path + browser relay path; terminal path still blocked when `proxy_auth` is on unless you have a non-HTTP auth story.5152Integration tests that spawn the `crit` binary must isolate config — use `runCritCmd` / `runCritCmdWithHome` with a temp `HOME`, not the developer's real `~/.crit.config.json`.53
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 |
|---|---|---|---|---|---|
| tomasz-tomczyk/crit.cursor/rules/frontend-architecture.mdc · 903 | Cursor rules | archgitdo-not | 65/100 | today | |
| tomasz-tomczyk/crit.cursor/rules/frontend-css.mdc · 903 | Cursor rules | uido-not | 46/100 | today | |
| tomasz-tomczyk/crit.cursor/rules/frontend-js.mdc · 903 | Cursor rules | lint-formatstyletesting-strategyui+1 | 59/100 | today | |
| tomasz-tomczyk/crit.cursor/rules/go.mdc · 903 | Cursor rules | teststylegitdo-not | 67/100 | today | |
| tomasz-tomczyk/critAGENTS.md · 903 | AGENTS.md | buildtestlint-formatstyle+2 | 77/100 | today | |
| tomasz-tomczyk/critscripts/AGENTS.md · 903 | AGENTS.md | setupbuildtesttesting-strategy | 77/100 | today |
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 | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 14 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | 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 | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 46 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| skillrecordings/egghead-next.cursor/rules/gh-task-plan.mdc · 1.4k | Cursor rules | teststylearchtypes+2 | 96/100 | 14 days ago |
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/tomasz-tomczyk-crit-cursor-rules-proxy-auth-transport)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.