You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. Lint / pre-commit Job Failure
In commit bd8e942c1d80aac90df4113f7982c7fa4a7d2911, the .pre-commit-config.yaml file was modified to add -e '**/*.lock.yml' arguments to the yamlfix hook. However, yamlfix relies on Python's re module for exclusion patterns. The **/*.lock.yml pattern is a glob, not a valid regular expression. Evaluating it throws re.error: nothing to repeat at position 0.
2. Lint / ls-lint Job Failure
The project's .github/lint/.ls-lint.yaml configuration enforces SCREAMING_SNAKE_CASE for all .md files globally. Recent PRs introduced Markdown files in the .github/workflows/ directory (e.g., ci-doctor.md, agents-md-maintenance.md) that use kebab-case, directly violating the ls-lint rules.
Failed Jobs and Errors
Lint / pre-commit: yamlfix hook fails during pre-commit run --all-files execution due to an invalid regex **/*.lock.yml failing regex compilation (re.error: nothing to repeat at position 0).
Lint / ls-lint: File name linting fails on multiple .md files located under .github/workflows/ and .github/workflows/shared/ for not adhering to SCREAMING_SNAKE_CASE.
Investigation Findings
Running Python's re.compile('**/*.lock.yml') validates the crash in yamlfix.
ls-lint fails over 10 Markdown files newly created/moved into the workflow directories without matching the global SCREAMING_SNAKE_CASE requirement originally intended for README.md, AGENTS.md, etc.
Recommended Actions
Fix the yamlfix hook in .pre-commit-config.yaml by replacing the args array exclusions with the native pre-commit hook exclude parameter (which uses PCRE/Python regex under the hood safely) or by converting the globs to valid python regexes (e.g. .*\.lock\.yml$).
Update .github/lint/.ls-lint.yaml to either allow kebab-case for .md files, or specify a directory-specific rule allowing kebab-case for .md inside .github/workflows/.
Prevention Strategies
Regex vs Glob Confusion: Ensure that tools expecting regular expressions are not supplied with bash-style glob patterns.
Lint Rule Scoping: When adding new directories that follow different naming conventions (e.g., GitHub Actions workflows), ensure that global lint rules (like ls-lint) are updated to ignore them or accept their specific naming convention.
AI Team Self-Improvement
When adding exclusion patterns to python-based tools (like yamlfix, ruff, etc.), verify whether the tool expects a glob pattern or a regular expression. **/*.xyz is a glob; the regex equivalent is .*\.xyz$.
When creating new Markdown files within scoped directories (like .github/workflows/), check existing naming conventions or configurations (.ls-lint.yaml) to ensure compatibility. If a file-naming rule restricts files to SCREAMING_SNAKE_CASE, either update the rule's scope or match the convention.
Historical Context
Similar failures often occur when glob patterns are incorrectly supplied to Python-based tools expecting regex, or when newly introduced file types/locations conflict with rigid legacy linting rules.
Note
🔒 Integrity filtering filtered 1 item
Integrity filtering activated and filtered the following item during workflow execution.
This happens when a tool call accesses a resource that does not meet the required integrity or secrecy level of the workflow.
issue:#unknown (search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".)
Summary
The CI workflow failed due to two distinct linting errors across the
ls-lintandpre-commitjobs.ls-lintfailed because newly added.mdfiles in.github/workflows/do not conform to the globally enforcedSCREAMING_SNAKE_CASErule.pre-commitfailed becauseyamlfixreceived an invalid regular expression (**/*.lock.yml) for its--excludeargument, causing a Pythonre.error.Failure Details
Root Cause Analysis
1.
Lint / pre-commitJob FailureIn commit
bd8e942c1d80aac90df4113f7982c7fa4a7d2911, the.pre-commit-config.yamlfile was modified to add-e '**/*.lock.yml'arguments to theyamlfixhook. However,yamlfixrelies on Python'sremodule for exclusion patterns. The**/*.lock.ymlpattern is a glob, not a valid regular expression. Evaluating it throwsre.error: nothing to repeat at position 0.2.
Lint / ls-lintJob FailureThe project's
.github/lint/.ls-lint.yamlconfiguration enforcesSCREAMING_SNAKE_CASEfor all.mdfiles globally. Recent PRs introduced Markdown files in the.github/workflows/directory (e.g.,ci-doctor.md,agents-md-maintenance.md) that usekebab-case, directly violating thels-lintrules.Failed Jobs and Errors
yamlfixhook fails duringpre-commit run --all-filesexecution due to an invalid regex**/*.lock.ymlfailing regex compilation (re.error: nothing to repeat at position 0)..mdfiles located under.github/workflows/and.github/workflows/shared/for not adhering toSCREAMING_SNAKE_CASE.Investigation Findings
re.compile('**/*.lock.yml')validates the crash inyamlfix.ls-lintfails over 10 Markdown files newly created/moved into the workflow directories without matching the global SCREAMING_SNAKE_CASE requirement originally intended forREADME.md,AGENTS.md, etc.Recommended Actions
yamlfixhook in.pre-commit-config.yamlby replacing theargsarray exclusions with the nativepre-commithookexcludeparameter (which uses PCRE/Python regex under the hood safely) or by converting the globs to valid python regexes (e.g..*\.lock\.yml$)..github/lint/.ls-lint.yamlto either allowkebab-casefor.mdfiles, or specify a directory-specific rule allowingkebab-casefor.mdinside.github/workflows/.Prevention Strategies
ls-lint) are updated to ignore them or accept their specific naming convention.AI Team Self-Improvement
When adding exclusion patterns to python-based tools (like
yamlfix,ruff, etc.), verify whether the tool expects a glob pattern or a regular expression.**/*.xyzis a glob; the regex equivalent is.*\.xyz$.When creating new Markdown files within scoped directories (like
.github/workflows/), check existing naming conventions or configurations (.ls-lint.yaml) to ensure compatibility. If a file-naming rule restricts files toSCREAMING_SNAKE_CASE, either update the rule's scope or match the convention.Historical Context
Similar failures often occur when glob patterns are incorrectly supplied to Python-based tools expecting regex, or when newly introduced file types/locations conflict with rigid legacy linting rules.
Note
🔒 Integrity filtering filtered 1 item
Integrity filtering activated and filtered the following item during workflow execution.
This happens when a tool call accesses a resource that does not meet the required integrity or secrecy level of the workflow.
search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".)