From a18a5ab09757360b9ffb66cbac3f4202d78702be Mon Sep 17 00:00:00 2001 From: Justin Hernandez Date: Mon, 2 Mar 2026 06:41:34 -0800 Subject: [PATCH] update spec lists (#1800) --- scripts/check-license-headers.mjs | 1 + specs/KMP-STATUS.md | 13 ++++++++++++ specs/README.md | 1 + .../SPEC-MINIPAY-SAMPLE.md | 12 +++++------ specs/person4-sdk-core/SPEC.md | 21 +++++++------------ specs/person5-rn-sdk/SPEC.md | 14 ++++++------- 6 files changed, 35 insertions(+), 27 deletions(-) create mode 100644 specs/KMP-STATUS.md diff --git a/scripts/check-license-headers.mjs b/scripts/check-license-headers.mjs index c067a11b1..58ab3455c 100644 --- a/scripts/check-license-headers.mjs +++ b/scripts/check-license-headers.mjs @@ -54,6 +54,7 @@ function findFiles( 'Pods', '.gradle', 'vendor', + 'assets', ].includes(item) ) { traverse(fullPath); diff --git a/specs/KMP-STATUS.md b/specs/KMP-STATUS.md new file mode 100644 index 000000000..9994a37a0 --- /dev/null +++ b/specs/KMP-STATUS.md @@ -0,0 +1,13 @@ +# KMP Status (At a Glance) + +> Last updated: 2026-03-02 + +| Area | Spec | % Done | +| --- | --- | ---: | +| KMP Native Shells | `person2-native-shells` | 82% | +| MiniPay Integration Sample | `person3-integrations` | 70% | +| SDK Core (non-web follow-ups) | `person4-sdk-core` | 100% | +| RN Native Shell | `person5-rn-sdk` | 100% | +| Physical Device Validation | cross-spec | 25% | +| Packaging + Publishing | cross-spec | 35% | +| **Overall KMP Program** | `SDK-OVERVIEW` + `WAVE-PLAN` | **72%** | diff --git a/specs/README.md b/specs/README.md index e12c48c0e..fc16e9cf0 100644 --- a/specs/README.md +++ b/specs/README.md @@ -26,6 +26,7 @@ Specs double as AI agent prompts. Written in second person, sized for single con | ------------------------------------ | ---------------------------------------------------------------------- | ------------------------------------------ | | [SDK-OVERVIEW.md](./SDK-OVERVIEW.md) | Architecture, bridge protocol, module table, decision matrix, glossary | First. Always. | | [WAVE-PLAN.md](./WAVE-PLAN.md) | Dependency-ordered execution plan for parallel agent work | When planning which chunks to execute next | +| [KMP-STATUS.md](./KMP-STATUS.md) | At-a-glance KMP completion percentages | When you need quick status only | ## Workstream Specs diff --git a/specs/person3-integrations/SPEC-MINIPAY-SAMPLE.md b/specs/person3-integrations/SPEC-MINIPAY-SAMPLE.md index 9085e9266..a4cabe44a 100644 --- a/specs/person3-integrations/SPEC-MINIPAY-SAMPLE.md +++ b/specs/person3-integrations/SPEC-MINIPAY-SAMPLE.md @@ -1,10 +1,10 @@ # Person 3: MiniPay Integration Sample — Implementation Spec -> Last updated: 2026-02-17 +> Last updated: 2026-03-02 > Owner: Person 3 (Integrations) > Parent: [OVERVIEW.md](./OVERVIEW.md) > Project: [SDK-OVERVIEW.md](../SDK-OVERVIEW.md) -> Status: Draft +> Status: Active ## North Star @@ -715,11 +715,11 @@ All three chunks are sequential — each builds on the previous. | Chunk | Description | Size | Status | | ----- | ------------------------------------------- | ----- | ----------- | -| 3A | Project Setup + Home Screen + Launch Button | M ~6k | **Pending** | -| 3B | Wire SelfSdk.launch() + Handle Callback | M ~5k | **Pending** | -| 3C | Polish Result Display + Error Handling | S ~4k | **Pending** | +| 3A | Project Setup + Home Screen + Launch Button | M ~6k | **Done** | +| 3B | Wire SelfSdk.launch() + Handle Callback | M ~5k | **Done** | +| 3C | Polish Result Display + Error Handling | S ~4k | **Partial** | -**Overall: 0% implemented.** +**Overall: Partial (implementation complete; physical-device NFC E2E remains).** ## Validation Plan diff --git a/specs/person4-sdk-core/SPEC.md b/specs/person4-sdk-core/SPEC.md index f27ddce00..22ad3b197 100644 --- a/specs/person4-sdk-core/SPEC.md +++ b/specs/person4-sdk-core/SPEC.md @@ -1,6 +1,6 @@ # Person 4: SDK Core Adaptation — Implementation Spec -> Last updated: 2026-02-17 +> Last updated: 2026-03-02 > Owner: Person 4 (SDK Core) > Parent: [OVERVIEW.md](./OVERVIEW.md) > Status: Active @@ -667,7 +667,7 @@ Person 2 (KMP) ←── contract via ──→ Person 4 (lifecycle types) ## Completion Status -_Audit date: 2026-02-17_ +_Audit date: 2026-03-02_ | Chunk | Description | Size | Status | | ----- | ------------------------------------- | ----- | ------------------------------------------------------- | @@ -676,21 +676,14 @@ _Audit date: 2026-02-17_ | 4C | WebView Lifecycle Events | S ~2k | **Done** | | 4D | WsAdapter Integration | M ~5k | **Skipped** (optional — raw WebSocket works in browser) | | 4E | Conditional SelfApp Store | S ~2k | **Done** | -| 4F | Web Fallback Adapter Implementations | M ~6k | **Pending** | +| 4F | Web Fallback Adapter Implementations | M ~6k | **Done** | -4 of 6 chunks complete. Chunk 4D explicitly optional. **Chunk 4F is the remaining work.** +5 of 6 chunks complete. Chunk 4D remains optional and skipped by design. -### What's Left +### Remaining Follow-Ups -**Chunk 4F — Web Fallback Adapters (blocking for WebView integration)** - -| Adapter | File to Create | Implementation | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `createIndexedDBDocumentsAdapter()` | `src/adapters/browser/documents.ts` | IndexedDB with two object stores | -| `createWebCryptoAdapter()` | `src/adapters/browser/crypto.ts` | `crypto.subtle.digest` for `hash()` | -| `createWebAnalyticsAdapter()` | `src/adapters/browser/analytics.ts` | console + fetch fire-and-forget | -| `createNoOpHapticAdapter()` | `src/adapters/browser/haptic.ts` | Silent no-op | -| Barrel export | `src/adapters/browser/index.ts` | Re-exports all factories | +- Consolidate bridge-layer fallback duplicates with engine-owned adapters. +- Expose `generateKey()` / `getPublicKey()` in bridge crypto adapter surface. **Implementation notes from PR review:** diff --git a/specs/person5-rn-sdk/SPEC.md b/specs/person5-rn-sdk/SPEC.md index a4df3f3d3..970359cf1 100644 --- a/specs/person5-rn-sdk/SPEC.md +++ b/specs/person5-rn-sdk/SPEC.md @@ -1,6 +1,6 @@ # RN Native Shell — Implementation Spec -> Last updated: 2026-02-17 +> Last updated: 2026-03-02 > Owner: Person 5 (RN SDK) > Parent: [OVERVIEW.md](./OVERVIEW.md) > Status: Active @@ -1026,16 +1026,16 @@ Chunk 5A (package + component + router + lifecycle) — no deps, start here ## Completion Status -_Audit date: 2026-02-17_ +_Audit date: 2026-03-02_ | Chunk | Description | Size | Status | | ----- | ------------------------------------------------------------------------------------- | ------ | ----------- | -| 5A | Package setup + `SelfVerification` shell + `MessageRouter` + `LifecycleHandler` | M ~8k | **Pending** | -| 5B | `BiometricHandler` + `KeychainHandler` | S ~4k | **Pending** | -| 5C | `NfcHandler` + `CameraHandler` (hardware-dependent, requires physical device testing) | L ~10k | **Pending** | -| 5D | Asset bundling (copy Vite output into `assets/`) + npm publishing config | M ~6k | **Pending** | +| 5A | Package setup + `SelfVerification` shell + `MessageRouter` + `LifecycleHandler` | M ~8k | **Done** | +| 5B | `BiometricHandler` + `KeychainHandler` | S ~4k | **Done** | +| 5C | `NfcHandler` + `CameraHandler` (hardware-dependent, requires physical device testing) | L ~10k | **Done** | +| 5D | Asset bundling (copy Vite output into `assets/`) + npm publishing config | M ~6k | **Done** | -**0% implemented. Spec ready for implementation.** +**Implementation chunks complete. Remaining work is integration validation + npm publish.** ## Validation Plan