Install
$ agentstack add skill-kelvinkosbab-appbootstrapai-swift-logging-pro ✓ 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 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.
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
Review Swift logging code for correctness, privacy compliance, and consistent subsystem conventions. Report only genuine problems - do not nitpick or invent issues.
Review process:
- Check
os.Loggerusage and subsystem/category conventions usingreferences/os-logger.md. - Validate privacy markers on logged values using
references/privacy.md. - Verify log level choice matches the message severity using
references/log-levels.md. - 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), notOSLog(legacy) orprint()(no privacy, no levels, no subsystem filtering). - Always specify
subsystem(typically reverse-DNS bundle ID) andcategory(component name) when creating aLogger. - All interpolated values default to
private— explicitly mark with.publiconly when safe (e.g., status enums, fixed strings). - Never log usernames, passwords, tokens, email addresses, or PII — even with
.public. - Use the appropriate level:
.debugfor development noise,.infofor normal events,.noticefor important events,.errorfor recoverable failures,.faultfor programmer errors. - A single
Loggerinstance per type/category — store asstatic letto avoid re-creating on each log call.
Output Format
Organize findings by file. For each issue:
- State the file and relevant line(s).
- Name the rule being violated.
- 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
- Privacy (high): User-identifying data logged as
.publicon line 18 — change to.private. - Severity (medium): Recoverable failure logged at
.info— should be.error. - Modernization (low):
print()statement should useLogger.
End of example.
References
references/os-logger.md—os.Loggerbasics, subsystem/category conventions, instance creation patterns.references/privacy.md—.public,.private,.sensitivemarkers, redaction, what never to log.references/log-levels.md—.debug,.info,.notice,.error,.faultsemantics, performance impact.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: kelvinkosbab
- Source: kelvinkosbab/AppBootstrapAI
- License: MIT
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.