Skip to content

chore(ci): standardize CLI invocations to 'pnpm exec wesley' #23

Description

@flyingrobots

Problem

  • Several docs and workflows reference non-existent entrypoints (e.g., node packages/wesley-cli/wesley.mjs, node wesley.mjs).

Scope

  • Replace all CLI calls with wesley
  • Update: .github/workflows/ci.yml, cli-quick.yml, cli-tests.yml.
  • Update README and docs snippets to use wesley

Acceptance Criteria

  • DRIFT_ANALYSIS_REPORT.md:35:
    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 --version
    test-ci-locally.sh:54:
    bash node wesley.mjs --help | head -5
    test-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.
  • CI workflows pass with updated commands.
  • README/docs reflect the canonical invocation.

Activity

  1. added
    choreMaintenance / refactor / tooling
    ciContinuous Integration / workflows
    on Oct 3, 2025
  2. flyingrobots commented on Oct 13, 2025

    @flyingrobots
    OwnerAuthor

    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.sh and other test scripts use node wesley.mjs, while CI workflows use a mix of node packages/wesley-host-node/bin/wesley.mjs and the incorrect node wesley.mjs. The preferred pnpm exec wesley is not used consistently.
    Completion Plan:

    1. Global Search and Replace: Perform a repository-wide search for all instances of node wesley.mjs, node packages/wesley-cli/wesley.mjs, and node packages/wesley-host-node/bin/wesley.mjs.
    2. Standardize: Replace all of these invocations with pnpm exec wesley in documentation, test scripts, and CI workflows.
    3. 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."

  3. added
    triage:bad-codeDebt intake that still needs scheduling, closure, or a repo move
    on Jun 24, 2026
  4. flyingrobots commented on Jun 25, 2026

    @flyingrobots
    OwnerAuthor

    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 wesley or cargo wesley commands, and targeted search found no active references to node packages/wesley-cli/wesley.mjs or node wesley.mjs outside 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.

  5. moved this from In Progress to Done in Wesley Roadmapon Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    choreMaintenance / refactor / toolingciContinuous Integration / workflowsstatus: non-blockingThis issue is not a blocker for a release.triage:bad-codeDebt intake that still needs scheduling, closure, or a repo move

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions