Skip to content

feat: enhance interactive init with platform selection and security updates#1

Merged
benym merged 2 commits into
masterfrom
main
May 14, 2026
Merged

feat: enhance interactive init with platform selection and security updates#1
benym merged 2 commits into
masterfrom
main

Conversation

@benym
Copy link
Copy Markdown
Contributor

@benym benym commented May 14, 2026

No description provided.

benym added 2 commits May 14, 2026 20:56
- Add interactive platform multi-select with scope choice (global/project)
- Install OpenSpec + Superpowers via official CLI in batch mode
- Copy Comet skills to all selected platforms
- Add ASCII art banner for init command
- Add .npmignore to prevent source/secrets from entering npm package
- Add prepublish-check.js security scan (blocks publish if secrets detected)
- Enhance .gitignore with comprehensive secret/IDE/credential patterns
- Comprehensive English README with ASCII banner, platform table,
  skills reference, workflow diagram, and project structure
- Version bump to 0.1.1
@benym benym merged commit d6c8d4b into master May 14, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request significantly enhances the Comet CLI by introducing an interactive initialization process and robust security measures. Key updates include a refactored init command that supports 28 AI coding platforms with configurable installation scopes, a new pre-publish security script to scan for secrets, and comprehensive documentation updates. Reviewer feedback focused on improving the reliability of the installation process, specifically recommending the use of development dependencies for local tool installations and switching execSync output handling from pipe to inherit to avoid potential buffer overflow issues and provide better progress visibility to the user.

Comment thread src/core/init.ts
Comment on lines +137 to +139
? 'npm install -g @fission-ai/openspec@latest'
: 'npm install @fission-ai/openspec@latest';
execSync(npmCmd, { cwd: projectPath, stdio: 'pipe', timeout: 120_000 });
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

When installing @fission-ai/openspec at the project level, it is generally better to save it as a development dependency since it is a tool used during development.

Suggested change
? 'npm install -g @fission-ai/openspec@latest'
: 'npm install @fission-ai/openspec@latest';
execSync(npmCmd, { cwd: projectPath, stdio: 'pipe', timeout: 120_000 });
const npmCmd = scope === 'global'
? 'npm install -g @fission-ai/openspec@latest'
: 'npm install --save-dev @fission-ai/openspec@latest';

Comment thread src/core/init.ts
? 'npm install -g @fission-ai/openspec@latest'
: 'npm install @fission-ai/openspec@latest';
execSync(npmCmd, { cwd: projectPath, stdio: 'pipe', timeout: 120_000 });
return isCommandAvailable('openspec');
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Using stdio: 'pipe' with execSync for commands like npm install can be problematic. If the output exceeds the default buffer size (typically 1MB), the process will crash. Additionally, it hides progress from the user during a potentially long operation. Consider using stdio: 'inherit' to show progress and avoid buffer limits, or at least increase maxBuffer.

Suggested change
return isCommandAvailable('openspec');
execSync(npmCmd, { cwd: projectPath, stdio: 'inherit', timeout: 120_000 });

Comment thread src/core/init.ts

execSync(`openspec init ${flags}`, {
cwd: projectPath,
stdio: 'pipe',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Similar to the npm install command, using stdio: 'pipe' here risks a buffer overflow if openspec init produces significant output. Using stdio: 'inherit' would provide better visibility into the initialization process.

Suggested change
stdio: 'pipe',
stdio: 'inherit',

Comment thread src/core/init.ts

execSync(`npx skills add obra/superpowers ${flags}`, {
cwd: projectPath,
stdio: 'pipe',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Using stdio: 'pipe' for npx skills add may cause issues if the command produces a lot of output or if npx prompts for package installation. Consider using stdio: 'inherit'.

Suggested change
stdio: 'pipe',
stdio: 'inherit',

benym pushed a commit that referenced this pull request May 29, 2026
fix: enable shell option for Windows in command execution
chentao326 pushed a commit to chentao326/comet that referenced this pull request May 29, 2026
…-pilot

Port PR rpamis#51 enhancements:
- Add AskUserQuestion tool requirement to decision point descriptions
- Add Red Flags table (ZH: 红旗清单) for agent psychology pitfalls
- Add 'open phase' as decision point rpamis#1
- Add 'no text output substitute for tool waiting' enforcement rule
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