plugins/lt-showroom/skills/analyzing-projects/SKILL.md
Analyzes software projects to extract technology stack, architecture, features, API surface, testing strategy, UI/UX patterns, security measures, and performance optimizations. Produces structured, evidence-based reports where every claim is backed by a source code reference. Also detects how the application is started (scripts, Docker, database requirements) and enumerates all pages and views for screenshot planning. Outputs a structured report that feeds directly into SHOWCASE.md creation and screenshot automation. Activates when analyzing a project for showroom showcases, portfolio entries, project documentation, or when a user asks what a project does or how it is built. NOT for creating or publishing showcases (use creating-showcases). NOT for platform development (use generating-nest-servers).
npx skillsauth add lennetech/claude-code analyzing-projectsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill enables Claude Code to perform deep, evidence-based analysis of software projects and produce structured reports suitable for SHOWCASE.md creation and showcase publishing on showroom.lenne.tech.
/showroom:analyze, /showroom:create, or /showroom:update commands| User Intent | Correct Skill |
|------------|---------------|
| Analyze project source code | THIS SKILL |
| Create or update a showcase | creating-showcases |
| Develop the showroom platform itself | generating-nest-servers / developing-lt-frontend |
Works closely with:
creating-showcases — Consumes analysis reports to build SHOWCASE.md and showcase contentgenerating-nest-servers — For backend development on the showroom APIEvery project analysis covers exactly 8 dimensions. Read the full guide in ${CLAUDE_SKILL_DIR}/reference/analysis-dimensions.md.
| # | Dimension | Purpose | |---|-----------|---------| | 1 | Technology Stack | Languages, frameworks, key libraries, runtimes | | 2 | Architecture | Structure, patterns, separation of concerns | | 3 | Core Features | User-facing capabilities backed by endpoints/components | | 4 | API Surface | REST endpoints, GraphQL schema, auth mechanisms | | 5 | Testing Strategy | Test types, frameworks, coverage breadth | | 6 | UI/UX Patterns | Component libraries, responsive design, accessibility | | 7 | Security Measures | Auth, validation, rate limiting, encryption | | 8 | Performance Optimizations | Caching, query optimization, async patterns |
Beyond the 8 dimensions, every analysis MUST also produce:
For each feature, record:
file:line reference to the implementing codeApply heuristics from ${CLAUDE_SKILL_DIR}/reference/feature-extraction.md to detect features systematically.
The analysis MUST produce a complete, actionable recipe to start the project from scratch. This is not optional — without it, screenshots cannot be taken and features cannot be verified.
Follow the full 8-step detection protocol in ${CLAUDE_SKILL_DIR}/reference/startup-detection.md:
Output the findings as a startupInfo YAML block (schema in ${CLAUDE_SKILL_DIR}/reference/startup-detection.md).
lsof -i :3000 -i :3001 before starting..env.example often hides required secrets — Keys like OPENAI_API_KEY, DIRECTUS_URL, or database credentials look optional but the app will fail silently at runtime. Flag these as envRequired.src-tauri/ is present, the full npm run dev builds the desktop app. Use npx nuxt dev directly to bypass Tauri and get a browser-accessible dev server on port 3001.List all navigable pages and views in the application for screenshot planning:
Frontend Projects (Nuxt, Next.js, Vue, React, Angular):
pages/, app/, views/, routes/ directoriesBackend-only Projects (NestJS, Express, Fastify):
Output a pagesInventory list:
pagesInventory:
- path: "/"
name: "Landing Page"
auth: "public"
feature: "Homepage"
- path: "/dashboard"
name: "Dashboard"
auth: "authenticated"
feature: "Overview & Analytics"
- path: "/projects/:id"
name: "Project Detail"
auth: "authenticated"
feature: "Project Management"
${CLAUDE_SKILL_DIR}/reference/framework-detection.md)${CLAUDE_SKILL_DIR}/reference/feature-extraction.md${CLAUDE_SKILL_DIR}/reference/report-schema.mdfile:line referenceProduce a structured report following ${CLAUDE_SKILL_DIR}/reference/report-schema.md.
The report MUST include:
startupInfo blockpagesInventory listSource references use the format: path/to/file.ts:42
Unknown or undeterminable items are marked as unknown — never guessed.
${CLAUDE_SKILL_DIR}/reference/analysis-dimensions.md — Detailed guide for each of the 8 dimensions${CLAUDE_SKILL_DIR}/reference/framework-detection.md — Framework detection lookup table${CLAUDE_SKILL_DIR}/reference/feature-extraction.md — Feature heuristics (auth, uploads, realtime, etc.)${CLAUDE_SKILL_DIR}/reference/startup-detection.md — Full 8-step startup detection protocol with startupInfo schema${CLAUDE_SKILL_DIR}/reference/report-schema.md — TypeScript interface for the structured reportdevelopment
Single source of truth for the lenne.tech fullstack production-readiness checklist. Defines the eight pillars (configuration & secrets, observability & logging, health & lifecycle, security hardening, data durability, resilience under load, deployment hygiene, runbook & rollback) with concrete file/line evidence requirements per pillar, severity classification (Critical / Major / Minor), and a canonical machine-parseable report block. Activates whenever an agent or command needs to gate a release on production-readiness — currently used by /lt-dev:production-ready, lt-dev:production-readiness-orchestrator, and the devops-reviewer (read-only). NOT for OWASP-style code-level security review (use security-reviewer). NOT for npm dependency audits (use maintaining-npm-packages).
development
Single source of truth for executing GitLab CI/CD pipelines locally with the same image, env vars, and service containers as the real runner — so pipeline failures are caught before push. Defines pipeline discovery (.gitlab-ci.yml + includes), per-job execution via gitlab-runner exec, service-container orchestration (Mongo, Redis, MailHog), env injection without secrets, cache/artifact handling, and a job-by-job verdict report. Also describes the GitHub Actions equivalent via act for projects that mirror to GitHub. Activates whenever an agent or command needs to validate that the CI pipeline will pass — currently used by /lt-dev:production-ready and lt-dev:production-readiness-orchestrator. NOT for running the local check script (use running-check-script). NOT for writing or refactoring CI configs (use the devops agent).
development
Single source of truth for designing, running, and interpreting k6 load tests against lenne.tech fullstack APIs. Defines installation paths (brew, docker, npm), the three canonical scenarios (smoke / load / soak), endpoint discovery from the generated SDK, realistic Better-Auth login flows, threshold defaults for ~10 concurrent users (p95 < 500ms, error rate < 1%, http_req_failed < 1%), result interpretation, and the optimisation ladder when the system fails (DB indices, query rewrites, caching, connection pool sizing, rate-limit relaxation, payload trimming). Activates whenever an agent or command needs to validate that the API is stable for ~10 concurrent users performing many actions in short time, or to detect performance regressions via k6. Currently used by /lt-dev:production-ready, lt-dev:production-readiness-orchestrator, and lt-dev:performance-reviewer. NOT for Lighthouse frontend performance (use a11y-reviewer). NOT for unit performance assertions (use the test runner directly).
tools
Migrates lenne.tech projects from the legacy jest+eslint+prettier toolchain to the current vitest+oxlint+oxfmt baseline used by nest-server-starter and nuxt-base-starter. Covers swc decoratorMetadata config, the @Prop union-type fix for SWC, supertest default-import correction, ESM/CJS interop, the Nitro PORT-vs-NITRO_PORT bug, ANSI escape stripping in workspace runners (lerna/nx), free-port logic for check-server-start.sh, the offers-pattern config.env.ts (NSC__-only + fail-fast + auto-derived appUrl), and the multi-phase check-envs.sh smoke test. Activates whenever someone is migrating an existing project to the new toolchain, debugging "Cannot determine a type for the X field" Mongoose errors, ERR_SOCKET_BAD_PORT crashes from check-server-start, or wants to align an existing project with the current starter conventions.