docs: add N12R internal sandbox handoff workflow

This commit is contained in:
石头
2026-07-08 16:08:10 +08:00
parent d773571402
commit c54f7c447a
10 changed files with 1986 additions and 49 deletions

View File

@@ -26,9 +26,15 @@ N0 Baseline cleanup and direction lock
-> N10 Operator runbook and process scripts
-> N11 Commit/review checkpoint
-> N12-pre Offline evidence intake
-> N12 Real logged-in UIA capture gate
-> N12R Internal-sandbox live UIA capture route
-> N12R-review Selector design review gate
Blocked/non-active:
-> N12-current Current-environment real logged-in UIA capture gate
```
**Reality update 2026-07-08:** iSphere is internal-network only. The current repository environment is an outer-network coordination/analysis environment. Therefore `N12-current` is not the active route unless network placement changes. Live login and live UIA capture must happen in an internal-network test sandbox through `N12R`.
Hard rule: **no node may start until the previous node's acceptance conditions are met.**
---
@@ -753,7 +759,7 @@ Pass if:
- Unrelated generated files are staged.
- Worktree contains ignored build outputs outside `runs/`.
**Next node:** N12-pre if the current environment cannot log in; otherwise N12 may start only when the real logged-in current-environment preconditions below are met.
**Next node:** N12-pre for offline evidence intake, followed by N12R for live capture in an internal-network test sandbox. `N12-current` remains blocked because the current outer-network environment cannot log in to internal iSphere.
---
@@ -830,24 +836,101 @@ Pass if:
- Package is used to design automatic login, sending, file transfer, injection, hook, memory reading, or endpoint-security bypass.
- Any reader treats the offline package as a replacement for true N12.
**Next node:** N12 remains blocked until the current environment can manually log in and perform a live current-environment UIA capture.
**Next node:** N12R internal-sandbox live capture route if live UI evidence is needed. `N12-current` remains blocked in the outer-network environment.
---
## N12: Real logged-in UIA capture gate
## N12R: Internal-sandbox live capture route
**Purpose:** Capture real iSphere UIA evidence after the user provides/login context.
**Purpose:** Capture live iSphere UIA evidence from a separate internal-network test sandbox where iSphere can be manually opened and logged in.
**Preconditions:**
- N11 accepted.
- Optional N12-pre offline evidence, if used, has been validated only as pre-gate context and not as N12 pass evidence.
- User manually opens and logs in to iSphere.
- iSphere main window is visible.
- Optional N12-pre offline evidence, if used, has been validated only as pre-gate context and not as live capture evidence.
- An internal-network test sandbox can manually open and log in to iSphere / IMPlatformClient using the normal approved process.
- The internal sandbox has this repository or a trusted copy of the built helper/MCP artifacts.
- The operator follows `docs/internal-sandbox-operator-runbook.md`.
**Actions:**
Use Go MCP tools:
- In the internal sandbox, run only the first-phase read-only operations:
```text
win_helper_version
win_helper_self_check
win_helper_scan_windows
win_helper_dump_uia
```
or the equivalent helper ops:
```text
version
self_check
scan_windows
dump_uia
```
- Save the returned package under:
```text
runs/internal-sandbox-live-capture/<capture-id>/
```
- Follow the package contract in `docs/internal-sandbox-live-capture-plan.md`.
**Expected outputs:**
- `metadata/source-notes.txt` stating internal-network test sandbox, manual login, main window visible, and forbidden actions not performed.
- `helper/version.json`.
- `helper/self-check.json`.
- `windows/scan-windows.json`.
- `windows/selected-window.json`.
- `uia/dump-uia-main.json`.
- `uia/dump-uia-main-redacted.json`.
- `notes/operator-notes.txt`.
**Acceptance conditions:**
Pass if:
- The package satisfies `docs/n12r-return-package-validation-checklist.md`.
- `scan-windows.json` includes an iSphere / IMPlatformClient candidate window.
- `dump-uia-main.json` contains a UI Automation root tree for the selected window.
- The capture notes state the user manually logged in and no forbidden action was performed.
- The redacted dump exists before broad sharing.
**Stop conditions:**
- Internal sandbox cannot manually log in.
- No candidate window appears.
- UIA tree is empty or inaccessible.
- Package contains secrets or message contents that require redaction before review.
- Any step requires automatic login, clicking into conversations, sending, uploading, downloading, injection, hook, memory reading, or endpoint-security bypass.
**Next node:** N12R-review selector design review gate. Do not implement selectors until N12R evidence is accepted and a separate selector design plan is approved.
---
## N12-current: Current-environment real logged-in UIA capture gate (blocked)
This is the original N12 definition. It is retained as a blocked/non-active gate for historical clarity. It is not the active route while the repository environment is outside the internal network.
**Blocked reason:** iSphere is internal-network only, and the current repository environment cannot manually log in.
**Original purpose:** Capture real iSphere UIA evidence from a manually logged-in iSphere window in the same environment where this repository is running.
**Original preconditions, if network placement changes later:**
- N11 accepted.
- Optional N12-pre offline evidence, if used, has been validated only as pre-gate context and not as N12 pass evidence.
- The repository environment can manually open and log in to iSphere / IMPlatformClient using the normal approved process.
- iSphere main window is visible in that same environment.
**Original allowed actions:**
Use only these Go MCP tools:
```text
win_helper_scan_windows
@@ -860,35 +943,9 @@ Save output under:
runs/real-loggedin-lab/uia-dumps/
```
**Expected outputs:**
**Current decision:** Do not wait on this gate as the active route. Use N12R internal-sandbox live capture instead.
- One or more real iSphere UIA dump JSON files.
- Window metadata showing process name/title/handle.
**Acceptance conditions:**
Pass if:
- Candidate iSphere/IMPlatform window is found.
- UIA root node is a window/control tree.
- Dump includes enough fields to identify controls:
- `name`
- `control_type`
- `automation_id`
- `class_name`
- `children`
- No clicking, typing, sending, uploading, receiving, or downloading occurs.
- No passwords/tokens are captured.
**Stop conditions:**
- User is not logged in.
- No candidate window appears.
- UIA tree is empty or inaccessible.
- Captured data contains sensitive secrets that need redaction before reporting.
- Current environment cannot log in; in that case, use only N12-pre offline analysis and do not mark N12 passed.
**Next node:** Future selector design. Do not implement selectors until N12 passes.
**Next node:** Future selector design may be considered only after N12R evidence is accepted, or after N12-current becomes possible and passes. Do not implement selectors before a separate selector design plan is approved.
---
@@ -897,7 +954,7 @@ Pass if:
Every node must satisfy these rules:
1. No Python MCP code.
2. No real send/search/file action before N12.
2. No real send/search/file action before an explicitly approved post-N12R selector/action plan.
3. No process injection, hook, credential extraction, token extraction, or memory reading.
4. No broad `git add -A`; stage exact paths.
5. Every code node uses tests first.
@@ -911,13 +968,13 @@ Every node must satisfy these rules:
Current guidance after N0-N11 completion is:
```text
N12-pre if the current environment cannot log in; N12 only after current-environment manual login is possible.
N12-pre has been used for offline evidence. Because the current environment is outside the internal network, the active live-capture route is N12R internal-sandbox live capture. N12-current remains blocked unless network placement changes.
```
Immediate next action:
```text
If login is unavailable here, collect/validate the full sandbox artifact bundle described in docs/offline-evidence-intake-plan.md. Minimal manifest/scan/dump JSON is optional and only for advanced operators.
If live UI evidence is needed, use `docs/internal-sandbox-live-capture-plan.md` and `docs/internal-sandbox-operator-runbook.md` to collect an N12R package from an internal-network test sandbox. Continue to use `docs/offline-evidence-intake-plan.md` only for offline file evidence.
```
Do not treat offline evidence as N12 pass. Do not start selector/action design until true N12 passes in the current environment.
Do not treat offline evidence as N12 pass. Do not start selector/action design until N12R live evidence is accepted, or until N12-current becomes possible and passes in the current environment.