AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Swift Logging Pro

skill-kelvinkosbab-appbootstrapai-swift-logging-pro · by kelvinkosbab

Reviews Swift logging code using os.Logger for correct privacy markers, subsystem/category conventions, and appropriate log levels. Use when writing or reviewing logging code.

No reviews yet
0 installs
9 views
0.0% view→install

Install

$ agentstack add skill-kelvinkosbab-appbootstrapai-swift-logging-pro

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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 No
  • 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-kelvinkosbab-appbootstrapai-swift-logging-pro)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Swift Logging Pro? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Review Swift logging code for correctness, privacy compliance, and consistent subsystem conventions. Report only genuine problems - do not nitpick or invent issues.

Review process:

  1. Check os.Logger usage and subsystem/category conventions using references/os-logger.md.
  2. Validate privacy markers on logged values using references/privacy.md.
  3. Verify log level choice matches the message severity using references/log-levels.md.
  4. Flag print() statements in production code (acceptable in tests, scripts).

If doing a partial review, load only the relevant reference files.

Core Instructions

  • Use os.Logger (modern API), not OSLog (legacy) or print() (no privacy, no levels, no subsystem filtering).
  • Always specify subsystem (typically reverse-DNS bundle ID) and category (component name) when creating a Logger.
  • All interpolated values default to private — explicitly mark with .public only when safe (e.g., status enums, fixed strings).
  • Never log usernames, passwords, tokens, email addresses, or PII — even with .public.
  • Use the appropriate level: .debug for development noise, .info for normal events, .notice for important events, .error for recoverable failures, .fault for programmer errors.
  • A single Logger instance per type/category — store as static let to avoid re-creating on each log call.

Output Format

Organize findings by file. For each issue:

  1. State the file and relevant line(s).
  2. Name the rule being violated.
  3. Show a brief before/after code fix.

Skip files with no issues. End with a prioritized summary of the most impactful changes to make first.

Example output:

MyService.swift

Line 18: Privacy violation — user identifier logged as .public.

// Before
logger.info("Loaded user \(userId, privacy: .public)")

// After
logger.info("Loaded user \(userId, privacy: .private)")

Line 34: Use .error level for recoverable failures, not .info.

// Before
logger.info("Network request failed: \(error.localizedDescription)")

// After
logger.error("Network request failed: \(error.localizedDescription)")

Line 45: print() statement in production code — replace with Logger.

// Before
print("Cache miss for key \(key)")

// After
logger.debug("Cache miss for key \(key, privacy: .public)")

Summary

  1. Privacy (high): User-identifying data logged as .public on line 18 — change to .private.
  2. Severity (medium): Recoverable failure logged at .info — should be .error.
  3. Modernization (low): print() statement should use Logger.

End of example.

References

  • references/os-logger.mdos.Logger basics, subsystem/category conventions, instance creation patterns.
  • references/privacy.md.public, .private, .sensitive markers, redaction, what never to log.
  • references/log-levels.md.debug, .info, .notice, .error, .fault semantics, performance impact.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.