Borrowing it
Nothing to install: this file belongs to juspay/neurolink. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/juspay/neurolink/release/CLAUDE.mdgit clone --depth 1 https://github.com/juspay/neurolinkWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/juspay/neurolink/claude-md)<a href="https://agentmods.dev/instructions/juspay/neurolink/claude-md"><img src="https://agentmods.dev/badge/instructions/juspay/neurolink/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/juspay/neurolink/claude-md"><img src="https://agentmods.dev/badge/instructions/juspay/neurolink/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.08422 | $0.08422 |
| Opus 5.5 | $0.03369 | $0.03369 |
| Sonnet 5.5 | $0.01684 | $0.01684 |
| Haiku 4.5 | $0.00842 | $0.00842 |
Grade A, and why
neurolink CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 481 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
Guidance for Claude Code when working in this repository.
Critical Rules
These are non-negotiable. Violating them breaks the build or introduces bugs.
- Dynamic imports only in registry — All providers must use dynamic imports inside factory functions in
providerRegistry.ts. Static imports create circular dependencies. - Types in canonical location — All type definitions go in
src/lib/types/. Never create type files inside feature subdirectories. - Gemini tools + JSON schema are mutually exclusive — Google AI Studio and Vertex Gemini models cannot use tools and
structuredOutputwith a JSON schema simultaneously (a Gemini API limitation). This does not apply to Vertex Claude models, which support both at once — the exclusion is gated onisGeminiProviderinstructuredOutputPolicy.ts, not on the Vertex provider as a whole. Providers that reject the combination at runtime (e.g. Groq) are detected viaisToolsSchemaConflictErrorand transparently retried without structured output. Regardless of provider,generate({ schema })is guaranteed to return valid JSON incontentplus a parsedstructuredDataobject (seecoerceJsonToSchema).- Huge-text / truncation: the native Claude paths (Vertex+Claude, direct Anthropic) must default
max_tokensto the model's real output ceiling viaresolveClaudeMaxTokens(Sonnet 4.x → 64K, Opus 4.x → 32K), never the legacy hard-coded 4096 that silently truncated large structured responses mid-JSON. The direct Anthropic non-streaming path also passes an explicit requesttimeoutso the SDK's "streaming is required for long requests" pre-flight guard doesn't reject a largemax_tokens. When output still hits the cap, truncation is surfaced — not silent:coerceJsonToSchemareturns{ repaired, truncated }, andGenerateResultexposesjsonRepaired/jsonTruncated(set whenfinishReason==="length"or the recovered JSON came from an unclosed span) plus a WARN log. A truncated response must still yield a partial object — never a raw string:coerceJsonToSchemaprefers the candidate starting at the document's real root (so a bracket pair scraped from inside a string value can't win), and backs off to the last completed field when jsonrepair can't close the span. That recoveredstructuredDatais a plain object, not necessarily a schema-valid one — when the response was cut short it may be partial — andjsonTruncatedis set in exactly that case (jsonRepairedwhen the JSON had to be recovered), so a caller can distinguish a salvaged object from a complete one. A caller that needs schema-valid data must checkjsonTruncatedbefore trusting the object; a caller that wants best-effort data can use it as is. Only schema-rejected scalar roots (e.g. a raw string under an object schema) are suppressed viaschemaAccepts, since they carry no recoverable structure.
- Huge-text / truncation: the native Claude paths (Vertex+Claude, direct Anthropic) must default
- CLI ≠ SDK — CLI can use manual MCP connections; the SDK cannot. Keep concerns separate.
- Backward compatibility — Public SDK API must not break existing callers.
formatProviderErrormust return, never throw — Any provider error formatter must return the error object, not throw it.- Zero
interface— always usetype— Never useinterface. Always usetype X = { ... }. The only exception isdeclare global { interface Window { ... } }which TypeScript requires for declaration merging. Use intersection (&) instead ofextends. - No "Types" suffix in type filenames — Files inside
src/lib/types/must not contain "Types" or "Type" in their name. The folder IS the types folder —mcp.tsnotmcpTypes.ts,auth.tsnotauthTypes.ts. - Unique type names across all files — Every exported type name must be globally unique across all files in
src/lib/types/. Use domain prefixes to disambiguate:- Client SDK types:
Client*prefix (e.g.,ClientAuthConfig,ClientToolInfo,ClientStreamResult) - CLI types:
Cli*prefix (e.g.,CliGenerateResult,CliStreamChunk) - Server types:
Server*prefix (e.g.,ServerAuthConfig) - Stream types:
Stream*prefix (e.g.,StreamToolCall,StreamToolResult) - Processor types:
Processor*prefix (e.g.,ProcessorRetryConfig) - Workflow judge types:
Judge*prefix (e.g.,JudgeScoreResult)
- Client SDK types:
- Barrel uses
export *only —src/lib/types/index.tsmust only containexport * from "./file.js"lines. No selective exports (export type { X, Y }), no aliases (X as Y). If addingexport *causes a name collision, rename the type at the source with a domain prefix per rule 9. - No local
types/directories — There must be notypes/directory anywhere exceptsrc/lib/types/. Nosrc/lib/observability/types/, nosrc/lib/workflow/core/types/, etc. Move those types into the canonicalsrc/lib/types/folder. - No type re-exports from non-type files — Files outside
src/lib/types/must not re-export types (export type { X } from). Consumers should import types fromsrc/lib/types/directly. Moduleindex.tsfiles should only re-export runtime values (classes, functions, constants), never types.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed · -1,109 lines · -17,620 tokens per session scan C → A 81d5cc36aeaf
- 13d ago Changed · +3 lines · +74 tokens per session 87976d7e7a0d
- 17d ago Changed · +10 lines · +159 tokens per session 1a59c59b40ef
- 18d ago Changed · +22 lines · +494 tokens per session 5a84aaa25a8a
- 19d ago Changed · +47 lines · +1,091 tokens per session 4f4f90199d5f
- 21d ago Changed · +2 lines · +318 tokens per session a727bce9e3ca
- 22d ago Changed · +89 lines · +1,755 tokens per session 9416a0eb192d
- 29d ago Changed · +4 lines · +117 tokens per session 3a1474042eed
- 1mo ago Changed · +76 lines · +1,448 tokens per session 9f94edba5ae7
- 1mo ago First seen · 1,337 lines · 20,586 tokens per session scan C 91e53f779d18
neurolink CLAUDE.md is an instructions file published in the GitHub repository juspay/neurolink (168 stars, last pushed yesterday), licensed MIT. It adds 8,422 tokens to every session, about $0.0337 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
neurolink CLAUDE.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| neurolink CLAUDE.mdjuspay/neurolink | Instructions file | 168 | yesterday | MIT | A | 8,422 | Claude Code |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | today | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |