Skip to content

feat(dev): Add development tools and custom executors#25

Merged
thoroc merged 4 commits intomainfrom
feat/pr5-dev-tools
Feb 3, 2026
Merged

feat(dev): Add development tools and custom executors#25
thoroc merged 4 commits intomainfrom
feat/pr5-dev-tools

Conversation

@thoroc
Copy link
Contributor

@thoroc thoroc commented Jan 31, 2026

Summary

Development utilities including custom Nx executors and refactored dev tools.

Changes

  • Add dev-proxy executor for plugin development workflow
  • Add check-mirror-exists executor for CI/CD validation
  • Add validate-skill-md executor for skill markdown validation
  • Add validate-skills executor for skill validation
  • Development tool utilities in tools/dev/
  • Independent infrastructure - no package dependencies

Dependencies

Blocks

  • None (enables development workflows)

Testing

  • Dev tools tests: bunx nx test dev
  • Dev proxy tests: bunx nx run dev-proxy:test

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds development tools and custom Nx executors to support plugin development workflows. It builds upon the Biome infrastructure from PR #21 and prepares for integration with the skills package from PR #24.

Changes:

  • Refactored dev-proxy executor to use AsyncGenerator pattern for better progress reporting
  • Added lint targets to dev-proxy and check-mirror-exists executors using Biome
  • Enhanced testability with __noExit parameter for SIGINT handling in tests
  • Removed obsolete ESLint directive from check-mirror-exists executor

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tools/executors/dev-proxy/schema.json Added internal testing parameters (__runExecutor, __spawnSync, __noExit) for better test isolation
tools/executors/dev-proxy/project.json Added Biome lint target to enforce code quality standards
tools/executors/dev-proxy/executor.ts Converted to AsyncGenerator pattern, added __noExit support, and added debug logging
tools/executors/dev-proxy/executor.test.ts Updated tests to handle AsyncGenerator pattern with .next() calls
tools/executors/check-mirror-exists/project.json Added Biome lint target for consistency
tools/executors/check-mirror-exists/executor.ts Removed obsolete ESLint max-lines directive as Biome handles this

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

// Failed to stop iterator
}
});
console.log(`Started build target for ${projName} via @nx/devkit.runExecutor`);
Copy link

Copilot AI Feb 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This console.log statement appears to be debug output. According to the biome.json configuration, console.log is not allowed by default (only warn, error, info, and debug are permitted). Consider either removing this line or changing it to console.info for informational output.

Copilot uses AI. Check for mistakes.

if (!started) {
try {
console.log(`Falling back to CLI watcher for ${projName}`);
Copy link

Copilot AI Feb 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This console.log statement appears to be debug output. According to the biome.json configuration, console.log is not allowed by default (only warn, error, info, and debug are permitted). Consider either removing this line or changing it to console.info for informational output.

Suggested change
console.log(`Falling back to CLI watcher for ${projName}`);
console.info(`Falling back to CLI watcher for ${projName}`);

Copilot uses AI. Check for mistakes.
if (options.apply === false) args.push('--no-apply');
args.push(...requestedPlugins);

console.log('Running dev proxy runtime:', ['bunx', 'tsx', script, ...args].join(' '));
Copy link

Copilot AI Feb 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This console.log statement appears to be debug output. According to the biome.json configuration, console.log is not allowed by default (only warn, error, info, and debug are permitted). Consider either removing this line or changing it to console.info for informational output.

Copilot uses AI. Check for mistakes.
const sigintHandler = async () => {
if (exiting) return;
exiting = true;
console.log('\nInterrupted. Stopping build watchers and exiting...');
Copy link

Copilot AI Feb 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This console.log statement appears to be debug output. According to the biome.json configuration, console.log is not allowed by default (only warn, error, info, and debug are permitted). Consider either removing this line or changing it to console.info for informational output.

Suggested change
console.log('\nInterrupted. Stopping build watchers and exiting...');
console.info('\nInterrupted. Stopping build watchers and exiting...');

Copilot uses AI. Check for mistakes.
const runExecutorImpl = options.__runExecutor ?? nxRunExecutor;
const spawnSyncImpl = options.__spawnSync ?? spawnSync;

console.log('dev-proxy: workspaceRoot=', workspaceRoot);
Copy link

Copilot AI Feb 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This console.log statement appears to be debug output that was left in. According to the biome.json configuration, console.log is not allowed by default (only warn, error, info, and debug are permitted). Consider either removing this line or changing it to console.info or console.debug for informational output.

Suggested change
console.log('dev-proxy: workspaceRoot=', workspaceRoot);
console.debug('dev-proxy: workspaceRoot=', workspaceRoot);

Copilot uses AI. Check for mistakes.
@thoroc thoroc force-pushed the feat/pr5-dev-tools branch from 2220e54 to ab85df2 Compare February 3, 2026 06:15
- Add dev-proxy executor for plugin development workflow
- Add check-mirror-exists executor for CI/CD validation
- Independent infrastructure - no package dependencies
- Enables development workflows across the monorepo

These executors provide essential tooling for plugin development
and CI/CD pipeline validation.
@thoroc thoroc force-pushed the feat/pr5-dev-tools branch from ab85df2 to bffbb6f Compare February 3, 2026 08:50
@thoroc thoroc merged commit 366ed37 into main Feb 3, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant