Pass --yes and --quiet to the Skills CLI#952
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✅ Files skipped from review due to trivial changes (2)
WalkthroughThe PR forwards ChangesQuiet Skill Process Execution with Conditional --yes Flag
Sequence DiagramsequenceDiagram
participant User
participant InitCommand
participant Execute as execute()
participant ChildProcess
participant Logger
User->>InitCommand: run init [--quiet] [--yes]
InitCommand->>InitCommand: build command (append --yes if provided)
InitCommand->>Execute: execute(command)
Execute->>ChildProcess: spawn(command, shell:true, stdio: pipe if quiet)
alt Child exits 0
ChildProcess-->>Execute: exit 0
Execute-->>InitCommand: resolve()
InitCommand->>Logger: log success (no buffered output shown)
else Child exits non-zero or signal
ChildProcess-->>Execute: exit non-zero / signal + buffered stdout/stderr
Execute-->>InitCommand: reject(error with buffered logs)
InitCommand->>Logger: logger.fatal(error message with captured logs)
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🦋 Changeset detectedLatest commit: d1e1ce9 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The plan is too vague. It's not clear that |
|
Plan looks good. |
|
🤖 Hi @yamcodes, I've received your request, and I'm working on it now! You can track my progress in the logs for more details. |
|
🤖 I'm sorry @yamcodes, but I was unable to process your request. Please see the logs for more details. |
arkenv
@arkenv/bun-plugin
@arkenv/cli
@arkenv/fumadocs-ui
@arkenv/vite-plugin
commit: |
📦 Bundle Size Report✅ All size limits passed! |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@openspec/changes/skill-process-yes-quiet-flags/design.md`:
- Around line 24-25: The Risks section in design.md contains a duplicated
sentence fragment ("produce gigabytes of output, so this risk is acceptable for
now.") repeated across the Memory consumption paragraph; remove the duplicate
trailing fragment on the second line so the paragraph reads once and is not
corrupted (edit the Memory consumption paragraph in
openspec/changes/skill-process-yes-quiet-flags/design.md to delete the repeated
fragment).
In `@packages/cli/src/commands/init.ts`:
- Around line 171-180: The current child process close handler
(child.on("close", (code: number | null) => { ... })) treats a null code the
same as a numeric exit code and produces "Command failed with code null"; change
the logic to capture termination signal and include it in the error message:
listen to the child's "exit" event signature (child.on("exit", (code, signal) =>
{ ... })) or store the signal in an outer variable and then in the existing
close handler check if code === null and append `Signal: ${signal}` (alongside
existing stdout/stderr handling and isQuiet) before calling reject(new
Error(message)); ensure references to isQuiet, stdout, stderr and the reject(new
Error(message)) path are updated so failures show either the numeric code or the
terminating signal.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 5fc05b7a-7544-4d47-9f0a-7f4f806b9cc5
📒 Files selected for processing (9)
apps/www/content/docs/cli/index.mdxopenspec/changes/skill-process-yes-quiet-flags/.openspec.yamlopenspec/changes/skill-process-yes-quiet-flags/design.mdopenspec/changes/skill-process-yes-quiet-flags/proposal.mdopenspec/changes/skill-process-yes-quiet-flags/specs/skill-quiet-execution/spec.mdopenspec/changes/skill-process-yes-quiet-flags/tasks.mdpackages/cli/src/commands/help.tspackages/cli/src/commands/init.test.tspackages/cli/src/commands/init.ts
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.changeset/social-geese-jog.md:
- Line 15: Fix the typo in the user-facing release note by locating the
occurrence of the misspelled word "recommnded" in the release note text and
replace it with "recommended" so the sentence reads correctly (ensuring the
surrounding sentence about avoiding prompts in subprocesses like the Vercel
Skills process remains unchanged).
In `@packages/cli/src/commands/init.ts`:
- Around line 159-168: The quiet-mode log buffering (variables stdout/stderr
collected from child.stdout/child.stderr when isQuiet is true) can grow
unbounded; cap these buffers to a fixed size (e.g., keep only the last N
bytes/chars) before appending to avoid unbounded memory growth on large failing
installs. Modify the handlers attached to child.stdout?.on("data", ...) and
child.stderr?.on("data", ...) to append new data but trim the buffer to the
configured max (or rotate to keep the tail), and reuse the same max logic for
the handlers around lines 179–181 so both stdout and stderr are capped
consistently.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: cf8749d3-1fa7-4ee2-ac4d-bcb1bed06830
📒 Files selected for processing (4)
.changeset/social-geese-jog.mdopenspec/changes/skill-process-yes-quiet-flags/design.mdpackages/cli/src/commands/init.test.tspackages/cli/src/commands/init.ts
✅ Files skipped from review due to trivial changes (1)
- openspec/changes/skill-process-yes-quiet-flags/design.md
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @arkenv/cli@0.0.5 ### Patch Changes - #### Add agent skill support _[`#945`](#945) [`63d6237`](63d6237) [@yamcodes](https://github.com/yamcodes)_ The CLI now has a new `--agent` flag that lets the ArkEnv agent skill interact with it in a token-sensitive way. The skill has been updated to support this new mode. Also, the CLI will now suggest to install the agent skill for you when in non-`--agent` mode. Read more in the [ArkEnv CLI docs](https://arkenv.js.org/docs/cli). - #### Improve "done" message text _[`#954`](#954) [`fe10ef4`](fe10ef4) [@yamcodes](https://github.com/yamcodes)_ The output now clearly distinguishes between the local scaffolding and the AI-powered refinement: 1 │ 2 ◇ Next steps ─────────────────────────────────────────────────────────────────╮ 3 │ │ 4 │ 1. Check ./src/env.ts and refine your environment schema. │ 5 │ 2. Import and use: import { env } from "./src/env" │ 6 │ 3. (Recommended) Install the AI skill: pnpm dlx skills add yamcodes/arkenv │ 7 │ Then run /arkenv inside your AI assistant to finish. │ 8 │ │ 9 ├──────────────────────────────────────────────────────────────────────────────╯ 10 │ 11 └ ⛯ ArkEnv scaffolding complete. Happy coding! - #### Install framework plugins _[`#948`](#948) [`1dca74c`](1dca74c) [@yamcodes](https://github.com/yamcodes)_ The ArkEnv CLI now installs framework plugins as part of the scaffolding process if a relevant runtime/framework is selected. - #### Passthrough `--yes` and `--quiet` to underlying process _[`#952`](#952) [`10cbb7d`](10cbb7d) [@yamcodes](https://github.com/yamcodes)_ The ArkEnv CLI will now pass the flags `--yes` and `--quiet` to underlying processes. This means that if you run: ```sh pnx @arkenv/cli init --yes ``` It would now use the recommended settings and avoid prompts even in sub-processes like the Vercel Skills process to add the ArkEnv skill. Similarly, if you run: ```sh pnx @arkenv/cli init --quiet ``` You will not be exposed to the underlying Vercel Skills output, except for errors which are buffered in memory. (Resolves on exit code 0, discarding buffered output on success) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary by CodeRabbit
New Features
--yesto subprocesses when provided and runs skill installs in quiet mode that suppresses output unless the command fails (buffered logs shown on failure).Documentation
--yes,--quiet,--json,--agent, and--helpto reflect the new behaviors and messaging.Tests
Chores