From 0b9815b6e7080081d8fd426ad9710aee36761afa Mon Sep 17 00:00:00 2001 From: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com> Date: Fri, 9 Oct 2026 21:38:52 -0700 Subject: [PATCH] docs(skill): save CLI application Evidence and read a summary view (#1429) The skill's CLI fallback printed the complete application Evidence to stdout. A real ASAR produces hundreds of megabytes (334 MB for Obsidian), which an agent then reads into its context. Save the Evidence to a file and project a summary or module page with inspect-analysis-view instead. Co-authored-by: Claude Opus 5.5 --- docs/cli.md | 17 +++++++++++++++++ skill-src/reverse-engineer-anything/SKILL.md | 19 +++++++++++++------ src/generatedPackageMetadata.ts | 2 +- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/docs/cli.md b/docs/cli.md index 2a9863c1e..245251a28 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -20,6 +20,23 @@ files when neither `--provider` nor `--snapshot` is supplied. See [JavaScript artifact reconstruction](javascript-artifact-reconstruction.md) for results, integrity checks and coverage. +The complete application Evidence can be hundreds of megabytes for a real +application. When an agent or a person reads the result, save it to a file and +project a summary, a module page or one module from the saved Evidence: + +```bash +rea analyze-javascript-application /absolute/path/to/app --json > app-evidence.json +jq -c '{source: {kind: "inline", evidence: .}, view: {kind: "summary"}}' app-evidence.json > app-view.json +rea inspect-analysis-view app-view.json +``` + +For example, a 334 MB Obsidian application Evidence file yields a summary view +of about 10 KB. Replace the view with +`{"kind": "page", "collection": "modules", "offset": 0, "limit": 32}` for a +module page. See +[JavaScript application workflows](javascript-application-workflows.md) for +views, feature traces and comparisons that take the same saved Evidence. + ## Native analysis Configure [Hopper or Ghidra](installation.md#hopper), or the diff --git a/skill-src/reverse-engineer-anything/SKILL.md b/skill-src/reverse-engineer-anything/SKILL.md index d1650f26e..3eaa239b8 100644 --- a/skill-src/reverse-engineer-anything/SKILL.md +++ b/skill-src/reverse-engineer-anything/SKILL.md @@ -2,7 +2,7 @@ name: reverse-engineer-anything description: Reverse engineer native, managed, Electron/JavaScript, packaged, firmware, and browser targets with REA. Use shipped-artifact or requested runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis. metadata: - version: "34" + version: "35" --- # REA @@ -62,13 +62,20 @@ with a version-pinned `rea-agents` package or continue through the CLI. A concrete CLI fallback for an operator-supplied JavaScript tree or ASAR is: ```bash -npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json +npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json > app-evidence.json +jq -c '{source: {kind: "inline", evidence: .}, view: {kind: "summary"}}' app-evidence.json > app-view.json +npx -y rea-agents@latest inspect-analysis-view app-view.json ``` -No MCP registration or native engine is required. Read the returned Evidence, -graph, limitations, and unknowns with the same care as an MCP result; the CLI -returns the Evidence record directly. This fallback does not establish that -MCP is configured. Native CLI tasks still require their selected engine. +No MCP registration or native engine is required. The CLI returns the complete +Evidence record directly, and a real application can produce hundreds of +megabytes, so save it to a file rather than reading it into context. Start from +the summary view, then request a module page +(`{"kind": "page", "collection": "modules", "offset": 0, "limit": 32}`) or one +module the same way, or pass the saved Evidence inline to +`trace-application-feature`. Read graph, limitations, and unknowns with the +same care as an MCP result. This fallback does not establish that MCP is +configured. Native CLI tasks still require their selected engine. ## Route the target first diff --git a/src/generatedPackageMetadata.ts b/src/generatedPackageMetadata.ts index 29177bf02..468117b05 100644 --- a/src/generatedPackageMetadata.ts +++ b/src/generatedPackageMetadata.ts @@ -5,5 +5,5 @@ export const PACKAGE_METADATA = { serverSdkVersion: "2.3.1", clientSdkVersion: "2.3.1", coreSdkVersion: "2.3.1", - skillVersion: "34", + skillVersion: "35", } as const;