Setting the file. One moment.
Inquiry Checkpoints · Acquire Codebase Knowledge · github/awesome-copilot · Skills Docs
Per-template investigation questions for Phase 2 of the acquire-codebase-knowledge workflow. For each template area, look for answers in the scan output first, then read source files to fill gaps.
What is the primary language and exact version? (check , , , Docker line)
ContentsBack to the top of the page .nvmrc
go.mod
pyproject.toml
FROM
What package manager is used? (npm, yarn, pnpm, go mod, pip, uv)
What are the core runtime frameworks? (web server, ORM, DI container)
What do dependencies (production) vs devDependencies (dev tooling) contain?
Is there a Docker image and what base image does it use?
What are the key scripts in package.json / Makefile / pyproject.toml?
Where does source code live? (usually src/, lib/, or project root for Go)
What are the entry points? (check main in package.json, scripts.start, cmd/main.go, app.py)
What is the stated purpose of each top-level directory?
Are there non-obvious directories (e.g., eng/, platform/, infra/)?
Are there hidden config directories (.github/, .vscode/, .husky/)?
What naming conventions do directories follow? (camelCase, kebab-case, domain-based vs layer-based)
Is the code organized by layer (controllers → services → repos) or by feature?
What is the primary data flow? Trace one request or command from entry to data store.
Are there singletons, dependency injection patterns, or explicit initialization order requirements?
Are there background workers, queues, or event-driven components?
What design patterns appear repeatedly? (Factory, Repository, Decorator, Strategy)
What is the file naming convention? (check 10+ files — camelCase, kebab-case, PascalCase)
What is the function and variable naming convention?
Are private methods/fields prefixed (e.g., _methodName, #field)?
What linter and formatter are configured? (check .eslintrc, .prettierrc, golangci.yml)
What are the TypeScript strictness settings? (strict, noImplicitAny, etc.)
How are errors handled at each layer? (throw vs. return structured error)
What logging library is used and what is the log message format?
How are imports organized? (barrel exports, path aliases, grouping rules)
What external APIs are called? (search for axios., fetch(, http.Get(, base URLs in constants)
How are credentials stored and accessed? (.env, secrets manager, env vars)
What databases are connected? (check manifest for pg, mongoose, prisma, typeorm, sqlalchemy)
Is there an API gateway, service mesh, or proxy between the app and external services?
What monitoring or observability tools are used? (APM, Prometheus, logging pipeline)
Are there message queues or event buses? (Kafka, RabbitMQ, SQS, Pub/Sub)
What test runner is configured? (check scripts.test in package.json, pytest.ini, go test)
Where are test files located? (alongside source, in tests/, in __tests__/)
What assertion library is used? (Jest expect, Chai, pytest assert)
How are external dependencies mocked? (jest.mock, dependency injection, fixtures)
Are there integration tests that hit real services vs. unit tests with mocks?
Is there a coverage threshold enforced? (check jest.config.js, .nycrc, pyproject.toml)
How many TODOs/FIXMEs/HACKs are in production code? (see scan output)
Which files have the highest git churn in the last 90 days? (see scan output)
Are there any files over 500 lines that mix multiple responsibilities?
Do any services make sequential calls that could be parallelized?
Are there hardcoded values (URLs, IDs, magic numbers) that should be config?
What security risks exist? (missing input validation, raw error messages exposed to clients, missing auth checks)
Are there performance patterns that don’t scale? (N+1 queries, in-memory caches in multi-instance setups)
references/inquiry-checkpoints.md