diff --git a/docs/apple-application-analysis.md b/docs/apple-application-analysis.md
new file mode 100644
index 0000000000..7459c5dea0
--- /dev/null
+++ b/docs/apple-application-analysis.md
@@ -0,0 +1,18 @@
+# Apple Application Inventory Projection
+
+REA can project one or more authenticated `inventory_artifact` Evidence records
+for the same IPA into an Apple application inventory. The projection is
+execution-free: it reports exact paths, content hashes, detected formats,
+runtime-family hints, and path-based bridge hypotheses. It does not parse plist
+or CMS semantics or claim observed runtime calls.
+
+The result includes every component in each inventory category and every
+JavaScript-to-native bridge candidate pair. It has no caller-selected component
+budget, prefix truncation, or omitted-count fields. Duplicate inventory pages
+are merged by artifact identity and occurrence path; their Evidence IDs remain
+attached as source Evidence.
+
+Coverage is `complete-within-inventory` when the supplied pages reconstruct the
+complete authenticated inventory, and `partial` otherwise. A partial result
+states that absence is unknown. Component and bridge-candidate arrays are still
+the complete projection of the inventory that was supplied.
diff --git a/docs/architecture.mermaid b/docs/architecture.mermaid
index 89eed9ba29..79454dd734 100644
--- a/docs/architecture.mermaid
+++ b/docs/architecture.mermaid
@@ -16,8 +16,7 @@ graph TD
APP["src/application/
Shared CLI/MCP workflows
enhanced analysis and investigations"]
SESSION["SessionProviderRouter + BinarySession
one immutable deep binding per target
disjoint auxiliary routing"]
REGISTRY["AnalysisProviderRegistry
sorted deep candidates
deterministic selection, no fallback"]
- WORKSPACE["Investigation workspace store
approved roots, canonical JSON
atomic CAS revisions and locks"]
- JS_RECON["JavaScript artifact reconstruction
bounded directory/ASAR reads
AST-only bundle projection"]
+ JS_RECON["JavaScript artifact reconstruction
directory/ASAR reads
AST-only bundle projection"]
end
subgraph "Provider Layers"
@@ -37,7 +36,7 @@ graph TD
end
subgraph "Domain Layer"
- DOMAIN["src/domain/
Pure side-effect-free modules
evidence, comparisons, application graphs, workspace commitments"]
+ DOMAIN["src/domain/
Pure side-effect-free modules
evidence, comparisons, application graphs"]
end
subgraph "Configuration"
@@ -59,7 +58,6 @@ graph TD
REGISTRY --> HOPPER
REGISTRY --> GHIDRA
SESSION --> AUX
- APP --> WORKSPACE
APP --> JS_RECON
APP --> INSTALL
SERVER --> CONTRACTS
diff --git a/skills/reverse-engineer-anything/SKILL.md b/skills/reverse-engineer-anything/SKILL.md
index c4f09dd4b3..bd69b7ac2b 100644
--- a/skills/reverse-engineer-anything/SKILL.md
+++ b/skills/reverse-engineer-anything/SKILL.md
@@ -4,7 +4,7 @@ description: Reverse engineer native, managed, Electron/JavaScript, packaged, an
metadata:
version: "23"
tool_count: 111
- catalog_digest: "d37c2bd4930e6065896ba8085f03681c2b376d9d236a6798d55b466ba42749d9"
+ catalog_digest: "ac4da7d924b2f65ff14108d03f3838cebbbf8c92c9ae3034165375e0b12678fd"
---
# REA
diff --git a/skills/reverse-engineer-anything/references/javascript-applications.md b/skills/reverse-engineer-anything/references/javascript-applications.md
index 170d91fdbd..9b6d8aea04 100644
--- a/skills/reverse-engineer-anything/references/javascript-applications.md
+++ b/skills/reverse-engineer-anything/references/javascript-applications.md
@@ -1,10 +1,12 @@
# JavaScript and Electron application artifacts
-Use `analyze_javascript_application` for an operator-supplied ASAR or extracted
-tree beneath an approved investigation root. Every call requires `approved:
-true`; source-map contents require separate approval. Keep the default summary.
-Use its counts, roots, node kinds, top findings, coverage, unknowns, and graph
-page URIs before requesting more data.
+Use `analyze_javascript_application` directly on the operator-supplied ASAR or
+extracted tree. It reads the selected local path without an approval flag or
+configured investigation root. The complete result, graph, and Evidence context
+are returned inline, so inspect them directly without fetching resource links.
+Source-map contents are part of the static analysis. Start from its findings,
+coverage, unknowns, and graph context, then make a focused follow-up only when a
+specific question remains unanswered.
BrowserWindow preferences, preload and contextBridge surfaces, IPC
registrations, utility processes, and native binding requests are static syntax