Cascade uses rule files to guide its behavior. These rules are defined in Markdown (.md) format and stored in the /.windsurf/rules/ directory. After you configure the rules, you can manage them through the Windsurf Settings interface.

Access rule files

You can access rule files in two ways:
  • Navigate to File > Preferences > Windsurf Settings, then select Manage Rules under the Customizations section.

  • Alternatively, click the Toggle Cascade Side Bar > Rules, Memories & Workflows (Notepad) icon at the top-right corner of the Windsurf interface.

ABL syntax rules

Using the OpenEdge AI Assistant

To develop the ABL code, use the OpenEdge AI Assistant and its reference collection to determine grammar, language reference, and documentation. For details on using the OpenEdge AI Assistant, see Use the OpenEdge AI Assistant.

Without using the OpenEdge AI Assistant

As an alternative to using the MCP server, you can download a complete set of ABL syntax rule files from the Progress Electronic Software Delivery (ESD) website.

  1. Navigate to the Progress Software ESD website.
  2. From the list of available product lines, select Progress OpenEdge > Progress OpenEdge 12.8.x.
  3. Under the selected version, select AI Coding Assistance – ABL Syntax and Rules.
  4. Accept the end user license agreement to download the ABL_Context.zip and abl-syntax.md files.

    The ABL_Context.zip archive includes multiple .txt files, each containing grouped ABL statements. For example, all transaction-related statements are consolidated into a single .txt file. The abl-syntax.md file contains references to the specific .txt files. The .txt files can be stored anywhere on a local machine, within a project directory, or on a network location. However, you must update the paths in abl-syntax.md to reflect where the .txt files are stored.

ABL Syntax Rules vs. OpenEdge AI Assistant

Both approaches feed ABL grammar, language reference, and syntax definitions to Cascade so it can generate accurate ABL code. The difference is how that knowledge is delivered and how current it can be. The following table summarizes the differences between the two approaches to providing ABL syntax reference to Cascade.
ABL Syntax Rules OpenEdge AI Assistant
How it works You download ABL_Context.zip and abl-syntax.md from the Progress ESD website and store the .txt files locally or on a network share. The abl-syntax.md rule file points to these files. The OpenEdge AI Assistant exposes ABL reference data as live MCP tools that Cascade queries at runtime.
Setup Requires manually downloading, extracting, and updating file paths in abl-syntax.md if files move. Requires installing and configuring the OpenEdge AI Assistant extension in your IDE.
Content Static snapshot of ABL syntax at the time of download. Must re-download to get updates. Live—content is served by the MCP server and can reflect the latest reference without re-downloading files.
Rule file constraint Subject to a 12,000-character rule file limit in supported IDEs, so large syntax sets may be split across multiple .txt files. Not constrained by the rule file character limit. Data is fetched on demand via MCP tools.
When to use When data residency or IP protection requirements prohibit code from leaving your environment, or when the environment is air-gapped. In the unlikely event that the OpenEdge AI Assistant is temporarily unavailable, these files can also serve as a fallback. Recommended approach, more dynamic, no file management required.
Maintenance You must manually update file paths in abl-syntax.md whenever files are moved. No file path maintenance; the MCP server handles delivery.
The offline rule files provide a fallback option when the OpenEdge AI Assistant is not available. The OpenEdge AI Assistant is the preferred and lower-maintenance approach because it serves the same ABL reference content dynamically without requiring local file management or re-downloads when content changes.
Important: If you have strict data residency or IP protection requirements, where no code may leave your environment under any circumstance, Progress strongly recommends against using the cloud-hosted OpenEdge AI Assistant. In these environments, use the ABL syntax and rules files downloaded from the Progress ESD website directly with your chosen AI provider. This approach delivers comparable AI-assisted development results while ensuring that all code and data remain within your controlled environment.

Rule file configuration

To ensure Cascade applies syntax definitions and project-specific logic correctly, rule files must be structured and referenced in a consistent manner. The abl-syntax.md rule file located in /.windsurf/rules/ references the MCP server or the ABL syntax rule files and is the primary source for ABL syntax definitions. Additional definitions may be appended to abl-syntax.md file, referencing other MCP servers or .txt files, which may reside locally or on a shared disk. If the location of these resources changes, the file must be updated accordingly. Alternatively, Windsurf can be configured to apply the necessary changes automatically.

To support different applications, frameworks, or OpenEdge versions, project-specific rule files can be created. These files allow for tailored rule definitions per project context. To create a new rule file:
  1. Open the Customizations panel and select the +Workspace option.

  2. Enter the name of the ruleset in lowercase, omitting the .md extension.

    A new file is created in the /.windsurf/rules/ directory.

    Note: If the /.windsurf/rules/ directory does not exist, it is created automatically.
  • Project-specific rule files can be created using the +Workspace option in the Customizations panel. Use lowercase names without the .md extension.

Rule activation modes

Each rule file supports one of the following activation modes, which determine how Cascade applies the rules:

  • Manual—Triggered only when explicitly mentioned by the user. To activate, use an @mention in input box of Cascade.
  • Always On—Automatically applies to all relevant inputs without user intervention. This mode is recommended for abl-syntax rule set.
  • Model Decision—Ideal for flexible, context-sensitive rules.
  • Glob—Applies to files that match a specific pattern, such as .w, .cls, .vue.

Authoring rules

Creating effective rules is an iterative process that involves experimentation and refinement to suit the specific needs of a project or application.

The following example rule set provides a starting point. The first two lines ensure that the abl-syntax rules are prioritized and not unintentionally overridden. The remaining entries offer general guidance and can be expanded or customized as needed.

# ABL Syntax

- Always use `abl-syntax` rules for ABL syntax references.
- Prefer static dataset definitions.
- Pass datasets by reference when possible.
- Use `USE-WIDGET-POOL` in class definitions.
- Enable `TRACKING-CHANGES` when modifying temp-tables.
- Ensure public methods are context-independent; use parameters.
- Reference database tables via named local buffers.
- Use `VAR` instead of `DEFINE VARIABLE`.