From 77278e5e56f7f5b68839abe0846cbba373f6d7ed Mon Sep 17 00:00:00 2001 From: morluto <76467478+morluto@users.noreply.github.com> Date: Sun, 12 Jul 2026 21:15:50 +0000 Subject: [PATCH] Align completion metadata with the canonical skill --- metadata/completion-manifest.json | 6 +-- skills/rea-analysis/SKILL.md | 75 +++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 3 deletions(-) diff --git a/metadata/completion-manifest.json b/metadata/completion-manifest.json index cae1f5f43..3286da2b7 100644 --- a/metadata/completion-manifest.json +++ b/metadata/completion-manifest.json @@ -24,7 +24,7 @@ }, { "path": "skills/rea-analysis/SKILL.md", - "sha256": "d5a3a5329e7db590a06f5b0b1af6551704579b78711d9c6a229715b5a832906e" + "sha256": "a33b0eeb8dad412249d11c696c712390e3da29b2f73d49dd94c424ac7438a8e7" }, { "path": "src/application/AnalysisProvider.ts", @@ -192,11 +192,11 @@ }, { "path": "src/domain/referenceSourceGraph.ts", - "sha256": "394048ce022159ac67ca5811303b1e221e546d4364d5d0102230e5b69d88c166" + "sha256": "4900f382215ad95e70ece8efe25f1ebe3b978fd262da48253a1808a779a93724" }, { "path": "src/domain/referenceSourceClassification.ts", - "sha256": "63e3cd3cb2856fe4c85c5e46160a417b9f9bf4a58997984fcfea1c898532d58e" + "sha256": "bc2876db3b58dbd624561808be25d2bf666aed9e6278994d5f9a74c92a83c898" }, { "path": "src/domain/referenceSourceImportParsing.ts", diff --git a/skills/rea-analysis/SKILL.md b/skills/rea-analysis/SKILL.md index d4c1bec59..f316fe0da 100644 --- a/skills/rea-analysis/SKILL.md +++ b/skills/rea-analysis/SKILL.md @@ -1,6 +1,9 @@ --- name: rea-analysis description: Reverse engineer apps with REA. Explore how features work, then build a version tailored to your project. +metadata: + version: "10" + tool_count: 68 --- # REA @@ -33,8 +36,80 @@ REA accepts a `.app` bundle directly. Do not expose its internal `Contents/MacOS Briefly tell the user what you will investigate. Open the app with `open_binary`, begin with `binary_overview`, and narrow the investigation around the requested feature. Use decompilation, strings, names, callers, callees, and cross-references as needed. +For applications, ZIP/APK/IPA packages, or Electron ASAR archives, call +`inventory_artifact` before extraction. Follow its deterministic occurrence +pages and cite graph manifest IDs. `extract_artifact` requires explicit user +approval, an absent absolute output root, and selected occurrence IDs; never +extract every entry implicitly. Symlinks and encrypted entries are inventory +facts, not extractable files. Nested containers require a separate deliberate +inventory step. + Explain conclusions in plain language. Point to the relevant decompiled code, strings, names, and connections so the user can see how the explanation was reached. Do not claim to recover original source code or automatically clone an application. +Search uses bounded deterministic pages. Prefer literal mode; use regex mode only +when regex semantics are needed, and continue from `next_offset` while +`has_more` is true. Treat nullable permissions and explicit unavailable metadata +as unknown, never as `false`. + +Every successful analysis result is Evidence v2. Cite evidence IDs and preserve +limitations and residual unknowns. Process capture is disabled by default, +requires per-call approval plus operator policy, and uses host networking only +when the operator explicitly permits it. It is behavioral evidence, not a +security sandbox. + +Do not let unanswered questions disappear. Use `record_unknown` only with +explicit approval, attach supporting and contradicting evidence IDs, and record +the authority/environment still required. Use `update_unknown` with the current +`expected_revision`; stale updates must be re-read, not retried blindly. A +verified resolution needs qualifying observed evidence. Inference, withdrawn, +and out-of-scope dispositions are never substitutes for observed behavior. +Set `unknown_registry_approved: true` on `trace_feature` or +`capture_process_scenario` only when the user approves durable automatic +recording of their bounded residuals. The same flag on a direct operation +records typed provider unavailability, and on `compare_process_captures` +records an observed disagreement as a contradiction. + +Use `compare_artifacts` with one record or bounded arrays of +`inventory_artifact` Evidence pages per side. Pages must share one manifest; +collect all node, occurrence, and edge pages for exhaustive comparison. It +compares stable occurrence paths, content, metadata, and graph relations, +cites both evidence sets on every delta, and paginates changes. Incomplete +inventories are truncated or unknown, never equivalent. Set +`unknown_registry_approved: true` only with approval to preserve the +disagreement or missing evidence as a residual unknown. + +Use `compare_functions` with explicit `analyze_function` Evidence page sets; +it does not perform fuzzy whole-binary matching. Collect every pseudocode, +assembly, collection, and CFG page when exhaustive comparison matters. +Absolute addresses are volatile only in CFG topology; pseudocode constants are +never stripped. Omitted assembly, truncated scans, unavailable reference kinds, +and cross-provider text remain unknown rather than equal. + +Use `compare_bundles` for canonical Evidence v2 bundle membership and +residual-unknown history changes. Pair cross-version observations explicitly; +the tool never guesses record identity. One-sided records prove only bundle +inclusion or omission, not behavioral absence. Use the returned canonical +bundle digests to anchor paginated reports. + +Use `find_changed_behavior` to combine existing comparison Evidence. Runtime +process differences are observed changes; artifact and function differences +remain static candidates, not causal proof. Supply complete comparison pages. + +Use `build_call_path` with explicit `analyze_function` Evidence groups from one +artifact and provider. Select endpoints by exact address. Missing dossiers, +incomplete callee pages, or a depth frontier make absence unknown; found paths +remain valid and cite each contributing dossier. + +Use `correlate_static_and_runtime` only with explicit mappings between exact +static and runtime comparison findings. A matching pattern is a hypothesis, +never proof of causality. Declare side alignment; unmapped similarities are not +correlated. + +Use `verify_reconstruction` with a finite typed specification and canonical +Evidence bundle. Pass means all declared claims passed with comparable +authority, not global implementation equivalence. Missing, limited, active- +unknown, or incompatible evidence stays unknown; observed differences fail. + ## Build When requested, use normal coding tools to build a version suited to the user's project, stack, interface, and requirements. Keep the implementation tied to what the investigation established, and distinguish observed behavior from assumptions or design choices.