Files
Bundle OKF 0.1 · 3 conceitos · JimmyPaolini/codebase
Open source Repository Open in the app JSON README (API)
About
# Files
- [Codebase Quickstart](quickstart.md) - Quickstart entrypoint for OpenWiki knowledge base covering repository structure, projects, and local development.
# Directories
- [architecture](architecture/)
- [domain](domain/)
Details
- Kind
- OKF bundles
- Topic
- AI, RAG & memory
- Publisher
- jimmypaolini
- Origin
- okf_github
- Category
- dados
- Version
- 0.1
- Forks
- 1
- Open pull requests
- 15
- Last push
- 2026-09-09T00:20:17Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-09-08 02:23:09
- Updated
- 2026-09-08 02:23:09
- Origin id
JimmyPaolini/codebase:openwiki/index.md
README
# codebase
[](https://nx.dev)
[](https://www.typescriptlang.org/)
[](https://pnpm.io/)
[](https://nodejs.org/)
[](https://www.python.org/)
[](https://docs.astral.sh/uv/)
[](https://jupyter.org/)
[](https://react.dev/)
[](https://tanstack.com/start)
[](https://ui.shadcn.com/)
[](https://radix-ui.com/)
[](https://tailwindcss.com/)
[](https://lucide.dev/)
[](https://recharts.org/)
[](https://zod.dev/)
[](https://vitejs.dev/)
[](https://swc.rs/)
[](https://vitest.dev/)
[](https://nestjs.com/)
[](https://graphql.org/)
[](https://typeorm.io/)
[](https://www.postgresql.org/)
[](https://python.langchain.com/)
[](https://langchain-ai.github.io/langgraph/)
[](https://ollama.com/)
[](https://docs.pydantic.dev/)
[](https://eslint.org/)
[](https://oxc.rs/docs/guide/usage/linter)
[](https://prettier.io/)
[](https://stylelint.io/)
[](https://docs.astral.sh/ruff/)
[](https://semantic-release.gitbook.io/)
[](https://www.docker.com/)
[](https://helm.sh/)
[](https://kubernetes.io/)
[](https://www.terraform.io/)
[](https://github.com/JimmyPaolini/codebase/actions/workflows/lint-codebase.yml)
[](https://github.com/JimmyPaolini/codebase/actions/workflows/test-coverage.yml)
[](https://github.com/JimmyPaolini/codebase/actions/workflows/scan-security.yml)
[](https://github.com/JimmyPaolini/codebase/actions/workflows/validate-conventions.yml)
[](https://github.com/JimmyPaolini/codebase/actions/workflows/make-projects.yml)
[](https://github.com/JimmyPaolini/codebase/actions/workflows/audit-issues.yml)
[](https://github.com/JimmyPaolini/codebase/actions/workflows/make-codebase.yml)
[](https://github.com/JimmyPaolini/codebase/actions/workflows/push-releases.yml)
A modern TypeScript codebase with Nx, featuring automated releases, comprehensive code quality tools, and strict type safety.
## 💽 Projects
- **🤲 [affirmations](applications/affirmations)** - Python LangChain + Ollama affirmation generator (LangGraph ReAct agent, SearxNG)
- **🛰️ [caelundas](applications/caelundas)** - Swiss Ephemeris calendar generator that turns astronomical events into an `.ics` file
- **🔭 callidescope** - Call stack tracing toolchain that follows control flow through injected dependencies and reports where a stack got too deep
- **[callidescope-agents](packages/callidescope-agents)** - Agent skills for the callidescope toolchain, published and installed back from the lockfile like any other vendored skill
- **[callidescope-cli](packages/callidescope-cli)** - Command-line host that builds the call graph with the TypeScript compiler API, resolves NestJS injected dependencies, and reports the deepest stack below every entry point
- **[callidescope-configuration](packages/callidescope-configuration)** - Reads `callidescope.config.ts` for entry-point rules, depth and cohesion limits, exclusion globs, and output destinations
- **[callidescope-examples](packages/callidescope-examples)** - A small codebase built to be traced, carrying one worked example per rule, finding, and output the toolchain has
- **[callidescope-graph](packages/callidescope-graph)** - Builds the call graph from traced TypeScript source and measures its depth, breadth, and cohesion
- **[callidescope-nx](packages/callidescope-nx)** - Nx plugin inferring per-project `trace`, `depth`, and `breadth` targets that follow the Nx dependency graph, keeping every Nx dependency out of the packages that trace
- **[callidescope-output](packages/callidescope-output)** - Renders call-graph findings into markdown, mermaid, and JSON output formats
- **🕸️ codependix** - Dependency graph export toolchain that reads what each project depends on, renders it as JSON and Markdown diagrams, and gates the rules those graphs are judged against
- **[codependix-agents](packages/codependix-agents)** - Agent skills for the codependix toolchain, installable by any workspace that uses codependix
- **[codependix-boundaries](packages/codependix-boundaries)** - Builds each level's graph for a workspace, judges it against the declared rules, and reports the edges and cycles that break them
- **[codependix-cli](packages/codependix-cli)** - Command-line host that exports a project's Nx, NestJS, and file-level dependency graphs as JSON and Markdown anchor blocks, and gates the rules over them
- **[codependix-configuration](packages/codependix-configuration)** - Reads `codependix.config.ts` and resolves per-project export destinations and boundary rules
- **[codependix-examples](packages/codependix-examples)** - Sixteen subjects built to be graphed, each carrying the guide codependix renders from it
- **[codependix-imports](packages/codependix-imports)** - Builds a project's file-level import graph — a `typescript` module walking its own `ts.Program`, and a `python` module parsing `import`/`from ... import` statements
- **[codependix-nestjs](packages/codependix-nestjs)** - Explores a NestJS project's container and builds its module graph
- **[codependix-nx](packages/codependix-nx)** - Builds a project's one-hop Nx dependency neighborhood from the Nx project graph
- **⏲️ codometer** - Repository measurement toolchain that counts a codebase and reports what it found
- **[codometer-agents](packages/codometer-agents)** - Agent skills for the codometer toolchain, published and installed back from the lockfile like any other vendored skill
- **[codometer-changes](packages/codometer-changes)** - Diffs codometer reports against a baseline snapshot
- **[codometer-cli](packages/codometer-cli)** - Command-line host that measures TypeScript, JavaScript, Python, JSON, markdown, and Jupyter notebooks, then writes the badge block in this README, a JSON report, or both
- **[codometer-configuration](packages/codometer-configuration)** - Reads `codometer.config.ts` for exclusion globs, output destinations and their render/write callbacks, and the Python interpreter
- **[codometer-customization](packages/codometer-customization)** - Evaluates codometer's configured custom counters
- **[codometer-discovery](packages/codometer-discovery)** - Glob matching and gitignore-aware file walking, plus resolving configured measurement targets to file sets
- **[codometer-examples](packages/codometer-examples)** - A sample corpus with known contents and one runnable example per thing codometer does, with tests that assert every number the guides quote
- **[codometer-languages](packages/codometer-languages)** - Every input language analyzer codometer measures, behind one `analyze()` call
- **[codometer-output](packages/codometer-output)** - Every codometer output format - JSON reports, README badges, and the pull request change report
- **[codometer-size](packages/codometer-size)** - Compresses a target's matched files and measures their size
- **👔 conformetry** - Template-driven code generation and conformance validation toolchain
- **[conformetry-agents](packages/conformetry-agents)** - Agent skills for the conformetry toolchain, published and installed back from the lockfile like any other vendored skill
- **[conformetry-cli](packages/conformetry-cli)** - Command-line host that expands globs, prompts for inputs, and runs generation and validation
- **[conformetry-configuration](packages/conformetry-configuration)** - Configuration loading, template discovery, and generator input resolution
- **[conformetry-core](packages/conformetry-core)** - Shared error types, language validator contracts, and finding reporting
- **[conformetry-examples](packages/conformetry-examples)** - Eleven runnable examples of the toolchain, each with its own configuration, template, instances, and guide, executed by CI so the guides cannot rot
- **[conformetry-files](packages/conformetry-files)** - Checks that every file a template declares exists, whatever its extension
- **[conformetry-generation](packages/conformetry-generation)** - Mustache template rendering and scaffold file generation
- **[conformetry-languages](packages/conformetry-languages)** - Every language conformetry compares files with, as modules of one package, plus the resolution that picks them and the text fallback
- **[conformetry-nx](packages/conformetry-nx)** - Nx plugin host with generators, executors, and the emitted-plugin bootstrap
- **[conformetry-validation](packages/conformetry-validation)** - Validation orchestration, language routing, and finding deduplication
- **[infrastructure](infrastructure)** - Helm charts, Terraform, Kubernetes infrastructure
- **[JimmyPaolini](applications/JimmyPaolini)** - GitHub profile site
- **🐺 lexico** - Latin-English dictionary suite: the web application, its components, its schema, and the ingestion that fills it
- **[lexico](applications/lexico)** - TanStack Start SSR dictionary web application
- **[lexico-components](packages/lexico-components)** - Shared React component library using shadcn/ui and Radix primitives
- **[lexico-entities](packages/lexico-entities)** - TypeORM entities, migrations, and grammatical enumerations for the dictionary and literature schema
- **[lexico-ingestion](applications/lexico-ingestion)** - NestJS CLI that scrapes and loads dictionary, literature, and etymology sources
- **🪵 [logger](packages/logger)** - Shared pino-backed NestJS `LoggerService` and `LoggerModule`
- **🌀 [meanderaw](applications/meanderaw)** - CLI that generates Greek meander (key/fret) SVG patterns programmatically from a type, row count, and repeat count
- **↔️ [synchronization](tools/synchronization)** - NestJS CLI that regenerates the workspace's derived configuration and documentation, and fails CI when they drift
- **🧑⚖️ [validation](tools/validation)** - NestJS CLI for the repository's one-sided checks, the ones with a check and no write, such as the pull request metadata gate
## 📖 Documentation
### Getting Started & Workflow
- [Contributing Guide](CONTRIBUTING.md) - **Start here.** Local and dev container setup, the commands to run, code standards, branch and commit conventions, pull requests, and releases
- [AGENTS.md](AGENTS.md) - Commands, project layout, conventions, code quality gates, and git workflow
- [Release Process](documentation/development/release-process.md) - Automated semantic versioning and changelogs
### Architecture & Systems
- [CI/CD Workflows](.github/workflows) - GitHub Actions workflows and the shared `setup-codebase` composite action
- [Infrastructure](infrastructure/README.md) - Helm charts, Terraform, and the Kubernetes deployment pipeline
- [Dev Container](.devcontainer/README.md) - Containerized development environment
- [Scripts](scripts/README.md) - Local setup and maintenance scripts
### Conventions & Guidelines
Conventions live in [AGENTS.md](AGENTS.md) and the agent skills below, which are the single sources of truth. Every project also has its own `AGENTS.md` with project-specific patterns.
**🤖 Agent Skills (Domain Knowledge)**
Skills are specialized instruction files used by our automated agents, but they also serve as excellent deep-dive documentation for human developers.
- [View all Skills](.agents/skills) - Complete index of available skills
- **Languages:** [TypeScript](.agents/skills/write-typescript/SKILL.md) / [React](.agents/skills/write-react/SKILL.md) / [Python](.agents/skills/write-python/SKILL.md) / [Comments](.agents/skills/write-comments/SKILL.md)
- **Quality:** [Validate Code](.agents/skills/validate-code/SKILL.md) / [Testing Strategy](.agents/skills/testing-strategy/SKILL.md) / [Testing Mocks](.agents/skills/testing-mocks/SKILL.md) / [Error Handling](.agents/skills/handle-errors/SKILL.md)
- **Workflows:** [Git Commits](.agents/skills/commit-code/SKILL.md) / [PR Management](.agents/skills/create-pull-request/SKILL.md) / [Branch Naming](.agents/skills/checkout-branch/SKILL.md)
- **Tooling:** [Nx Workspaces](.agents/skills/nx-workspace/SKILL.md) / [Generators](.agents/skills/nx-generate/SKILL.md) / [Task Running](.agents/skills/nx-run-tasks/SKILL.md)
- **Triage:** [Failing CI](.agents/skills/triage-deployment/SKILL.md) / [Rejected Commits](.agents/skills/triage-submission/SKILL.md) / [Spell Check](.agents/skills/spell-check/SKILL.md)
Other important files include [CHANGELOG.md](CHANGELOG.md) and [SECURITY.md](SECURITY.md).
## 👔 Conformetry
Template-driven code generation and conformance validation, templates synced from [configuration/conformetry.config.ts](configuration/conformetry.config.ts) by `nx run synchronization:conformetry-generators:write`.
<!-- conformetry-generators-table start -->
| Template | Description |
| -------- | ----------- |
| `jupyter-notebook-application` | A standalone Python application template with a Jupyter notebook entry point, pytest/pyright/ruff tooling, and a shared uv workspace venv |
| `nestjs-command-project` | A standalone NestJS CLI application template built on nest-commander, for a new command-line tool in applications/, packages/, or tools/ |
| `nestjs-graphql-application` | A standalone NestJS GraphQL API application template, for a new backend service exposing a GraphQL schema over HTTP |
| `nestjs-service-project` | A standalone NestJS library package template for internal workspace code shared across projects, with no CLI entry point or HTTP server |
| `nestjs-command-module` | A nest-commander command module template — command, module, constants, types, and unit test — for an existing NestJS command-line project |
| `nestjs-dataloader-module` | A GraphQL dataloader module template — dataloader, module, types, and unit test — for batching lookups inside an existing NestJS project |
| `nestjs-graphql-module` | A GraphQL module template — resolver, entities, args/input types, factories, constants, and unit test — for an existing NestJS project |
| `nestjs-service-file` | A service and unit test file template for an existing NestJS module, without the surrounding module files |
| `nestjs-service-module` | A plain service module template — module, service, constants, types, and unit test — for an existing NestJS project |
| `react-component` | A React component and test file template for an existing React project |
<!-- conformetry-generators-table end -->
## 🕸️ Codependix
The workspace's dependency graph, exported by [codependix](packages/codependix-cli), regenerated by `nx run codebase:codependix:write`.
<!-- codependix:start name="codependix-workspace" -->
```mermaid
graph LR
affirmations["affirmations"]
caelundas["caelundas"]
callidescope_agents["callidescope-agents"]
callidescope_cli["callidescope-cli"]
callidescope_configuration["callidescope-configuration"]
callidescope_examples["callidescope-examples"]
callidescope_graph["callidescope-graph"]
callidescope_nx["callidescope-nx"]
callidescope_output["callidescope-output"]
codependix_agents["codependix-agents"]
codependix_boundaries["codependix-boundaries"]
codependix_cli["codependix-cli"]
codependix_configuration["codependix-configuration"]
codependix_examples["codependix-examples"]
codependix_imports["codependix-imports"]
codependix_nestjs["codependix-nestjs"]
codependix_nx["codependix-nx"]
codometer_agents["codometer-agents"]
codometer_changes["codometer-changes"]
codometer_cli["codometer-cli"]
codometer_configuration["codometer-configuration"]
codometer_customization["codometer-customization"]
codometer_discovery["codometer-discovery"]
codometer_examples["codometer-examples"]
codometer_languages["codometer-languages"]
codometer_output["codometer-output"]
codometer_size["codometer-size"]
conformetry_agents["conformetry-agents"]
conformetry_cli["conformetry-cli"]
conformetry_configuration["conformetry-configuration"]
conformetry_core["conformetry-core"]
conformetry_examples["conformetry-examples"]
conformetry_files["conformetry-files"]
conformetry_generation["conformetry-generation"]
conformetry_languages["conformetry-languages"]
conformetry_nx["conformetry-nx"]
conformetry_validation["conformetry-validation"]
lexico["lexico"]
lexico_components["lexico-components"]
lexico_entities["lexico-entities"]
lexico_ingestion["lexico-ingestion"]
logger["logger"]
meanderaw["meanderaw"]
synchronization["synchronization"]
validation["validation"]
caelundas --> logger
callidescope_cli --> callidescope_configuration
callidescope_cli --> callidescope_graph
callidescope_cli --> callidescope_output
callidescope_cli --> logger
callidescope_examples -.-> callidescope_cli
callidescope_examples --> callidescope_configuration
callidescope_graph --> callidescope_configuration
callidescope_graph --> logger
callidescope_nx --> callidescope_cli
callidescope_nx --> callidescope_configuration
callidescope_nx --> callidescope_graph
callidescope_nx --> callidescope_output
callidescope_nx --> logger
callidescope_output --> callidescope_configuration
callidescope_output --> callidescope_graph
callidescope_output --> logger
codependix_boundaries --> codependix_configuration
codependix_boundaries --> codependix_imports
codependix_boundaries --> codependix_nestjs
codependix_boundaries --> codependix_nx
codependix_cli --> codependix_boundaries
codependix_cli --> codependix_configuration
codependix_cli --> codependix_imports
codependix_cli --> codependix_nestjs
codependix_cli --> codependix_nx
codependix_cli --> logger
codependix_examples --> codependix_boundaries
codependix_examples --> codependix_cli
codependix_examples --> codependix_configuration
codependix_examples --> codependix_imports
codependix_examples --> codependix_nestjs
codependix_examples --> codependix_nx
codependix_examples --> logger
codependix_nestjs --> logger
codometer_changes --> logger
codometer_cli --> codometer_changes
codometer_cli --> codometer_configuration
codometer_cli --> codometer_customization
codometer_cli --> codometer_discovery
codometer_cli --> codometer_languages
codometer_cli --> codometer_output
codometer_cli --> codometer_size
codometer_cli --> logger
codometer_customization --> codometer_configuration
codometer_customization --> codometer_languages
codometer_discovery --> codometer_configuration
codometer_discovery --> logger
codometer_examples --> codometer_cli
codometer_examples --> codometer_configuration
codometer_languages --> codometer_configuration
codometer_languages --> logger
codometer_output --> codometer_changes
codometer_output --> codometer_configuration
codometer_output --> logger
codometer_size --> codometer_configuration
codometer_size --> logger
conformetry_cli --> conformetry_configuration
conformetry_cli --> conformetry_core
conformetry_cli --> conformetry_generation
conformetry_cli --> conformetry_validation
conformetry_cli --> logger
conformetry_configuration --> conformetry_core
conformetry_configuration --> conformetry_generation
conformetry_examples -.-> conformetry_cli
conformetry_examples --> conformetry_configuration
conformetry_examples --> conformetry_core
conformetry_examples --> conformetry_generation
conformetry_examples --> conformetry_nx
conformetry_examples --> conformetry_validation
conformetry_files --> conformetry_configuration
conformetry_files --> conformetry_core
conformetry_languages --> conformetry_core
conformetry_nx --> conformetry_configuration
conformetry_nx --> conformetry_core
conformetry_nx --> conformetry_generation
conformetry_nx --> conformetry_validation
conformetry_nx --> logger
conformetry_validation --> conformetry_configuration
conformetry_validation --> conformetry_core
conformetry_validation --> conformetry_files
conformetry_validation --> conformetry_languages
lexico --> lexico_components
lexico_ingestion --> lexico_entities
lexico_ingestion --> logger
meanderaw --> logger
synchronization --> conformetry_configuration
synchronization --> logger
validation --> logger
```
_Dashed edges are dependencies Nx inferred from configuration rather than from code._
<!-- codependix:end name="codependix-workspace" -->
<!-- CODE_STATISTICS_START -->
## ⏲️ Codometer
Repository statistics measured by [codometer](packages/codometer-cli), regenerated by `nx run codebase:codometer`.
### Repository




### TypeScript







### JavaScript














### Python












### JSON












### YAML











### TOML







### Shell











### SQL











### HCL









### CSS









### Conventions










### Jupyter




















### Markdown




















<!-- CODE_STATISTICS_END -->
<!-- CALL_STACKS_START -->
## 🔭 Callidescope
The workspace's call graph, traced by [callidescope](packages/callidescope-cli), regenerated by `nx run codebase:callidescope:write`. Projects are listed tightest-first: the rows at the top are the ones a ratchet cannot descend past.
| Measure | Value |
| --- | --- |
| Callables | 5013 |
| Files | 1404 |
| Calls traced | 5689 |
| Call stacks | 1286 |
| Deepest stack | 17 |
| Stacks through recursion | 12 |
| Unfollowable calls | 360 |
### Projects
| Project | Deepest | Limit | Headroom | Widest | Spread | Misplaced |
| --- | --- | --- | --- | --- | --- | --- |
| `packages/conformetry-languages` | 13 | 4 declared | -9 | 11 | 0 | 0 |
| `applications/caelundas` | 16 | 16 declared | 0 | 12 | 5 | 4 |
| `applications/lexico` | 9 | 9 declared | 0 | 9 | 0 | 1 |
| `applications/lexico-ingestion` | 17 | 17 declared | 0 | 8 | 2 | 1 |
| `applications/meanderaw` | 16 | 16 declared | 0 | 14 | 1 | 3 |
| `packages/callidescope-cli` | 15 | 15 declared | 0 | 11 | 2 | 0 |
| `packages/callidescope-nx` | 17 | 17 declared | 0 | 7 | 2 | 3 |
| `packages/codependix-boundaries` | 12 | 12 declared | 0 | 5 | 0 | 1 |
| `packages/codependix-cli` | 15 | 15 declared | 0 | 7 | 2 | 2 |
| `packages/codometer-cli` | 16 | 16 declared | 0 | 11 | 2 | 0 |
| `packages/conformetry-cli` | 14 | 14 declared | 0 | 9 | 0 | 0 |
| `packages/conformetry-examples` | 13 | 13 declared | 0 | 6 | 1 | 0 |
| `packages/conformetry-nx` | 14 | 14 declared | 0 | 9 | 4 | 0 |
| `packages/lexico-components` | 3 | 3 declared | 0 | 7 | 0 | 1 |
| `packages/lexico-entities` | 3 | 3 declared | 0 | 3 | 0 | 0 |
| `packages/logger` | 4 | 4 declared | 0 | 2 | 0 | 0 |
| `tools/synchronization` | 10 | 10 declared | 0 | 9 | 0 | 0 |
| `tools/validation` | 8 | 8 declared | 0 | 9 | 0 | 0 |
| `packages/callidescope-configuration` | 5 | 6 declared | 1 | 8 | 0 | 0 |
| `packages/codometer-size` | 0 | 3 declared | 3 | 2 | 0 | 0 |
| `packages/conformetry-configuration` | 10 | 13 declared | 3 | 5 | 0 | 0 |
| `packages/codependix-configuration` | 2 | 6 declared | 4 | 5 | 0 | 0 |
| `packages/codependix-nx` | 0 | 4 declared | 4 | 8 | 0 | 0 |
| `packages/codependix-nestjs` | 0 | 5 declared | 5 | 5 | 0 | 0 |
| `packages/codometer-customization` | 0 | 5 declared | 5 | 1 | 0 | 0 |
| `packages/conformetry-generation` | 2 | 7 declared | 5 | 4 | 0 | 0 |
| `packages/callidescope-graph` | 5 | 11 declared | 6 | 9 | 0 | 0 |
| `packages/callidescope-output` | 4 | 10 declared | 6 | 9 | 0 | 0 |
| `packages/codometer-configuration` | 2 | 8 declared | 6 | 7 | 0 | 0 |
| `packages/codometer-languages` | 5 | 11 declared | 6 | 12 | 1 | 0 |
| `packages/conformetry-core` | 0 | 6 declared | 6 | 4 | 0 | 0 |
| `packages/codometer-discovery` | 0 | 7 declared | 7 | 7 | 0 | 0 |
| `packages/codometer-output` | 4 | 11 declared | 7 | 16 | 0 | 0 |
| `packages/codependix-imports` | 0 | 8 declared | 8 | 8 | 0 | 0 |
| `packages/conformetry-files` | 0 | 9 declared | 9 | 3 | 0 | 0 |
| `packages/codometer-changes` | 0 | 10 declared | 10 | 7 | 0 | 0 |
| `packages/conformetry-validation` | 0 | 12 declared | 12 | 10 | 0 | 0 |
| `configuration` | 3 | 17 inherited | 14 | 2 | 0 | 0 |
| `packages/codometer-examples` | 2 | 17 inherited | 15 | 1 | 0 | 0 |
| `packages/callidescope-agents` | 0 | 17 inherited | 17 | 0 | 0 | 0 |
| `packages/codependix-agents` | 0 | 17 inherited | 17 | 0 | 0 | 0 |
| `packages/codependix-examples` | 0 | 17 inherited | 17 | 0 | 0 | 0 |
| `packages/codependix-examples/examples` | 0 | 17 inherited | 17 | 0 | 0 | 0 |
| `packages/codependix-examples/examples/graph-levels/atlas/packages/atlas-service` | 0 | 17 inherited | 17 | 0 | 0 | 0 |
| `packages/codependix-examples/examples/typescript-resolution/resolution` | 0 | 17 inherited | 17 | 0 | 0 | 0 |
| `packages/codometer-agents` | 0 | 17 inherited | 17 | 0 | 0 | 0 |
| `packages/conformetry-agents` | 0 | 17 inherited | 17 | 0 | 0 | 0 |
### Depth headroom
| Headroom | Projects |
| --- | --- |
| over limit | 1 |
| 0 — at limit | 17 |
| 1 | 1 |
| 2–3 | 1 |
| 4+ | 9 |
| no stacks | 18 |
### Call stacks over the depth limit (4)
**1. `JupyterService.validateDocument`** — depth 13 · orphan-root
```text
🚀 JupyterService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/conformetry-languages/src/modules/jupyter/jupyter.service.ts:153]
↳ Reports every notebook difference: envelope, missing cells, cell contents.
└─> JupyterService.map(…)(…): { error: { differenceType: "code"; expected: string; fix: string; language: "python"; message: string; weight: number; }; weight: number; } [packages/conformetry-languages/src/modules/jupyter/jupyter.service.ts:173]
└─> JupyterService.weighMissingCell(args: { cell: PairedCells; document: PreparedValidationDocument; }): number [packages/conformetry-languages/src/modules/jupyter/jupyter.service.ts:140]
↳ Weighs a cell the notebook does not have.
└─> JupyterService.validateCell(…): DocumentValidationResult [packages/conformetry-languages/src/modules/jupyter/jupyter.service.ts:90]
↳ Validates one paired cell with the validator matching its kind.
└─> MarkdownService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/conformetry-languages/src/modules/markdown/markdown.service.ts:48]
↳ Reports every markdown structure the template requires and the file lacks.
└─> MarkdownTreeService.compareContainer(args: CompareNodeArguments): CompareNodeResult (cycle) [packages/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:64]
↳ Matches a container node, then descends into it.
└─> MarkdownTreeService.map(…)(…): { differences: MarkdownComparisonError[]; lastMatchedNode: MarkdownNode; totalWeight: number; } (cycle) [packages/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:90]
└─> MarkdownTreeService.compareChildren(args: CompareChildrenArguments): CompareChildrenResult (cycle) [packages/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:146]
↳ Compares one level of two trees, descending into containers.
└─> MarkdownTreeService.compareLeaf(args: CompareNodeArguments): CompareNodeResult [packages/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:114]
↳ Matches a leaf node on its own identity, without descending.
└─> MarkdownTreeService.findCandidates(args: CompareNodeArguments): MarkdownNode[] [packages/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:134]
↳ Finds every instance sibling satisfying the template node.
└─> MarkdownTreeService.filter(…)(instanceNode: MarkdownNode): boolean [packages/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:135]
└─> MarkdownNodesService.matches(args: { instanceNode: MarkdownNode; templateNode: MarkdownNode; }): boolean [packages/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:140]
↳ Returns whether an instance node satisfies a template node.
└─> MarkdownNodesService.readText(node: MarkdownNode): string [packages/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:163]
↳ Reads a node's rendered plain text.
```
**2. `JsonService.validateDocument`** — depth 12 · orphan-root
```text
🚀 JsonService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/conformetry-languages/src/modules/json/json.service.ts:39]
↳ Reports every key or value the template requires and the instance lacks.
└─> JsonComparisonService.compareArrayItem(…): JsonComparison (cycle) [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:79]
↳ Matches one required array entry against the instance array.
└─> JsonComparisonService.map(…)(instanceItem: JsonValue, index: number): JsonComparison (cycle) [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:122]
└─> JsonComparisonService.compare(args: CompareJsonArguments): JsonComparison (cycle) [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:268]
↳ Compares a template value against an instance value, returning every way the instance fails to contain what the…
└─> JsonComparisonService.compareArrays(…): JsonComparison (cycle) [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:141]
↳ Compares two arrays.
└─> JsonComparisonService.map(…)(templateItem: JsonValue): JsonComparison (cycle) [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:148]
└─> JsonComparisonService.compareObjects(…): JsonComparison (cycle) [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:155]
↳ Compares two objects, requiring every template key to be present.
└─> JsonComparisonService.map(…)([key, templateValue]: [string, JsonValue]): JsonComparison (cycle) [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:164]
└─> JsonComparisonService.countNodes(value: JsonValue): number (cycle) [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:207]
↳ Counts a JSON value and every value nested inside it.
└─> JsonComparisonService.reduce(…)(total: number, item: JsonValue): number (cycle) [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:209]
└─> JsonComparisonService.reduce(…)(total: number, nested: JsonValue): number (cycle) [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:215]
└─> JsonComparisonService.isJsonObject(value: JsonValue): value is Record<string, JsonValue> [packages/conformetry-languages/src/modules/json/json-comparison.service.ts:235]
↳ Returns whether a value is a plain JSON object.
```
**3. `TypescriptService.validateDocument`** — depth 12 · orphan-root
```text
🚀 TypescriptService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/conformetry-languages/src/modules/typescript/typescript.service.ts:164]
↳ Reports every declaration and comment the template requires.
└─> TypescriptService.validateStructure(…): DocumentValidationResult [packages/conformetry-languages/src/modules/typescript/typescript.service.ts:107]
↳ Compares the syntax trees and describes each missing declaration.
└─> TypescriptTreeService.compareBestCandidate(args: { candidates: Node[]; templateChild: Node; }): TreeComparison (cycle) [packages/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:67]
↳ Descends into whichever candidate explains the template best.
└─> TypescriptTreeService.map(…)(candidate: Node): TreeComparison (cycle) [packages/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:72]
└─> TypescriptTreeService.compareTree(args: CompareTreeArguments): TreeComparison (cycle) [packages/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:126]
↳ Compares one level of two trees, descending into every match.
└─> TypescriptTreeService.map(…)(templateChild: Node): TreeComparison (cycle) [packages/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:133]
└─> TypescriptTreeService.compareChild(…): TreeComparison (cycle) [packages/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:87]
↳ Matches one template child against the instance's children.
└─> TypescriptTreeService.buildError(…): TypescriptComparisonError [packages/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:42]
↳ Describes a template node with no instance counterpart.
└─> TypescriptNodesService.countSubtree(node: Node): number (cycle) [packages/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:176]
↳ Counts a node and everything beneath it.
└─> TypescriptNodesService.reduce(…)(total: number, child: Node): number (cycle) [packages/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:177]
└─> TypescriptNodesService.readChildren(node: Node): Node[] [packages/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:183]
↳ Reads a node's direct children, skipping the end-of-file token.
└─> TypescriptNodesService.forEachChild(…)(childNode: Node): undefined [packages/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:186]
```
<details>
<summary>1 more call stacks</summary>
**4. `PythonService.validateDocument`** — depth 6 · orphan-root
```text
🚀 PythonService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/conformetry-languages/src/modules/python/python.service.ts:38]
↳ Reports every declaration and comment the template requires.
└─> PythonBridgeService.validatePythonSource(args: RunPythonBridgeArguments): DocumentValidationResult [packages/conformetry-languages/src/modules/python/python-bridge.service.ts:160]
↳ Compares one Python source against its rendered template.
└─> PythonBridgeService.map(…)(error: Readonly<Record<string, unknown>>): ConformetryDifference [packages/conformetry-languages/src/modules/python/python-bridge.service.ts:185]
└─> PythonBridgeService.toConformetryDifference(error: PythonBridgeError): ConformetryDifference [packages/conformetry-languages/src/modules/python/python-bridge.service.ts:132]
↳ Maps one snake_case bridge error onto the shared error shape.
└─> PythonBridgeService.readValues(error: PythonBridgeError): Partial<ConformetryDifference> [packages/conformetry-languages/src/modules/python/python-bridge.service.ts:121]
↳ Reads the optional expected and actual values.
└─> PythonBridgeService.readString(error: PythonBridgeError, key: string): string | undefined [packages/conformetry-languages/src/modules/python/python-bridge.service.ts:111]
↳ Narrows an untrusted string field from the bridge payload.
```
</details>
### Module spread
| Callable | Spread | Calls directly | Location |
| --- | --- | --- | --- |
| `MeasureService.measureTarget` | 18 | `packages/codometer-discovery:modules/discovery`, `packages/codometer-discovery:modules/targets`, `packages/codometer-size:modules/size` | `packages/codometer-cli/src/modules/measure/measure.service.ts:302` |
| `PluginService.runGate` | 17 | `packages/callidescope-cli:modules/callidescope`, `packages/callidescope-nx:modules/run-configuration`, `packages/callidescope-output:modules/report` | `packages/callidescope-nx/src/modules/plugin/plugin.service.ts:427` |
| `PluginService.runTrace` | 17 | `packages/callidescope-cli:modules/callidescope`, `packages/callidescope-nx:modules/run-configuration`, `packages/callidescope-output:modules/report` | `packages/callidescope-nx/src/modules/plugin/plugin.service.ts:471` |
| `PluginService.runValidation` | 17 | `packages/conformetry-core:modules/reporting`, `packages/conformetry-nx:modules/instances`, `packages/conformetry-validation:modules/validation` | `packages/conformetry-nx/src/modules/plugin/plugin.service.ts:395` |
| `MeasureService.analyzeFiles` | 16 | `packages/codometer-customization:modules/customization`, `packages/codometer-languages:modules/languages`, `packages/codometer-size:modules/size` | `packages/codometer-cli/src/modules/measure/measure.service.ts:75` |
| `LanguagesService.analyze` | 13 | `packages/codometer-languages:modules/comments`, `packages/codometer-languages:modules/css`, `packages/codometer-languages:modules/hcl`, `packages/codometer-languages:modules/json`, `packages/codometer-languages:modules/jupyter`, `packages/codometer-languages:modules/markdown`, `packages/codometer-languages:modules/python`, `packages/codometer-languages:modules/shell`, `packages/codometer-languages:modules/sql`, `packages/codometer-languages:modules/toml`, `packages/codometer-languages:modules/typescript`, `packages/codometer-languages:modules/yaml` | `packages/codometer-languages/src/modules/languages/languages.service.ts:56` |
| `main` | 13 | `packages/conformetry-configuration:modules/configuration`, `packages/conformetry-configuration:modules/template-discovery`, `packages/conformetry-core:modules/reporting`, `packages/conformetry-generation:modules/generation`, `packages/conformetry-validation:modules/validation` | `packages/conformetry-examples/examples/embedding/embed.ts:44` |
| `CallidescopeService.analyze` | 12 | `packages/callidescope-graph:modules/cohesion`, `packages/callidescope-graph:modules/entries`, `packages/callidescope-graph:modules/graph`, `packages/callidescope-output:modules/project-reports` | `packages/callidescope-cli/src/modules/callidescope/callidescope.service.ts:291` |
| `PluginService.runGenerator` | 12 | `packages/conformetry-configuration:modules/configuration`, `packages/conformetry-generation:modules/generation`, `packages/conformetry-nx:modules/adapter`, `packages/conformetry-nx:modules/options`, `packages/conformetry-nx:modules/paths` | `packages/conformetry-nx/src/modules/plugin/plugin.service.ts:334` |
| `AspectsService.detectSimpleAspects` | 10 | `applications/caelundas:modules/ingresses`, `applications/caelundas:modules/major-aspects`, `applications/caelundas:modules/minor-aspects`, `applications/caelundas:modules/phases`, `applications/caelundas:modules/retrogrades`, `applications/caelundas:modules/specialty-aspects` | `applications/caelundas/src/modules/aspects/aspects.service.ts:90` |
| `PerfectiveService.detectOrbitalEvents` | 10 | `applications/caelundas:modules/annual-solar-cycle`, `applications/caelundas:modules/ingresses`, `applications/caelundas:modules/monthly-lunar-cycle`, `applications/caelundas:modules/phases`, `applications/caelundas:modules/retrogrades` | `applications/caelundas/src/modules/perfective/perfective.service.ts:149` |
| `ProgressiveService.detect` | 10 | `applications/caelundas:modules/annual-solar-cycle`, `applications/caelundas:modules/aspects`, `applications/caelundas:modules/eclipses`, `applications/caelundas:modules/ingresses`, `applications/caelundas:modules/monthly-lunar-cycle`, `applications/caelundas:modules/phases`, `applications/caelundas:modules/retrogrades`, `applications/caelundas:modules/twilights` | `applications/caelundas/src/modules/progressive/progressive.service.ts:47` |
| `AspectsService.detectCompositeAspects` | 8 | `applications/caelundas:modules/quadruple-aspects`, `applications/caelundas:modules/quintuple-aspects`, `applications/caelundas:modules/sextuple-aspects`, `applications/caelundas:modules/stellium`, `applications/caelundas:modules/triple-aspects` | `applications/caelundas/src/modules/aspects/aspects.service.ts:72` |
| `LexemesService.enrichLexeme` | 8 | `applications/lexico-ingestion:modules/etymology`, `applications/lexico-ingestion:modules/forms`, `applications/lexico-ingestion:modules/part-of-speech`, `applications/lexico-ingestion:modules/principal-parts`, `applications/lexico-ingestion:modules/pronunciation`, `applications/lexico-ingestion:modules/translations` | `applications/lexico-ingestion/src/modules/lexemes/lexemes.service.ts:73` |
| `PerfectiveService.detectObservationalEvents` | 7 | `applications/caelundas:modules/daily-cycles`, `applications/caelundas:modules/eclipses`, `applications/caelundas:modules/twilights` | `applications/caelundas/src/modules/perfective/perfective.service.ts:117` |
| `syncGenerator` | 7 | `packages/conformetry-nx:modules/generator`, `packages/conformetry-nx:modules/options`, `packages/conformetry-nx:modules/plugin`, `packages/conformetry-nx:modules/projects` | `packages/conformetry-nx/src/generators/sync/generator.ts:26` |
| `LexemesService.saveLexemeRelations` | 6 | `applications/lexico-ingestion:modules/forms`, `applications/lexico-ingestion:modules/principal-parts`, `applications/lexico-ingestion:modules/pronunciation`, `applications/lexico-ingestion:modules/words` | `applications/lexico-ingestion/src/modules/lexemes/lexemes.service.ts:218` |
| `DrawPermutationsService.render` | 6 | `applications/meanderaw:modules/mosaic-naming`, `applications/meanderaw:modules/mosaic-tile`, `applications/meanderaw:modules/svg-rendering` | `applications/meanderaw/src/modules/draw/draw-permutations.service.ts:80` |
| `CallidescopeService.discoverCallables` | 6 | `packages/callidescope-graph:modules/callables`, `packages/callidescope-graph:modules/classes`, `packages/callidescope-graph:modules/workspace` | `packages/callidescope-cli/src/modules/callidescope/callidescope.service.ts:85` |
| `MapService.runWorkspaceGraph` | 6 | `packages/codependix-cli:modules/delivery`, `packages/codependix-configuration:modules/configuration`, `packages/codependix-nx:modules/workspace-graph` | `packages/codependix-cli/src/modules/map/map.service.ts:281` |
| `bootstrapPlugin` | 6 | `packages/conformetry-nx:modules/options`, `packages/conformetry-nx:modules/plugin`, `packages/conformetry-nx:modules/projects` | `packages/conformetry-nx/src/modules/generator/bootstrap.utilities.ts:39` |
| `MapService.runNestjsProject` | 5 | `packages/codependix-cli:modules/delivery`, `packages/codependix-nestjs:modules/module-graph`, `packages/codependix-nestjs:modules/nestjs-project` | `packages/codependix-cli/src/modules/map/map.service.ts:186` |
### Callables over the breadth limit (0)
None.
### Possibly misplaced
| Callable | Declared in | Called from | Callers |
| --- | --- | --- | --- |
| `cn` | `packages/lexico-components:lib` | `packages/lexico-components:components` | 219/219 |
| `CalendarService.buildInstantEvent` | `applications/caelundas:modules/calendar` | `applications/caelundas:modules/daily-cycles` | 8/9 |
| `typedFromEntries` | `applications/caelundas:modules/caelundas` | `applic