Configuration

The CLI reads personal settings from ~/.wseng and project settings from .wseng in the repository root.

Personal Configuration

~/.wseng stores settings that apply across your projects, including:

  • truefoundryToken: your personal token for LLM calls
  • truefoundryBaseUrl: optional TrueFoundry gateway URL
  • truefoundryModelOverrides: optional mapping from CLI model names to gateway slugs
  • emailAddress: your work email address
  • localPaths: locations of your local repositories
  • commandConfigurations: command-specific defaults
  • extensionVersions: installed WS.Eng VSCode extension versions
  • obsSettings: OBS Studio settings for demo recording

The default TrueFoundry gateway URL is https://tfy.promptlens.trilogy.com/api/llm. TFY_API_KEY overrides the token in ~/.wseng. TFY_BASE_URL overrides truefoundryBaseUrl.

Project Configuration

The .wseng file in each repository stores project-specific settings, such as:

  • contextFolder: location for context files, defaulting to .context
  • specs: documents to pull
  • pullRequestTemplate: pull request template using Handlebars syntax
  • commandConfigurations: command-specific defaults
  • stagingBranch: staging branch name

Run wseng init in a repository to create or update configuration files. The command asks for your TrueFoundry token by default and stores it in ~/.wseng as truefoundryToken.

cd /path/to/your/project
wseng init

No AWS profile is needed for local use. For GitHub operations, authenticate with gh auth login. Run wseng init --google to sign in with your Google account.

Command Defaults

Personal and project configuration can set default values for command inputs. Explicit command-line arguments take precedence over project configuration, which takes precedence over personal configuration and built-in defaults.

{
    "commandConfigurations": {
        "start-ticket": {
            "defaultInputs": {
                "currentBranchAsBase": true
            }
        }
    }
}

Release-Notes Profiles

The release-notes command supports named profiles under commandConfigurations["release-notes"].profiles. A profile can set a prompt file, output schema, model, evidence source, and diff settings.

{
    "commandConfigurations": {
        "release-notes": {
            "profiles": {
                "kid-friendly": {
                    "promptFile": ".github/whats-new/kid-changelog.instructions.md",
                    "outputSchemaFile": ".github/whats-new/kid-changelog.schema.json",
                    "model": "gemini-pro",
                    "evidence": "diff",
                    "diff": {
                        "pathspecs": ["src/frontend/**", "src/api/**"],
                        "maxTotalBytes": 409600
                    }
                }
            }
        }
    }
}
  • promptFile is required. Its contents become the system prompt.
  • outputSchemaFile is optional. The CLI validates generated output against this JSON Schema.
  • model selects a CLI model name. truefoundryModelOverrides can map that name to a gateway slug.
  • evidence accepts tickets, diff, or both.
  • diff.pathspecs limits which patches the model reads.
  • diff.maxFileBytes and diff.maxFileLines set per-file limits.
  • diff.maxTotalBytes sets the total patch limit.

Profile paths resolve relative to the directory containing .wseng. Explicit command inputs take precedence over profile values, which take precedence over built-in defaults.

A profile with outputSchemaFile skips markdown output (--output-file) because its layout assumes the built-in {summary, bulletPoints} shape. Use --json-output-file for JSON output.

Release-Notes Examples

wseng release-notes --from-sha <a> --to-sha <b>
wseng release-notes --prompt-profile kid-friendly --from-sha <a> --to-sha <b> --json-output-file /tmp/notes.json

--from-sha is exclusive. --to-sha is inclusive and defaults to HEAD when only --from-sha is set. The checkout must contain the starting commit.

--evidence selects tickets, diff, or both without a profile. --json-output-file writes the schema-validated result as JSON. An empty commit range exits successfully without writing a file.

Common Configuration Issues

Invalid JSON syntax

JSON does not allow comments or trailing commas. Use a JSON validator to check the file.

Incorrect input names or value types

Check the command help for exact input names and types:

wseng start-ticket --help

Use JSON booleans for boolean values, numbers without quotes, and quoted strings.

Configuration Files in Git

Commit project .wseng files when the team should share their settings. Do not commit ~/.wseng, which contains personal settings and credentials.