IQ β Installation Qualification¶
Installation Qualification confirms that the Franklin.app sovereign bundle is correctly assembled and all required components are present and reachable before any operational use begins.
Document reference: GFTCL-IQ-001-M8
Framework: GAMP 5 | EU Annex 11
Stack: Pure Swift 6.2 / SPM β no external runtime dependencies
When to Run IQ¶
IQ runs automatically inside Franklin.app at qualification time. Re-run after:
- Rebuilding or re-installing the sovereign DMG
- Upgrading macOS
- Updating the Swift toolchain
Prerequisites¶
| Requirement | Specification |
|---|---|
| Operating system | macOS 26.0+ (LSMinimumSystemVersion) |
| CPU | Apple Silicon (arm64) |
| Swift toolchain | Swift 6.2+ |
| Xcode Command Line Tools | Current version |
| Franklin.app | Assembled via scripts/build_sovereign.sh |
Running IQ¶
In-app (runtime gate β 7 checks):
- Launch Franklin.app
- Click
⬑status bar icon β Run Qualificationβ¦ - Click RUN QUALIFICATION β IQ runs first, immediately
Build-time (CI gate β ~20 IQ-tier tests):
IQ Checks (7 in-app checks)¶
| ID | Name | What it verifies | Passes when |
|---|---|---|---|
| IQ-001 | Franklin sovereign binary active | App is executing | Trivially true at runtime |
| IQ-002 | VQbitVM bundled | Contents/Resources/bin/VQbitVM present in app bundle |
File exists and is executable |
| IQ-003 | FranklinConsciousnessService bundled | Contents/Resources/bin/FranklinConsciousnessService present |
File exists and is executable |
| IQ-004 | Sovereign NATS bus live | TCP connection to 127.0.0.1:4222 succeeds |
Connect within 2s |
| IQ-005 | C4MemoryStore schema valid | GRDB SQLite schema passes migration | recall(query:limit:) returns without throwing |
| IQ-006 | Quantum algorithm catalog complete | Language game contracts table sums correctly | SUM(algorithm_count WHERE domain LIKE 'quantum%') == 19 |
| IQ-007 | S4DeltaWire codec frozen | Wire format is byte-exact | S4DeltaCodec.encode(wire).count == S4DeltaWire.byteCount (53 bytes) |
App Bundle Layout¶
Franklin.app/
Contents/
MacOS/
Franklin β sovereign entry point
Resources/
bin/
VQbitVM β IQ-002
FranklinConsciousnessService β IQ-003
GaiaFTCL_GaiaFTCL.bundle β SPM resource bundle
GaiaFTCLScene_GaiaFTCLScene.bundle
Info.plist
PkgInfo
Evidence β 2026-05-09 qualification run¶

Run timestamp: 2026-05-09T10:12:42Z
Platform: macOS Version 26.4.1 (Build 25E253) Β· Swift 6.2
Verdict: CALORIE β 7/7 pass
| ID | Result | Detail |
|---|---|---|
| IQ-001 | β PASS | Franklin.app instantiated and executing on macbook-pro.local |
| IQ-002 | β PASS | .../dist/Franklin.app/Contents/Resources/bin/VQbitVM |
| IQ-003 | β PASS | .../dist/Franklin.app/Contents/Resources/bin/FranklinConsciousnessService |
| IQ-004 | β PASS | NATS broker responding on nats://127.0.0.1:4222 |
| IQ-005 | β PASS | Memory store accessible, 0 records visible |
| IQ-006 | β PASS | Found 19 quantum algorithms (expected 19 per OQ-QM-007 invariant) |
| IQ-007 | β PASS | S4DeltaWire serialises to exactly 53 bytes |
Receipt written to ~/Library/Application Support/GaiaFTCL/qualification/IQ-<timestamp>.json
Full results dashboard:

IQ Acceptance Criteria¶
| Criterion | Requirement |
|---|---|
| Check count | Exactly 7 checks executed |
| Pass rate | 100% β zero failures permitted |
| Receipt | IQ-<timestamp>.json with overallStatus: "CALORIE" |
Build and assemble¶
# Full sovereign build (produces Franklin.app + DMG)
cd cells/xcode
bash scripts/build_sovereign.sh --release
# Verify app bundle structure
ls Franklin.app/Contents/Resources/bin/
# Expected: FranklinConsciousnessService VQbitVM
See also¶
- Sovereign-M8-Qualification β full IQ/OQ/PQ specification
- OQ-Operational-Qualification β operational checks (requires IQ CALORIE)
cells/xcode/docs/SOVEREIGN_BUILD.mdβ build system detailcells/xcode/docs/GAMP5_QUALIFICATION.mdβ complete check specification
Federation-cosigned
This page's source is sealed in the GaiaFTCL federation manifest β page SHA-256 5aede024ace5d394β¦, manifest witness a090592e0609adc8β¦, signed 2026-06-02T18:58:22Z by cell gaiaftcl-mac-cell. Verify with gaiaftcl wiki sign --all and compare wiki-all-signatures.json.