Both Cascade and the Devin Local agent use rule files to guide their behavior when working with OpenEdge ABL projects. Rules are persistent instructions, such as coding standards, syntax references, and project conventions, that are loaded automatically into the agent's context. This topic explains how to configure rules for each agent, how the two approaches differ, and how to migrate existing Cascade customizations if you switch to Devin Local.

Access rule files

Use the following instructions to access rule files in Cascade or open the customizations view in Devin Local.
  • Cascade—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 Devin Desktop interface.

  • Devin Local—Devin Local surfaces everything a session has loaded, such as rules, skills, hooks, MCP servers, and plugins, in a single customizations view. To open it:
    • Choose Open customizations from the new-tab menu in an agent space, or
    • Right-click a Devin Local session in the agent sidebar and select Open customizations.

Where rule files live

The location of rule files varies between Cascade and Devin Local. Refer to the following table to identify the appropriate file location for each type of rule.
Purpose Cascade Devin Local
Recommended project rules .windsurf/rules/*.md AGENTS.md at the project root
Always-on rule file .windsurf/global_rules.md AGENTS.md (or AGENT.md)
Conditional/scoped rules .windsurf/rules/*.md with activation mode .devin/rules/*.md with trigger frontmatter
Personal rules (not shared with the team) User-level Windsurf settings AGENTS.local.md (add to .gitignore)
Rules that apply to every project User-level Windsurf settings ~/.config/devin/AGENTS.md (%APPDATA%\devin\AGENTS.md on Windows)
Cascade and Devin Local do not share a rule storage model. Placing a file in .windsurf/rules/ does not make it visible to Devin Local and placing a file in AGENTS.md or .devin/rules/ does not make it visible to Cascade. If you use both agents on the same project, maintain the rule content in both locations, or keep a single source of ABL guidance (such as abl-syntax.md) and reference it from each agent's own rule file.
Note:
  • All paths above are relative to the workspace root, not the file system root.
  • .devin/ is the Devin-native location and takes precedence over .windsurf/ when both exist. Rule files under .devin/rules/ and .windsurf/rules/ are both loaded if present.
  • Rule files placed in subdirectories are loaded lazily, only when the agent accesses files in that part of the project. This approach keeps unrelated rules out of the agent's context.
  • Devin Local also reads rules from .cursor/rules/, .claude/, and .windsurf rules if your project has them, so existing customizations from other tools carry over automatically. You can disable specific import sources in your Devin configuration file.

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.

The OpenEdge AI Assistant is an MCP server. Devin Local prompts for approval before calling any MCP tool by default. You can pre-approve trusted tools or entire servers in your permissions configuration at the project, user, or organization level. See your Devin Local documentation for permission syntax and scopes. Without using 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.

    Reference abl-syntax.md from the rule location used by your agent:
    • Cascade—Place or reference it from .windsurf/rules/abl-syntax.md.
    • Devin Local—Place or reference it from .devin/rules/abl-syntax.md or include it as a project rule in AGENTS.md.

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

Cascade

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, Devin Desktop 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.

Devin Local

Devin Local reads rules from AGENTS.md at the project root and, optionally, from .devin/rules/*.md for more granular or conditional guidance. To add a new project rule:
  1. Create or edit AGENTS.md at the project root or add a file under .devin/rules/.
  2. Keep the file focused because long, verbose rules dilute the agent's attention. Reference a skill instead of embedding lengthy procedures directly in a rule.
  3. Commit AGENTS.md and .devin/rules/ to version control so the whole team shares the same guidelines. Use AGENTS.local.md (gitignored) for personal preferences only.
Recommended pattern: Keep AGENTS.md small and use it to point the agent at the relevant skill for a given scenario, rather than listing every procedure inline.

Rule activation modes

Cascade

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.

Devin Local

Devin Local rule activation depends on the file location:
File Activation

AGENTS.md, AGENT.md, AGENTS.local.md

Always-on and loaded at the start of every session.
.devin/rules/*.md

Controlled by trigger frontmatter: always_on, manual, model_decision, or glob.

For rules that should always apply regardless of which file is open, such as the ABL syntax priority rule use AGENTS.md or set trigger: always_on.

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`.
Save this content to .windsurf/rules/abl-syntax.md for Cascade, or to AGENTS.md (or .devin/ rules/abl-syntax.md) for Devin Local.
Best practices, whichever agent you use:
  • Keep rules concise.
  • Be specific. "Use VAR instead of DEFINE VARIABLE" is better than "use modern syntax."
  • Include examples of the pattern you want, not just a description of it.
  • Version-control your rule files so the whole team benefits from the same guidelines.
  • For anything beyond short, always-relevant instruction, consider a skill instead. Skills are only loaded into context when relevant, which keeps sessions faster and cheaper.

Migrating from Cascade to Devin Local

If you choose to use Devin Local instead of, or alongside, Cascade on a project: Devin Local does not support Cascade memories or workflows. You can migrate your critical memories to Skills with the Devin: Open Cascade Migration Wizard command.
Cascade feature Devin Local equivalent
Rules (.windsurf/rules/) AGENTS.md or .devin/rules/*.md (both are read automatically; no migration required)
Memories Not supported. Capture the underlying procedure as a skill
Workflows Not supported. Convert to a skill
Use the Devin: Open Cascade Migration Wizard command from the command palette to migrate existing Cascade memories and workflows into Devin Local skills in a guided flow.