Command Reference

This file is auto-generated. Do not edit manually.

Complete reference for all CLI commands grouped by category.

common commands

competencies commands

athena commands

cat commands

cicd commands

qc commands

tk commands

ws commands

common commands

wseng commit

Performs a commit; generates the commit message using AI.

Demo: https://www.loom.com/share/f511f1e3a9794574a11943ba3aa6acfe

Aliases:

  • wseng cm

Arguments:

  • type: The type of the commit (e.g., ai, feature, fix, etc.).
  • message: The commit message to use. If provided, skips AI message generation.
  • ticketId: The ticket ID. If not provided, the ticket ID will be read from the context.

Options:

  • --type <value>: The type of the commit (e.g., ai, feature, fix, etc.).
  • --message <value>: The commit message to use. If provided, skips AI message generation.
  • --ticket-id <value>: The ticket ID. If not provided, the ticket ID will be read from the context.
  • --stage: Whether or not to stage all changes if there are no staged changes.
  • --no-push: Whether or not to push the commit to the remote repository.
  • --tags <value>: The tags to apply to the commit.
  • --feedback <value>: Optional feedback for the AI to consider when generating the commit message.
  • --check: Optional pre-commit checks (whether there are files not fully covered with tests, or modifications done only for debugging purposes)
  • --empty: Create an empty commit with no changes
  • --summary-only: Create a commit with only the summary

wseng context-tree

Generate a context tree for specified files, showing dependencies and related files

Demo: https://www.loom.com/share/f596ab819e814720972867179e803085

Aliases:

  • wseng ct

Options:

  • --files <value>: File paths or glob patterns separated by semicolons
  • --no-include-self: Include the input files in the output
  • --include-tests: Include corresponding test files in the output
  • --output-type <value>: Output type: simple (exact paths only) or extended (all glob patterns)
  • --max-depth <value>: Maximum depth of the dependency tree

Example: wseng context-tree --files="path/to/your/file.ts"

wseng eval

Evaluate arbitrary TypeScript code with access to the DI container.

Available utilities:

  • getModule(path): Get an already-loaded module by its relative path from src/
  • getService(path, exportName?): Get a service instance from the DI container by its relative path

Examples: wseng eval "const mod = getModule('constants/llm-models'); return Object.keys(mod);" wseng eval "const chat = getService('integrations/google/services/google-chat.service'); return chat.constructor.name;" wseng eval "const { LLMModel } = getModule('constants/llm-models'); return LLMModel.CLAUDE_SONNET;" wseng eval "const llm = getService('services/llm-service'); return await llm.complete({ model: 'claude-sonnet', messages: [{ role: 'user', content: 'Hi' }] });"

Aliases:

  • wseng e

Arguments:

  • code: TypeScript/JavaScript code to evaluate

Options:

  • --code <value>: TypeScript/JavaScript code to evaluate

wseng fetch-context

Fetch associated context and save as markdown

Demo: https://drive.google.com/open?id=10LhUHK2nZTKDLibLGtHWPemz6MxgrNO4&usp=drive_fs

Aliases:

  • wseng fetchc
  • wseng context
  • wseng fc

Arguments:

  • url: Any URL that is supported

Options:

  • --url <value>: Any URL that is supported
  • --save <value>: Save content as a file in the context folder
  • --save-each: Save content of the each document separately in the context folder
  • --stdout: Output result into the stdout

wseng fetch-pr-review

Fetch PR review comments and save them in the context folder

Aliases:

  • wseng prc

Arguments:

  • prUrlOrTicketId: Pull request URL or ticket ID (if not provided, will be inferred)

Options:

  • --pr-url-or-ticket-id <value>: Pull request URL or ticket ID (if not provided, will be inferred)
  • --implement: Fix unresolved review comments automatically

wseng generate-changelog

Generate a changelog and summary for the current branch and update the ticket.

Demo: https://www.loom.com/share/f89896e670724515b66fa0bc53d99271

Aliases:

  • wseng changelog
  • wseng cl

Arguments:

  • ticketId: The ticket ID
  • description: Override for the ticket description
  • prUrl: Override for the pull request URL

Options:

  • --ticket-id <value>: The ticket ID
  • --description <value>: Override for the ticket description
  • --pr-url <value>: Override for the pull request URL
  • --base-branch <value>: Override for the base branch used for generating diff

wseng get-backlog

Fetch and select from highest priority unassigned tickets in the backlog

Demo: https://drive.google.com/file/d/1RKBfNkB1j6LkR041UV_o6Mnr06MznD0s/view?usp=drivesdk

Aliases:

  • wseng gb
  • wseng backlog
  • wseng my-backlog
  • wseng mb

Options:

  • --ai: Get AI backlog tickets
  • --self-reported: Show tickets reported by you
  • --self-assigned: Show tickets assigned to you

wseng git-sync

Syncs local branches with remote branches (if applicable).

Aliases:

  • wseng gs

wseng how-to-test

Generate 'How to Test' instructions and update the ticket.

Demo: https://www.loom.com/share/0ae58b46155f450f916d0d6ad8de12d0

Aliases:

  • wseng ht
  • wseng htt

Arguments:

  • ticketId: The ticket ID

Options:

  • --skip-preparation-steps: Skip the preparation steps (optional, default is false)
  • --ticket-id <value>: The ticket ID
  • --type <value>: The type of the ticket - backend or frontend (optional, default is empty)
  • --pr-url <value>: Override for the pull request URL (optional, by default is taken from ticket)
  • --include <value>: The glob patterns to include files to the context (optional, default is empty)
  • --prompt <value>: A path to a file containing the requirements for the 'How to Test' instructions (optional, default is empty)
  • --skip-prompt: Skip the entering prompt in editor if prompt is not provided (optional, default is false)
  • --simplified-output: Use simplified prompt for 'How to Test' instructions (optional, default is false)
  • --use-postman: Use Postman to generate 'How to Test' instructions (optional, default is false)
  • --postman-workspace-id <value>: The Postman workspace ID (optional, default is CoachBot workspace if --use-postman is used)
  • --postman-collection-id <value>: The Postman collection ID (optional, default is TeachTap collection if --use-postman is used)
  • --no-include-acceptance-tests: Include ticket acceptance tests (optional, default is true)
  • --no-include-git-diff: Include git diff in the prompt (optional, default is true)
  • --include-sql: Include helpful SQL queries (optional, default is false)

wseng http-server

Run local HTTP server with Data API and Chat endpoints for development.

Aliases:

  • wseng http
  • wseng serve

Options:

  • --port <value>: Port to listen on
  • --host <value>: Host to bind to

Example:

Running the HTTP server locally: wseng http-server --port 3000 --host localhost

Then use ngrok to expose it: ngrok http 3000

Configure the ngrok URL in Google Chat app settings.

wseng init

Initialize the CLI for a project with the default configuration.

Aliases:

  • wseng i

Options:

  • --validate: Validate the project configuration.
  • --aws: Initialize the AWS configuration.
  • --default-aws-account <value>: The default AWS account to use.
  • --google: Initialize Google authentication (Drive, Sheets).
  • --automation: Initialize the CLI for automation usage.

wseng mcp-http

Run MCP server over HTTP that exposes various tools, prompts, and resources.

Demo: https://drive.google.com/file/d/1oQ17c9Sxouj-wx2-sx_I5moPtrVY5ysv/view?usp=drivesdk

Aliases:

  • wseng mcp-server-http
  • wseng mcph

Options:

  • --port <value>: Port to run the HTTP server on
  • --host <value>: Host to bind the HTTP server to

Example:

Running the HTTP MCP server: wseng mcp-http --port 3000 --host localhost

Configuring in Claude Desktop or other MCP clients: "mcpServers": { "wseng": { "url": "http://localhost:3000/mcp" } }

Testing with MCP Inspector: npx -y @modelcontextprotocol/inspector http://localhost:3000/mcp

wseng mcp-server

Run MCP server that exposes various tools, prompts, and resources.

Demo: https://drive.google.com/file/d/120vXTq4RlI5fxWI0290qdSW8IL9pdeB5/view?usp=drivesdk

Aliases:

  • wseng mcp

Options:

  • --resources: Include resources in the server
  • --prompts: Include prompts in the server
  • --only-tools <value>: Glob-like patterns for including specific tools (e.g., ['qa', 'commit*'])

Example:

Configuring the MCP server in Claude Desktop or other MCP clients:

"mcpServers": { "WSEng": { "command": "wseng", "args": ["mcp"] } }

Running with MCP Inspector: npx -y @modelcontextprotocol/inspector wseng mcp

wseng otp-generator

Generate an OTP using a profile's secret.

Aliases:

  • wseng otp

Arguments:

  • profile: Profile name to generate OTP for

Options:

  • --profile <value>: Profile name to generate OTP for

wseng postman-e2e-tests

Create E2E workflows for Postman

Demo: https://www.loom.com/share/789bee235fa642699d8f1bbe5a31d5ac

Aliases:

  • wseng postman-e2e

Options:

  • --include <value>: The glob pattern to include schema files. Multiple ones can be included, separated by semicolon
  • --exclude <value>: The glob pattern to exclude schema files. Multiple ones can be included, separated by semicolon
  • --collection-id <value>: The Postman collection ID to add the tests to

wseng prompt-with-files

Prompt an LLM to perform specific changes to the matched files

Demo: https://www.loom.com/share/0b9b8ee82ac24b5e8aed956d26ef2a03

Aliases:

  • wseng prompt
  • wseng prompt-files

Arguments:

  • prompt: The prompt to use for the LLM.

Options:

  • --prompt <value>: The prompt to use for the LLM.
  • --include <value>: A glob pattern to match files to process
  • --exclude <value>: A glob pattern to exclude files from processing
  • --read <value>: A glob pattern to match read-only files
  • --one-by-one: Prompt the AI one by one for each file
  • --parallel: Process files in parallel when using one-by-one mode
  • --include-deps: Automatically include dependencies of matched files
  • --max-depth <value>: Maximum depth for dependency resolution (1-5)
  • --max-parallel-concurrency <value>: Maximum number of simultaneous Aider instances that can run in parallel

wseng question

Answer questions about the codebase.

Demo: https://www.loom.com/share/4293d854bfd24a0db09015e96e30c16d?sid=5fac5abd-6e28-4c3b-9312-10fe24e32656

Aliases:

  • wseng qa

Arguments:

  • question: The question to answer
  • include: The glob pattern to include files to the context for the question. Multiple ones can be included, separated by semicolon

Options:

  • --question <value>: The question to answer
  • --include <value>: The glob pattern to include files to the context for the question. Multiple ones can be included, separated by semicolon
  • --exclude <value>: The glob pattern to exclude files from the context for the question. Multiple ones can be included, separated by semicolon
  • --include-context: Include all .md files from the .context folder (except qa-codebase-dump.md)
  • --use-metadata: Use files from the currently selected module metadata - this will ignore/override the provided/default glob patterns
  • --include-git-diff: Include git diff in the prompt (optional, default is false)
  • --auto-include: Experimental: Let the LLM decide what to include
  • --auto-include-iterations <value>: Experimental: How many iterations to run the auto-include algorithm
  • --preset <value>: Use a preset for the question

Example: wseng qa "What is the purpose of the wseng QA command?" "*/.ts"

wseng record-demo

Record a demo video and upload it to Google Drive

Demo: https://drive.google.com/open?id=1sDjbosljvM4sr-1fWqdj0aBJSfmkKFJ5&usp=drive_fs

Aliases:

  • wseng record
  • wseng demo
  • wseng upload-demo
  • wseng rd
  • wseng ud

Options:

  • --video-path <value>: Path to existing video file (skips recording if provided)
  • --ticket-id <value>: JIRA ticket ID (or NO-TICKET for AI-generated summary)
  • --subfolder <value>: Override subfolder name (will be used as the subfolder where to save the recording)
  • --no-upload: Upload video to Google Drive after recording
  • --no-link: Link video to Jira ticket or PR
  • --cleanup: Cleanup recording after upload
  • --no-countdown: Show countdown before recording starts
  • --no-close-obs: Close OBS after recording (only if OBS was started by the CLI)

Example:

# Setup (one-time):
# 1. OBS WebSocket: Tools -> WebSocket Server Settings -> Enable, set password
# 2. OBS Audio: Settings -> Audio -> select your audio device
# 3. OBS Sources: Add Display Capture for your recording screen
# 4. OBS Hotkeys (recommended): Settings -> Hotkeys -> Recording section:
#    - Pause Recording: Pause key (or Ctrl+Alt+P)
#    - Stop Recording: End key (or Ctrl+Alt+S)
#    - MacOS (optional): Grant Input Monitoring permission for global shortcuts to work:
#      System Settings -> Privacy & Security -> Input Monitoring -> Add OBS
# 5. OBS General (recommended): Settings -> General -> System Tray:
#    - Enable "Minimize to system tray when started"
# 6. Google OAuth: First run will prompt for authorization (interactive mode only)


# Usage Examples:
wseng record-demo                             # Record + upload to your Drive
wseng record-demo --no-upload                 # Record only (save locally, no upload)
wseng record-demo --video-path ./video.mp4    # Upload existing video (skip recording)
wseng record-demo --subfolder "Custom"        # Upload to custom subfolder in Drive
wseng record-demo --no-link                   # Upload but don't link to ticket
wseng record-demo --cleanup                   # Delete local file after upload
wseng record-demo --ticket-id NO-TICKET       # Uses AI summary instead of ticket title
wseng record-demo --no-countdown              # Skip the countdown
wseng record-demo --no-close-obs              # Keep OBS open after recording (default: closes OBS)

wseng release-notes

Generate release notes from commits since last successful deployment

Aliases:

  • wseng rn

Options:

  • --workflow-name <value>: Name of the deployment workflow (defaults to current GitHub workflow or default deployment workflow)
  • --candidate: Generate release candidate notes instead of release notes (defaults to false)
  • --environment-url <value>: Environment URL to include in the release notes (optional)
  • --chat-space <value>: Name of the Google Chat space to post release notes to (optional)
  • --custom-instructions <value>: Custom instructions to guide the AI when generating release notes (optional)

wseng rules

Manage Cursor Rules for the workspace

Arguments:

  • action: Action to perform (pull, clean)

Options:

  • --action <value>: Action to perform (pull, clean)
  • --branch <value>: Branch to pull rules from (default: repo's default branch)

wseng send-feedback

Provide feedback for the last executed command.

Aliases:

  • wseng sf

wseng start-ticket

Start working on a ticket or create a no-ticket branch. Creates a new branch, empty commit, and pull request. For tickets: Saves the PR URL in the ticket, downloads the ticket's description and specs locally.Use NEW to create a new ticket based on current repository.

Demo: https://www.loom.com/share/ae9d32bd191844efab3ad3c5798d76ba

Aliases:

  • wseng ticket
  • wseng start

Arguments:

  • ticketId: The ticket ID or NO-TICKET
  • branchDescription: Description to use for the branch name

Options:

  • --ticket-id <value>: The ticket ID or NO-TICKET
  • --branch-description <value>: Description to use for the branch name
  • --clear-context: Clear the context folder before starting the ticket.
  • --current-branch-as-base: Use the current branch as the base branch for the new branch.
  • --simple-branch: Use a simple branch name for the new branch.
  • --confirm-branch: Confirm the branch name before creating the branch.
  • --type <value>: The type of branch to create (story, feature, bugfix, hotfix, ai, research, or manual).
  • --description <value>: Description for the new ticket (only applies when creating NEW tickets).
  • --skip-description-document-load: Skip loading documents from Jira ticket description.
  • --no-git-sync: Sync local git branches first.
  • --unique-branch-name: Ensure a unique branch name for the new branch.
  • --no-ticket-transition: Transition the ticket to In Progress status.
  • --create-new-branch: Create a new branch even if one exists for the ticket.
  • --unlink-closed-prs: Remove closed pull requests from the ticket's code field.
  • --no-yaml: Whether to generate YAML files for the ticket (estimation, RCA) - if applicable.
  • --force-assignment: Override assignment checking and assign ticket to current user even if already assigned.
  • --no-code: Whether to generate branch/pull request for the ticket.

Example:

wseng start-ticket ws-eng-cli/123
wseng start-ticket 123                             # Uses current repo
wseng start-ticket ws-eng-cli/123 --force-assignment  # Override assignment if ticket is assigned to someone else
wseng start-ticket NO-TICKET "Fix minor bug"
wseng start-ticket NEW "Implement new feature" --type story

wseng subtask

Create a sub-issue for a given ticket. GitHub sub-issues are hierarchical and fully-featured (sub-issues can have their own sub-issues, up to 8 levels deep).

Demo: https://drive.google.com/open?id=10Gva1gWGnHJMfSwBL-Z8qi_V7OzlzpMe&usp=drive_fs

Aliases:

  • wseng st

Arguments:

  • parentId: The parent ticket ID (e.g., ws-eng-cli/123 or just 123 in current repo)
  • type: Type of subtask (backend,frontend,both)
  • title: Custom title for the subtask
  • workType: Type of work (feature,bugfix)

Options:

  • --parent-id <value>: The parent ticket ID
  • --type <value>: Type of subtask (backend,frontend,both)
  • --title <value>: Custom title for the subtask
  • --work-type <value>: Type of work (feature,bugfix)
  • --no-include-parent-title: Whether to include parent ticket title in subtask title
  • --no-include-type-in-title: Whether to include subtask type in subtask title
  • --prompt-for-description: Whether to open editor for subtask description
  • --start: Whether to start the subtask immediately

Example:

wseng subtask ws-eng-cli/123 frontend

This will create a frontend sub-issue for ws-eng-cli/123.

wseng subtask ws-eng-cli/123 frontend --start

This will create a frontend sub-issue and start it immediately.

wseng subtask 123 frontend --promptForDescription

This will create a frontend sub-issue (in current repo) and open editor for description.

Note: Sub-issues can also be created via the GitHub UI by clicking "Create sub-issue" on any issue.

wseng sync-context-documents

Fetches specified document types (context packs, playbooks, etc.) from repositories listed in the team roster and updates the 'Context Documents' Google Sheet in the Team Roster.

Aliases:

  • wseng scd

Options:

  • --project <value>: Filter by project ID ('all' for all projects, default: 'all')
  • --production: Use production roster sheet instead of test sheet

wseng task

Define and execute reusable tasks

Aliases:

  • wseng t

Arguments:

  • action: Action to perform (list, create, run)
  • taskName: Name of the task to run or create

Options:

  • --action <value>: Action to perform (list, create, run)
  • --task-name <value>: Name of the task to run or create
  • --parameters <value>: Parameters for the task in JSON format
  • --use-aider: Use Aider for code generation tasks instead of direct LLM calls
  • --output <value>: File path to save the task result

wseng validate-estimation

Validate an estimation sheet based on a ticket or estimation sheet.

Aliases:

  • wseng ve

Arguments:

  • urlOrTicket: The ticket ID or estimation sheet URL.

Options:

  • --url-or-ticket <value>: The ticket ID or estimation sheet URL.
  • --breakdown-feedback: Whether to provide breakdown feedback in the validation
  • --check-code: Whether to check if the implementation is covered by the breakdown
  • --detect-architecture-changes: Whether to detect if the plan involves important architecture changes
  • --save-outliers: Whether to save the detected outliers to our leaderboard
  • --local: Whether to validate the local estimation file

Example:

wseng validate-estimation [LAMBDA-1234 or https://docs.google.com/spreadsheets/d/your-estimation-sheet-id]

This will validate the estimation sheet provided.

wseng verify-acceptance-video

Verify an acceptance video for a ticket.

Demo: https://drive.google.com/file/d/1H18_GStVUradlzac1kPlQxk9fEjJKwP-/view?usp=drive_link

Aliases:

  • wseng vv

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID
  • --video-url <value>: The URL of the video on Google Drive to verify. If missing, we'll try to extract it from the ticket. Make sure that the video is downloadable for the 'cpm-diligence@trilogy.com' service account.
  • --product <value>: The product to query ProductMind with. If missing, we'll use the product from the estimation

competencies commands

wseng dto

Competency: Defining In-Memory DTOs

Demo: https://www.loom.com/share/d3be173c9cdd4759a415b88af172b4bf

Arguments:

  • prompt: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag

Options:

  • --prompt <value>: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag
  • --include <value>: A glob pattern to match files to process
  • --exclude <value>: A glob pattern to exclude files from processing
  • --read <value>: A glob pattern to match files to read
  • --ticket-id <value>: The ticket ID - by default it is the context one
  • --infer: Indicates that task prompt should be inferred from the ticket instead of typed in manually
  • --resume: Use together with --infer to continue the task prompt from the previous run (if it exists) instead of inferring a new one.
  • --example <value>: A glob pattern to match example files that demonstrate similar functionality
  • --no-context-packs: Include context packs in the prompt. Can be disabled with --no-context-packs
  • --commit-mode <value>: The mode to use for committing changes (commit-and-push, only-commit or do-nothing)

wseng log

Competency: Logging and Monitoring

Arguments:

  • prompt: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag

Options:

  • --prompt <value>: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag
  • --include <value>: A glob pattern to match files to process
  • --exclude <value>: A glob pattern to exclude files from processing
  • --read <value>: A glob pattern to match files to read
  • --ticket-id <value>: The ticket ID - by default it is the context one
  • --infer: Indicates that task prompt should be inferred from the ticket instead of typed in manually
  • --resume: Use together with --infer to continue the task prompt from the previous run (if it exists) instead of inferring a new one.
  • --example <value>: A glob pattern to match example files that demonstrate similar functionality
  • --no-context-packs: Include context packs in the prompt. Can be disabled with --no-context-packs
  • --commit-mode <value>: The mode to use for committing changes (commit-and-push, only-commit or do-nothing)
  • --logger <value>: The name of the logger to use for the log command.

wseng naming-conventions

Competency: Refactoring

Aliases:

  • wseng naming

Arguments:

  • prompt: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag

Options:

  • --prompt <value>: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag
  • --include <value>: A glob pattern to match files to process
  • --exclude <value>: A glob pattern to exclude files from processing
  • --read <value>: A glob pattern to match files to read
  • --ticket-id <value>: The ticket ID - by default it is the context one
  • --infer: Indicates that task prompt should be inferred from the ticket instead of typed in manually
  • --resume: Use together with --infer to continue the task prompt from the previous run (if it exists) instead of inferring a new one.
  • --example <value>: A glob pattern to match example files that demonstrate similar functionality
  • --no-context-packs: Include context packs in the prompt. Can be disabled with --no-context-packs
  • --commit-mode <value>: The mode to use for committing changes (commit-and-push, only-commit or do-nothing)

wseng rca

Competency: Generating Root Cause Analysis

Demo: https://drive.google.com/file/d/1bB-IXIV8wV42H1TsdHrUMZYKvBKqtAsv/view?usp=sharing

Arguments:

  • prompt: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag

Options:

  • --prompt <value>: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag
  • --include <value>: A glob pattern to match files to process
  • --exclude <value>: A glob pattern to exclude files from processing
  • --read <value>: A glob pattern to match files to read
  • --ticket-id <value>: The ticket ID - by default it is the context one
  • --infer: Indicates that task prompt should be inferred from the ticket instead of typed in manually
  • --resume: Use together with --infer to continue the task prompt from the previous run (if it exists) instead of inferring a new one.
  • --example <value>: A glob pattern to match example files that demonstrate similar functionality
  • --no-context-packs: Include context packs in the prompt. Can be disabled with --no-context-packs
  • --commit-mode <value>: The mode to use for committing changes (commit-and-push, only-commit or do-nothing)
  • --demo-video-url <value>: The URL of the demo video for RCA generation. This will bypass the conversational analysis and use the video transcript directly.
  • --aws-profile <value>: AWS profile to use for accessing resources related to the ticket

wseng review-work

Review the work done for a ticket.

Demo: https://www.loom.com/share/e44e70f69ad846c3a961e515664e05f6

Aliases:

  • wseng review
  • wseng rw

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID
  • --include-subtasks: Include subtask details in the review
  • --output <value>: Output format for the review results. Possible values: markdown,console,github
  • --steps-to-review <value>: List of specific estimation steps to review. If provided, only these steps will be reviewed.
  • --force-review: Force a new review even if one already exists for this PR

wseng styling

Competency: Styling

Demo: https://www.loom.com/share/4926a4ee3c1448a1b61a9e03d36192bc

Aliases:

  • wseng style
  • wseng styles

Arguments:

  • prompt: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag

Options:

  • --prompt <value>: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag
  • --include <value>: A glob pattern to match files to process
  • --exclude <value>: A glob pattern to exclude files from processing
  • --read <value>: A glob pattern to match files to read
  • --ticket-id <value>: The ticket ID - by default it is the context one
  • --infer: Indicates that task prompt should be inferred from the ticket instead of typed in manually
  • --resume: Use together with --infer to continue the task prompt from the previous run (if it exists) instead of inferring a new one.
  • --example <value>: A glob pattern to match example files that demonstrate similar functionality
  • --no-context-packs: Include context packs in the prompt. Can be disabled with --no-context-packs
  • --commit-mode <value>: The mode to use for committing changes (commit-and-push, only-commit or do-nothing)

wseng unit-test

Competency: Creating and maintaining unit tests

Demo: https://www.loom.com/share/1c85a5d3243945caac8d219d2eb83fae

Aliases:

  • wseng ut

Arguments:

  • prompt: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag

Options:

  • --prompt <value>: A path to a file containing the requirements to implement. If not provided, you will be asked to fill it in an editor. If you would prefer that the prompt is inferred from the ticket, use the --infer flag
  • --include <value>: A glob pattern to match files to process
  • --exclude <value>: A glob pattern to exclude files from processing
  • --read <value>: A glob pattern to match files to read
  • --ticket-id <value>: The ticket ID - by default it is the context one
  • --infer: Indicates that task prompt should be inferred from the ticket instead of typed in manually
  • --resume: Use together with --infer to continue the task prompt from the previous run (if it exists) instead of inferring a new one.
  • --example <value>: A glob pattern to match example files that demonstrate similar functionality
  • --no-context-packs: Include context packs in the prompt. Can be disabled with --no-context-packs
  • --commit-mode <value>: The mode to use for committing changes (commit-and-push, only-commit or do-nothing)
  • --target-file <value>: Target file for unit test generation, which can accept either an implementation file or a test file.
  • --pr <value>: Override for the pull request number or URL (optional, by default it will use the current PR)
  • --skip-prompt: Skip prompt confirmation and use auto-generated prompt
  • --max-depth <value>: Maximum depth for dependency resolution (default: 1)
  • --auto-after-selection: Skip all confirmations after file selection in auto mode
  • --filter-examples-by-type: Filter example files to match the target file type (e.g., service examples for service files)
  • --max-parallel-concurrency <value>: Maximum number of simultaneous Aider instances that can run in parallel

athena commands

wseng athena expose-graphql-endpoint

Expose a new GraphQL endpoint

Demo: https://www.loom.com/share/28d3b0b7f080440cafacd3324c5d15ee

Aliases:

  • wseng athena graphql
  • wseng athena gql

Arguments:

  • endpointName: Name of the GraphQL endpoint
  • endpointDescription: A path to a file containing the description of the GraphQL endpoint

Options:

  • --endpoint-name <value>: Name of the GraphQL endpoint
  • --endpoint-description <value>: A path to a file containing the description of the GraphQL endpoint
  • --module <value>: The module to work with

wseng athena generate-story-output

Consolidate subtask outputs into a high-level story output and update ticket fields (output, code, demo URL).

Demo: https://drive.google.com/file/d/14iU-3tdX732tQpMMJQpD7dCnFARpjwxa/view?usp=drivesdk

Aliases:

  • wseng athena gso
  • wseng athena story-output
  • wseng athena so

Arguments:

  • ticketId: The story ticket ID

Options:

  • --ticket-id <value>: The story ticket ID
  • --revise: Whether to revise the existing story outputs

cat commands

wseng cat analyze-recordings

Analyze user recording videos to identify interaction patterns using AI

Aliases:

  • wseng cat ar

Arguments:

  • videosFolder: Path to folder containing video recordings to analyze

Options:

  • --videos-folder <value>: Path to folder containing video recordings to analyze
  • --output-spreadsheet <value>: Google Sheet ID or URL where results will be written
  • --output-sheet-name <value>: Name of the sheet tab to write results to
  • --output-csv <value>: Path to local CSV file where results will be written (relative to videos folder or absolute)
  • --batch-size <value>: Number of videos to process in parallel

cicd commands

wseng cicd auto-merge-delivered

Merge PRs for delivered/done tickets (supports JIRA and GitHub Issues).

Aliases:

  • wseng cicd amd

Options:

  • --repo <value>: Repository name (owner/repo). Example: trilogy-group/ws-eng-docs
  • --dry-run: Preview actions without making changes.
  • --force-merge-service-user: Merge service-user PRs directly without approval (uses branch protection bypass).
  • --auto-approve-patterns <value>: Comma-separated branch patterns to auto-approve (e.g., 'plan/,ai/*').

Example:

Dry run on a repository

wseng cicd auto-merge-delivered --repo trilogy-group/ws-eng-docs --dry-run

With auto-approve patterns for plan branches

wseng cicd auto-merge-delivered --repo trilogy-group/ws-eng-docs --auto-approve-patterns "plan/"

Force merge service-user PRs (uses branch protection bypass)

wseng cicd auto-merge-delivered --repo trilogy-group/ws-eng-docs --force-merge-service-user

wseng cicd auto-release-accepted

Automatically merge PRs for tickets that are Accepted. Supports SF deployment queue mode.

Aliases:

  • wseng cicd ara

Options:

  • --repo <value>: Repository name (owner/repo). Defaults to current repository.
  • --dry-run: Report what would be done without actually merging PRs.
  • --manifest-folder <value>: Path to SF manifest files (e.g., 'sfdx/manifest'). Enables SF deployment queue mode when provided.

wseng cicd check-ticket

Validate pull request compliance with ticket conventions (JIRA or GitHub Issues).

Demo: https://drive.google.com/file/d/13zkYyIP52i93JUvu50oiFr7a-NvNKaey/view?usp=drivesdk

Aliases:

  • wseng cicd ct

Arguments:

  • prUrl: Pull request URL to check. If not provided, will attempt to detect from current repository.

Options:

  • --pr-url <value>: Pull request URL to check. If not provided, will attempt to detect from current repository.

wseng cicd cleanup-environments

Query CloudFormation, identify PR-linked stacks, check PR status, trigger destroy workflow

Demo: https://drive.google.com/file/d/1Prd2Czef_kC7jxoiQgwLsAN-qtonE99j/view?usp=drivesdk

Aliases:

  • wseng cicd clean-envs
  • wseng cicd cenv

Arguments:

  • stackPattern: Regex pattern with capture group to match stack names and extract PR number (e.g., 'CliStackPR(\d+)')
  • workflow: Workflow file name to trigger (e.g., 'ephemeral-env.yml')

Options:

  • --stack-pattern <value>: Regex pattern with capture group to match stack names and extract PR number (e.g., 'CliStackPR(\d+)')
  • --workflow <value>: Workflow file name to trigger (e.g., 'ephemeral-env.yml')
  • --dry-run: List what would be cleaned up without triggering workflows

wseng cicd close-old-prs

Close old pull requests that are NO-TICKET or have cancelled tickets.

Demo: https://drive.google.com/file/d/1SPUTk_Utxt3VLSE7nKMKxAylKYUge2C5/view

Aliases:

  • wseng cicd cop

Options:

  • --repo <value>: Repository name (owner/repo). Defaults to current repository.
  • --days-old <value>: Number of days before considering a PR old.
  • --dry-run: Report what would be closed without actually closing PRs.

wseng cicd publish-docs

Prepare and publish documentation to Scalar.

Options:

  • --config <value>: Path to base docs configuration file
  • --overrides <value>: Path to config overrides file (.env or .json)
  • --build-dir <value>: Directory where built docs will be written
  • --dry-run: Prepare docs but skip publishing

qc commands

wseng qc fail

Fail QC for a ticket. Applies 'qc ' label, validates ticket is in 'Review' status, and transitions to 'Ready'. QC status is determined by computed fields from the transition and label.

Aliases:

  • wseng qc f

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID

Example:

wseng qc fail ws-eng-cli/123
wseng qc fail    # Uses current context ticket

wseng qc pass

Pass QC for a ticket. Validates ticket is in 'Review' status and transitions to 'Done'. QC status is determined by computed fields based on qc label.

Aliases:

  • wseng qc p

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID

Example:

wseng qc pass ws-eng-cli/123
wseng qc pass    # Uses current context ticket

wseng qc soft-push

Soft push a ticket from QC back to Ready. Validates ticket is in 'Review' status and transitions to 'Ready'. QC status is determined by computed fields from the transition.

Aliases:

  • wseng qc sp
  • wseng qc push

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID

Example:

wseng qc soft-push ws-eng-cli/123
wseng qc soft-push    # Uses current context ticket

wseng qc start

Start QC process for a ticket. Validates reviewer assignment, refreshes context, sets reviewer field to current user, transitions ticket to 'In QC', and checks out ticket branch.

Aliases:

  • wseng qc sq
  • wseng qc s

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID
  • --no-ticket-transition: Transition the ticket to In Progress status.
  • --force-review: Force assign current user as reviewer even if already assigned to someone else
  • --no-checkout: Whether to skip branch checkout
  • --no-output: Display the output section

Example:

wseng qc start ws-eng-cli/123
wseng qc start ws-eng-cli/123 --force-review         # Override existing reviewer assignment
wseng qc start ws-eng-cli/123 --skip-branch-checkout # Skip branch checkout if needed
wseng qc start ws-eng-cli/123 --no-output            # Suppress output section display

wseng qc stop

Stop QC process for a ticket. Validates ticket is in 'In QC' status and transitions to 'Ready for QC'.

Aliases:

  • wseng qc st

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID

Example:

wseng qc stop ws-eng-cli/123
wseng qc stop    # Uses current context ticket

tk commands

wseng tk accept

Accept a ticket

Aliases:

  • wseng tk a

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID

Example:

wseng tkt accept LAMBDA-1234

wseng tk dsu

Generate and post daily status updates to Google Chat.

Arguments:

  • project: Project ID. If not passed, selects projects based on --all flag or dailyTime.

Options:

  • --project <value>: Project ID. If not passed, selects projects based on --all flag or dailyTime.
  • --space-name <value>: Override space name (for testing).
  • --all: Process all projects with dailyTime set (ignores time matching).
  • --days-back <value>: Number of calendar days to look back. Default: 1 day, or 3 days if Monday.
  • --dry-run: Print messages without posting to Chat.

wseng tk enforce-wip

Enforce work-in-progress limit by moving other In Progress tickets to Ready

Demo: https://drive.google.com/file/d/1WLtw5hP2OLKpMbkszYwNBsFmga7RYA0u/view?usp=drivesdk

Aliases:

  • wseng tk wip

Arguments:

  • ticketKey: The ticket key that was just transitioned (guaranteed to remain as is)

Options:

  • --ticket-key <value>: The ticket key that was just transitioned (guaranteed to remain as is)

Example:

wseng tk enforce-wip ws-eng-cli/123

wseng tk initialize-ticket

Initialize a ticket: add to project, set Project field, update computed fields, add Output section

Aliases:

  • wseng tk init-ticket

Arguments:

  • ticketId: The ticket ID in format repo/number (e.g., ws-eng-cli/123)

Options:

  • --ticket-id <value>: The ticket ID in format repo/number (e.g., ws-eng-cli/123)

Example:

wseng tk initialize-ticket ws-eng-cli/123

wseng tk migrate-jira-to-github

Migrate JIRA tickets to GitHub issues. Idempotent - updates existing issues if already migrated.

Aliases:

  • wseng tk migrate

Arguments:

  • jql: JQL query to select JIRA tickets to migrate
  • targetRepo: Target GitHub repository name (e.g., ws-eng-cli)

Options:

  • --jql <value>: JQL query to select JIRA tickets to migrate
  • --target-repo <value>: Target GitHub repository name (e.g., ws-eng-cli)
  • --dry-run: Preview changes without creating or updating issues

Example:

wseng tk migrate-jira-to-github "project = PROJ AND status != Done" ws-eng-cli
wseng tk migrate-jira-to-github "project = PROJ" ws-eng-cli --dry-run

wseng tk sync-pr-status

Sync PR status with ticket status (Ready For Review → un-draft PRs, Delivered → approve PRs)

Aliases:

  • wseng tk sps

Arguments:

  • ticketId: The ticket ID to sync PR status for

Options:

  • --ticket-id <value>: The ticket ID to sync PR status for

Example:

wseng tk sync-pr-status LAMBDA-1234

When ticket is in "Ready For Review" status:
  - Marks all linked PRs as ready for review (converts from draft)
  - Requests review from the ticket's reviewer

When ticket is in "Delivered" status:
  - Approves all linked PRs that are not yet merged

wseng tk update-computed-fields

Update computed fields for a ticket (implementer, reviewer, approver, dates, LoC)

Aliases:

  • wseng tk ucf

Arguments:

  • ticketId: The ticket ID in format repo/number (e.g., ws-eng-cli/123)

Options:

  • --ticket-id <value>: The ticket ID in format repo/number (e.g., ws-eng-cli/123)
  • --production: Use production spreadsheet instead of test spreadsheet

Example:

wseng tk update-computed-fields ws-eng-cli/123
wseng tk update-computed-fields ws-eng-cli/123 --production

ws commands

wseng ws build-codemap

Builds a codemap for the current repository or all the known repositories if not in a repository.

Demo: https://www.loom.com/share/11001483c22046b3ab51ad01491cf836

Aliases:

  • wseng ws codemap
  • wseng ws cm

Options:

  • --no-push: Whether to push (save) the parsed codemap on GitHub
  • --production-sheet: Whether to update the modules production sheet

wseng ws clone-repositories

Clones and updates all WS.Eng repositories.

Aliases:

  • wseng ws clone
  • wseng ws clone-all

Options:

  • --clone-mode <value>: The clone mode: FULL, SHALLOW, or FIXED_DEPTH
  • --name <value>: The name of the repository to clone
  • --reset: Stash all changes and reset the repository state
  • --cache-path <value>: The path towards a directory where the repositories are cached.

wseng ws configure-command-defaults

Configure default parameter values for a command

Aliases:

  • wseng ws ccd

Arguments:

  • commandName: Command name to configure defaults for

Options:

  • --command-name <value>: Command name to configure defaults for
  • --scope <value>: Configuration scope (personal or project)

wseng ws create-blank-epic-design

Creates a blank Epic Design.

Aliases:

  • wseng ws cbed
  • wseng ws ced
  • wseng ws new-ed

Arguments:

  • ticketId: The ticket ID for the epic

Options:

  • --ticket-id <value>: The ticket ID for the epic

wseng ws create-blank-estimation

Creates a blank estimation.

Aliases:

  • wseng ws cbe
  • wseng ws ce
  • wseng ws new-estimation

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID
  • --no-ticket-transition: Whether to transition the ticket to Planning status.

wseng ws create-blank-plan

Creates a blank plan locally at .context/plan/plan.md

Aliases:

  • wseng ws cbp

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID

wseng ws create-blank-rca

Creates a blank RCA.

Aliases:

  • wseng ws cbr
  • wseng ws cr
  • wseng ws new-rca

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID
  • --no-ticket-transition: Whether to transition the ticket to Planning status.

wseng ws data-api

Makes a call to the data API.

Demo: https://drive.google.com/file/d/1rGRFbGlOD5yuHn5dB30CXPJbkxWbXN/edit

Aliases:

  • wseng ws data
  • wseng ws da

Arguments:

  • method: HTTP method to use
  • path: API path to call
  • params: URL parameters in the format 'key1=value1&key2=value2'

Options:

  • --method <value>: HTTP method to use
  • --path <value>: API path to call
  • --params <value>: URL parameters in the format 'key1=value1&key2=value2'
  • --format <value>: Format to use(default: json). Possible values: json,markdown

wseng ws fix-github-project-field

Fix missing Project custom field on GitHub issues by mapping repositories to projects

Aliases:

  • wseng ws fgpf

Options:

  • --dry-run: Preview changes without applying them
  • --limit <value>: Maximum number of issues to process

wseng ws get-cli-metadata

Get the metadata for the CLI.

Demo: https://www.loom.com/share/41ab6710bb3b4d828805af72606494a0

Options:

  • --format <value>: The output format
  • --update-docs: Whether to update the documentation files (configuration-reference.md, global-options.md, command-reference.md)
  • --update-postman-collection <value>: Whether to update the given postman collection
  • --output-file <value>: The file to output the metadata to

wseng ws infer-breakdown

Infer estimation breakdown from delivered work and calculate Story Points.

Aliases:

  • wseng ws ib

Arguments:

  • ticketKey: Ticket key (e.g., LAMBDA-12345 or repo/number). If not provided, infers from the current branch name.

Options:

  • --ticket-key <value>: Ticket key (e.g., LAMBDA-12345 or repo/number). If not provided, infers from the current branch name.
  • --no-save-breakdown: Save breakdown to ws-eng-docs (creates PR with breakdown YAML)
  • --no-update-sp: Update Story Points in JIRA ticket
  • --force: Force update Story Points even if an estimation file exists

wseng ws load-epic-design

Loads an existing Epic Design from a ticket into the local context.

Aliases:

  • wseng ws led

Arguments:

  • ticketId: The ticket ID for the epic

Options:

  • --ticket-id <value>: The ticket ID for the epic

wseng ws load-estimation

Loads an existing estimation from a ticket into the local context.

Aliases:

  • wseng ws le

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID

wseng ws load-plan

Loads a plan from ws-eng-plans repository and saves it locally

Aliases:

  • wseng ws lp

Arguments:

  • key: The ticket KEY to load (e.g., LAMBDA-87600)

Options:

  • --key <value>: The ticket KEY to load (e.g., LAMBDA-87600)

wseng ws load-rca

Loads an existing Root Cause Analysis (RCA) from a ticket into the local context.

Aliases:

  • wseng ws lr

Arguments:

  • ticketId: The ticket ID

Options:

  • --ticket-id <value>: The ticket ID

wseng ws project-updates

Generate project status updates for engineering team based on delivered tickets

Aliases:

  • wseng ws pu

Options:

  • --days <value>: Number of days to look back for delivered tickets (defaults to 14)
  • --space-name <value>: Name of the Google Chat space to post updates to
  • --only <value>: Only post updates for the specified project
  • --dry-run: Generate updates without posting to chat (defaults to false)
  • --series-start-date <value>: Start date for cycle checking (YYYY-MM-DD format, optional)
  • --stats-header: Include team-wide evolution stats in summary (only works with 7-day lookback, defaults to false)

wseng ws publish-schema

Publishes a schema to the remote repository.

Aliases:

  • wseng ws ps

Arguments:

  • type: The type of schema to publish (default: estimation). Possible values: estimation,rca,epic-design.

Options:

  • --type <value>: The type of schema to publish (default: estimation). Possible values: estimation,rca,epic-design.

wseng ws run-simple-stack-ai-workflow

Runs a simple Stack AI workflow.

Aliases:

  • wseng ws stack-ai

Arguments:

  • workflow: The workflow to run
  • ticketId: The ticket ID to write the output to.

Options:

  • --workflow <value>: The workflow to run
  • --ticket-id <value>: The ticket ID to write the output to.
  • --prompt <value>: The prompt to run the workflow with
  • --output-field <value>: The field to write the output to.
  • --clear-field: Whether to clear the field before writing the output to it.

wseng ws save-epic-design

Saves the current Epic Design (You need to run wseng init for the first time).

Aliases:

  • wseng ws sed

Options:

  • --keep-page: Whether to keep the existing Epic Design page, instead of re-creating it. This is useful if you want to keep the URL intact for some reason, however with Notion it is much slower than just re-creating the page. By default we are recreating the pages.

wseng ws save-estimation

Saves the current estimation (You need to run wseng init for the first time).

Demo: https://drive.google.com/file/d/10y4w0UVLvUi82aJuzdzzSVWh9IPgcaUD/view?usp=drive_link

Aliases:

  • wseng ws se

Options:

  • --subtasks: Whether to create subtasks
  • --keep-page: Whether to keep the existing estimation page, instead of re-creating it. This is useful if you want to keep the URL intact for some reason, however with Notion it is much slower than just re-creating the page. By default we are recreating the pages.
  • --no-plan-and-design-update: Whether to automatically update the plan and design
  • --no-cleanup-ai-improvements: Whether to clean up AI improvement steps with count 0
  • --no-ticket-transition: Whether to transition the ticket.
  • --no-production-sheet: Whether to update the stats production sheet
  • --draft: Save a draft estimation

wseng ws save-plan

Saves the plan to ws-eng-plans repository and creates/updates PR.

Aliases:

  • wseng ws sp

Options:

  • --no-ticket-transition: Whether to transition the ticket to In Progress status.

wseng ws save-rca

Saves the current rca (You need to run wseng init for the first time).

Aliases:

  • wseng ws sr

Options:

  • --keep-page: Whether to keep the existing RCA page, instead of re-creating it. This is useful if you want to keep the URL intact for some reason, however with Notion it is much slower than just re-creating the page. By default we are recreating the pages.

wseng ws test-infer-breakdown

Test breakdown inference on multiple tickets with statistics

Aliases:

  • wseng ws tib

Arguments:

  • ticketKeys: Comma-separated ticket keys to test (e.g., LAMBDA-12345,LAMBDA-12346 or repo/number)

Options:

  • --ticket-keys <value>: Comma-separated ticket keys to test (e.g., LAMBDA-12345,LAMBDA-12346 or repo/number)
  • --iterations <value>: Number of times to run inference per ticket (for variability analysis)
  • --max-parallel <value>: Maximum number of inference runs to execute in parallel (to avoid rate limits)

wseng ws test-post-estimation

Run post-estimation harness to validate breakdown generation accuracy

Aliases:

  • wseng ws tpe

Options:

  • --group <value>: Test case group name to run. If not provided, runs all tests.
  • --mode <value>: Inference mode: 'inference' for real LLM-based, 'random' for fast testing