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:
parent
a6777e8641
commit
7f970ac8e9
4 changed files with 127 additions and 1 deletions
|
|
@ -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`.
|
||||
|
|
|
|||
|
|
@ -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.*
|
||||
51
@platform/codebase/@features/ai-copilot/ios-fe/README.md
Normal file
51
@platform/codebase/@features/ai-copilot/ios-fe/README.md
Normal 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.*
|
||||
|
|
@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue