with one click
project-scan
Auto-populate context/project.md by reading the current codebase
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Auto-populate context/project.md by reading the current codebase
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Convert PDF/EPUB library to Markdown and generate Obsidian MOC notes
Hook-based compaction suggestions at logical task boundaries
Context window management — track spend, decide when to compact, preserve state
Session-start orientation — loads context, surfaces learnings, confirms registry
Quality and semantic review — catches what automated tools miss
Planner → Architect → Critic deliberation loop — produces a formally validated ADR
| name | project-scan |
| description | Auto-populate context/project.md by reading the current codebase |
| version | 0.1.0 |
| level | 2 |
| triggers | ["scan project","scan codebase","populate project context","/scan"] |
| context_files | [] |
| steps | [{"name":"Detect Stack","description":"Identify language, framework, and package manager from manifest files"},{"name":"Find Entry Points","description":"Locate main entry points — where execution begins"},{"name":"Map Key Modules","description":"Identify the top-level modules and their single-line purpose"},{"name":"Check Infrastructure","description":"Detect database, external services, Docker, CI configuration"},{"name":"Check Existing Docs","description":"Read README and any existing architecture docs for context"},{"name":"Write project.md","description":"Populate context/project.md with findings — replacing template placeholders"}] |
Reads the current codebase and auto-populates context/project.md. Run once on setup, re-run when the project's structure changes significantly.
Without a scan, context/project.md stays as a template. Every skill that reads it gets nothing useful. The context layer is only as good as the data in it.
Check for manifest files in order:
| File | Indicates |
|---|---|
package.json | Node.js — check dependencies for framework (next, express, fastapi via py) |
pyproject.toml / setup.py / requirements.txt | Python — check for FastAPI, Django, Flask, etc. |
go.mod | Go — check module name and key imports |
Cargo.toml | Rust |
pom.xml / build.gradle | Java/Kotlin |
Gemfile | Ruby |
composer.json | PHP |
*.csproj | .NET/C# |
Read the manifest. Extract: language, framework, key dependencies (non-obvious ones only — not lodash, not requests).
| Stack | Look For |
|---|---|
| Node.js | "main" in package.json, src/index.ts, app.ts, server.ts |
| Python | main.py, app.py, __main__.py, manage.py (Django) |
| Go | cmd/*/main.go, main.go |
| Rust | src/main.rs, src/lib.rs |
Read the entry point file. Note what it initializes.
List directories at the top level of src/, lib/, app/, pkg/, or equivalent. For each:
index.ts, __init__.py, or equivalent, read the first 20 linesCap at 10 modules. If there are more, note the count and describe the most significant.
| File/Pattern | Indicates |
|---|---|
docker-compose.yml | Local Docker services — read service names |
Dockerfile | Containerized deployment |
.github/workflows/ | GitHub Actions CI |
*.tf files | Terraform infrastructure |
k8s/ or kubernetes/ | Kubernetes deployment |
.env.example | Read to understand required environment variables |
Read README.md (first 50 lines). Extract anything that describes architecture, constraints, or setup requirements not already captured.
Write directly to context/project.md, replacing template placeholders. Do not append — overwrite the template sections with real data.
Sections to populate:
State: "context/project.md populated. Please review and fill in:
Do not guess at framework from file extensions alone. Read the manifest.
Do not list every dependency — only the non-obvious ones that shape how the project works.
Do not overwrite anything the user has already filled in. If a section has real content (not template placeholder text), preserve it.