Goal
Produce technical-requirements.md that documents the detected tech stack and “how this repo runs” with evidence links.
Inputs
- Repository working tree
- Existing
technical-requirements.md (if present)
Output
- Create or update
technical-requirements.md at repo root.
Procedure
1) Establish repo type and boundaries
- Identify whether this is monorepo vs single service.
- Detect top-level apps/services (folders like apps/, services/, src/, packages/).
- Note any “example/”, “legacy/”, “archive/” areas and exclude them unless they are active.
2) Detect languages and primary frameworks (evidence-first)
Scan for canonical files and record findings with file evidence:
- Node/TS: package.json, tsconfig.json, pnpm-lock.yaml/yarn.lock/package-lock.json
- Java: pom.xml, build.gradle(.kts), settings.gradle
- .NET: *.sln, *.csproj, global.json
- Python: pyproject.toml, requirements*.txt, poetry.lock, pipfile
- Go: go.mod
- Ruby: Gemfile
- PHP: composer.json
For each detected stack element, record:
- What it is
- Where it is proven (file path)
- Confidence: confirmed / likely / guess
3) Build and run commands
Extract canonical commands from:
- README.md / docs/
- package.json scripts
- Makefile / Taskfile.yml / justfile
- CI config (GitHub Actions, Azure DevOps, Jenkinsfile, etc.)
Prefer “copyable” commands and include prerequisites (e.g., JDK version, Node version).
4) Test strategy snapshot
Detect test frameworks and how to run them:
- Unit/integration/e2e hints from configs and folder conventions
- Coverage tools if present
- Known test entrypoints (scripts, gradle tasks, dotnet test, pytest, etc.)
5) Runtime topology & integration points (lightweight)
Without overreaching into architecture:
- Identify executables / entrypoints (main files, startup classes, server.js, Program.cs, etc.)
- Detect external dependencies: DBs, queues, caches, third-party APIs via config files and docker-compose/k8s manifests.
- List config sources (env vars, config files, secrets management references)
6) Deploy/build pipelines & environments
Detect:
- Containerization: Dockerfile, docker-compose.yml
- Orchestration: k8s manifests, Helm charts, Terraform, Pulumi
- CI/CD: workflows and what they build/deploy
- Environments: dev/stage/prod naming in config
7) Generate technical-requirements.md
- If file exists: update in-place, preserving any repo-specific notes.
- If not: create from the template in
assets/technical-requirements.template.md.
- Ensure every major claim has evidence (file paths).
- Add a “Verification checklist” section: exact commands to confirm assumptions.
8) Quality bar
Before finishing:
- No invented versions. If version is unknown, say “not found” and list where you looked.
- Separate “Detected” vs “Assumed/Conventional” clearly.
- Keep to one page where possible; move long lists to appendix.
References
- If stack-specific variants are needed (Angular/AWS, Next.js/AWS), add them under
references/ and link from this file.
1---2name: tech-stack-inventory3description: Determine the repository’s tech stack (languages, frameworks, build/test/deploy tooling) and generate/refresh a technical-requirements.md baseline for brownfield development.4---56## Goal7Produce `technical-requirements.md` that documents the detected tech stack and “how this repo runs” with evidence links.89## Inputs10- Repository working tree11- Existing `technical-requirements.md` (if present)1213## Output14- Create or update `technical-requirements.md` at repo root.1516## Procedure1718### 1) Establish repo type and boundaries19- Identify whether this is monorepo vs single service.20- Detect top-level apps/services (folders like apps/, services/, src/, packages/).21- Note any “example/”, “legacy/”, “archive/” areas and exclude them unless they are active.2223### 2) Detect languages and primary frameworks (evidence-first)24Scan for canonical files and record findings with file evidence:25- Node/TS: package.json, tsconfig.json, pnpm-lock.yaml/yarn.lock/package-lock.json26- Java: pom.xml, build.gradle(.kts), settings.gradle27- .NET: *.sln, *.csproj, global.json28- Python: pyproject.toml, requirements*.txt, poetry.lock, pipfile29- Go: go.mod30- Ruby: Gemfile31- PHP: composer.json3233For each detected stack element, record:34- What it is35- Where it is proven (file path)36- Confidence: confirmed / likely / guess3738### 3) Build and run commands39Extract canonical commands from:40- README.md / docs/41- package.json scripts42- Makefile / Taskfile.yml / justfile43- CI config (GitHub Actions, Azure DevOps, Jenkinsfile, etc.)4445Prefer “copyable” commands and include prerequisites (e.g., JDK version, Node version).4647### 4) Test strategy snapshot48Detect test frameworks and how to run them:49- Unit/integration/e2e hints from configs and folder conventions50- Coverage tools if present51- Known test entrypoints (scripts, gradle tasks, dotnet test, pytest, etc.)5253### 5) Runtime topology & integration points (lightweight)54Without overreaching into architecture:55- Identify executables / entrypoints (main files, startup classes, server.js, Program.cs, etc.)56- Detect external dependencies: DBs, queues, caches, third-party APIs via config files and docker-compose/k8s manifests.57- List config sources (env vars, config files, secrets management references)5859### 6) Deploy/build pipelines & environments60Detect:61- Containerization: Dockerfile, docker-compose.yml62- Orchestration: k8s manifests, Helm charts, Terraform, Pulumi63- CI/CD: workflows and what they build/deploy64- Environments: dev/stage/prod naming in config6566### 7) Generate `technical-requirements.md`67- If file exists: update in-place, preserving any repo-specific notes.68- If not: create from the template in `assets/technical-requirements.template.md`.69- Ensure every major claim has evidence (file paths).70- Add a “Verification checklist” section: exact commands to confirm assumptions.7172### 8) Quality bar73Before finishing:74- No invented versions. If version is unknown, say “not found” and list where you looked.75- Separate “Detected” vs “Assumed/Conventional” clearly.76- Keep to one page where possible; move long lists to appendix.7778## References79- If stack-specific variants are needed (Angular/AWS, Next.js/AWS), add them under `references/` and link from this file.