analyze-app

📁 laststance/skills 📅 14 days ago
4
总安装量
4
周安装量
#51112
全站排名
安装命令
npx skills add https://github.com/laststance/skills --skill analyze-app

Agent 安装分布

opencode 4
antigravity 4
claude-code 4
github-copilot 4
windsurf 4
codex 4

Skill 文档

Analyze App — macOS Application Stack Analyzer

Determines the technology stack of any macOS .app by inspecting its bundle structure, frameworks, binary, and metadata.

Workflow

All analysis MUST be delegated to the app-stack-analyzer subagent via the Task tool.

Step 1: Parse Input

Extract the .app path from the user’s input. Accept:

  • Full path: /Applications/Linear.app
  • App name only: Linear → resolve to /Applications/Linear.app
  • Relative path: ./MyApp.app

If the path doesn’t end with .app, append .app. If no directory prefix, prepend /Applications/.

Step 2: Validate Path

Confirm the app exists:

test -d "<resolved_path>/Contents" && echo "Valid" || echo "Invalid"

If invalid, inform the user and suggest checking the path or listing /Applications/.

Step 3: Delegate to Subagent

CRITICAL: Always use the Task tool to delegate analysis.

Task(
  subagent_type: "Bash",
  description: "Analyze <AppName> tech stack",
  prompt: "Analyze the macOS application at '<app_path>' to determine its technology stack.

Execute these commands and report findings:

1. Info.plist analysis:
   plutil -p '<app_path>/Contents/Info.plist'

2. Frameworks inspection:
   ls '<app_path>/Contents/Frameworks/' 2>/dev/null || echo 'No Frameworks directory'

3. Binary analysis:
   file '<app_path>/Contents/MacOS/'*

4. Code signing:
   codesign -dv '<app_path>' 2>&1

5. If Electron detected (Electron Framework.framework exists):
   strings '<app_path>/Contents/Frameworks/Electron Framework.framework/Electron Framework' 2>/dev/null | grep -E '^Chrome/[0-9]' | head -1

6. Resources scan:
   ls '<app_path>/Contents/Resources/' | head -30

Based on ALL collected evidence, provide a structured analysis report:

## App Analysis: <AppName>

### Basic Info
| Property | Value |
|----------|-------|
| Name | ... |
| Bundle ID | ... |
| Version | ... |
| Min macOS | ... |
| Architecture | ... |
| Signed By | ... |

### Technology Stack
| Layer | Technology | Confidence | Evidence |
|-------|-----------|------------|----------|
| Runtime | ... | High/Medium/Low | ... |
| UI Framework | ... | ... | ... |
| Language | ... | ... | ... |
| Build Tool | ... | ... | ... |

### Frameworks Detected
List each framework with its purpose.

### Notable Details
Any interesting architectural or technical findings.

Detection rules:
- Electron: ElectronAsarIntegrity in plist OR Electron Framework.framework in Frameworks
- Flutter: Flutter.framework or FlutterMacOS.framework OR flutter_assets in Resources
- Qt: QtCore.framework or any Qt*.framework
- SwiftUI: SwiftUI references or modern Swift frameworks
- Native (AppKit): No cross-platform framework detected, Apple-only frameworks
- Catalyst: UIOKit.framework presence"
)

Step 4: Present Results

Relay the subagent’s analysis report to the user. Add any additional context if relevant.

Multiple Apps

If the user provides multiple app paths, launch parallel Task calls — one per app.

Examples

Single app:

/analyze-app /Applications/Linear.app

App name only:

/analyze-app Figma

Multiple apps:

/analyze-app Linear Notion Discord

Success Criteria

  • App path resolved and validated
  • Analysis delegated to subagent (never done inline)
  • Structured report returned with confidence levels
  • Technology stack correctly identified with evidence