Install
$ agentstack add skill-kelvinkosbab-appbootstrapai-coredata-swift6-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 Core Data code for Swift 6 concurrency correctness, modern API usage, and SPM compatibility. Report only genuine problems - do not nitpick or invent issues.
Review process:
- Validate
viewContextaccess is@MainActor-isolated usingreferences/main-actor.md. - Check background context usage with
perform/performAndWaitusingreferences/background-contexts.md. - Verify SPM compatibility for
.xcdatamodeldbundling usingreferences/spm-limitations.md. - Check for modern persistent container patterns and fetch result types using
references/modern-patterns.md. - Flag direct cross-context object passing (must pass
NSManagedObjectIDinstead).
If doing a partial review, load only the relevant reference files.
Core Instructions
- Target Swift 6 with strict concurrency. Core Data + Swift 6 has specific rules that must be followed.
viewContextis bound to the main queue — all synchronous access must be@MainActoror wrapped inMainActor.run.NSManagedObjectsubclasses are NOTSendable. Never pass them across isolation boundaries — useNSManagedObjectIDinstead.- All background context work goes through
context.perform { }(async) orcontext.performAndWait { }(sync). - For SPM packages,
.xcdatamodeldcannot be compiled to.momdbyswift build— only Xcode can. Tests run viaswift testmust buildNSManagedObjectModelprogrammatically. - Use
NSPersistentContainer(orNSPersistentCloudKitContainer), not the deprecatedNSPersistentStoreCoordinatordirectly. - Prefer
.viewContext.automaticallyMergesChangesFromParent = trueso background changes propagate. - For tests, use
NSInMemoryStoreTypeso each test has an isolated store.
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:
CoreStorage/Tests/EntityStoreTests.swift
Line 23: Sync viewContext test missing @MainActor — will fail under Swift 6 strict concurrency.
// Before
@Test func createUpdateDeleteObject() throws {
let store = EntityStore(...)
try store.create(...)
}
// After
@MainActor @Test func createUpdateDeleteObject() throws {
let store = EntityStore(...)
try store.create(...)
}
Line 45: Background context work missing perform { } block.
// Before
let bgContext = container.newBackgroundContext()
let object = MyObject(context: bgContext)
object.value = "foo"
try bgContext.save()
// After
let bgContext = container.newBackgroundContext()
try await bgContext.perform {
let object = MyObject(context: bgContext)
object.value = "foo"
try bgContext.save()
}
CoreStorage/Tests/Utilities/KeyValue.swift
Line 14: Test relies on Bundle.module for .momd — will fail under swift test.
// Before
self.init(storeName: "MyModel", in: .module)
// After
let model = makeKeyValueManagedObjectModel()
self.init(storeName: "MyModel", managedObjectModel: model)
Summary
- Concurrency (high): 4 sync
viewContexttests missing@MainActorannotation. - SPM compatibility (high): Test container relies on
Bundle.modulefor.momd— must build model programmatically. - Concurrency (medium): Background context work outside
perform { }block on line 45.
End of example.
References
references/main-actor.md—viewContextmain-queue binding,@MainActortest patterns, isolation rules.references/background-contexts.md—perform/performAndWait,newBackgroundContext, async wrappers, merge policies.references/spm-limitations.md—.xcdatamodeldcompilation,Bundle.moduleissues, programmaticNSManagedObjectModel.references/modern-patterns.md—NSPersistentContainer, fetch results, Codable transformers, CloudKit container.
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.