Repository navigation
chore(ci): standardize CLI invocations to 'pnpm exec wesley' #23
Description
Activity
- addedchoreMaintenance / refactor / toolingMaintenance / refactor / toolingciContinuous Integration / workflowsContinuous Integration / workflows
on Oct 3, 2025 - added a commit that references this issue
on Oct 3, 2025 Issue #[23]: chore(ci): standardize CLI invocations to 'pnpm exec wesley'
Status: Not Done
Evidence: Searches of the repository and a review of the CI workflows confirm that multiple different CLI invocation methods are used.test-ci-locally.shand other test scripts usenode wesley.mjs, while CI workflows use a mix ofnode packages/wesley-host-node/bin/wesley.mjsand the incorrectnode wesley.mjs. The preferredpnpm exec wesleyis not used consistently.
Completion Plan:- Global Search and Replace: Perform a repository-wide search for all instances of
node wesley.mjs,node packages/wesley-cli/wesley.mjs, andnode packages/wesley-host-node/bin/wesley.mjs. - Standardize: Replace all of these invocations with
pnpm exec wesleyin documentation, test scripts, and CI workflows. - Verification: Run all CI workflows to ensure that the changes have not introduced any regressions.
Go-Public Requirement: No. This is a developer experience and maintainability improvement. As long as the CI pipelines are working, this is not a blocker for a public release.
Relevance: Active.
Priority: Medium
Impact Area: DX, CI, Docs
Security Findings: none
Docs & Tests: The documentation and test scripts will need to be updated as part of this change.
PR Cross-Reference: none
🧩 ADVANCED LENSES
Test Vector Check:
- Not applicable. The verification for this is a successful run of all CI workflows after the change.
Architecture Cross-Impact:
- This change has no impact on the software architecture. It is a change to how the CLI is invoked.
- Blast Radius: Low to Medium. This will touch a number of files, but the changes are simple and mechanical.
Developer Effort Estimate:
- < 1 engineer-day.
- Reasoning: This is a simple search-and-replace task, followed by a CI run to verify the changes.
Implementation Path Sketch:
# Example of the kind of change needed in a CI workflow - run: node packages/wesley-host-node/bin/wesley.mjs generate --schema example/ecommerce.graphql --allow-dirty + run: pnpm exec wesley generate --schema example/ecommerce.graphql --allow-dirty
Go-Public Risk Score: 1/10. Inconsistent invocations are a minor DX issue, not a product risk.
Integration Gate Suggestion:
- A successful run of all CI workflows after the change is a sufficient gate.
Storytelling Layer:
"The suspect used three different aliases. This case is about making him use his real name."
Notes & Recommendations: This is a good housekeeping task that will improve the consistency and maintainability of the repository. It's a good candidate for a quick fix.
- Inspector "G"
"A detective needs to know who he's talking to. One name, one face. It keeps the story straight."
- Global Search and Replace: Perform a repository-wide search for all instances of
- addedstatus: non-blockingThis issue is not a blocker for a release.This issue is not a blocker for a release.
on Oct 13, 2025 - addedtriage:bad-codeDebt intake that still needs scheduling, closure, or a repo moveDebt intake that still needs scheduling, closure, or a repo move
on Jun 24, 2026 Triage decision before state change:
This issue appears to track: standardizing old Node-era CLI invocations that referenced deleted package entrypoints.
Current Wesley doctrine: Wesley extracts GraphQL structure into deterministic, extensible IR. Downstream domains, runtimes, renderers, databases, and framework integrations own the semantics built from that IR. Repo governance, CI, release, docs-truth, and compiler-boundary checks stay in Wesley when they keep that contract honest.
Decision: close as completed.
Rationale: The old package CLI entrypoints are gone, active docs now point at the Rust/native
wesleyorcargo wesleycommands, and targeted search found no active references tonode packages/wesley-cli/wesley.mjsornode wesley.mjsoutside historical audit/graveyard material.Next action: I am closing this issue as completed because the requested repo-level outcome is already present in current Wesley.
Metadata
Metadata
Assignees
Labels
Projects
- StatusShow more project fieldsDone
- StatusShow more project fieldsNo status
- StatusShow more project fieldsIn Progress
Problem
node packages/wesley-cli/wesley.mjs,node wesley.mjs).Scope
.github/workflows/ci.yml,cli-quick.yml,cli-tests.yml.READMEand docs snippets to use wesleyAcceptance Criteria
markdown **Status**: ✅ Can run `node packages/wesley-cli/wesley.mjs`test/cli-models.bats:8:
bash export CLI_PATH="$BATS_TEST_DIRNAME/../packages/wesley-cli/wesley.mjs"test/cli-generators.bats:8:
bash export CLI_PATH="$BATS_TEST_DIRNAME/../packages/wesley-cli/wesley.mjs"test/e2e/run-tests.sh:102:
bash output=$(node "$PROJECT_ROOT/packages/wesley-cli/wesley.mjs" --help 2>&1)test/e2e/run-tests.sh:115:
bash output=$(node "$PROJECT_ROOT/packages/wesley-cli/wesley.mjs" generate --help 2>&1)test/e2e/run-tests.sh:128:
bash output=$(node "$PROJECT_ROOT/packages/wesley-cli/wesley.mjs" generate --schema nonexistent.graphql 2>&1 || true)test/e2e/run-tests.sh:150:
bash output=$(node "$PROJECT_ROOT/packages/wesley-cli/wesley.mjs" generate --schema minimal.graphql 2>&1 || true)test-ci-locally.sh:50:
bash node wesley.mjs --versiontest-ci-locally.sh:54:
bash node wesley.mjs --help | head -5test-ci-locally.sh:58:
bash echo 'type Query { hello: String }' | node wesley.mjs generate --schema - --json --quiet || echo "✓ Expected parser failure"packages/wesley-cli/test/demo-stdin-json.sh:36:
bash echo 'Command: echo "type Query { hello: String }" | node wesley.mjs generate --schema - --quiet ; echo $?'packages/wesley-cli/test/demo-stdin-json.sh:47:
bash echo 'Command: echo "type Query { hello: String }" | node wesley.mjs generate --stdin --quiet ; echo $?'packages/wesley-cli/test/demo-stdin-json.sh:58:
bash echo 'Command: echo -n "" | node wesley.mjs generate --schema - ; echo $?'packages/wesley-cli/test/demo-stdin-json.sh:69:
bash echo 'Command: echo "type Query { hello: String }" | node wesley.mjs generate --stdin --json'packages/wesley-cli/test/demo-stdin-json.sh:94:
bash echo 'Command: echo -n "" | node wesley.mjs generate --schema - --json'packages/wesley-cli/test/demo-stdin-json.sh:106:
bash echo 'Command: echo -n "" | node wesley.mjs generate --schema - --quiet ; echo $?'packages/wesley-cli/test/demo-stdin-json.sh:122:
bash echo 'Command: node wesley.mjs generate --help | grep -A2 -B2 stdin'packages/wesley-cli/test/demo-stdin-json.sh:132:
bash echo 'Command: echo "type Query { hello: String }" | node wesley.mjs generate --stdin --json --quiet 2>/dev/null | jq -r .success' returns no matches.