# goose-subrecipe-references Literal local Goose subrecipe paths should exist inside the lint root | | | |---|---| | **Severity** | warning (disabled) | | **Autofix** | - | | **Since** | v0.21.1 | | **Repo Types** | goose | | **Category** | [Goose](goose.md) | Checks literal local `sub_recipes[].path` references in Goose recipes. This rule is opt-in and reports warnings by default. Enable it with `--rule goose-subrecipe-references` or: ```yaml rules: goose-subrecipe-references: enabled: true ``` ## Path resolution Goose v1.52.0 resolves a literal `.yaml` or `.json` file path from the working directory. Skillsaw uses the workspace owning `.goose/recipes/`, or the lint directory for `--type goose`. A leading `{{ recipe_dir }}/` (also accepted without spaces) resolves from the recipe's own directory. Only targets contained in the lint root are checked or read. References to personal or absolute paths, remote sources, library names without extensions, and other templates are skipped because they require runtime configuration. Existing contained subrecipes are linted even when this reference rule is off. ## How to fix Correct missing file paths or commit the referenced recipe. If another build step creates the files, use per-rule exclusions or disable the rule. Multiple missing paths produce one finding per recipe. The diagnostic names the affected fields without echoing potentially sensitive path values. ## Configuration ```yaml rules: goose-subrecipe-references: enabled: false # true | false | auto severity: warning ``` *Run `skillsaw explain goose-subrecipe-references` to see this documentation and the rule's effective configuration in your terminal.*