Skip to content
Back to skills

Projects

ASecurity

Understanding the various projects/packages available

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 5, 2026
developmenttypescriptreactnodeapidocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 5, 2026

npx -y skills add JacobLey/leyman --skill projects --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Projects?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Projects
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jacobley-projects/badge)](https://www.skillsdirectory.com/skills/jacobley-projects)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: projects
description: Understanding the various projects/packages available
---

# Projects

A project is any directory with a `project.json`. All current projects are TypeScript packages with a `package.json` and a README.md.

- `tools/`: libraries consumed via `import`.
- `apps/`: CLIs, Nx plugins, and larger packages that are used other than by plain `import`.
- `leyman/`: private, repo-internal packages that are never published.
- `e2e/`: private, test-only packages that check several packages together, in ways no single package can (e.g. because depending on each other would be circular). See [create-package](../create-package/SKILL.md#e2e-packages).

## Packages

**When you add or remove a package, update the table in this file.** Add the new row in alphabetical order within the correct section (Apps, Tools, Leyman, or E2E). The description should match the one-line subtitle in the package's README.md.

See each package's README.md for full usage documentation.

### Apps

| Package | Description |
|---------|-------------|
| [`barrelify`](../../../apps/barrelify/) | Auto-generate TypeScript barrel (`index.ts`) files |
| [`juniper`](../../../apps/juniper/) | JSON Schema builder with static TypeScript inference |
| [`juniper-validator`](../../../apps/juniper-validator/) | StandardSchema-compliant validator wrapping Juniper schemas |
| [`nx-lifecycle`](../../../apps/nx-lifecycle/) | Nx plugin for managing ordered task dependency lifecycles |
| [`populate-files`](../../../apps/populate-files/populate-files/) | Write dynamic content to static files with CI sync checking |
| [`load-populate-files`](../../../apps/populate-files/load-populate-files/) | Load a config file and run `populate-files` from CLI |

### Tools

| Package | Description |
|---------|-------------|
| [`common-proxy`](../../../tools/common-proxy/) | Synchronously expose ESM-backed functions from CommonJS |
| [`default-import`](../../../tools/default-import/) | Correctly extract default exports from CJS modules in ESM |
| [`entry-script`](../../../tools/entry-script/) | Safe CLI entry point pattern — runs only as the Node entrypoint |
| [`enum-to-array`](../../../tools/enum-to-array/) | Convert TypeScript enums to typed arrays of keys/values |
| [`find-import`](../../../tools/find-import/) | Find and load the first matching JS/JSON file in parent directories |
| [`format-file`](../../../tools/format-file/) | Format file content via Biome or Prettier |
| [`haywire`](../../../tools/haywire/) | Type-safe dependency injection — invalid containers are compile errors |
| [`haywire-launcher`](../../../tools/haywire-launcher/) | Connect Haywire DI containers to `entry-script` CLI entry points |
| [`iso-crypto`](../../../tools/iso-crypto/) | Isomorphic cryptography for Node.js and Browser |
| [`mocha-chain`](../../../tools/test-chain/mocha-chain/) | Type-safe Mocha hook chaining with typed context propagation |
| [`vitest-chain`](../../../tools/test-chain/vitest-chain/) | Type-safe Vitest hook chaining with typed context propagation |
| [`test-chain-core`](../../../tools/test-chain/test-chain-core/) | Framework-agnostic internals shared by `mocha-chain` and `vitest-chain` |
| [`named-patch`](../../../tools/named-patch/) | Testable monkey-patching via named function wrappers |
| [`normalized-react-query`](../../../tools/normalized-react-query/) | Type-safe React Query wrappers that enforce consistent key/query pairing |
| [`parse-cwd`](../../../tools/parse-cwd/) | Resolve and validate a working directory from string, URL, or undefined |
| [`punycode-esm`](../../../tools/punycode-esm/) | ESM port of the Punycode encoding library |
| [`sinon-typed-stub`](../../../tools/sinon-typed-stub/) | Type-safe Sinon spy, stub, and mock wrappers |
| [`static-emitter`](../../../tools/static-emitter/) | Typed EventEmitter/EventTarget for Node.js and Browser |


### Leyman

| Package | Description |
|---------|-------------|
| [`eslint-config`](../../../leyman/eslint-config) | Very opinionated eslint config used internally for package linting |
| [`expect`](../../../leyman/expect) | Pre-configured chai assertions for internal tests |
| [`main`](../../../leyman/main) | Workaround for installing "global" packages, and executing repo-wide tasks |

### E2E

| Package | Description |
|---------|-------------|
| [`eslint-config-schema`](../../../e2e/eslint-config-schema) | Checks that eslint-config's hand-written package.json schema matches what juniper builds |
| [`normalized-react-query-ssr`](../../../e2e/normalized-react-query-ssr) | Checks that normalized-react-query's preloading carries across a server render into client hydration |
| [`iso-crypto-browser`](../../../e2e/iso-crypto-browser) | Checks that iso-crypto's browser build runs on web APIs alone, with no Node.js APIs |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…