Official agent skill

Sensitive Logging Audit

by openai in openai/openai-agents-js

Audit or fix sensitive-data exposure in JS SDK diagnostics, exceptions, logging, and telemetry.

OfficialMITAuto-check passed

Install Sensitive Logging Audit

skills CLI
$ npx skills add openai/openai-agents-js --skill sensitive-logging-audit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openai/openai-agents-js sensitive-logging-audit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openai/openai-agents-js.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/sensitive-logging-audit .claude/skills/sensitive-logging-audit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
sensitive-logging-audit
GitHub stars
3.9k
Token cost
~2.2k tokens
SKILL.md length
1,112 words
Files
5 (incl. scripts, references)
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

Audit or fix sensitive-data exposure in JS SDK diagnostics, exceptions, logging, and telemetry.

  • Works in 6 steps: Establish the baseline → Classify every dynamic sink → Fix demonstrated leaks → …
  • SKILL.md covers Objective, Workflow and Reporting
  • Runs JavaScript scripts from its folder; calls node and git

What it does

Sensitive Logging Audit is an agent skill from openai/openai-agents-js, published by the product's own GitHub organization. Audit or fix sensitive-data exposure in JS SDK diagnostics, exceptions, logging, and telemetry.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `agents/openai.yaml` and `references/redaction-validation.md`).

It works with OpenAI. The repository describes itself as: A lightweight, powerful framework for multi-agent workflows and voice agents. The licence is MIT.

Example prompts

  • “/sensitive-logging-audit”

Requirements

  • Node.js

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Establish the baseline
  2. Classify every dynamic sink
  3. Fix demonstrated leaks
  4. Add adversarial regressions
  5. Re-audit the whole tree
  6. Run repository close-out gates

What it can do on your machine

Read from SKILL.md and the folder at commit d8fa6c3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Sensitive Logging Audit loads about 2.2k tokens when it runs, and up to ~3.6k if it reads all its reference files. Until then it costs about 30 tokens; SKILL.md has 1,112 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from openai/openai-agents-js at commit d8fa6c3, republished under its MIT licence (© openai). 1,112 words, ~2,165 tokens.

Download SKILL.mdSave it as .claude/skills/sensitive-logging-audit/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
sensitive-logging-audit
description
Audit or fix sensitive-data exposure in JS SDK diagnostics, exceptions, logging, and telemetry.

Sensitive Logging Audit

Objective

Inventory every runtime log sink, classify each dynamic value against the documented logger-flag contract, and fix every demonstrated model/tool input/output leak in scope. If no leak is demonstrated, report that result and leave runtime code unchanged.

Do not claim automated taint analysis. The inventory proves sink coverage and provides lexical review hints; it does not classify a value as sensitive. Source-to-sink classification still requires code tracing.

The two logger flags have a narrow contract:

  • dontLogModelData suppresses LLM inputs and outputs.
  • dontLogToolData suppresses tool inputs and outputs.

They are not general "hide every caller-configurable string" flags. Agent names, tool names, model names, session IDs, call IDs, trace/span IDs, response IDs, counts, byte lengths, durations, enum values, booleans, status codes, and similar operational metadata are not sensitive under this contract merely because an application can choose their values. Treat one of these as sensitive only when concrete source tracing proves that the field carries or is derived from actual model/tool input or output, or when a separate documented policy explicitly covers it.

Workflow

1. Establish the baseline
  • Work in the user's current checkout and branch. Preserve unrelated changes.
  • Record git status --short --branch and the current commit.
  • Read the logging policy in packages/agents-core/src/config.ts and helpers in packages/agents-core/src/logger.ts before judging call sites.
  • Read the public logging documentation and the latest released version of that documentation. Use their stated model/tool input-output boundary as the compatibility contract.
  • Treat model/tool errors as potentially sensitive: messages, causes, stacks, schema errors, and arbitrary thrown values can retain user data.

Run the deterministic inventory from the repository root:

bash
node .agents/skills/sensitive-logging-audit/scripts/inventory-logging.mjs --format json > /tmp/sensitive-logging-before.json
node .agents/skills/sensitive-logging-audit/scripts/inventory-logging.mjs --summary-only

Run its tests before relying on the report:

bash
node --test .agents/skills/sensitive-logging-audit/scripts/inventory-logging.test.mjs
2. Classify every dynamic sink

Review the complete JSON ledger. Do not stop after the first confirmed leak. Prioritize:

  1. Raw console.* calls, because they bypass Logger policy.
  2. Calls that log a caught value.
  3. Calls with supplemental payloads.
  4. Dynamic messages using interpolation, JSON.stringify, schema formatting, or toErrorMessage.
  5. Model, tool, Realtime, MCP, session, tracing, and cleanup boundaries.

Inventory signals are lexical prioritization hints only. A tool, model, or payload hint is not a finding and does not override source tracing.

Assign one disposition to every dynamic entry:

  • model: may contain model requests, responses, Realtime model events, or derived values.
  • tool: may contain tool arguments, outputs, tool events, MCP payloads, or derived values.
  • model+tool: may contain either class.
  • operational: contains SDK diagnostics or metadata outside the documented model/tool input-output contract.
  • uncertain: source tracing is incomplete; investigate before deciding.

Record file, line, fingerprint, disposition, evidence, and action in the task notes. A variable name or log message is not sufficient evidence. Trace producers, formatters, callbacks, and thrown-value ownership.

Use this decision gate before calling any candidate a leak:

  1. Identify the exact value reaching the sink, not only a keyword in the log statement.
  2. Show that the value can contain actual model input/output, tool input/output, or an arbitrary error/detail object from a boundary that processes that data.
  3. Show that the applicable suppression flag can be enabled while that value is still formatted or logged.
  4. Reproduce the exposure with a sentinel placed in the real payload field or error path.

If any step is missing, keep the candidate uncertain or classify it as operational; do not modify runtime code.

Do not prove a leak by putting a sentinel into an operational name or identifier. That only proves that the field is logged, not that it falls under the model/tool-data contract. Caller configurability, by itself, is not sensitivity evidence.

Show full SKILL.md (530 more words)Show less
3. Fix demonstrated leaks

Before changing runtime code, use $implementation-strategy and follow the repository's compatibility decision. Then implement the narrowest shared-boundary fix.

  • Prefer logModelActionError or logToolActionError for error-level paths.
  • For debug or warning paths, apply the relevant logger flag before formatting or inspecting sensitive values. Add a shared helper only when multiple paths need the same semantics.
  • For model+tool, redact when either relevant policy disables data logging.
  • Preserve existing diagnostic details when the applicable logging flags allow them.
  • In redacted mode, emit only a fixed message and a safe fixed type. Do not inspect error.constructor, stack, message, cause, proxy properties, or supplemental payloads.
  • Keep logging failure from changing caller behavior. Fallback results, event emission, cleanup, rejection, and cancellation must still complete.
  • Preserve operational metadata when suppressing model/tool payloads. Do not add flag branches around names, identifiers, counts, statuses, or timing data without concrete evidence that the specific value carries protected payload content.
  • Apply hostile-object tests only to values whose public or internal boundary accepts arbitrary thrown or callback-supplied values. Do not invent hostile toString, proxy, or constructor cases for ordinary SDK-owned metadata objects.

When a candidate is not a leak, keep the code unchanged and record the concrete source-to-sink reason.

4. Add adversarial regressions

Read the redaction validation matrix and cover every changed sensitive path. At minimum test:

  • redacted and diagnostic modes;
  • model-only, tool-only, and both-flags combinations as applicable;
  • unique sentinel strings placed in actual model/tool inputs, outputs, or relevant error/detail values and checked across the full captured logger call;
  • Error, string, object, supplemental payload, constructor override, revoked Proxy, and throwing getPrototypeOf cases where arbitrary thrown values are accepted;
  • observable caller behavior after logging.

Prefer focused unit tests at the real caller boundary. Helper-only tests do not prove all call sites use the helper.

Do not add tests that expect agent names, tool names, model names, or IDs to disappear solely because a model/tool-data flag is enabled. Such a test silently broadens the public contract instead of validating it.

5. Re-audit the whole tree

Run the inventory again:

bash
node .agents/skills/sensitive-logging-audit/scripts/inventory-logging.mjs --format json > /tmp/sensitive-logging-after.json

Compare the before/after findings by fingerprint and inspect every new or changed dynamic call. Revisit the full candidate list, not only edited files. The completion report must state:

  • total and dynamic sink counts;
  • all confirmed leaks fixed, or an explicit statement that none were found;
  • all retained candidates and their evidence-backed dispositions;
  • any unresolved candidate and why it remains unresolved.

Do not report completion while a demonstrated leak remains in scope.

6. Run repository close-out gates
  • If packages/ changed, use $changeset-validation and ensure every affected package has an appropriate changeset.
  • For runtime code, tests, scripts, or build/test behavior, use $code-change-verification and rerun the full stack after the final fix.
  • Use $pr-draft-summary after all edits and verification.
  • Stop after local changes and verification unless the user explicitly requests a remote action in the same turn.

Reporting

Lead with whether any real model/tool payload leaks were found. Separate confirmed leaks from conservative review candidates and operational metadata. Include the inventory counts, affected paths, adversarial cases, verification results, and remaining uncertainty. Do not present candidate counts as vulnerability counts, and do not equate a clean inventory shape with proof that all dynamic values are non-sensitive.

© openai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references) in .agents/skills/sensitive-logging-audit of openai/openai-agents-js.

  • SKILL.md
  • agents/openai.yaml
  • references/redaction-validation.md
  • scripts/inventory-logging.mjs
  • scripts/inventory-logging.test.mjs

Open the folder on GitHubat commit d8fa6c3

Compare with similar skills

Sensitive Logging Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Sensitive Logging Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Sensitive Logging Audit this skillopenai/openai-agents-js3.9k—~2.2kAutomated safety check: PassMIT
Geo Fundamentalswasp-lang/wasp19k8 repos~861Automated safety check: PassMIT
AI SDKvercel-labs/ai-facts16821 repos~1.2kAutomated safety check: PassNone
AI Image Generation and Editingzhayujie/CowAgent47k—~1.3kAutomated safety check: PassMIT
PR Design DocOpenHands/OpenHands90k—~2.4kAutomated safety check: PassMIT
SEO GeoReScienceLab/opc-skills1.8k4 repos~2.1kAutomated safety check: PassApache-2.0

Similar skills

  • Geo Fundamentals

    wasp-lang/wasp

    Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).

    19k GitHub starsUsed in 8 repos~861 tokens
    Marketing & SEOAuto-check passed
  • AI SDK

    vercel-labs/ai-facts

    Official

    Answer questions about the AI SDK and help build AI-powered features.

    168 GitHub starsUsed in 21 repos~1.2k tokens
    AI & LLM EngineeringAuto-check passed
  • Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.

    47k GitHub stars~1.3k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • PR Design Doc

    OpenHands/OpenHands

    For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…

    90k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • SEO Geo

    ReScienceLab/opc-skills

    SEO & GEO (Generative Engine Optimization) for websites. An agent skill from ReScienceLab/opc-skills.

    1.8k GitHub starsUsed in 4 repos~2.1k tokens
    Marketing & SEOAuto-check passed
  • Get API Docs with chub

    andrewyng/context-hub

    Fetches current documentation for third-party APIs and SDKs with the chub CLI before the agent writes code against them, instead of relying on remembered API shapes.

    14k GitHub starsUsed in 2 repos~775 tokens
    DevelopmentAuto-check passed

More from openai/openai-agents-js

All 10 skills in this repo
  • Changeset Validation

    openai/openai-agents-js

    Official

    Validate changesets in openai-agents-js using LLM judgment against git diffs (including uncommitted local changes).

    3.9k GitHub stars~607 tokensUpdated today
    Auto-check passed
  • Pnpm Upgrade

    openai/openai-agents-js

    Official

    Keep pnpm current: preflight the published package and pnpm/action-setup self-installer, update pnpm locally, align packageManager in package.json, and refresh CI pins.

    3.9k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Final Release Review

    openai/openai-agents-js

    Official

    Assess a JS SDK release candidate or release plan against the previous release and recommend ship or block.

    3.9k GitHub stars~4k tokensUpdated today
    Auto-check passed
  • Runtime Behavior Probe

    openai/openai-agents-js

    Official

    Plan and, after explicit approval, execute runtime-behavior probes for local or live integrations.

    3.9k GitHub stars~4.9k tokensUpdated today
    Auto-check passed
  • Code Change Verification

    openai/openai-agents-js

    Official

    Run the required final install, build, type, lint, test, and format checks after eligible SDK changes pass review.

    3.9k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Examples Run Analysis

    openai/openai-agents-js

    Official

    Analyze logs and source from a completed repository example run.

    3.9k GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Works with

Questions about Sensitive Logging Audit

What does Sensitive Logging Audit do?

Audit or fix sensitive-data exposure in JS SDK diagnostics, exceptions, logging, and telemetry. Sensitive Logging Audit is an agent skill from openai/openai-agents-js, published by the product's own GitHub organization. Audit or fix sensitive-data exposure in JS SDK diagnostics, exceptions, logging, and telemetry.

How do I install Sensitive Logging Audit in Claude Code?

Run `npx skills add openai/openai-agents-js --skill sensitive-logging-audit -a claude-code`. Or copy the skill folder (.agents/skills/sensitive-logging-audit in openai/openai-agents-js) into .claude/skills/sensitive-logging-audit in your project. Claude Code loads it when a task matches its description.

How do I install Sensitive Logging Audit in Codex?

Run `npx skills add openai/openai-agents-js --skill sensitive-logging-audit -a codex`. Or copy the skill folder (.agents/skills/sensitive-logging-audit in openai/openai-agents-js) into .agents/skills/sensitive-logging-audit in your project. Codex loads it when a task matches its description.

Can I use Sensitive Logging Audit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openai/openai-agents-js --skill sensitive-logging-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sensitive-logging-audit, .gemini/skills/sensitive-logging-audit, .github/skills/sensitive-logging-audit and .opencode/skills/sensitive-logging-audit in your project.

What does Sensitive Logging Audit need to run?

Going by SKILL.md and its folder, Sensitive Logging Audit needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and git). Our summary lists: Node.js.

Does Sensitive Logging Audit access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Sensitive Logging Audit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Sensitive Logging Audit use?

Sensitive Logging Audit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Sensitive Logging Audit use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.

What are the alternatives to Sensitive Logging Audit?

Skills that share tags, products or a category with Sensitive Logging Audit: Geo Fundamentals (wasp-lang/wasp, 19k stars), AI SDK (vercel-labs/ai-facts, 168 stars), AI Image Generation and Editing (zhayujie/CowAgent, 47k stars) and PR Design Doc (OpenHands/OpenHands, 90k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Sensitive Logging Audit?

openai (a GitHub organization, an official publisher) maintains it in openai/openai-agents-js, which has 3,892 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 6, 2026.

Source: openai/openai-agents-js on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.