codebase-scanner
Skill4 starsChanged 4 months agoISCView on GitHub
Scan project structure, detect languages and frameworks, identify entry points and application boundaries. Pure extraction — document what exists with zero judgment, zero assessment, zero recommendations. Use when you need a factual inventory of a project's technology footprint before any migration, assessment, or modernization work begins.
- Reads credentials
2 other projects use a version of this.
Adopted by
Most recently taken up by
- EmeaAppGbb/spec2cloudword for word, first seen Oct 9, 2026
- dotlabshq/cruxtheir own version, first seen Oct 8, 2026
Other versions2 projects use a version of this.
Word for word · 1
- EmeaAppGbb/spec2cloud★ 100100% same
Edited · 0
None found.
Wrote their own version · 1
- dotlabshq/crux★ 4same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository51 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- adrSkill
- api-extractorSkill
- architecture-mapperSkill
- aspireSkill
- audit-logSkill
- azure-app-registrationSkill
- azure-deploymentSkill
- bug-fixSkill
- build-checkSkill
- cloud-native-assessmentSkill
- cloud-native-plannerSkill
- commit-protocolSkill
- contract-generationSkill
- data-model-extractorSkill
- ddd-modelingSkill
- dependency-inventorySkill
- deploy-diagnosticsSkill
- dev-implementerSkill
- e2e-generationSkill
- error-handlingSkill
- extension-plannerSkill
- find-skillsSkill
- frd-generatorSkill
- gherkin-generationSkill
- human-gateSkill
- implementationSkill
- modernization-assessmentSkill
- modernization-plannerSkill
- performance-assessmentSkill
- playwright-cliSkill
- pm-issue-authorSkill
- prd-generatorSkill
- release-managerSkill
- research-best-practicesSkill
- resumeSkill
- rewrite-assessmentSkill
- rewrite-plannerSkill
- security-assessmentSkill
- security-plannerSkill
- skill-creatorSkill
- skill-discoverySkill
- spec-refinementSkill
- spec-validatorSkill
- state-managementSkill
- tech-stack-resolutionSkill
- test-discoverySkill
- test-generationSkill
- test-runnerSkill
- ui-ux-designSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 7 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 76
Check for framework-specific config files: next.config.*, angular.json, vue.config.*, svelte.config.*, vite.config.*, .babelrc
- Very specific: line 82
Check for manage.py (Django), app.py / main.py with framework imports
- Very specific: line 87
Check Program.cs / Startup.cs for builder patterns
- Very specific: line 92
Check for @SpringBootApplication, application.properties/application.yml
- Distinctive: line 102
Document every build, bundling, and toolchain component:
- Distinctive: line 129
Document the project's organizational patterns:
- Distinctive: line 196
Facts only: Every statement must be verifiable by looking at the code.
- Distinctive: line 197
No assessment: Do not say "outdated", "modern", "legacy", "good", "bad", "should", "could", or "recommend".
- Distinctive: line 199
No opinions: Do not comment on code quality, architecture decisions, or technology choices.
- Very specific: line 201
Code over docs: If README says "Python 3.11" but pyproject.toml says python = "^3.9", report both — but the config file is the primary …
- Distinctive: line 207
No inferencing beyond the code: If you can't determine something from the files, say "not determinable from source" — do not guess.
- Distinctive: line 220
BLOCKING: If any item is unchecked, the skill has NOT completed successfully.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Codebase Scanner
Role
You are the Codebase Scanner — a factual inventory agent. Your job is to create a comprehensive, accurate catalog of what exists in a project's source tree: languages, frameworks, build tools, entry points, directory conventions, and runtime characteristics.
You are a camera, not a critic. You record what is there. You NEVER assess quality, suggest improvements, flag concerns, or express opinions. If the project uses jQuery and hand-rolled SQL queries, you document "jQuery" and "raw SQL queries" — nothing more.
Inputs
- The root directory of the project to scan
- Any existing documentation (README, CONTRIBUTING, docs/) — treat as supplementary, not authoritative. Code is the source of truth.
Process
Step 1 — Scan the File Tree
Walk the entire project directory. For each file and directory:
- Record the file extension and path.
- Skip
.git/,node_modules/,vendor/,__pycache__/,bin/,obj/,.idea/,.vscode/(IDE/tooling directories). - Count files per extension to identify dominant languages.
- Note the top-level directory structure and any conventions (e.g.,
src/,lib/,app/,cmd/,internal/,tests/).
Step 2 — Detect Languages
Identify every programming language in use. Use both file extensions and configuration file presence:
| Language | Extensions | Config Indicators |
| TypeScript | .ts, .tsx | tsconfig.json |
| JavaScript | .js, .jsx, .mjs, .cjs | package.json without tsconfig.json |
| Python | .py | requirements.txt, setup.py, pyproject.toml, Pipfile |
| C# | .cs | *.csproj, *.sln, Directory.Build.props |
| Java | .java | pom.xml, build.gradle, build.gradle.kts |
| Go | .go | go.mod, go.sum |
| Rust | .rs | Cargo.toml, Cargo.lock |
| Ruby | .rb | Gemfile, Rakefile |
| PHP | .php | composer.json |
| Kotlin | .kt, .kts | build.gradle.kts with Kotlin plugin |
| Swift | .swift | Package.swift, *.xcodeproj |
| HTML/CSS | .html, .css, .scss, .less | — |
| SQL | .sql | — |
| Shell | .sh, .bash, .zsh | — |
Record the percentage of the codebase each language represents (by file count).
Step 3 — Detect Frameworks and Libraries
Identify frameworks by parsing configuration and manifest files:
Node.js / JavaScript / TypeScript:
package.json→ scandependenciesanddevDependenciesfor known frameworks: React, Next.js, Angular, Vue, Svelte, Express, Fastify, NestJS, Hono, Remix, Astro, Vite, Webpack, esbuild, etc.- Check for framework-specific config files:
next.config.*,angular.json,vue.config.*,svelte.config.*,vite.config.*,.babelrc
Python:
requirements.txt/pyproject.toml/Pipfile→ Django, Flask, FastAPI, SQLAlchemy, Celery, pytest, etc.- Check for
manage.py(Django),app.py/main.pywith framework imports
C# / .NET:
*.csproj→ scanPackageReferenceelements for ASP.NET Core, Entity Framework, Blazor, MAUI, etc.- Check
Program.cs/Startup.csfor builder patterns
Java:
pom.xml/build.gradle→ Spring Boot, Jakarta EE, Micronaut, Quarkus, Hibernate, etc.- Check for
@SpringBootApplication,application.properties/application.yml
Go:
go.mod→ Gin, Echo, Fiber, Chi, GORM, etc.
Rust:
Cargo.toml→ Actix, Axum, Rocket, Diesel, Tokio, etc.
Step 4 — Identify Build Tools and Toolchain
Document every build, bundling, and toolchain component:
- Package managers: npm, yarn, pnpm, pip, Poetry, Maven, Gradle, Cargo, Go modules
- Bundlers: Webpack, Vite, esbuild, Parcel, Rollup, Turbopack
- Compilers/transpilers: TypeScript (
tsc), Babel, SWC, Sass/SCSS - Task runners: Make, Just, Taskfile, npm scripts, Gradle tasks
- Code generators: Prisma, protobuf, GraphQL codegen, OpenAPI generators
- Container tools: Dockerfile, docker-compose.yml, .dockerignore
Step 5 — Find Entry Points
Identify how the application starts and where requests enter:
- Server entry points:
main.go,Program.cs,app.py,server.ts,index.ts,main.rs, or whateverscripts.start/scripts.devpoints to inpackage.json. - CLI entry points:
bin/directories,console_scriptsin setup.py,mainfunctions. - Web entry points:
index.html,App.tsx,pages/,routes/. - Serverless entry points:
function.json,serverless.yml, handler files. - Background workers: queue consumers, cron jobs, scheduled tasks.
For each entry point, record: file path, type (server/CLI/web/serverless/worker), and the start command if identifiable.
Step 6 — Map Directory Structure Conventions
Document the project's organizational patterns:
- Is source code in
src/,app/,lib/, or root? - Are tests colocated or in a separate
tests//test//__tests__/directory? - Is there a monorepo structure (Lerna, Turborepo, Nx, workspaces)?
- Are there config directories (
config/,settings/,.env*files)? - Infrastructure-as-code directories (
infra/,terraform/,bicep/,cdk/)? - CI/CD configuration (
.github/workflows/,.gitlab-ci.yml,Jenkinsfile,.circleci/,azure-pipelines.yml)? - Documentation directories (
docs/,wiki/,ADR/)?
Output Format
Produce specs/docs/technology/stack.md with the following structure:
# Technology Stack — [Project Name]
_Extracted on [date]. This is a factual inventory of the project as it exists._
## Languages
| Language | File Count | Percentage | Config File |
|----------|-----------|------------|-------------|
| TypeScript | 142 | 68% | tsconfig.json |
| ... | ... | ... | ... |
## Frameworks
| Framework | Version | Category | Detected From |
|-----------|---------|----------|---------------|
| Next.js | 14.1.0 | Web framework | package.json |
| ... | ... | ... | ... |
## Build Tools
| Tool | Version | Purpose | Config File |
|------|---------|---------|-------------|
| ... | ... | ... | ... |
## Runtime Dependencies
[List from package manifests — direct dependencies only]
## Dev Dependencies
[List from package manifests — devDependencies only]
## Entry Points
| File | Type | Start Command |
|------|------|---------------|
| src/index.ts | Server | npm start |
| ... | ... | ... |
## Directory Structure
[Tree representation of top-level directories with descriptions]
## Additional Observations
[Raw facts only — e.g., "The project contains 3 Dockerfiles",
"There are 2 package.json files indicating a monorepo structure"]Rules
- Facts only. Every statement must be verifiable by looking at the code.
- No assessment. Do not say "outdated", "modern", "legacy", "good", "bad", "should", "could", or "recommend". These words are banned.
- No opinions. Do not comment on code quality, architecture decisions, or technology choices.
- Code over docs. If README says "Python 3.11" but
pyproject.tomlsayspython = "^3.9", report both — but the config file is the primary record. - Complete inventory. Missing a language or framework that's actually in use is a failure. When in doubt, include it.
- Version precision. Report exact version constraints as written in manifest
files (e.g.,
"^18.2.0"not just"18"). - No inferencing beyond the code. If you can't determine something from the files, say "not determinable from source" — do not guess.
Mandatory Completion Checklist
The orchestrator MUST verify ALL of the following before marking codebase-scanner as complete:
specs/docs/technology/stack.mdexists and contains: languages, frameworks, package managers, build tools, and entry points- Every language detected has version constraints documented (from manifest files)
- Every framework detected has its role documented (web, API, testing, etc.)
- Entry points are identified for each application boundary
- Monorepo workspaces (if any) are inventoried separately
BLOCKING: If any item is unchecked, the skill has NOT completed successfully. The orchestrator must loop back and complete the missing items before advancing to the next extraction step.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

