tessl install tessl/npm-eslint-config-node@3.0.0Pluggable ESLint configuration for Node.js that extends ESNext with Node.js-specific safety checks and best practices
Agent Success
Agent success rate when using this tile
73%
Improvement
Agent success rate improvement when using this tile compared to baseline
1.12x
Baseline
Agent success rate without this tile
65%
Build a command-line tool that manages multiple related packages within a single repository, allowing coordinated development and publishing.
Your tool should support the following operations:
Initialize the workspace by installing dependencies across all packages and creating symlinks between local packages that depend on each other. This allows packages in the monorepo to reference each other during development without publishing to a registry.
Update package versions across the workspace. Support both independent versioning (each package maintains its own version) and fixed/locked versioning (all packages share the same version). When updating versions, automatically update cross-package dependencies to match the new versions.
Automatically discover all packages within the workspace by scanning configured directories (e.g., packages/*). Each package should have its own package.json file.
When bootstrapping, hoist common dependencies to the root node_modules directory to avoid duplication, while still maintaining package-specific dependencies locally when needed.
Create a configuration file at the root level that specifies:
packages/*)Support at least these commands:
bootstrap: Install all dependencies and link local packagesversion: Bump versions across packageslist: Display all packages in the workspaceHandle circular dependencies appropriately
Ensure cross-package symlinks are created correctly for local development
Bootstrapping a workspace with three packages (pkg-a, pkg-b, pkg-c) where pkg-c depends on pkg-a creates a symlink from pkg-c/node_modules/pkg-a to the local pkg-a directory @test
Running the version command with the "patch" increment on a fixed-versioning workspace updates all package.json files to the same new version @test
Discovering packages using the glob pattern packages/* correctly identifies all subdirectories containing a package.json file @test
Provides monorepo management capabilities including bootstrapping, versioning, and publishing.
@generates
/**
* Initializes a workspace manager for a monorepo
* @param {string} rootPath - Path to the repository root
* @param {Object} config - Workspace configuration
* @returns {WorkspaceManager}
*/
function createWorkspaceManager(rootPath, config) {}
class WorkspaceManager {
/**
* Bootstrap the workspace: install dependencies and link packages
* @returns {Promise<void>}
*/
async bootstrap() {}
/**
* Update package versions
* @param {string} increment - Version increment type ('major', 'minor', 'patch')
* @returns {Promise<void>}
*/
async version(increment) {}
/**
* List all packages in the workspace
* @returns {Promise<Array<Object>>}
*/
async listPackages() {}
}
module.exports = { createWorkspaceManager };