Project Info
Inspiration
An iPhone transfer can look complete while the old phone is still the only place where a bank login, authenticator, work account, passkey, message history, or locally stored file actually works. The dangerous moment comes later, when the old iPhone is erased, sold, traded in, or returned and the missing access is discovered too late. ClearToGo is a macOS app for that final checkpoint. It helps a person compare the old and new iPhones, decide which apps matter, perform the smallest useful set of real checks on the new phone, and understand what still needs recovery. It never erases a device and never claims that erasure is safe.
What it does
The user connects both iPhones and explicitly assigns the old and new roles. ClearToGo reads each installed-app inventory through a read-only Standard Scan that does not require Developer Mode. It uses deterministic guardrails and GPT-5.6 to narrow the source inventory to likely priorities while keeping the complete list searchable, so the user can recover anything AI missed. The user makes each importance decision before seeing the AI rationale. GPT-5.6 then converts the confirmed apps and iPhone features into a subject-bound risk ledger and a minimum set of plain-language checks: sign in, approve authentication, receive a message, open a recent photo, or verify an important local item. Private actions stay on the iPhone; ClearToGo records only the outcome and its provenance. Deterministic code—not the model—validates completeness, evidence compatibility, severity, and the final state. The only states are BLOCKED, CHECKS_COMPLETED_WITH_USER_CONFIRMATION, and CHECKS_PASSED. The product never exposes an erase action or says the old phone is safe to erase.
How we built it
ClearToGo is a native macOS SwiftUI application. Its device bridge uses a read-only libimobiledevice inventory path, keeps physical-device handles ephemeral, and never sends device names or product types to GPT. File-backed checkpoints and audit events support recovery without persisting USB identity. GPT-5.6 runs through managed ChatGPT OAuth and a local Codex runtime. Every inference uses an ephemeral thread, strict structured output, an isolated working directory and CODEX_HOME, no executable tools, and no API-key fallback. Returned subjects and required risks must match the exact outbound session inventory. Invalid, incomplete, mutated, or uncovered output fails closed. The interface follows a provenance-first Continuity Atlas system. Live, Replay, Simulator, development-synthetic, and user-confirmed evidence remain structurally distinct. English is the production language; Korean localization is retained for development and accessibility review. How Codex was used Codex was part of the entire build, not an after-the-fact assistant. It helped turn a safety-focused product contract into Swift modules and requirement-linked tests; implement and harden the read-only device bridge; build strict GPT-5.6 and OAuth boundaries; generate adversarial validators; create the SwiftUI experience; diagnose real-device, restoration, structured-output, and timeout failures; and keep the README, acceptance evidence, and submission materials synchronized. The builder retained the consequential decisions: a Mac-first product, read-only scanning without Developer Mode, explicit old/new role selection, human judgment before AI rationale, full-inventory recovery, GPT-5.6 for semantic reasoning, deterministic code for final state, no erase control, and honest evidence provenance.
Challenges we ran into
Real devices revealed problems that fixtures did not. Large inventories initially created too much manual review. Restored sessions could not reuse ephemeral USB handles. A valid-looking model plan failed strict subject/risk coverage. Internal schema vocabulary leaked into consumer guidance. A 90-second inference budget inherited from an earlier API assumption was too short for a larger plan. We addressed those issues with audited batching, conservative candidate recovery, explicit role re-selection and inventory matching, typed non-payload diagnostics, retry without rescanning, consumer-safe fallback guidance, and a measured 240-second per-attempt engineering budget. The historical two-iPhone run exposed two concrete product defects: an independent four-app check shared one result, and generic email/VPN names were interpreted as work access without explicit company context. The current revision deterministically splits independent multi-app checks into app-scoped checks, preserves genuinely inseparable cross-app actions, and neutralizes unsupported work-purpose inference. Automated mixed-outcome regressions pass. A separate corrected Live run completed 17 actions covering 18 risks without either defect recurring; the historical run remains a distinct BLOCKED record and is not reinterpreted.
Accomplishments we're proud of
A historical normal-product run compared 117 apps on the old iPhone with 98 on the new iPhone and exposed the grouped-outcome and unsupported account-purpose defects. Its distinct packet remains BLOCKED and is not rewritten as post-fix evidence. A separate corrected Live run narrowed 117 source apps to 37 suggestions and 11 required apps, read 98 destination apps, generated 17 actions covering 18 risks, and reached CHECKS_COMPLETED_WITH_USER_CONFIRMATION with 18 user-confirmed results, 0 recovery results, and 0 unchecked results. The two historical defects did not recur. The default automated suite contains 420 tests: 412 pass, 0 fail, and 8 explicit opt-in tests are skipped by default. A failure-inclusive current-model benchmark retains three preregistered holdout failures and then passes a new zero-overlap 24-app KR public holdout in three frozen gpt-5.6-sol runs, each with TP 12, FP 0, FN 0, TN 12. The claim is limited to execution and repeatability on that holdout. The Release build contains no development-hybrid activation, fake identifiers, or demo provenance markers. A credential-free, Debug-only Judge Demo runs in under five minutes without an iPhone, ChatGPT login, API key, or network model call, while remaining permanently labeled as synthetic Replay evidence. More than 50 repository commits were created during the submission period, with no pre-period commit in this repository.
What we learned
Installed does not mean working. A migration checker must distinguish inventory clues from account access, authentication, data visibility, and user confirmation. AI is useful for interpreting app meaning and minimizing the action plan, but safety improves when deterministic code owns completeness and final state. Provenance is not just an audit field; it has to be visible in the product language and interaction design.
What's next
Future product work can extend physical VoiceOver across initial role/consent, active scan/planning retry, and Challenge outcomes; broaden the public holdout with a consented private human-labeled evaluation; and prepare signing, notarization, sandboxing, runtime packaging, and consumer distribution. None of those optional evidence or distribution modalities is an automatic current shortlist requirement. The complete physical Keyboard Navigation route, final-packet VoiceOver, and a partial completed-screen VoiceOver revisit are already proven; the corrected two-physical-iPhone Live rerun is complete with user-confirmed provenance.
ClearToGo
English
ClearToGo is a macOS app for the moment after someone has set up a new iPhone but before they erase, sell, trade in, or return the old one. A successful phone transfer can still leave a banking login, authenticator, work account, passkey, or locally stored file unusable on the new phone. ClearToGo finds what deserves another look, turns those risks into concrete checks, and shows what remains unresolved.
It is a read-only checker. It never erases a device, never treats an installed app as proof that the app works, and never claims that erasure is safe.
Current project status
The product implementation, pre-final-product mock-jury cycle, submission, and final-submission audit are complete. Two independent final-submission panels against the same icon-bearing frozen packet each recorded a 90/100 median, Stage One 5/5, shortlist yes 5/5, criterion medians 5/4/4/5, and zero functional failures, required gaps, deferred submission items, or contract violations. The score, quality, two-round stability, and automatic loop-exit gates all pass. This is an internal synthetic diagnostic, not an official judging prediction.
The approved 2:44 public demo is available on YouTube with its force-aligned English caption track, and Devpost displays the project as submitted. Public signed-out access to the project and video was verified. The current product/evidence summary and document map are in Current Project Status.
The problem and the user
ClearToGo is for an everyday iPhone owner who does not want to remember and manually test every app before letting go of an old phone. The decisive question is simple: “If I erase the old iPhone now, could I later lose access to something important?”
Backup and transfer tools are good at moving large amounts of data. They do not prove that a bank recognizes the new device, an authenticator can approve a login, a work account still has access, or a local-only file actually arrived. ClearToGo focuses on that last-mile uncertainty.
How ClearToGo works
- The user may connect both iPhones at once. ClearToGo shows their local connection and trust status, and the user explicitly chooses the old iPhone to scan and the new iPhone to check.
- ClearToGo reads the complete user-app inventory locally.
- Deterministic rules and GPT-5.6 reduce the inventory to apps that deserve closer review, while keeping the full list searchable.
- The user makes an independent decision and can recover anything the analysis missed.
- ClearToGo compares destination evidence and asks GPT-5.6 for the smallest useful set of real checks, such as opening a bank account, approving MFA, or viewing a local file.
- Deterministic policy—not the model—separates observed proof, user confirmation, and unresolved risk into an auditable decision packet.
Why this is different
Apple's Quick Start, iCloud restore, App Store redownload, and trade-in guidance move or recover apps and data and prepare a device handoff. ClearToGo complements those workflows after setup: it preserves the old-iPhone inventory, finds the important last-mile checks, distinguishes installed presence from working account or data access, and keeps user-confirmed evidence separate from direct observation. The source-backed scope comparison is in Alternatives and Differentiation.
What GPT-5.6 does
GPT-5.6 interprets app meaning and public metadata, proposes migration-risk categories, builds a subject-aware risk ledger, and designs minimum verification challenges. It helps answer what might matter and what the user should test next.
GPT-5.6 does not control either iPhone, assign the final state, upgrade weak evidence into proof, or recommend erasing a device. Strict schemas and deterministic validators preserve every subject and reject incomplete, mutated, or executable output.
How Codex accelerated the build
Codex was used throughout the project—not only for initial scaffolding. It helped turn the product contract into traceable Swift modules, implement and harden the read-only C/Swift device bridge, build typed GPT-5.6 and OAuth protocol boundaries, generate adversarial contract and persistence tests, create the Continuity Atlas UI, diagnose live-device and timeout failures, and keep implementation evidence synchronized with the requirements.
Every commit in this repository was created after the hackathon Submission Period began. The work progressed from the product baseline to a runnable Mac app, physical iPhone acceptance, OAuth lifecycle acceptance, accessibility inspection, and a development-only end-to-end hybrid rehearsal.
Inspectable mock-jury process
The repository includes the project-scoped build-week-mock-jury Codex skill used to stress-test the submission before human review. It maps the official viability gate and four equal-weight criteria, generates an allowlisted blind submission packet, applies five independent public-evidence research lenses, validates structured reports, and deterministically surfaces panel disagreement and improvement priority. Its committed finding taxonomy preserves the original report keys while normalizing explicitly reviewed aliases, with a regression test for consensus recovery. These lenses do not impersonate the published judges or predict their votes; the source notes, evidence boundaries, schemas, scripts, and checks are committed so the process can be audited and reproduced. The dependency-free score dashboard links every immutable round audit and charts both panel and individual-lens trends. Final-submission Round 014 and stability Round 015 independently reviewed the same submitted, icon-bearing frozen packet. Both record a 90/100 median, Stage One 5/5, shortlist yes 5/5, criterion medians 5/4/4/5 with zero range, and zero functional failures, required gaps, deferred submission items, or contract violations. The score, quality, stability, and automatic loop-exit gates pass with zero score movement and no new critical failure. Consumer notarization and clean-Mac acceptance, independent-user outcomes, and complete physical VoiceOver remain low-severity post-submission evidence opportunities rather than blockers.
Reproducible value evidence
The Deterministic Impact Benchmark makes three narrow product-value claims inspectable. On one complete privacy-preserving frozen derivative, ClearToGo reduced required relevance decisions from 139 to 33—76.3% fewer—while retaining all 30 labeled material apps and the complete searchable inventory. Eight synthetic policy stress cases verify subject-aware checks and fail-closed evidence behavior. On one matched privacy-safe synthetic case, a generous combination of three official Apple transfer, restore-troubleshooting, and handoff documents directly covered 3 of 9 readiness risks; ClearToGo's production ledger and deterministic policy covered all 9 with 8 risk-bound challenges, kept all 9 unresolved risks explicit, returned BLOCKED, and reported zero contract violations. This is a scope-and-policy comparison, not an independent-user outcome, competitor product execution, elapsed-time saving, or current-model/population claim.
The Public Current-Model Candidate Benchmark preserves the full preregistered learning chain instead of showing only the successful run. Holdout v1 failed before its third model call because of a runner path defect; v2 failed at 75% recall in all three runs; and v3 failed both recall and recall-range thresholds. After those sets became development evidence and the production routing defects were corrected, a new zero-overlap 24-app KR-storefront holdout was committed before model output. Its three frozen gpt-5.6-sol runs each recorded TP 12, FP 0, FN 0, TN 12, with 100% precision and recall and zero range. This is direct current execution and repeatability evidence for that public holdout—not an independent-user outcome, private-inventory result, population estimate, or global accuracy guarantee.
Key builder decisions
The builder retained authority over the product, engineering, and design choices that shape ClearToGo:
- Make a consumer Mac app rather than a destructive device-management utility.
- Keep Standard Scan read-only, require no Developer Mode, and include no erase control.
- Use GPT-5.6 for semantic reasoning and minimum planning, while deterministic code owns severity and final state.
- Preserve full-inventory recovery and independent human judgment instead of presenting AI as an oracle.
- Use managed ChatGPT OAuth through the local Codex runtime, with no silent billable API fallback.
- Let non-developer users prepare a pinned, signed OpenAI runtime and continue to browser OAuth from one explicit in-app action; do not require Terminal, PATH changes, or restart.
- Keep Live, Replay, Simulator, user-confirmed, and synthetic development evidence visibly and structurally separate.
- Allow the one-iPhone synthetic-source workflow only as Debug test infrastructure; it cannot affect or impersonate the two-iPhone product path.
- Replace the unvalidated 90-second inference assumption with a measured 240-second engineering budget after repeated live planning evidence.
- Design for English-speaking users while retaining Korean localization for development and accessibility review.
Five-minute judge path
The verified judge path is an explicit, credential-free DEMO REPLAY flow that preserves permanent non-Live provenance and completes in under five minutes. Run Scripts/run-judge-demo.sh --verify-only first to produce a revision-bound JSON receipt and .xcresult, then run Scripts/run-judge-demo.sh for the UI walkthrough; no iPhone, ChatGPT login, API key, or network model call is required. The Debug-only launcher resets only its isolated Judge Demo store, presents four synthetic source apps, narrows them to three review candidates, and then plays the existing nine-challenge Replay fixture through the deterministic decision packet. It never produces Live evidence or affects the Release product path. Follow docs/JUDGE_TEST_GUIDE.md for the exact walkthrough and boundaries.
The published 2:44 public demo shows the approved two-iPhone product cycle with English TTS and force-aligned English captions. The separate Final Demo Video Production Handoff preserves its revision-aware production, privacy/IP, media-QA, and publication receipt, including the boundary that Codex must not accept terms or submit on Sangheon's behalf.
Honest boundaries
- A physical Developer-Mode-off source iPhone passed read-only discovery, disconnect, reconnect, and complete inventory acceptance.
- Two trusted physical iPhones passed simultaneous discovery, independent read-only inventory access, and explicit local old/new role-selection UI acceptance.
- Managed ChatGPT OAuth classification and planning passed against the Live subscription backend.
- The Debug-only one-iPhone hybrid exercises the downstream workflow but is permanently synthetic, non-exportable, and forced to
BLOCKED. - The historical user-consented two-physical-iPhone run completed a 117-app source scan, a 98-app destination scan, and 18 user-performed checks covering 22 risk items; its mixed result correctly remained deterministic
BLOCKED. That run exposed grouped-outcome and unsupported account-purpose defects, which are preserved as historical evidence rather than rewritten. - A separate corrected two-physical-iPhone Live acceptance then exercised the same production scanner, subscription-backed GPT-5.6 planning, strict validators, challenges, and deterministic policy through a new packet. It narrowed 117 source apps to 37 review suggestions, selected 11 required apps, read 98 destination apps, generated 17 actions covering 18 risks, and recorded 18 user-confirmed, 0 recovery, and 0 unchecked results as
CHECKS_COMPLETED_WITH_USER_CONFIRMATION. The previous defects did not recur. These remain user confirmations—not software-observed private account or content evidence—and the aggregate record intentionally excludes device identities and raw inventories. - ScreenCaptureKit/iPhone Mirroring evidence, broader private or independent-user model-quality evidence, signing/notarization, and consumer distribution remain optional extensions or future release work rather than current functional gaps.
- Replay demonstrates the product experience but never counts as Live proof.
The P0.5 demo cycle and the P0 Codex subscription provider are implemented in this repository. Production uses read-only USB discovery and app inventory, deterministic candidate and policy engines, strict GPT-5.6 inference through managed ChatGPT OAuth and local codex app-server, resumable file-backed sessions and audit events, Live/Replay isolation, data-driven Signal Atlas and Risk Constellation surfaces, and a provenance-first Evidence Seal.
Requirements
- Apple Silicon Mac
- macOS 15 or later
- Xcode 16 or later with Swift 6
- XcodeGen 2.46
- ripgrep 15.2
- Homebrew
libimobiledeviceandlibplist - A ChatGPT plan that exposes
gpt-5.6-sol; ClearToGo can prepare its pinned Codex runtime in-app, while an existing compatible standalone installation remains supported
brew install xcodegen ripgrep libimobiledevice libplist
xcodegen generate
open ClearToGo.xcodeproj
Run the normal product for two-iPhone E2E
Do not use Scripts/run-judge-demo.sh for a real-device E2E; that command intentionally launches an isolated synthetic Replay profile. Build and open the normal Debug product from the repository root instead:
xcodegen generate
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
xcodebuild build \
-project ClearToGo.xcodeproj \
-scheme ClearToGo \
-configuration Debug \
-destination 'platform=macOS,arch=arm64' \
-derivedDataPath .derived-data/UserE2ECurrent \
GCC_TREAT_WARNINGS_AS_ERRORS=YES \
SWIFT_TREAT_WARNINGS_AS_ERRORS=YES
env -u CLEARTOGO_JUDGE_DEMO -u CLEARTOGO_JUDGE_DEMO_RESET \
open -n .derived-data/UserE2ECurrent/Build/Products/Debug/ClearToGo.app
Connect, unlock, and trust both iPhones before starting. Assign the old and new roles explicitly, then confirm the toolbar shows the managed ChatGPT OAuth account and gpt-5.6-sol as ready. The normal profile may restore its last saved session. Do not delete that checkpoint merely to obtain a fresh run; archive or delete it only with the user's explicit approval. Follow Live Two-iPhone End-to-End Acceptance for the safety boundary and evidence checklist.
The judge path builds from source and resolves device libraries through Homebrew; the repository does not bundle Homebrew dynamic libraries. Dependency licenses and reference versions are recorded in THIRD_PARTY_NOTICES.md, while the verified current state and release gates are recorded in docs/CONSUMER_DISTRIBUTION_READINESS.md. A local-only staging tool proves that the six-library runtime closure can be rewritten to @rpath and launched from inside a copied app, but no staged binary is committed or distributed. The current Release artifact is still not Developer ID signed, Hardened Runtime accepted, notarized, Gatekeeper-verified, or clean-Mac proven.
The test suite and deterministic Replay mode need no credential. Live GPT analysis uses the managed ChatGPT OAuth session owned by the local Codex runtime. Use the toolbar account control to inspect status, plan, model availability, quota, browser or device-code login, refresh, or logout. If no compatible runtime exists, the read-only product still opens and offers Continue with ChatGPT. That explicit action downloads the pinned official OpenAI archive to ClearToGo's private Application Support area, verifies the pinned SHA-256 digest, rejects unsafe archive paths, validates the OpenAI Apple Developer ID signature, atomically promotes the release, and opens browser OAuth without Terminal, PATH changes, or restart. Failure remains fail-closed with no data sent and no billable fallback. ClearToGo does not read OPENAI_API_KEY in production and never parses, persists, or logs raw OAuth credentials or one-time device codes.
Authentication/provider status
CodexSubscriptionProvider is the primary Live inference provider. CodexManagedRuntimeManager prepares pinned version 0.144.6 for Apple Silicon or Intel Macs in private app storage and re-resolves it for account and Live requests, so setup does not require restart. The provider launches the validated local codex app-server over JSONL stdio, requires managed ChatGPT OAuth, verifies the exact model and high reasoning, uses ephemeral threads plus strict output schemas, strips API-key environment variables, isolates Codex configuration and storage per request, rejects executable tool items, and records provider-specific thread/turn/plan/quota audit metadata. GPT classification and planning use a shared 240-second per-attempt engineering budget with bounded idempotent retry and typed fail-closed timeout handling. The direct Responses adapter remains test/reference code only and uses the same budget; ClearToGo never silently falls back to billable API-key usage. The accepted spike evidence is recorded in docs/CODEX_SUBSCRIPTION_AUTH_SPIKE_PLAN.md.
P0.5 capabilities
- Read-only USB iPhone discovery and complete user-app inventory without requiring Developer Mode
- Local-only connection and trust status for every attached iPhone, with explicit old/new role selection and no automatic age inference
- Full old/new setup before the source scan, followed by one shared toolbar connection popover, sequential stage locking, and explicit new-iPhone scan/AI-check progress without repeated role cards
- Frozen candidate engine with Tier A inclusion, gated Tier B discovery, full-inventory retention, and assisted/manual coverage states
- Independent three-state candidate review, delayed model rationale, search, manual promotion, and checkpoint resume
- Strict
gpt-5.6-solCodex turns with high reasoning, managed ChatGPT OAuth, ephemeral retention, strict output schemas, explicit English/Korean output contracts, zero executable tool calls, privacy validation, typed failure handling, provider-specific audit correlation, quota handling, and no billable fallback - Explicit
Continue with ChatGPTonboarding with pinned official runtime URLs and digests, allowlisted HTTPS redirects, archive traversal rejection, OpenAI Developer ID verification, atomic app-private installation, and no-restart provider resolution - Shared 240-second per-attempt inference budget for primary Codex and explicit reference Responses calls, with bounded idempotent retry and no automatic provider fallback
- Typed initial planning and explicit replanning with authoritative source/destination observations, prior challenges, completed evidence, priorities, current authorization, and exact session-bound
subject_id/subject_name/subject_kindvalidation - Safe recovery from invalid planning output: ClearToGo classifies the contract failure without retaining raw model payloads, preserves both scans and the completed app review, offers an explicit retry without rescanning, and clears the failure only after a new plan passes every deterministic check
- Deterministic risk severity, evidence compatibility, challenge state, and final-state evaluation
- Consumer-facing challenge and decision guidance that uses local app names, explains what needs attention, gives a concrete next action and completion criterion, and keeps raw IDs, contract codes, versions, and provider diagnostics inside an optional technical disclosure
- Only three final states:
BLOCKED,CHECKS_COMPLETED_WITH_USER_CONFIRMATION, andCHECKS_PASSED - Atomic file checkpoints, privacy-safe append-only audit lifecycles, compare-and-swap transitions, session deletion, writer tombstones, and delete-during-flight isolation
- Sealed Live-to-Replay precursor binding to the exact durable generation, pseudonymous device subjects, workflow snapshot digest, review, and audit event
- Continuity Atlas UI with actual inventory/candidate node counts, stable subject positions, causal manual promotion, provenance marks, Risk Constellation, Challenge Focus, state-specific Evidence Seals, accessible outlines, Reduce Motion/Increase Contrast support, light/dark appearance, and English/Korean UI strings
- A production macOS app icon with a small-size-legible Continuity Bridge, risk hexagon, and provenance palette; it contains no checkmark, erase symbol, or safety guarantee
- Opt-in live candidate evaluation that runs the production pipeline against a local human-labeled inventory and records de-identified aggregate metrics separately from local per-app details
Relevant requirements include PRD-001–PRD-019, FR-ONB-*, FR-SCN-*, FR-CAN-*, FR-REV-*, FR-DST-*, FR-PLN-*, FR-CHL-*, FR-POL-*, FR-SES-*, FR-AUD-*, FR-ERR-*, SRS-APP-*, SRS-DEV-*, SRS-INF-*, SRS-RPL-*, SRS-UI-*, SEC-001–SEC-008, NFR-002–NFR-010, and UX-001–UX-011 as scoped by the authoritative documents.
Architecture
ClearToGo/
App/ Composition root and P0 workflow coordinator
Features/ Continuity Atlas SwiftUI surfaces
Core/
Audit/ Audit lifecycle and replay validation
Candidate/ Candidate analysis and coverage
Domain/ Sessions, evidence, risks, and identifiers
OpenAI/ Typed schemas, privacy, and response validation
Persistence/ Atomic checkpoint contracts
Policy/ Deterministic policy engine
Replay/ Replay fixtures and sealed precursor contracts
Workflow/ Typed P0 pipeline models
Integrations/
Device/ Swift read-only device adapter
DeviceBridge/ Compile-time-limited read-only C bridge
Metadata/ Public App Store metadata provider
OpenAI/ Production Codex OAuth provider and reference Responses adapter
Persistence/ Hardened file session store
Fakes/ Deterministic test and Replay dependencies
Tests/ Core, integration, contract, and app lifecycle suites
Dependency direction remains Core ← Features/Integrations ← App. Views render state; they do not calculate policy. project.yml is the source of truth and XcodeGen generates ClearToGo.xcodeproj.
Build and verification
xcodegen generate
xcodebuild test \
-project ClearToGo.xcodeproj \
-scheme ClearToGo \
-configuration Debug \
-destination 'platform=macOS,arch=arm64' \
-derivedDataPath /tmp/cleartogo-debug \
CODE_SIGNING_ALLOWED=NO \
SWIFT_TREAT_WARNINGS_AS_ERRORS=YES \
GCC_TREAT_WARNINGS_AS_ERRORS=YES
Scripts/verify-contracts.sh
Scripts/verify-device-bridge-sanitizers.sh
The default verification baseline is 420 tests: 412 pass, 0 fail, and 8 explicit opt-in tests are skipped (managed-runtime official-download acceptance, 3 live-subscription tests, and 4 physical/development acceptance tests). The managed-runtime suite pins architecture-specific official URLs and digests, checks streaming SHA-256 and app-owned state location, and rejects unsupported architectures and archive traversal. Its explicit official-download acceptance additionally passed the real 116 MB OpenAI archive through checksum, OpenAI Developer ID, version, app-server capability, private-install, and no-restart resolution gates. Consumer-copy contracts preserve already safe model guidance while replacing unsafe instruction, success, and recovery text as one coherent bundle; every supported risk type has English and Korean fallback guidance, and arbitrary snake_case tokens are rejected from primary copy. New regressions require a missing runtime to preserve read-only composition, avoid developer-only recovery commands, reject suppression of unrelated startup failures, and keep consequential source consent/start controls visible as keyboard focus advances. Mixed-outcome regressions isolate independent app results while preserving inseparable cross-app actions, and candidate regressions enforce neutral account purpose without explicit company-managed context. The review transition now cancels and joins any debounced draft save before its atomic final checkpoint. A later 500-iteration stress run exposed a separate privacy-gate false positive when a valid pseudonymous ID happened to contain phone-shaped digits; typed JSON validation now exempts only closed-grammar opaque IDs while continuing to reject phone numbers in user-facing fields. The corrected full-cycle test passed 500/500 iterations. Provider tests assert the shared 240-second default and the reference Responses request timeout. The provider boundary also passes 3 process-level failure tests covering hardened arguments, secret stripping, tool exposure, missing authentication/model, exhausted quota, protocol drift, invalid structured output, and process crash. The account controller passes 8 protocol tests covering status, browser and device-code challenge completion, cancellation, unsafe verification URLs, logout, and invalid quota. User-present fresh browser and device-code acceptances passed logout, explicit cancellation, re-login, quota refresh, one-time-code presentation, and device-code completion. Risk-plan validation additionally binds every returned subject ID, semantic privacy-safe name, kind, and required risk set to the exact outbound session inventory; diagnoses malformed JSON, shape, case, subject, risk-set, and challenge-coverage failures without retaining raw payloads; and rejects mutated, asymmetric, incomplete, or uncovered output. The UI showed only the expected short-lived code and credential-free readiness; Application Support files and inspected ClearToGo unified-log event messages contained no credential, account identity, protocol field, or standalone one-time code. Separately, the live subscription provider class passes 5 of 5 tests when explicitly enabled. The frozen 139-row fixture remains a deterministic pipeline regression: 33 candidates, TP 30, FP 3, FN 0. It does not measure current GPT-5.6 accuracy because its app names and model classifications are synthetic/frozen. All 24 recorded planning outputs validate, all 8 gold plans preserve semantics, and all 8 malformed mutants fail strict validation.
Candidate evaluation boundaries
The default scheme never performs live candidate evaluation. To measure the current production prompt/model, create a local, gitignored JSON file under CandidateEvaluation.local/ with a human-created label for every row:
{
"datasetID": "local-example",
"rows": [
{
"displayName": "Local app name",
"bundleIdentifier": "local.bundle.identifier",
"groundTruthRelevant": true
}
]
}
Then log in through Codex and explicitly run ClearToGoLiveCandidateEvaluation with CLEARTOGO_RUN_LIVE_CANDIDATE_EVALUATION=1, CLEARTOGO_CANDIDATE_EVALUATION_INPUT, and optionally CLEARTOGO_CANDIDATE_EVALUATION_OUTPUT. The harness uses the production Codex subscription provider, candidate pipeline, and prompt; reports precision/recall/TP/FP/FN plus per-app reasons; and records configured/returned model IDs, prompt/policy versions, and time. Local input and detailed output must never be committed; public reports may contain only aggregates and de-identified information. No human-labeled live quality evaluation has been executed because a complete private dataset was not supplied.
P0.5 UI QA artifacts are generated at /tmp/cleartogo-ui-p0-5-qa/ and copied to the gitignored local directory Artifacts/Private/P0_5_UI/.
The explicit ClearToGoLiveDeviceAcceptance and ClearToGoPhysicalConnectionAcceptance schemes require a trusted physical iPhone and user participation. Do not run them unattended. On 2026-07-18, a user-confirmed Developer-Mode-off iPhone passed read-only discovery and inventory with 119 user apps, physical disconnect detection, stale-handle notConnected rejection, trusted reconnect, and a second 119-app inventory.
On 2026-07-19, the ClearToGoTwoDeviceAcceptance scheme passed with two trusted physical iPhones connected simultaneously. The bridge returned two distinct ephemeral handles, local display metadata, and independently addressed nonempty read-only app inventories. Computer Use inspection of the normal product profile verified the initial two-device connection/trust surface, mutually exclusive old/new role controls, role swapping, toolbar status, and disabled scan until the read-only boundary is accepted. Device display names and product types remain local presentation data and do not enter checkpoints, audit events, or GPT payloads.
The follow-up connection UX keeps the full role setup only on the source screen and exposes one compact shared iPhone-status popover afterward. Future Mission Rail stages are disabled until reached; the destination screen no longer repeats the role cards, distinguishes new-iPhone inventory scanning from AI verification-check generation, and shows scanning and completion feedback. Silent two-second connection monitoring no longer toggles user-visible refresh state. Computer Use confirmed the pending-stage lock, shared popover, friendly step label, and six stable refresh-state samples over more than four seconds. A later direct E2E inspection exposed a restored final-session popover that incorrectly asked for both roles again. The fix preserves the privacy boundary—ephemeral roles are neither retained nor guessed—while showing that saved scans remain intact and hiding role-selection controls after the Live destination scan is complete. The resumed normal product session then completed its Live destination scan and a subscription-backed retry after an earlier structured-output rejection. The accepted plan covered all 21 required subject-risk pairs with 19 checks and zero unsupported or orphaned risks. All 19 checks were honestly recorded as unavailable rather than fabricated, producing a deterministic BLOCKED packet with app-specific reasons, actions, and completion criteria.
On 2026-07-20, an isolated current-revision acceptance used both attached trusted iPhones, the production read-only scanner, and the authenticated subscription provider from source setup through the final Decision Packet. It read 117 source apps, narrowed review to 35 suggestions, read 94 destination apps, and requested 41 checks. The first planning attempt reached the 240-second boundary and failed closed without losing progress; an explicit keyboard-operated retry succeeded and advanced to the checks. Every result was honestly recorded as “I can’t check now,” leaving 0 observed, 0 user-confirmed, and 41 unchecked rather than fabricating success. The run therefore proves one current joined real planning miss-to-recovery cycle, not a successful private-account outcome. A separate current-revision bridge revalidation again returned two distinct nonempty inventories without recording device identity.
ClearToGoDevelopmentHybridAcceptance is an explicit Debug-only engineering path for working without a second iPhone. It augments the connected iPhone's source inventory with three synthetic Tier A canaries, then reads the same unchanged physical iPhone as the Live destination from an isolated local store. In the completed acceptance, 117 Live apps plus three canaries produced 33 review candidates, the unchanged destination contained 117 apps, GPT-5.6 generated nine challenges, all nine were honestly marked unobservable, and deterministic policy returned a non-exportable BLOCKED packet with permanent synthetic-source provenance. This is development evidence only; the activation path, fake identifiers, and provenance banner are absent from Release.
Remaining validation boundaries
- Managed ChatGPT OAuth classification and minimum-risk planning were exercised against the live subscription backend. A fresh normal-product run completed source review, an independent Live destination comparison, strict planning, and all 18 user-performed checks. Evidence remains user-confirmed rather than software-observed. The current revision adds automated regression coverage for independent per-app mixed outcomes while preserving genuinely inseparable grouped actions; the corrected two-iPhone Live rerun completed 17 actions covering 18 required risks without recurrence of the historical grouped-outcome or unsupported account-purpose defects.
- ScreenCaptureKit/iPhone Mirroring visual evidence and protected-app blanking are not implemented; the capture port still uses a fake.
- The preregistered public v4 holdout directly covers current candidate precision/recall on its 24 KR-storefront apps. Population accuracy, private-inventory quality, natural trust rejection, the remaining full-path physical VoiceOver states, and release packaging remain outside that claim or deferred product work. A future consented private human-labeled evaluation could broaden evidence, but it is not an automatic score or shortlist requirement.
- Local Homebrew libraries were built for a newer macOS than the deployment target. Redistribution licensing, minimum-OS packaging, App Sandbox, signing, and notarization require a release review.
- The current isolated two-iPhone workflow was completed with Keyboard Navigation from role assignment through all review choices, destination scan, explicit planning retry, 41 honest outcome entries, and the final packet. This run found that SwiftUI could move Tab focus to off-screen source consent/start controls without revealing them; the product now scrolls each consequential focus target into view and exposes stable identifiers and explicit old/new role labels. Physical VoiceOver traversed the actual final packet and later revisited the completed Source summary, Risk Review task/progress/list boundary, and Destination heading/caution. That revisit found and fixed a decorative transition glyph announced as “Right, image”; a rebuilt physical recheck, the 420-test default suite, and the four exact-size accessibility routes pass. Initial role/consent, every private review row, active scanning/planning retry, and the complete earlier Challenge interaction remain open, so this is not a full-path VoiceOver claim.
Use Live Two-iPhone End-to-End Acceptance for the completed Live records and remaining accessibility or model-quality acceptance. It separates agent-operated Mac steps from user-only account actions and defines non-sensitive evidence, accessibility, resume, and privacy gates.
Use the authority order CLEAR_TO_GO_PRODUCT_CONTRACT_V1.md → PRD.md → FRD.md → SRS.md → UI_UX_DESIGN_SPEC_V1.md. Earlier documents override later ones.
한국어
ClearToGo는 새 iPhone 설정을 마쳤지만 기존 iPhone을 초기화·판매·보상 판매·반납하기 전인 순간을 위한 macOS 앱입니다. 휴대폰 이전이 성공했어도 은행 로그인, 인증 앱, 회사 계정, Passkey, 로컬 저장 파일이 새 iPhone에서 작동하지 않을 수 있습니다. ClearToGo는 다시 확인할 대상을 찾고 구체적인 확인 행동으로 바꾸며 아직 해결되지 않은 위험을 보여줍니다.
ClearToGo는 읽기 전용 검사 도구입니다. 기기를 지우지 않고, 앱이 설치됐다는 사실만으로 작동한다고 판단하지 않으며, 초기화가 안전하다고 보증하지 않습니다.
현재 프로젝트 상태
제품 구현, pre-final-product 모의 심사 cycle, 제출, final-submission audit을 모두 완료했습니다. 아이콘이 포함된 같은 frozen packet을 검토한 독립 최종 제출 panel 두 개는 각각 median 90/100, Stage One 5/5, shortlist yes 5/5, 기준 median 5/4/4/5, 기능 failure·필수 gap·보류 제출 item·contract 위반 0개를 기록했습니다. Score·quality·두 round stability·automatic loop-exit gate가 모두 통과했습니다. 이는 내부 합성 진단 결과이며 공식 심사 결과 예측이 아닙니다.
승인된 2분 44초 공개 YouTube 데모는 실제 음성에 강제 정렬한 영문 자막 track과 함께 공개됐고 Devpost는 프로젝트를 제출 완료로 표시합니다. Project와 video의 signed-out 공개 접근도 검증했습니다. 현재 제품·증거 요약과 문서 지도는 현재 프로젝트 상태에 있습니다.
문제와 사용자
ClearToGo는 기존 휴대폰을 정리하기 전에 모든 앱을 기억해 하나씩 시험하고 싶지 않은 일반 iPhone 사용자를 위한 제품입니다. 결정적인 질문은 간단합니다. “기존 iPhone을 지금 지우면 나중에 중요한 것에 접근하지 못하게 될까?”
백업과 이전 도구는 많은 데이터를 옮기는 데 강합니다. 하지만 은행이 새 기기를 인식하는지, 인증 앱이 로그인을 승인할 수 있는지, 회사 계정에 계속 접근 가능한지, 로컬 전용 파일이 실제로 도착했는지는 증명하지 않습니다. ClearToGo는 이 마지막 불확실성에 집중합니다.
ClearToGo 작동 방식
- 사용자는 두 iPhone을 처음부터 함께 연결할 수 있습니다. ClearToGo가 각 기기의 로컬 연결·신뢰 상태를 표시하면, 사용자가 스캔할 구 iPhone과 점검할 새 iPhone을 직접 선택합니다.
- ClearToGo가 전체 사용자 앱 inventory를 로컬에서 읽습니다.
- 결정론적 규칙과 GPT-5.6이 더 자세히 볼 앱으로 범위를 줄이고 전체 목록은 계속 검색 가능하게 보존합니다.
- 사용자가 독립적으로 판단하고 분석이 놓친 항목을 직접 복구할 수 있습니다.
- ClearToGo가 목적지 증거를 비교하고 GPT-5.6이 은행 계정 열기, MFA 승인, 로컬 파일 보기 같은 가장 작은 실제 확인 묶음을 만듭니다.
- Model이 아니라 결정론적 policy가 직접 관찰 증거, 사용자 확인, 미해결 위험을 구분해 감사 가능한 decision packet을 만듭니다.
무엇이 다른가
Apple의 Quick Start, iCloud 복원, App Store 재다운로드, trade-in 안내는 앱·데이터를 옮기거나 복구하고 기기 인계를 준비합니다. ClearToGo는 설정 뒤 이 workflow를 보완합니다. 구 iPhone 전체 목록을 보존하고 마지막으로 확인할 중요 항목을 찾으며, 설치된 사실과 실제 계정·데이터 접근을 구분하고, 사용자 확인 근거와 직접 관찰 근거도 분리합니다. 출처 기반 범위 비교는 대안과 차별성에 정리했습니다.
GPT-5.6의 역할
GPT-5.6은 앱 의미와 공개 metadata를 해석하고, 이전 위험 category를 제안하고, 대상별 risk ledger를 만들며, 최소 검증 challenge를 설계합니다. 즉 무엇이 중요할 수 있고 사용자가 다음에 무엇을 시험해야 하는지 판단하도록 돕습니다.
GPT-5.6은 어느 iPhone도 제어하지 않고 최종 상태를 지정하지 않으며 약한 evidence를 proof로 승격하거나 기기 초기화를 권하지 않습니다. Strict schema와 결정론적 validator가 모든 subject를 보존하고 불완전·변형·실행 가능 출력을 거부합니다.
Codex가 개발을 가속한 방식
Codex는 초기 scaffold에만 사용되지 않고 프로젝트 전반에 사용됐습니다. 제품 계약을 추적 가능한 Swift module로 전환하고, 읽기 전용 C/Swift device bridge를 구현·강화하고, typed GPT-5.6·OAuth protocol 경계를 만들고, 적대적 contract·persistence test를 생성하고, Continuity Atlas UI를 구현하고, 실기기·timeout 문제를 진단하며, 구현 증거와 요구사항 문서를 일치시키는 데 도움을 줬습니다.
이 저장소의 모든 commit은 해커톤 제출 기간 시작 뒤 만들어졌습니다. 작업은 제품 기준선에서 실행 가능한 Mac 앱, 물리 iPhone acceptance, OAuth lifecycle acceptance, 접근성 검사, 개발 전용 end-to-end hybrid rehearsal까지 진행됐습니다.
검사 가능한 모의 심사 과정
저장소에는 사람의 최종 검토 전에 제출물을 스트레스 테스트하는 프로젝트 범위 Codex 스킬인 build-week-mock-jury가 포함됩니다. 이 스킬은 공식 실행 가능성 gate와 네 개의 동등 가중 기준을 연결하고, allowlist 기반 블라인드 제출 패킷을 생성하며, 공개 근거에 기반한 다섯 개의 독립 조사 관점을 적용하고, 구조화 보고서를 검증한 뒤 패널 이견과 개선 우선순위를 결정론적으로 도출합니다. Commit된 finding taxonomy는 원래 report key를 보존하면서 명시적으로 검토한 alias를 정규화하고, 합의 복구 회귀 test도 포함합니다. 이 관점들은 공개된 심사위원을 사칭하거나 투표를 예측하지 않으며, 조사 출처·증거 경계·스키마·스크립트·검사를 모두 commit하여 과정을 감사하고 재현할 수 있게 했습니다. Dependency-free 점수 dashboard는 변경 불가 round 감사 전체를 연결하고 panel·개별 lens 추세를 그립니다. Final-submission Round 014와 stability Round 015는 제출 완료·아이콘 포함 frozen packet을 독립 검토했습니다. 두 panel 모두 median 90/100, Stage One 5/5, shortlist yes 5/5, 기준 median 5/4/4/5와 range 0, 기능 failure·필수 gap·보류 제출 item·contract 위반 0개를 기록했습니다. 점수 변화와 새 critical failure 없이 score·quality·stability·automatic loop-exit gate가 모두 통과했습니다. Consumer notarization·clean-Mac acceptance, 독립 사용자 outcome, complete physical VoiceOver는 blocker가 아니라 low-severity 제출 후 근거 기회로 남습니다.
재현 가능한 가치 증거
결정론적 영향 벤치마크는 좁게 정의한 제품 가치 주장 세 가지를 검사할 수 있게 합니다. 개인정보 보호형 전체 동결 파생본 하나에서 ClearToGo는 필수 관련성 판단을 139개에서 33개로 76.3% 줄이면서 라벨된 중요 앱 30개와 검색 가능한 전체 인벤토리를 모두 유지했습니다. 합성 policy stress case 8개는 대상별 점검과 fail-closed 증거 동작을 검증합니다. 동일한 개인정보 안전 합성 case에서 Apple의 전송·복원 문제 해결·인계 공식 문서 3개를 관대하게 결합한 기준선은 준비 위험 9개 중 3개를 직접 다뤘고, ClearToGo의 production ledger와 결정론적 policy는 위험에 결속된 challenge 8개로 9개를 모두 다루며 미해결 위험 9개를 개별 유지하고 BLOCKED와 contract 위반 0개를 반환했습니다. 이는 범위·policy 비교이며 독립 사용자 성과, 경쟁 제품 실행, 경과 시간 절약, 현재 model·모집단 claim이 아닙니다.
공개 현재 모델 후보 벤치마크는 성공한 실행만 보여주지 않고 사전등록 학습 연쇄 전체를 보존합니다. Holdout v1은 세 번째 model 호출 전 runner 경로 결함으로 실패했고, v2는 세 번 모두 recall 75%로 실패했으며, v3는 recall과 recall 범위 조건을 모두 통과하지 못했습니다. 이 set들을 개발 근거로 전환하고 production routing 결함을 수정한 뒤, model 출력 전에 기존 set과 겹치지 않는 KR storefront 공개 앱 24개 holdout을 commit했습니다. 고정 gpt-5.6-sol 실행 세 번은 각각 TP 12·FP 0·FN 0·TN 12, precision·recall 100%, 범위 0을 기록했습니다. 이는 해당 공개 holdout의 현재 실행·반복성 근거이며 독립 사용자 outcome, 비공개 inventory 결과, 모집단 추정, 전역 정확도 보장이 아닙니다.
제작자의 핵심 결정
제작자는 ClearToGo의 제품·기술·디자인을 형성하는 다음 결정에 대한 권한을 직접 유지했습니다.
- 파괴적인 기기 관리 utility가 아니라 일반 사용자를 위한 Mac 앱으로 만듭니다.
- Standard Scan은 읽기 전용으로 유지하고 Developer Mode를 요구하지 않으며 erase control을 넣지 않습니다.
- GPT-5.6은 의미 추론과 최소 planning을 담당하고 결정론적 코드가 severity와 final state를 소유합니다.
- AI를 정답처럼 제시하지 않고 전체 inventory 복구와 독립적인 인간 판단을 보존합니다.
- Local Codex runtime을 통한 managed ChatGPT OAuth를 사용하고 비용이 발생하는 API로 조용히 fallback하지 않습니다.
- 비개발자 사용자가 앱 안의 명시적 행동 한 번으로 고정·서명된 OpenAI runtime을 준비하고 browser OAuth로 이어지게 하며 Terminal·PATH 변경·재시작을 요구하지 않습니다.
- Live, Replay, Simulator, user-confirmed, synthetic development evidence를 시각·구조적으로 분리합니다.
- 단일 iPhone 합성 source workflow는 Debug test infrastructure로만 허용하며 두 iPhone 제품 경로에 영향을 주거나 이를 가장할 수 없습니다.
- 반복된 Live planning 증거 뒤 검증되지 않은 90초 추론 가정을 실측 기반 240초 engineering budget으로 교체합니다.
- 영어권 사용자를 중심으로 설계하면서 개발·접근성 검토를 위해 한국어 localization을 유지합니다.
5분 심사위원 경로
검증된 심사위원 경로는 영구적인 비Live provenance를 보존하고 5분 이내 완료되는 명시적 credential-free DEMO REPLAY 흐름입니다. 먼저 Scripts/run-judge-demo.sh --verify-only를 실행해 revision과 연결된 JSON receipt와 .xcresult를 만들고, UI walkthrough는 Scripts/run-judge-demo.sh로 실행합니다. iPhone, ChatGPT 로그인, API key, network model call이 필요하지 않습니다. Debug 전용 launcher는 격리된 Judge Demo store만 초기화하고 합성 source 앱 4개를 review candidate 3개로 줄인 뒤 기존 9개 challenge Replay fixture를 결정론적 decision packet까지 재생합니다. Live evidence를 만들지 않고 Release 제품 경로에도 영향을 주지 않습니다. 정확한 walkthrough와 경계는 docs/JUDGE_TEST_GUIDE.md를 따릅니다.
게시된 2분 44초 공개 데모는 승인된 두 iPhone 제품 cycle을 영문 TTS와 실제 음성에 강제 정렬한 영문 자막으로 보여줍니다. 별도의 최종 데모 영상 제작 인계는 revision-bound 제작, 개인정보·IP, media QA, 공개 receipt와 Codex가 상헌 님 대신 약관에 동의하거나 제출해서는 안 된다는 경계를 보존합니다.
정직한 경계
- Developer Mode가 꺼진 물리 source iPhone이 읽기 전용 탐색, 분리, 재연결, 전체 inventory acceptance를 통과했습니다.
- 신뢰된 물리 iPhone 2대가 동시 탐색, 독립 읽기 전용 inventory 접근, 명시적 로컬 구/새 역할 선택 UI acceptance를 통과했습니다.
- Managed ChatGPT OAuth classification과 planning이 Live subscription backend에서 통과했습니다.
- Debug 전용 단일 iPhone hybrid는 downstream workflow를 실행하지만 영구적으로 synthetic·export 불가이며
BLOCKED를 강제합니다. - 과거 사용자 동의 두 물리 iPhone 실행은 구 iPhone 앱 117개, 새 iPhone 앱 98개, 위험 항목 22개를 다루는 사용자 수행 점검 18개를 완료했고 혼합 결과를 결정론적
BLOCKED로 유지했습니다. 이 실행에서 묶음 결과와 근거 없는 계정 용도 결함을 발견했으며 과거 증거로 보존합니다. - 별도의 수정 후 두 물리 iPhone Live acceptance가 동일한 정상 scanner, 구독 기반 GPT-5.6 planning, strict validator, challenge, 결정론적 policy를 새 packet까지 실행했습니다. Source 앱 117개를 review 제안 37개로 줄이고 11개를 필수로 선택했으며 destination 앱 98개를 읽고 위험 18개를 다루는 행동 17개를 생성해 사용자 확인 18개·복구 필요 0개·미확인 0개의
CHECKS_COMPLETED_WITH_USER_CONFIRMATION을 기록했습니다. 이전 결함은 재발하지 않았습니다. 이는 software-observed 비공개 계정·내용 증거가 아니라 사용자 확인이며 집계 기록은 기기 신원과 원시 inventory를 제외합니다. - ScreenCaptureKit/iPhone Mirroring evidence, 더 넓은 private·독립 사용자 model-quality 근거, signing/notarization, 소비자 배포는 현재 기능 gap이 아니라 선택적 확장 또는 미래 release 작업입니다.
- Replay는 제품 경험을 보여주지만 Live proof로 계산되지 않습니다.
이 저장소에는 P0.5 데모 사이클과 P0 Codex 구독 provider가 구현되어 있습니다. Production 조립은 읽기 전용 USB 탐색·앱 inventory, 결정론적 candidate·policy engine, managed ChatGPT OAuth와 local codex app-server를 통한 strict GPT-5.6 inference, 재개 가능한 파일 기반 session·audit event, Live/Replay 격리, 데이터 기반 Signal Atlas·Risk Constellation, provenance 중심 Evidence Seal을 사용합니다.
요구 환경
- Apple Silicon Mac
- macOS 15 이상
- Swift 6을 포함한 Xcode 16 이상
- XcodeGen 2.46
- ripgrep 15.2
- Homebrew
libimobiledevice,libplist gpt-5.6-sol을 제공하는 ChatGPT plan. ClearToGo가 고정 Codex runtime을 앱 안에서 준비할 수 있으며 기존 compatible standalone 설치도 지원합니다.
brew install xcodegen ripgrep libimobiledevice libplist
xcodegen generate
open ClearToGo.xcodeproj
정상 제품으로 두 iPhone E2E 실행
실기기 E2E에서는 Scripts/run-judge-demo.sh를 사용하지 않습니다. 이 명령은 의도적으로 격리된 합성 Replay profile을 실행합니다. 저장소 root에서 아래와 같이 정상 Debug 제품을 build하고 실행합니다.
xcodegen generate
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
xcodebuild build \
-project ClearToGo.xcodeproj \
-scheme ClearToGo \
-configuration Debug \
-destination 'platform=macOS,arch=arm64' \
-derivedDataPath .derived-data/UserE2ECurrent \
GCC_TREAT_WARNINGS_AS_ERRORS=YES \
SWIFT_TREAT_WARNINGS_AS_ERRORS=YES
env -u CLEARTOGO_JUDGE_DEMO -u CLEARTOGO_JUDGE_DEMO_RESET \
open -n .derived-data/UserE2ECurrent/Build/Products/Debug/ClearToGo.app
시작 전에 두 iPhone을 연결하고 잠금을 해제한 뒤 Mac 신뢰 상태를 확인합니다. 구 iPhone과 새 iPhone 역할을 명시적으로 지정하고 toolbar에서 managed ChatGPT OAuth account와 gpt-5.6-sol 준비 상태를 확인합니다. 정상 profile은 마지막 저장 session을 복원할 수 있습니다. 새 실행을 만들기 위해 기존 checkpoint를 임의로 삭제하지 말고, 사용자에게 명시적 승인을 받은 뒤 보관 또는 삭제합니다. 안전 경계와 증거 checklist는 실제 두 iPhone 전체 흐름 수용 검사를 따릅니다.
심사 경로는 source에서 build하고 Homebrew를 통해 device library를 해석하며, 저장소는 Homebrew dynamic library를 bundle하지 않습니다. Dependency license·기준 version은 THIRD_PARTY_NOTICES.md에, 검증된 현재 상태와 출시 gate는 docs/CONSUMER_DISTRIBUTION_READINESS.md에 기록합니다. Local-only staging 도구는 library 6개 runtime closure를 @rpath로 바꾸고 복사 app 내부에서 launch할 수 있음을 입증하지만 staged binary는 commit하거나 배포하지 않습니다. 현재 Release artifact는 여전히 Developer ID 서명, Hardened Runtime acceptance, notarization, Gatekeeper, clean-Mac 증거가 없습니다.
테스트 suite와 결정론적 Replay mode에는 credential이 필요하지 않습니다. Live GPT 분석은 local Codex runtime이 관리하는 ChatGPT OAuth session을 사용합니다. Toolbar의 account control에서 상태, plan, model 가용성, quota, browser 또는 device-code login, refresh, logout을 확인할 수 있습니다. 호환 runtime이 없어도 읽기 전용 제품은 열리고 ChatGPT로 계속을 제공합니다. 이 명시적 행동은 OpenAI 공식 고정 archive를 ClearToGo 전용 Application Support에 내려받고 고정 SHA-256 digest를 확인하며 안전하지 않은 archive path를 거부하고 OpenAI Apple Developer ID 서명을 검증한 뒤 release를 원자적으로 승격해 Terminal·PATH 변경·재시작 없이 browser OAuth를 엽니다. 실패하면 데이터 전송과 과금 fallback 없이 fail-closed로 남습니다. ClearToGo production은 OPENAI_API_KEY를 읽지 않으며 원시 OAuth credential이나 일회용 device code를 해석·저장·기록하지 않습니다.
인증/provider 상태
CodexSubscriptionProvider가 primary Live inference provider입니다. CodexManagedRuntimeManager는 Apple Silicon 또는 Intel Mac용 고정 0.144.6을 앱 전용 저장소에 준비하고 account·Live 요청마다 다시 해석하므로 설정 뒤 재시작이 필요 없습니다. Provider는 검증된 local codex app-server를 JSONL stdio로 실행하고 managed ChatGPT OAuth를 요구하며, 정확한 model과 high reasoning을 확인하고, ephemeral thread와 strict output schema를 사용합니다. 또한 API key 환경 변수를 제거하고 요청별로 Codex 설정·저장소를 격리하며 executable tool item을 거부하고 thread/turn/plan/quota 기반 provider audit metadata를 기록합니다. GPT 분류·planning은 시도당 240초 공통 engineering budget, 제한된 멱등 재시도, typed fail-closed timeout 처리를 사용합니다. Direct Responses adapter는 test/reference 코드로만 남고 같은 budget을 사용하며 비용이 발생하는 API key 사용으로 자동 fallback하지 않습니다. 승인된 spike 증거는 docs/CODEX_SUBSCRIPTION_AUTH_SPIKE_PLAN.md에 기록합니다.
P0.5 기능
- Developer Mode가 필요 없는 읽기 전용 USB iPhone 탐색과 전체 사용자 앱 inventory
- 연결된 각 iPhone의 로컬 전용 연결·신뢰 상태와 자동 연식 추론 없는 명시적 구/새 역할 선택
- Source scan 전 전체 구/새 역할 설정, 이후 하나의 공용 toolbar 연결 popover, 순차 단계 잠금, 반복 역할 카드 없는 명시적 새 iPhone scan·AI 점검 진행 상태
- Tier A 강제 포함, gated Tier B 탐색, 전체 inventory 유지, assisted/manual coverage 상태를 제공하는 동결 candidate engine
- 독립 3상태 candidate review, 지연된 model rationale, 검색, 수동 승격, checkpoint 재개
- High reasoning, managed ChatGPT OAuth, ephemeral 보존, strict output schema, 명시적 영문/국문 출력 계약, executable tool call 0건, privacy 검증, typed failure 처리, provider별 audit 상관관계, quota 처리, 유료 fallback 금지를 사용하는 strict
gpt-5.6-solCodex turn - OpenAI 공식 runtime URL·digest 고정, allowlist HTTPS redirect, archive traversal 거부, OpenAI Developer ID 검증, 앱 전용 원자적 설치, 재시작 없는 provider 재해석을 포함하는 명시적
ChatGPT로 계속온보딩 - Primary Codex와 명시적 reference Responses 호출이 공유하는 시도당 240초 inference budget, 제한된 멱등 재시도, 자동 provider fallback 금지
- 권위 있는 source/destination observation, 이전 challenge, 완료 evidence, 우선순위, 현재 authorization, 정확한 session-bound
subject_id/subject_name/subject_kind검증을 제공하는 typed 최초 planning과 명시적 replanning - 잘못된 planning output의 안전한 복구: 원시 model payload를 보존하지 않고 contract 실패를 분류하며, 두 scan과 완료된 앱 검토를 유지하고, 재scan 없이 명시적 재시도를 제공하며, 새 plan이 모든 결정론적 검사를 통과한 뒤에만 실패 상태를 제거함
- 결정론적 risk severity, evidence compatibility, challenge state, final-state 평가
- 로컬 앱 이름을 사용하고 확인이 필요한 이유·구체적인 다음 행동·완료 기준을 설명하며, 원시 ID·contract code·version·provider 진단을 선택적 기술 세부 정보 안에 두는 일반 사용자용 challenge·decision 안내
- 최종 상태는
BLOCKED,CHECKS_COMPLETED_WITH_USER_CONFIRMATION,CHECKS_PASSED세 가지뿐 - Atomic file checkpoint, 개인정보 안전 append-only audit lifecycle, compare-and-swap transition, session 삭제, writer tombstone, delete-during-flight 격리
- 정확한 durable generation, 가명 device subject, workflow snapshot digest, review, audit event에 결속된 Live→Replay precursor seal
- 실제 inventory/candidate node 수, 안정적인 subject 위치, 인과적 수동 승격, provenance mark, Risk Constellation, Challenge Focus, 상태별 Evidence Seal, 접근 가능한 outline, Reduce Motion/Increase Contrast, light/dark appearance, 영문/국문 UI string을 갖춘 Continuity Atlas UI
- 작은 크기에서도 식별되는 Continuity Bridge·위험 육각형·provenance palette를 사용하고 checkmark·초기화 상징·안전 보장을 포함하지 않는 production macOS 앱 아이콘
- Production pipeline을 로컬 사람 라벨 inventory에 실행하고 비식별 aggregate metric과 로컬 앱별 상세를 분리해 기록하는 opt-in live candidate evaluation
권위 문서 범위에서 관련 요구사항은 PRD-001PRD-019, FR-ONB-*, FR-SCN-*, FR-CAN-*, FR-REV-*, FR-DST-*, FR-PLN-*, FR-CHL-*, FR-POL-*, FR-SES-*, FR-AUD-*, FR-ERR-*, SRS-APP-*, SRS-DEV-*, SRS-INF-*, SRS-RPL-*, SRS-UI-*, SEC-001SEC-008, NFR-002NFR-010, UX-001UX-011입니다.
구조
ClearToGo/
App/ Composition root와 P0 workflow coordinator
Features/ Continuity Atlas SwiftUI 화면
Core/
Audit/ Audit lifecycle과 replay 검증
Candidate/ Candidate 분석과 coverage
Domain/ Session, evidence, risk, identifier
OpenAI/ Typed schema, privacy, response 검증
Persistence/ Atomic checkpoint 계약
Policy/ 결정론적 policy engine
Replay/ Replay fixture와 sealed precursor 계약
Workflow/ Typed P0 pipeline model
Integrations/
Device/ Swift 읽기 전용 device adapter
DeviceBridge/ Compile-time 제한 읽기 전용 C bridge
Metadata/ 공개 App Store metadata provider
OpenAI/ Production Codex OAuth provider와 reference Responses adapter
Persistence/ Hardened file session store
Fakes/ 결정론적 test·Replay dependency
Tests/ Core, integration, contract, app lifecycle suite
의존 방향은 Core ← Features/Integrations ← App입니다. View는 상태를 렌더링하며 policy를 계산하지 않습니다. project.yml이 원본이고 XcodeGen이 ClearToGo.xcodeproj를 생성합니다.
빌드와 검증
xcodegen generate
xcodebuild test \
-project ClearToGo.xcodeproj \
-scheme ClearToGo \
-configuration Debug \
-destination 'platform=macOS,arch=arm64' \
-derivedDataPath /tmp/cleartogo-debug \
CODE_SIGNING_ALLOWED=NO \
SWIFT_TREAT_WARNINGS_AS_ERRORS=YES \
GCC_TREAT_WARNINGS_AS_ERRORS=YES
Scripts/verify-contracts.sh
Scripts/verify-device-bridge-sanitizers.sh
기본 검증 기준은 총 420개 테스트로 412개 성공, 실패 0개이며 명시적 opt-in 8개(app-managed runtime 공식 download acceptance 1개, live-subscription 3개, 물리·개발 acceptance 4개)를 skip합니다. Managed-runtime suite는 architecture별 공식 URL·digest 고정, streaming SHA-256, 앱 소유 state 위치, 미지원 architecture·archive traversal 거부를 검증합니다. 별도로 명시적 공식 download acceptance가 실제 116 MB OpenAI archive를 checksum, OpenAI Developer ID, version, app-server capability, private install, 재시작 없는 resolution gate까지 통과했습니다. 일반 사용자 문구 contract는 이미 안전한 model 안내는 유지하고 위험한 행동·성공·복구 문구는 하나의 일관된 묶음으로 교체하며, 지원하는 모든 위험 유형에 영문·국문 fallback을 제공하고 임의의 snake_case token이 기본 문구에 나타나는 것을 거부합니다. 새 회귀는 runtime이 없을 때 읽기 전용 조립을 유지하고 개발자 전용 복구 명령을 노출하지 않으며 관련 없는 startup 실패를 숨기지 않고 키보드 focus가 이동할 때 핵심 source 동의·시작 control이 화면 안에 계속 보이도록 강제합니다. 혼합 결과 회귀 test는 함께 수행해야 하는 교차 앱 행동을 보존하면서 독립 앱 결과를 격리하고, candidate 회귀 test는 명시적인 회사 관리 맥락이 없을 때 계정 용도를 중립적으로 유지합니다. Review 전환은 atomic 최종 checkpoint 전에 debounced draft save를 취소하고 종료까지 기다립니다. 이후 500회 stress 실행에서 유효한 가명 ID가 우연히 전화번호 형태의 숫자열을 포함할 때 발생하는 별도의 privacy gate 오탐을 발견했습니다. Typed JSON 검증은 이제 닫힌 문법을 통과한 opaque ID만 예외 처리하고 사용자용 field의 전화번호는 계속 거부합니다. 수정된 전체 cycle test는 500/500회 통과했습니다. Provider test는 공통 240초 기본값과 reference Responses 요청 timeout을 검증합니다. Provider 경계는 hardened argument, secret 제거, tool 노출, 인증·model 누락, quota 소진, protocol drift, invalid structured output, process crash를 다루는 process-level 실패 테스트 3개도 통과합니다. Account controller는 status, browser·device-code challenge 완료, 취소, 안전하지 않은 인증 URL 거부, logout, invalid quota를 다루는 protocol test 8개를 통과합니다. 사용자 참여 fresh browser·device-code acceptance도 logout, 명시적 취소, 재로그인, quota refresh, 일회용 코드 화면, device-code 완료를 통과했습니다. Risk plan 검증은 반환된 모든 subject ID, 개인정보 안전 semantic name, kind, 필수 risk set을 정확한 outbound session inventory에 결속하고, 원시 payload를 보존하지 않은 채 malformed JSON·shape·case·subject·risk set·challenge coverage 실패를 진단하며, 변조·비대칭·불완전·미연결 output을 거부합니다. UI는 예상된 단기 코드와 credential-free readiness만 표시했고, Application Support 파일과 검사한 ClearToGo unified-log event message에는 credential, account identity, protocol field, 독립형 일회용 코드가 남지 않았습니다. 별도로 live subscription provider class는 명시적으로 활성화했을 때 5개 중 5개가 통과합니다. 동결 139행 fixture는 candidate 33개, TP 30, FP 3, FN 0의 결정론적 pipeline 회귀 결과입니다. 앱 이름과 model classification이 합성·동결되어 있으므로 현재 GPT-5.6 정확도를 측정하지는 않습니다. 기록된 planning output 24개가 모두 검증되고 gold plan 8개는 의미를 보존하며 malformed mutant 8개는 strict validation에서 모두 실패합니다.
Candidate 평가 경계
기본 scheme은 live candidate evaluation을 실행하지 않습니다. 현재 production prompt/model을 측정하려면 모든 행에 사람이 만든 label이 포함된 로컬 JSON을 CandidateEvaluation.local/ 아래에 작성합니다.
{
"datasetID": "local-example",
"rows": [
{
"displayName": "로컬 앱 이름",
"bundleIdentifier": "local.bundle.identifier",
"groundTruthRelevant": true
}
]
}
Codex에 로그인한 뒤 CLEARTOGO_RUN_LIVE_CANDIDATE_EVALUATION=1, CLEARTOGO_CANDIDATE_EVALUATION_INPUT, 선택적으로 CLEARTOGO_CANDIDATE_EVALUATION_OUTPUT을 지정하고 ClearToGoLiveCandidateEvaluation을 명시적으로 실행합니다. Harness는 production Codex 구독 provider, candidate pipeline, prompt를 사용하고 precision/recall/TP/FP/FN, 앱별 reason, configured/returned model ID, prompt/policy version, 실행 시각을 기록합니다. 로컬 입력과 상세 output은 절대 커밋하지 않으며 공개 보고서에는 aggregate와 비식별 정보만 포함할 수 있습니다. 완전한 private dataset이 제공되지 않아 사람 label 기반 live 품질 평가는 실행하지 않았습니다.
P0.5 UI QA artifact는 /tmp/cleartogo-ui-p0-5-qa/에 생성되고 gitignored 로컬 디렉터리 Artifacts/Private/P0_5_UI/에도 복사됩니다.
명시적 ClearToGoLiveDeviceAcceptance와 ClearToGoPhysicalConnectionAcceptance scheme에는 신뢰된 물리 iPhone과 사용자 참여가 필요합니다. 무인으로 실행하면 안 됩니다. 2026-07-18에 상헌 님이 Developer Mode 비활성 상태를 확인한 iPhone으로 읽기 전용 탐색·사용자 앱 119개 inventory, 물리 분리 감지, 만료 handle의 notConnected 거부, trusted 재연결, 재연결 후 사용자 앱 119개 inventory가 통과했습니다.
2026-07-19에는 신뢰된 물리 iPhone 2대를 동시에 연결한 상태로 ClearToGoTwoDeviceAcceptance scheme이 통과했습니다. Bridge는 서로 다른 임시 handle, 로컬 표시 metadata, 독립적으로 주소 지정된 비어 있지 않은 읽기 전용 앱 inventory를 반환했습니다. 정상 제품 profile의 Computer Use 검사에서는 첫 화면의 두 기기 연결·신뢰 상태, 상호 배타적 구/새 역할 control, 역할 교환, toolbar 상태, 읽기 전용 경계 확인 전 scan 비활성화를 확인했습니다. 기기 표시 이름과 product type은 로컬 화면 데이터로만 유지되며 checkpoint, audit event, GPT payload에 들어가지 않습니다.
후속 연결 UX는 전체 역할 설정을 source 화면에만 유지하고 이후에는 하나의 간결한 공용 iPhone 상태 popover를 제공합니다. Mission Rail의 미래 단계는 해당 단계에 도달할 때까지 비활성화되고, 목적지 화면은 역할 카드를 반복하지 않으며 새 iPhone inventory scan과 AI 확인 항목 생성을 구분하고 scan·완료 feedback을 표시합니다. 2초 주기의 조용한 연결 확인은 더 이상 사용자에게 보이는 새로고침 상태를 바꾸지 않습니다. Computer Use로 대기 단계 잠금, 공용 popover, 사용자 친화적 단계 label, 4초 이상 동안 6회 연속 안정적인 새로고침 상태를 확인했습니다. 이후 직접 E2E 검사에서 복원된 최종 세션의 popover가 두 역할을 다시 선택하라고 잘못 안내하는 문제를 발견했습니다. 수정 후에는 임시 역할을 저장하거나 추측하지 않는 개인정보 경계를 유지하면서 저장된 scan이 온전히 남아 있음을 표시하고 Live 목적지 scan 완료 뒤에는 역할 선택 control을 숨깁니다. 이어서 재개한 정상 제품 세션은 Live 목적지 scan과 이전 structured-output 거부 뒤 구독 기반 재시도를 완료했습니다. 수용된 plan은 필수 subject-risk pair 21개를 점검 19개로 모두 포함했고 미지원·고아 위험은 0개였습니다. 19개 점검은 결과를 조작하지 않고 모두 정직하게 확인 불가로 기록했으며, 앱별 이유·행동·완료 기준을 제공하는 결정론적 BLOCKED packet을 만들었습니다.
2026-07-20의 격리된 현재 revision acceptance는 실제 연결·신뢰 iPhone 두 대, production 읽기 전용 scanner, 인증된 subscription provider로 source 설정부터 최종 Decision Packet까지 진행했습니다. Source 앱 117개를 읽어 review 제안 35개로 줄였고 destination 앱 94개를 읽어 점검 41개를 요청했습니다. 첫 planning 시도는 240초 경계에서 진행 상태를 잃지 않고 fail-closed 되었으며, 키보드로 명시적 재시도하자 성공해 점검 단계로 진입했습니다. 모든 결과는 성공으로 조작하지 않고 “지금은 확인할 수 없어요”로 기록해 직접 관찰 0·사용자 확인 0·미확인 41을 유지했습니다. 따라서 이 실행은 현재 joined real planning miss-to-recovery cycle을 입증하지만 개인 계정 성공 outcome을 입증하지는 않습니다. 별도의 현재 revision bridge 재검증도 기기 신원을 기록하지 않고 서로 다른 비어 있지 않은 inventory 두 개를 다시 반환했습니다.
ClearToGoDevelopmentHybridAcceptance는 두 번째 iPhone 없이 작업하기 위한 명시적 Debug 전용 engineering 경로입니다. 연결 iPhone의 source inventory에 합성 Tier A canary 3개를 추가한 뒤 동일한 변경 없는 물리 iPhone을 격리된 local store에서 Live 목적지로 읽습니다. 완료된 acceptance에서는 Live 앱 117개와 canary 3개가 review candidate 33개를 만들었고, 변경 없는 목적지는 앱 117개였으며, GPT-5.6이 challenge 9개를 생성했고, 9개 모두 정직하게 관찰 불가로 기록되어 결정론적 policy가 영구 합성-source provenance를 가진 export 불가 BLOCKED packet을 반환했습니다. 이는 개발 증거일 뿐이며 activation path, fake identifier, provenance banner는 Release에 존재하지 않습니다.
남은 검증 경계
- Managed ChatGPT OAuth 분류와 최소 위험 계획을 실제 구독 backend에서 실행했습니다. 새 정상 제품 실행은 source review, 독립 Live 목적지 비교, strict planning, 사용자 수행 점검 18개를 모두 완료했습니다. 증거는 software-observed가 아닌 user-confirmed로 유지합니다. 현재 revision은 서로 독립적인 앱의 혼합 결과를 앱별로 분리하고 실제로 함께 해야 하는 행동은 묶음으로 유지하는 자동 회귀 coverage를 추가했으며, 수정 후 두 iPhone Live 재실행은 필수 위험 18개를 다루는 행동 17개를 완료했으며 과거 묶음 결과·근거 없는 계정 용도 결함은 재발하지 않았습니다.
- ScreenCaptureKit/iPhone Mirroring 시각 evidence와 보호 앱 blanking은 구현되지 않았고 capture port는 아직 fake를 사용합니다.
- 사전등록 공개 v4 holdout은 KR storefront 앱 24개에서 현재 candidate precision·recall을 직접 다룹니다. 모집단 정확도, 비공개 inventory 품질, 자연스러운 trust rejection, 남은 전체 경로 물리 VoiceOver 상태, release packaging은 해당 claim 밖이거나 보류 제품 작업입니다. 향후 동의 기반 private 사람 label 평가는 근거 범위를 넓힐 수 있지만 자동 점수·shortlist 요건은 아닙니다.
- 로컬 Homebrew library가 deployment target보다 새로운 macOS용으로 빌드되었습니다. 재배포 라이선스, 최소 OS packaging, App Sandbox, signing, notarization에는 release review가 필요합니다.
- 현재 격리된 두 iPhone workflow는 역할 선택, review 응답 전체, destination scan, 명시적 planning 재시도, 정직한 결과 41개, 최종 packet까지 Keyboard Navigation으로 완료했습니다. 이 실행은 SwiftUI가 화면 밖 source 동의·시작 control로 Tab focus를 옮기면서도 화면을 따라 스크롤하지 않는 결함을 발견했습니다. 제품은 이제 각 핵심 focus target을 화면 안으로 스크롤하고 안정적 identifier와 명시적 구/새 역할 label을 노출합니다. 물리 VoiceOver는 실제 최종 packet을 순회한 뒤 완료된 Source 요약, Risk Review 작업·progress·목록 경계, Destination heading·주의 문구를 다시 검사했습니다. 이 재검사는 장식용 전환 glyph가 “Right, 이미지”로 읽히는 결함을 발견해 수정했으며 rebuild한 실제 재검사, 420개 기본 suite, exact-size 접근성 route 4개가 통과했습니다. 최초 역할·동의, 모든 비공개 review row, 실제 scan·planning retry, 앞선 Challenge 전체 interaction은 남아 있으므로 전체 경로 VoiceOver 완료 주장이 아닙니다.
완료된 Live 기록과 남은 접근성·model 품질 수용 검사는 실제 두 iPhone 전체 흐름 수용 검사를 따릅니다. 이 문서는 에이전트가 조작하는 Mac 단계와 사용자만 수행할 계정 행동을 구분하고 민감하지 않은 증거, 접근성, 재개, 개인정보 gate를 정의합니다.
권위 순서는 CLEAR_TO_GO_PRODUCT_CONTRACT_V1.md → PRD.md → FRD.md → SRS.md → UI_UX_DESIGN_SPEC_V1.md입니다. 앞 문서가 뒤 문서보다 우선합니다.
Analysis
View
Metric
- 125
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- SwiftIn code
- OpenAIClaimed
5 of 6 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- CodexConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
3.2 MB
Source files
198
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
wwdbsh/cleartogo
282 files · 5.3 MB · @ 5f12b02
Structure
Interface
9 files · 3%Screens, components and styles rendered to the user.
Application logic
80 files · 28%Domain rules, services and shared utilities.
+2 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Swift62%
- Markdown30%
- HTML3%
- Python2%
- Shell1%
- C1%
- Other (2)1%
Share of indexed source by file size. Binary and vendored files are excluded.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.