Install
$ agentstack add skill-viditkbhatnagar-immunize-missing-env-var ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
missing-env-var
os.environ[...] is dict-style indexing. Missing keys raise KeyError with no context — the traceback shows an indexing line, not a message about which variable was expected or why the program needs it. In production logs, this reads as a mystery crash:
KeyError: 'APPAPIKEY' File "app/config.py", line 12, in getapikey return os.environ["APPAPIKEY"]
Example
Wrong — opaque KeyError; caller has no idea what to fix:
import os
def get_api_key() -> str:
return os.environ["APP_API_KEY"]
Right — explicit check, specific error, actionable message:
import os
class ConfigError(Exception):
pass
def get_api_key() -> str:
value = os.environ.get("APP_API_KEY")
if not value:
raise ConfigError(
"APP_API_KEY is not set. Export it before running."
)
return value
Prefer failing at startup
Read configuration once at process boot, not on every request. A missing key should surface before the first user hits the path:
REQUIRED = ("APP_API_KEY", "APP_DB_URL")
def load_config() -> dict[str, str]:
missing = [k for k in REQUIRED if not os.environ.get(k)]
if missing:
raise ConfigError(f"missing env vars: {', '.join(missing)}")
return {k: os.environ[k] for k in REQUIRED}
This turns a 500 during a user request into a crash at boot — loud, visible, and immediately fixable.
Treat empty strings as missing
.get() returns the empty string if the var is exported but empty. Use if not value: rather than if value is None: — an empty string is almost never what you want for an API key or URL.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: viditkbhatnagar
- Source: viditkbhatnagar/immunize
- License: Apache-2.0
- Homepage: https://pypi.org/project/immunize/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.