naja-scope CLAUDE.md

naja-scope CLAUDE.md is an instructions file for coding agents from najaeda/naja-scope. It costs 397 tokens per session, scanned A, original, Apache-2.0.

A repository instruction file for naja-scope that requires code to use najaeda's low-level Python bindings when working with hardware netlists.

In plain words
What is it for?
Use it when developing naja-scope or writing exploratory scripts that load or inspect Verilog and SystemVerilog designs.
Why use it?
It prevents experiments from using a higher-level wrapper whose behaviour or names may differ from the raw API used by the project.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/najaeda/naja-scope/claude-md
Clone the repo
git clone --depth 1 https://github.com/najaeda/naja-scope

Wrote 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.

agentmods badge for naja-scope CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/najaeda/naja-scope/claude-md.svg)](https://agentmods.dev/instructions/najaeda/naja-scope/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/najaeda/naja-scope/claude-md"><img src="https://agentmods.dev/badge/instructions/najaeda/naja-scope/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 397 This file is loaded in full into every session.
When invoked 397 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00397 $0.00397
Opus 5 $0.00198 $0.00198
Sonnet 5 $0.00079 $0.00079
Haiku 4.5 $0.00040 $0.00040

Measured 5d ago against content hash 47226467d5bc, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

naja-scope 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 5d 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.

CLAUDE.md · 27 lines

What it actually says

naja-scope

Always use the low-level naja Python API, never najaeda's high-level API

When writing code that talks to najaeda — inside src/naja_scope/ or in throwaway exploration scripts — always go through from najaeda import naja (the raw naja.so binding: NLUniverse, NLDB, SNL* objects) and never through najaeda.netlist (the high-level load_verilog/load_system_verilog/ Instance/Term wrapper).

Why: src/naja_scope/loader.py is deliberately built this way already — see its module docstring: "driven directly through the raw naja DB/universe API ... rather than the high-level najaeda.netlist loaders. This keeps naja-scope on the raw layer end to end." The high-level API is a convenience wrapper that can lag, rename, or diverge from the raw layer (e.g. the allow_unknown_designs -> blackbox_unknown_modules rename in najaeda 0.7.11 broke the raw NLDB.loadVerilog binding's kwarg, independent of whatever the najaeda.netlist wrapper did to stay compatible). Exploring or prototyping against the high-level API produces findings that don't reflect what naja-scope itself does at runtime.

How to apply: For any one-off inspection (checking pin roles, instance types, hierarchy, etc.), use naja.NLUniverse / naja.NLDB / naja.SNL* objects directly, the same way loader.py, session.py, and api.py do. Do not import or call najaeda.netlist.* even for quick throwaway scripts.

Changes

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.

  1. 5d ago First seen · 27 lines · 397 tokens per session scan A 47226467d5bc

Subscribe to this mod's changes

naja-scope CLAUDE.md is an instructions file published in the GitHub repository najaeda/naja-scope (15 stars, last pushed 4d ago), licensed Apache-2.0. It adds 397 tokens to every session, about $0.0020 per session on Opus 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.