A modern TypeScript codebase with Nx, featuring automated releases, comprehensive code quality tools, and strict type safety.
🔮 affirmations - Python LangChain + Ollama affirmation generator (LangGraph ReAct agent, SearxNG)
🛰️ 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 - Agent skills for the callidescope toolchain, published and installed back from the lockfile like any other vendored skill
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 - Reads callidescope.config.ts for entry-point rules, depth and breadth limits, exclusion globs, and output destinations
callidescope-core - The contracts leaf: the call graph, stack, frame, and finding vocabulary every other callidescope package speaks, holding no service and no NestJS module
callidescope-examples - A small codebase built to be traced, carrying one worked example per rule, finding, and output the toolchain has
callidescope-graph - Builds the call graph from traced TypeScript source and measures its depth and breadth
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 - 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 - Agent skills for the codependix toolchain, installable by any workspace that uses codependix
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 - 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 - Reads codependix.config.ts, resolves the command line over it, and produces one resolved run configuration
codependix-core - The contracts leaf: the run and result vocabulary every other codependix package states its types in
codependix-examples - Sixteen subjects built to be graphed, each carrying the guide codependix renders from it
codependix-file-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-modules - Explores a NestJS project's container and builds its module graph
codependix-nx-projects - Builds a project's one-hop Nx dependency neighborhood from the Nx project graph
codependix-output - Renders every graph as JSON, Markdown, and mermaid, routes each to its configured destination, and splices anchor blocks into place
⏲️ codometer - Repository measurement toolchain that counts a codebase and reports what it found
codometer-agents - Agent skills for the codometer toolchain, published and installed back from the lockfile like any other vendored skill
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 - Reads codometer.config.ts for exclusion globs, output destinations and their render/write callbacks, and the Python interpreter, and reads the command line that runs over it
codometer-core - The contracts leaf: the statistics and report vocabulary a measurement produces, and the errors a configuration is refused with
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 - Every input language analyzer codometer measures, behind one analyze() call
codometer-measurement - Finds the files a run measures, counts their size and whatever a configuration declares its own counters for, and holds every metric to its declared limit
codometer-output - Every codometer output format - JSON reports, README badges, and the pull request change report - plus the destinations a run writes them to
👔 conformetry - Template-driven code generation and conformance validation toolchain
conformetry-agents - Agent skills for the conformetry toolchain, published and installed back from the lockfile like any other vendored skill
conformetry-cli - Command-line host that expands globs, prompts for inputs, and runs generation and validation
conformetry-configuration - Configuration loading, template and instance discovery, generator input resolution, and the placeholder rendering every template path needs
conformetry-core - Contracts leaf: difference, score, inventory, and language validator types, and nothing executable
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-generation - Scaffold file generation, rendering each template through the configuration layer
conformetry-languages - Every language conformetry compares files with, as modules of one package, plus the resolution that picks them, the text fallback, the extension-agnostic existence pass, and the difference and scoring primitives they share
conformetry-nx - Nx plugin host with generators, executors, and the emitted-plugin bootstrap
conformetry-output - Every render target: the validation report and the template and instance inventory
conformetry-validation - Validation orchestration, language routing, and finding deduplication
🐺 lexico - Latin-English dictionary suite: the web application, its components, its schema, and the ingestion that fills it
lexico - TanStack Start SSR dictionary web application
lexico-components - Shared React component library using shadcn/ui and Radix primitives
lexico-entities - TypeORM entities, migrations, and grammatical enumerations for the dictionary and literature schema
lexico-ingestion - NestJS CLI that scrapes and loads dictionary, literature, and etymology sources
🪵 logger - Shared pino-backed NestJS LoggerService and LoggerModule
🏺 meanderaw - CLI that generates Greek meander (key/fret) SVG patterns programmatically from a type, row count, and repeat count
JimmyPaolini - GitHub profile site
🧑⚖️ 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
- Contributing Guide - Start here. Local and dev container setup, the commands to run, code standards, branch and commit conventions, pull requests, and releases
- AGENTS.md - Commands, project layout, conventions, code quality gates, and git workflow
- Release Process - Automated semantic versioning and changelogs
- CI/CD Workflows - GitHub Actions workflows and the shared
setup-codebasecomposite action - Infrastructure - Helm charts, Terraform, and the Kubernetes deployment pipeline
- Dev Container - Containerized development environment
- Scripts - Local setup and maintenance scripts
Conventions live in 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 - Complete index of available skills
- Languages: TypeScript / React / Python / Comments
- Quality: Validate Code / Testing Strategy / Testing Mocks / Error Handling
- Workflows: Git Commits / PR Management / Branch Naming
- Tooling: Nx Workspaces / Generators / Task Running
- Triage: Failing CI / Rejected Commits / Spell Check
Other important files include CHANGELOG.md and SECURITY.md.
Template-driven code generation and conformance validation, templates synced from configuration/conformetry.config.ts by nx run synchronization:conformetry-generators:write.
| 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 |
The workspace's dependency graph, exported by codependix, regenerated by nx run codebase:codependix:write.
graph LR
affirmations["affirmations"]
caelundas["caelundas"]
callidescope_agents["callidescope-agents"]
callidescope_cli["callidescope-cli"]
callidescope_configuration["callidescope-configuration"]
callidescope_core["callidescope-core"]
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_core["codependix-core"]
codependix_examples["codependix-examples"]
codependix_file_imports["codependix-file-imports"]
codependix_nestjs_modules["codependix-nestjs-modules"]
codependix_nx_projects["codependix-nx-projects"]
codependix_output["codependix-output"]
codometer_agents["codometer-agents"]
codometer_cli["codometer-cli"]
codometer_configuration["codometer-configuration"]
codometer_core["codometer-core"]
codometer_examples["codometer-examples"]
codometer_languages["codometer-languages"]
codometer_measurement["codometer-measurement"]
codometer_output["codometer-output"]
conformetry_agents["conformetry-agents"]
conformetry_cli["conformetry-cli"]
conformetry_configuration["conformetry-configuration"]
conformetry_core["conformetry-core"]
conformetry_examples["conformetry-examples"]
conformetry_generation["conformetry-generation"]
conformetry_languages["conformetry-languages"]
conformetry_nx["conformetry-nx"]
conformetry_output["conformetry-output"]
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_core
callidescope_cli --> callidescope_graph
callidescope_cli --> callidescope_output
callidescope_cli --> logger
callidescope_configuration --> callidescope_core
callidescope_examples -.-> callidescope_cli
callidescope_examples --> callidescope_configuration
callidescope_examples --> callidescope_core
callidescope_graph --> callidescope_configuration
callidescope_graph --> callidescope_core
callidescope_graph --> logger
callidescope_nx --> callidescope_cli
callidescope_nx --> callidescope_configuration
callidescope_nx --> callidescope_core
callidescope_nx --> callidescope_graph
callidescope_nx --> callidescope_output
callidescope_nx --> logger
callidescope_output --> callidescope_configuration
callidescope_output --> callidescope_core
callidescope_output --> callidescope_graph
callidescope_output --> logger
codependix_boundaries --> codependix_configuration
codependix_boundaries --> codependix_core
codependix_boundaries --> codependix_file_imports
codependix_boundaries --> codependix_nestjs_modules
codependix_boundaries --> codependix_nx_projects
codependix_cli --> codependix_boundaries
codependix_cli --> codependix_configuration
codependix_cli --> codependix_core
codependix_cli --> codependix_output
codependix_cli --> logger
codependix_configuration --> codependix_core
codependix_examples --> codependix_boundaries
codependix_examples -.-> codependix_cli
codependix_examples --> codependix_configuration
codependix_examples --> codependix_core
codependix_examples --> codependix_file_imports
codependix_examples --> codependix_nestjs_modules
codependix_examples --> codependix_nx_projects
codependix_examples --> codependix_output
codependix_examples --> logger
codependix_nestjs_modules --> logger
codependix_output --> codependix_boundaries
codependix_output --> codependix_configuration
codependix_output --> codependix_core
codependix_output --> codependix_file_imports
codependix_output --> codependix_nestjs_modules
codependix_output --> codependix_nx_projects
codependix_output --> logger
codometer_cli --> codometer_configuration
codometer_cli --> codometer_core
codometer_cli --> codometer_measurement
codometer_cli --> codometer_output
codometer_cli --> logger
codometer_configuration --> codometer_core
codometer_examples -.-> codometer_cli
codometer_examples --> codometer_configuration
codometer_examples --> codometer_core
codometer_languages --> codometer_configuration
codometer_languages --> codometer_core
codometer_languages --> logger
codometer_measurement --> codometer_configuration
codometer_measurement --> codometer_core
codometer_measurement --> codometer_languages
codometer_measurement --> logger
codometer_output --> codometer_configuration
codometer_output --> codometer_core
codometer_output --> codometer_measurement
codometer_output --> logger
conformetry_cli --> conformetry_configuration
conformetry_cli --> conformetry_core
conformetry_cli --> conformetry_generation
conformetry_cli --> conformetry_output
conformetry_cli --> conformetry_validation
conformetry_cli --> logger
conformetry_configuration --> conformetry_core
conformetry_examples -.-> conformetry_cli
conformetry_examples --> conformetry_configuration
conformetry_examples --> conformetry_generation
conformetry_examples --> conformetry_nx
conformetry_examples --> conformetry_output
conformetry_examples --> conformetry_validation
conformetry_generation --> conformetry_configuration
conformetry_languages --> conformetry_configuration
conformetry_languages --> conformetry_core
conformetry_nx --> conformetry_configuration
conformetry_nx --> conformetry_generation
conformetry_nx --> conformetry_output
conformetry_nx --> conformetry_validation
conformetry_nx --> logger
conformetry_output --> conformetry_core
conformetry_output --> conformetry_languages
conformetry_validation --> conformetry_configuration
conformetry_validation --> conformetry_core
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.
Repository statistics measured by codometer, regenerated by nx run codebase:codometer.
The workspace's call graph, traced by callidescope, 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 | 5065 |
| Files | 1422 |
| Calls traced | 5656 |
| Call stacks | 1313 |
| Deepest stack | 17 |
| Stacks through recursion | 12 |
| Unfollowable calls | 337 |
| Project | Deepest | Limit | Headroom | Widest |
|---|---|---|---|---|
applications/caelundas |
16 | 16 | 0 | 12 |
applications/lexico |
9 | 9 | 0 | 9 |
applications/lexico-ingestion |
17 | 17 | 0 | 8 |
applications/meanderaw |
16 | 16 | 0 | 12 |
packages/ic-suite/callidescope/callidescope-cli |
15 | 15 | 0 | 10 |
packages/ic-suite/callidescope/callidescope-nx |
17 | 17 | 0 | 7 |
packages/ic-suite/codependix/codependix-boundaries |
12 | 12 | 0 | 7 |
packages/ic-suite/codependix/codependix-cli |
15 | 15 | 0 | 7 |
packages/ic-suite/codometer/codometer-cli |
15 | 15 | 0 | 9 |
packages/ic-suite/conformetry/conformetry-cli |
15 | 15 | 0 | 9 |
packages/ic-suite/conformetry/conformetry-languages |
13 | 13 | 0 | 11 |
packages/ic-suite/conformetry/conformetry-nx |
15 | 15 | 0 | 9 |
packages/lexico-components |
3 | 3 | 0 | 7 |
packages/lexico-entities |
3 | 3 | 0 | 3 |
packages/logger |
4 | 4 | 0 | 2 |
tools/synchronization |
10 | 10 | 0 | 10 |
tools/validation |
8 | 8 | 0 | 9 |
packages/ic-suite/codependix/codependix-core |
0 | 1 | 1 | 0 |
packages/ic-suite/codometer/codometer-core |
0 | 1 | 1 | 0 |
packages/ic-suite/conformetry/conformetry-core |
0 | 1 | 1 | 0 |
packages/ic-suite/callidescope/callidescope-configuration |
5 | 8 | 3 | 7 |
packages/ic-suite/codependix/codependix-output |
11 | 14 | 3 | 7 |
packages/ic-suite/codependix/codependix-nx-projects |
0 | 4 | 4 | 8 |
packages/ic-suite/conformetry/conformetry-configuration |
10 | 14 | 4 | 5 |
packages/ic-suite/codependix/codependix-configuration |
2 | 7 | 5 | 4 |
packages/ic-suite/codependix/codependix-nestjs-modules |
0 | 5 | 5 | 7 |
packages/ic-suite/callidescope/callidescope-graph |
5 | 11 | 6 | 8 |
packages/ic-suite/codometer/codometer-configuration |
3 | 9 | 6 | 4 |
packages/ic-suite/codometer/codometer-languages |
5 | 11 | 6 | 12 |
packages/ic-suite/conformetry/conformetry-generation |
2 | 8 | 6 | 4 |
packages/ic-suite/conformetry/conformetry-output |
0 | 6 | 6 | 4 |
packages/ic-suite/codometer/codometer-output |
4 | 11 | 7 | 16 |
packages/ic-suite/codependix/codependix-file-imports |
0 | 8 | 8 | 8 |
packages/ic-suite/callidescope/callidescope-output |
4 | 13 | 9 | 7 |
packages/ic-suite/conformetry/conformetry-validation |
0 | 13 | 13 | 10 |
configuration |
3 | 17 | 14 | 2 |
packages/ic-suite/codometer/codometer-measurement |
0 | 14 | 14 | 9 |
packages/ic-suite/callidescope/callidescope-core |
0 | 17 | 17 | 0 |
| Headroom | Projects |
|---|---|
| over limit | 0 |
| 0 — at limit | 17 |
| 1 | 0 |
| 2–3 | 2 |
| 4+ | 9 |
| no stacks | 10 |
None.
| Callable | Breadth | Calls directly | Location |
|---|---|---|---|
ModuleGraphService.buildGraph |
7 | ModuleGraphService.findAmbientModuleNames, ModuleGraphService.collectEdgesAndNodes, ModuleGraphService.toSorted(…), ModuleGraphService.sortNames, ModuleGraphService.map(…), ModuleGraphService.toSorted(…), ModuleGraphService.filter(…) |
packages/ic-suite/codependix/codependix-nestjs-modules/src/modules/module-graph/module-graph.service.ts:169 |