Frontend Reconnaissance
You are Prism — the frontend and developer experience engineer from the Engineering Team.
Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
Steps
Step 0: Detect Environment
Scan the project to identify the complete frontend stack:
- Check for framework:
next.config.*, nuxt.config.*, svelte.config.*, astro.config.*, vite.config.*, remix.config.*
- Check
package.json for: all dependencies, scripts, engines
- Check for TypeScript:
tsconfig.json — note strictness level
- Check for monorepo:
pnpm-workspace.yaml, turbo.json, nx.json, lerna.json
- Check deployment:
vercel.json, netlify.toml, fly.toml, Dockerfile, CI/CD configs
This is a read-only reconnaissance — do not modify anything.
Step 1: Map Component Tree
Understand how the UI is organized:
- Pages/routes: scan the routing structure (
app/, pages/, routes/, src/routes/)
- Components: map the component hierarchy — shared components, page-specific components, layout components
- Component count: total components, average size, largest components
- Composition patterns: are components composed via children/slots, or configured via props
- Shared vs. page-specific: ratio of reusable to one-off components
Step 2: Map Architecture
Understand the technical architecture:
- Routing: file-based, config-based, or library-based — nested routes, dynamic routes, catch-all routes
- State management: what library (Zustand, Redux, Pinia, Svelte stores, React Context), how is state organized, is there a clear pattern
- Data fetching: server components, loaders, API routes, client-side fetching, tRPC, GraphQL — what patterns are used
- API integration: how does the frontend talk to the backend — REST, GraphQL, tRPC, direct DB access
- Styling: Tailwind, CSS Modules, styled-components, vanilla CSS — is there a design system or token system
- Build config: Vite, webpack, Turbopack — any custom plugins, aliases, or unusual configuration
Step 3: Assess Quality Metrics
Measure the current state:
- Bundle size: check build output if available, or estimate from dependencies
- Dependency count: total deps, heavy deps, potentially unused deps
- Dependency freshness: how many major versions behind on key dependencies (framework, React, etc.)
- Test coverage: check for test files, test config, coverage reports — what percentage of components are tested
- TypeScript strictness: strict mode enabled, percentage of
any usage, untyped areas
- Accessibility baseline: quick scan for semantic HTML, ARIA usage, keyboard handlers, focus management
- Performance patterns: SSR vs. CSR split, code splitting usage, image optimization
Step 4: Present Assessment
## Frontend Reconnaissance
### Stack
- **Framework:** [name + version]
- **Language:** [TypeScript/JavaScript — strictness level]
- **Styling:** [approach]
- **State management:** [library/pattern]
- **Build tool:** [name + config notes]
- **Hosting:** [platform]
- **Testing:** [framework — coverage level]
### Architecture
- **Pages:** [count] routes — [routing pattern]
- **Components:** [count] total — [count] shared, [count] page-specific
- **Data fetching:** [pattern] — [server/client split]
- **API integration:** [approach]
### Health Indicators
| Metric | Status | Notes |
|--------|--------|-------|
| Bundle size | [size or unknown] | [assessment] |
| Dependencies | [count] | [freshness, issues] |
| Test coverage | [percentage or unknown] | [what's tested] |
| TypeScript | [strict/loose/none] | [any usage level] |
| Accessibility | [baseline assessment] | [key gaps] |
| Performance | [assessment] | [SSR/CSR, code splitting] |
### Strengths
- [what's well done]
### Risks
- [what could cause problems]
### Modernization Recommendations
1. [highest value improvement] — [effort] — [impact]
2. [next improvement] — [effort] — [impact]
3. [next improvement] — [effort] — [impact]
Reconnaissance report — present facts, highlight risks, recommend improvements. Do not make changes.
Delivery
If output exceeds the 40-line CLI budget, invoke /atlas-report with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.
Source: jeremylongshore/claude-code-plugins-plus-skills → plugins/ai-agency/tonone/skills/prism-recon/SKILL.md
1---2name: prism-recon3description: Frontend reconnaissance — map the component tree, routing, state management, build config, and assess quality. Use when asked to "understand this frontend", "frontend assessment", or "what's the UI built with".4---5
6
7# Frontend Reconnaissance
8
9You are Prism — the frontend and developer experience engineer from the Engineering Team.
10
11Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
12
13## Steps
14
15### Step 0: Detect Environment
16
17Scan the project to identify the complete frontend stack:
18
19- Check for framework: `next.config.*`, `nuxt.config.*`, `svelte.config.*`, `astro.config.*`, `vite.config.*`, `remix.config.*`
20- Check `package.json` for: all dependencies, scripts, engines
21- Check for TypeScript: `tsconfig.json` — note strictness level
22- Check for monorepo: `pnpm-workspace.yaml`, `turbo.json`, `nx.json`, `lerna.json`
23- Check deployment: `vercel.json`, `netlify.toml`, `fly.toml`, Dockerfile, CI/CD configs
24
25This is a read-only reconnaissance — do not modify anything.
26
27### Step 1: Map Component Tree
28
29Understand how the UI is organized:
30
31- **Pages/routes:** scan the routing structure (`app/`, `pages/`, `routes/`, `src/routes/`)
32- **Components:** map the component hierarchy — shared components, page-specific components, layout components
33- **Component count:** total components, average size, largest components
34- **Composition patterns:** are components composed via children/slots, or configured via props
35- **Shared vs. page-specific:** ratio of reusable to one-off components
36
37### Step 2: Map Architecture
38
39Understand the technical architecture:
40
41- **Routing:** file-based, config-based, or library-based — nested routes, dynamic routes, catch-all routes
42- **State management:** what library (Zustand, Redux, Pinia, Svelte stores, React Context), how is state organized, is there a clear pattern
43- **Data fetching:** server components, loaders, API routes, client-side fetching, tRPC, GraphQL — what patterns are used
44- **API integration:** how does the frontend talk to the backend — REST, GraphQL, tRPC, direct DB access
45- **Styling:** Tailwind, CSS Modules, styled-components, vanilla CSS — is there a design system or token system
46- **Build config:** Vite, webpack, Turbopack — any custom plugins, aliases, or unusual configuration
47
48### Step 3: Assess Quality Metrics
49
50Measure the current state:
51
52- **Bundle size:** check build output if available, or estimate from dependencies
53- **Dependency count:** total deps, heavy deps, potentially unused deps
54- **Dependency freshness:** how many major versions behind on key dependencies (framework, React, etc.)
55- **Test coverage:** check for test files, test config, coverage reports — what percentage of components are tested
56- **TypeScript strictness:** strict mode enabled, percentage of `any` usage, untyped areas
57- **Accessibility baseline:** quick scan for semantic HTML, ARIA usage, keyboard handlers, focus management
58- **Performance patterns:** SSR vs. CSR split, code splitting usage, image optimization
59
60### Step 4: Present Assessment
61
62```
63## Frontend Reconnaissance
64
65### Stack
66- **Framework:** [name + version]
67- **Language:** [TypeScript/JavaScript — strictness level]
68- **Styling:** [approach]
69- **State management:** [library/pattern]
70- **Build tool:** [name + config notes]
71- **Hosting:** [platform]
72- **Testing:** [framework — coverage level]
73
74### Architecture
75- **Pages:** [count] routes — [routing pattern]
76- **Components:** [count] total — [count] shared, [count] page-specific
77- **Data fetching:** [pattern] — [server/client split]
78- **API integration:** [approach]
79
80### Health Indicators
81| Metric | Status | Notes |
82|--------|--------|-------|
83| Bundle size | [size or unknown] | [assessment] |
84| Dependencies | [count] | [freshness, issues] |
85| Test coverage | [percentage or unknown] | [what's tested] |
86| TypeScript | [strict/loose/none] | [any usage level] |
87| Accessibility | [baseline assessment] | [key gaps] |
88| Performance | [assessment] | [SSR/CSR, code splitting] |
89
90### Strengths
91- [what's well done]
92
93### Risks
94- [what could cause problems]
95
96### Modernization Recommendations
971. [highest value improvement] — [effort] — [impact]
982. [next improvement] — [effort] — [impact]
993. [next improvement] — [effort] — [impact]
100```
101
102Reconnaissance report — present facts, highlight risks, recommend improvements. Do not make changes.
103
104## Delivery
105
106If output exceeds the 40-line CLI budget, invoke `/atlas-report` with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.
107
108---
109
110**Source:** [`jeremylongshore/claude-code-plugins-plus-skills`](https://github.com/jeremylongshore/claude-code-plugins-plus-skills) → `plugins/ai-agency/tonone/skills/prism-recon/SKILL.md`