Install or update the Meticulous CLI
The
package is under active development and ships frequent changes and improvements. Other Meticulous skills assume the
command is on
and up to date, so run this skill once at the start of any Meticulous workflow.
This only needs to run once per conversation. If you've already run it earlier in this conversation, skip it — there's no need to re-check the version or re-update on every Meticulous skill invocation.
How to handle the install/update commands
This skill normally runs as a sub-step of another Meticulous skill. The install/update commands below (Steps 1, 3, and 5) are security-sensitive — they install packages and reach the network — so treat them as best-effort and non-blocking:
- You generally can't tell in advance whether a command is whitelisted. If it's whitelisted it runs silently; if not, attempting it surfaces a permission prompt. Either outcome is fine — let that be how you find out.
- If a command needs permission you don't have (a prompt appears, or the user declines it), treat that as the signal to recommend rather than force. Tell the user it's recommended to do XYZ — e.g. "It's recommended to update the Meticulous CLI by running
npm install --global @alwaysmeticulous/cli@latest
" — and move on. A declined prompt is not a failure; it just means "do it later."
- If the user doesn't want to run it now, continue anyway. Do not stop the workflow; carry on with the remaining steps and then return to the calling skill. The only hard requirement is that the command exists at all (Step 1) — if it's genuinely not installed and the user declines to install it, no Meticulous skill can proceed, so stop there.
The read-only checks (
,
,
) are safe to run directly.
Step 1 — Check the installed version
If the command is not found, the CLI is not installed. Install it globally (best-effort, see the note above):
bash
npm install --global @alwaysmeticulous/cli@latest
If installing isn't whitelisted, recommend the user run that command themselves. Because no Meticulous skill can run without the CLI, this is the one case where you should stop and wait if the user declines — there's nothing to continue with. Once installed, re-run
to confirm it's on
, and skip to Step 4.
Step 2 — Check the latest published version
bash
npm view @alwaysmeticulous/cli version
Step 3 — Update the CLI if outdated
If the installed version already matches the latest, skip to Step 4.
Otherwise, update according to how the CLI is installed (best-effort, see the note above — if updating isn't whitelisted, recommend the user run the appropriate command and continue regardless):
-
Globally installed (typical —
resolves to a path outside the current project):
bash
npm install --global @alwaysmeticulous/cli@latest
-
Locally installed in the project (
appears in the project's
and
resolves inside
):
bash
npm install --save-dev @alwaysmeticulous/cli@latest
# or, if the project uses pnpm:
pnpm add --save-dev @alwaysmeticulous/cli@latest
# or yarn:
yarn add --dev @alwaysmeticulous/cli@latest
If the update ran, re-run
and confirm it matches the latest before proceeding.
Step 4 — Check authentication and project selection
Verify the user is authenticated with Meticulous and has a project selected:
If the command reports that "No authentication found", stop and ask the user to run
themselves (it opens a browser to sign in). Do not attempt to run it on their behalf — it requires interactive sign-in.
If the command reports that "No project selected" (this happens when the user is a member of multiple projects), stop and ask the user to run
meticulous auth set-project
themselves to pick one. Do not attempt to run it on their behalf — it shows an interactive picker.
Step 5 — Update the installed Meticulous skills
The skills themselves are also under active development. Update them to the latest version (best-effort, see the note above):
bash
npx skills update --project
If this isn't whitelisted, recommend the user run it themselves. Either way — whether it ran, or the user declined — proceed with the calling skill.