docs(prospector): note new @prospector home + published packages in cockpit-kit/ios-fe READMEs, @platform/CLAUDE.md, DESIGN.md (for ProspectorView LP wiring); Wave 1 restructure

Incorporate LP backend truth, GPU anytime script, health proof, MVP inbound replacement, publish for consumers. Verified grep/ls/read.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Natalie 2026-06-28 17:40:03 -04:00
parent a6777e8641
commit 7f970ac8e9
4 changed files with 127 additions and 1 deletions

View file

@ -44,7 +44,7 @@ See `../DESIGN.md §4` for the canonical directory tree. Quick map:
## Cardinal rules (V4-specific)
- **Provider-generic naming.** No `quinn-*` package names. `quinn.*` domains are *Quinn's brand instance*; the code is `platform.api`, `ai-copilot`, `content-onlyfans`, etc.
- **No vendoring.** `@ai`, `@chobit`, `@model-boss`, `mail-sync`, `mac-sync`, `quinn-prospector`, `@ml/*` live at `~/Code/@applications/` and are consumed over HTTP/MCP. (Root CLAUDE.md hard rule.)
- **No vendoring.** `@ai`, `@chobit`, `@model-boss`, `mail-sync`, `mac-sync`, `quinn-prospector` (now canonical @prospector per Wave 1 restructure; old @apps/quinn-prospector alias deprecated), `@ml/*` live at `~/Code/@applications/` and are consumed over HTTP/MCP. (Root CLAUDE.md hard rule. Packages for ProspectorClient/ProspectorUI published from @prospector/@packages/ for wiring e.g. ProspectorView to real LP data.)
- **No dev DBs / dev APIs.** Engineering points dev frontends at **prod APIs on black** (`platform.api`, `quinn.api`). Test DBs are ephemeral docker-compose containers per test run.
- **GPU through `@model-boss`** on apricot. Never load models locally. (See `../INFRA.md §4` for the apricot table.)
- **Platform actions go upstream.** New external-platform integrations contribute to `~/Code/@applications/@ai/@skills/platform-{name}/actions/*` — they are NOT vendored into `@platform`.

View file

@ -0,0 +1,74 @@
# CocotteCockpitKit — Prospector
The **Prospector 1-view** (Life / Dates / Digital channels with Mr Number scoring, classification badges, stage, and operations sub-categories) is implemented as `ProspectorView.swift` + supporting types in this kit.
It is exposed as a primary tab (tag 3, "Prospector") in the iOS client shell (`ios-fe/App.swift``ProspectorTab``ProspectorView`).
## Status (as of latest build)
- UI shell complete and matching the spec from the feature tracker prototypes (channels segmented, row with avatar + last message + badges for MR score / classification / stage, summary bar for classified count + high score, "Classify All" toolbar action, detail navigation stub).
- Demo / mock data using the exact taxonomy:
- Life: personal:friends
- Dates: work:dates (in-person bookings)
- Digital: work:digital (OF/content audience, cams, digital work)
- Operations sub-cats under work (medical, hair, beauty) + misc / spam
- Dark theme, NavigationStack + List + Picker(.segmented) + NavigationLink to detail (stub `ProspectorDetail`).
- Wired into the TabView in `CocotteCockpitiOSApp` (after Fleet, before Activity/Insights). Can be selected directly with `--tab 3` (or the simulator run script that does the reorder + launch).
**Current wiring**: internal `@State` mock data in `onAppear`.
**Next (real data)**: feed from `CockpitModel` / `LiveCockpitAPI` (engagement-events with prospect classification/state, Mr Number via specialist or dedicated endpoint, stage from prospect state machine). The "Classify All" button will call the platform classifier (fast rules + GPU LLM via mcp-prospector or direct when `PROSPECT_LLM_BACKEND=modelboss`).
See the feature tracker for the full initiative history and spec:
- `.project/feature_quinn-prospector-ios/README.md`
- `.project/feature_quinn-prospector-ios/objectives/README.md` (especially 0003 UI port + classification, 0008 wireless/sim state)
- Prototypes (for reference): `swift-ui/ProspectorMessengerView.swift` and the quinn-my-ui TSX version (headers now point here as the live home).
## Build / Run (iOS client)
The Prospector tab is part of the normal CocotteCockpitiOS build. Use the DX in the `ios-fe` directory:
```bash
cd @platform/codebase/@features/ai-copilot/ios-fe
# Typical dev cycle (see the feature tracker's scripts/README.md for the full historical context and the reorder that made Prospector a primary tab)
./scripts/run-ios-sim.sh # or the equivalent that builds + installs to simulator with --tab 3
# or
xcodebuild ... -scheme CocotteCockpitiOS ... # then launch with args for tab selection
```
The `ios-fe` has its own `ios-tools.config.json`, `project.yml`, and scripts (the old quinn-ios ones in the tracker are retained only as historical reference).
After build/install/launch with the Prospector tab selected, the UI appears with the channels, list, badges, and summary exactly as prototyped.
## Architecture notes (live implementation)
- **UI**: Pure SwiftUI in this kit (`ProspectorView`, `ProspectorChannel`, `ProspectorItem`, `ProspectorRow`, `ProspectorDetail` stub). Reuses kit design tokens / components where possible (the view is self-contained for the initial integration).
- **Shell**: `ios-fe/Sources/App.swift` owns the `TabView` (Drops 0, Assets 1, Fleet 2, **Prospector 3**, Activity 4, Insights 5). `ProspectorTab` is a thin wrapper that gives it a NavigationStack + title.
- **Data / backend**: Will use the shared `CocottePlatformModels` + `CocottePlatformAPIClient` (or the higher-level `CockpitModel` / `LiveCockpitAPI` in the feature). Classification comes from the platform ai-copilot surfaces + mcp-prospector (or direct for the 1-view). Mr Number screening and prospect state (stage) from the central prospector engine.
- **quinn-my / web parity**: The same 1-view + channels + badges + summary is prototyped in the tracker's `quinn-my-ui/ProspectorMessenger.tsx` to drive the web implementation.
- **macOS / desktop**: A parallel native macOS experience (separate target or app) can reuse the same visual spec / components (see the tracker prototypes and the companion OSX designs in the workspace). The backend (engagement + classifier + macsync for threads/pastebin/outbox) is shared.
## Related (live vs planning)
- **Live code**: this `ProspectorView.swift`, the tab registration in `ios-fe/App.swift`, the platform backend (prospector features in api + mcp-prospector).
- **Tracker / planning** (history of the port from quinn-ios prototype, objectives, handoffs, the original sample that this view was ported from): `.project/feature_quinn-prospector-ios/` (both in the lilith worktree and main tree copies). These are now updated to point here as the correct/current implementation location. quinn-ios references are explicitly historical/legacy.
- **Designs / contracts** (the v4 prospecting sub-features like cross-provider graph, auto-qualify, warm intros, marketplace): still in the planning surface (`.project/designs/prospecting/` and ai-copilot specialist contracts).
- **Executor / inbound handling instructions**: See the platform `mcp-prospector/README.md` and the operator's Executor workspace (`Documents/Claude/Projects/Executor/prospecting/`) for the state machine, pastebin via macsync, macsync outbox wiring, DO GPU model usage, corrections loop, etc.
## Wiring notes (for future real data)
- Pass `CockpitModel` (or a prospect-specific slice) down to `ProspectorView`.
- Map platform `engagement-events` (or `/my/prospects` + classifier results) to `ProspectorItem`.
- Classification badge from the fast + full (GPU) path.
- Mr Number score from the screening specialist / mr-number endpoints.
- Stage from the prospect state machine (prospect-qualification / runner).
- "Classify All" → call the classifier for the current filtered set (with macsync context for pastebin/templates if drafting).
- Detail view → full thread context + actions (mark worked, correction for training, draft/send via macsync outbox).
**Packages / shared client note (Wave 1 restructure)**: The ProspectorClient/ProspectorUI (and future wiring to real LP data) are now published from the new canonical home `@applications/@prospector/@packages/` (ProspectorClient, ProspectorUI). Update consumers here to use those (path for MVP, registry post-publish). Old `@packages/@swift/@prospector/` and `@applications/@quinn-prospector/` are deprecated (see their READMEs + plan.md). LP remains source of truth (prospect-runner, mcp-prospector, quinn-api, macsync pastebin). GPU on-demand via provision script + health script verification. MVP: OSX @prospector app as central to replace Executor inbound.
The tab is intentionally lightweight in the shell so the heavy lifting (model, API client, tokens) stays in the shared kit and platform layers.
---
*This document lives with the live implementation. The feature tracker in lilith-platform describes the initiative and the port from the original prototypes. All active iOS work for the Prospector 1-view is in @cocottetech paths.*

View file

@ -0,0 +1,51 @@
# CocotteCockpitiOS (ios-fe) — Prospector Tab
The Prospector feature (1-view messenger with channels Life/Dates/Shows, Mr Number, classification, stage, operations sub-cats) is integrated as a **primary tab** (tag 3, icon "person.2", label "Prospector") in the main `TabView`.
See `Sources/App.swift`:
```swift
TabView(selection: $selection) {
...
ProspectorTab()
.tabItem { Label("Prospector", systemImage: "person.2") }.tag(3)
...
}
```
`ProspectorTab` is a thin wrapper (`NavigationStack { ProspectorView() ... }`).
The actual UI + logic is in the shared kit: `../cockpit-kit/Sources/CocotteCockpitKit/ProspectorView.swift` (and `ProspectorRow`, `ProspectorItem`, `ProspectorChannel`, etc.).
## Build / Launch notes (current DX)
- Use the local `project.yml`, `ios-tools.config.json`, and scripts in this directory.
- The feature tracker scripts (in the lilith .project/feature_quinn-prospector-ios/scripts/) are historical reference only; the active DX lives here.
- To land directly on the tab during development: pass `--tab 3` (the `RootView` reads it for initial selection) or use the run scripts that perform the tab reorder + launch.
- Example (from recent successful run): build from the updated sources here, install to the target simulator/device ("iPhone 16 Pro for Prospector"), launch with the tab selected. The UI appears with the exact channels, list, badges, summary, and "Classify All" as specified.
After the tab reorder, Prospector sits directly in the main bar (visible, not buried under More).
## Current state
- UI shell + demo data matching the spec/prototype (see the kit README for details and the live wiring TODOs).
- Real data will come from the platform (via `CockpitModel` / `LiveCockpitAPI` passed down, engagement-events, classifier, etc.).
- The kit view is preferredColorScheme(.dark) and uses the environment tokens from the shell.
For the full initiative history, spec, prototypes (the original swift-ui sample and quinn-my-ui TSX), objectives, and handoffs, see the feature tracker in the lilith tree:
`.project/feature_quinn-prospector-ios/` (updated to point here as the correct/current implementation location; quinn-ios refs are historical/legacy).
All active code lives in @cocottetech paths.
## Related
- Kit implementation + more notes: `../cockpit-kit/README.md`
- Platform backend (classifier, mcp-prospector, engagement, macsync integration for threads/pastebin/outbox, DO GPU models): tracked in the main platform docs and the mcp-prospector README.
- The companion native macOS / desktop experience can follow the same visual spec (see workspace designs and the quinn-my-ui prototype for parity).
**Packages note (Wave 1 restructure)**: Shared ProspectorClient/ProspectorUI now come from new canonical `@applications/@prospector/@packages/` (published for consumers including future real LP data wiring in ProspectorView here). Old locations @packages/@swift/@prospector and @applications/@quinn-prospector deprecated after migration (per plan.md). Use new for wiring to LP's proven backend (runner, mcp, quinn-api, Notes pastebin via macsync). GPU provision anytime via script; health script proof. MVP inbound replacement focus for OSX app.
---
*Live shell integration doc. The tracker holds the port story and planning; the source here + the kit is the truth for the running feature.*

View file

@ -161,6 +161,7 @@ These stay at their current locations and are consumed over HTTP/MCP:
- `~/Code/@applications/@ml/knowledge-platform/` — Crystal's successor (knowledge verification, content auditing)
- `~/Code/@applications/@ml/*` — other ML pipelines (rag-retrieval, content-moderation, message-classifier, prospect-classifier-claude, cot-reasoning, draft-pipeline-claude, etc.)
- `~/Code/@applications/@quinn-ios/` — Swift iOS app
- `~/Code/@applications/@prospector/` — Canonical (Wave 1) for Quinn Prospector OSX app + internal @packages/ (ProspectorClient/ProspectorUI published from here for cocottetech etc; old @quinn-prospector / @swift/@prospector deprecated). LP backend source of truth; GPU via script; health script; MVP to replace Executor inbound. See plan.md.
---