Back to corpus
research noteexperiment writeup candidatescore 24
NKO-2.5 Complete — NKoCulture Swift Module
**Task:** Build NKoCulture — proverbs, blessings, cultural calendar in Swift **Status:** ✅ COMPLETE **Date:** 2026-02-19 **Build:** `swift build` ✅ | `swift test` ✅ (35/35 pass, 0 failures)
Full HTML reader
Read the full artifact
Extracted abstract or opening context
**Task:** Build NKoCulture — proverbs, blessings, cultural calendar in Swift **Status:** ✅ COMPLETE **Date:** 2026-02-19 **Build:** `swift build` ✅ | `swift test` ✅ (35/35 pass, 0 failures)
The `NKoCulture` Swift module — a complete, production-quality Swift Package providing programmatic access to all N'Ko cultural heritage data. Every proverb, blessing, greeting, clan, calendar event, and cultural concept loads correctly from bundled JSON resources.
| Dataset | Expected | Loaded | Status | |---------|----------|--------|--------| | Proverbs | 62 | 62 | ✅ | | Blessings | 29 | 29 | ✅ | | Greetings | 23 | 23 | ✅ | | Clans | 9 | 9 | ✅ | | Calendar Events | 7 | 7 | ✅ | | Cultural Concepts | 12 | 12 | ✅ | | **Total** | **142** | **142** | ✅ |
| Enum | Values | |------|--------| | `BlessingCategory` | `.blessing`, `.condolence`, `.congratulation`, `.apology`, `.farewell`, `.response` | | `LifeEvent` | `.general`, `.birth`, `.namingCeremony`, `.wedding`, `.death`, `.illness`, `.journey`, `.eid`, `.ramadan`, `.achievement`, `.reunion` | | `GreetingPhase` | `.opening`, `.response`, `.welfare`, `.family`, `.work`, `.closing`, `.blessing` | | `SpeakerRole` | `.initiator`, `.responder` | | `TimeContext` | `.morning`, `.afternoon`, `.evening`, `.night`, `.general` | | `ConceptType` | `.concept`, `.title`, `.kinship`, `.lifeEventsReference` |
- **Thread-safe:** `NSLock` protects all lazy-loaded caches - **Sendable:** All models are `Sendable` for Swift concurrency - **Lazy loading:** Data only loads on first access per dataset - **Zero copy:** JSON resources bundled via SPM `.process("Resources")` - **Faithful to Python:** API mirrors `nko/culture.py` (230 lines) but adds Swift-idiomatic features (enums, Codable, computed properties) - **Life event detection:** `detectLifeEventBlessings(from:)` scans text for life events in English and N'Ko, returns culturally appropriate blessings - **Greeting protocol:** Preserves Manding multi-turn greeting structure (OPENING → RESPONSE → WELFARE → FAMILY → CLOSING → BLESSING)
Promotion decision
What has to happen next
Attach run IDs, datasets, metrics, and reproduction commands.
Why this is not always a full paper yet
Corpus pages are public-safe readers for discovered workspace artifacts. They are not automatically final papers. A corpus item becomes a polished paper only after the editable source, evidence checkpoints, references, figures, render path, and release status are attached through the paper schema.