From 1f80c1ccf7a9bc81b85b47f7611dbcda4b7ec732 Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Sun, 1 Nov 2026 20:07:25 +0100 Subject: [PATCH 1/2] chore(sigrid): leave vendored tooling out of the analysis scope Exclude .claude/** (Claude Code skills and agent config, partly copied from upstream) from the Sigrid analysis scope. Assisted-by: ClaudeCode:claude-opus-5-5 --- sigrid.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 sigrid.yaml diff --git a/sigrid.yaml b/sigrid.yaml new file mode 100644 index 000000000..a2a663512 --- /dev/null +++ b/sigrid.yaml @@ -0,0 +1,13 @@ +# Sigrid analysis scope. +# +# Documented at https://docs.sigrid-says.com/reference/analysis-scope-configuration.html +# Sigrid's default excludes (node_modules, vendor, build output, docs, migrations, +# mocks and stubs) still apply on top of this file, and technologies and +# components are left to Sigrid's automatic detection. This file only leaves +# vendored tooling and third-party code out of the analysis. +exclude: + # Developer tooling for Claude Code under .claude/: skills, agents and their + # configuration, partly copied from upstream (the skill-creator skill carries + # its own Apache-2.0 licence and update script). Not part of the shipped app; + # the skills stay in the repository for developers. + - ".*/[.]claude/.*" From a952e3831d1c59668f5b23cb7850d701adc1c26e Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Mon, 2 Nov 2026 18:34:31 +0100 Subject: [PATCH 2/2] chore(sigrid): use the fleet's full scope file Same file as dossiq, pipelinq, shillinq and thematiq: pins the model, lists every technology with its test patterns, and leaves generated l10n catalogues and developer tooling out (scripts/, tools/, openspec change proposals, .claude/, root tool configuration). Stackiq adds its root ArchiMate comparison scripts (compare_archimate.php and .py), which .distignore already keeps out of the release package. Assisted-by: ClaudeCode:claude-opus-5-5 --- sigrid.yaml | 79 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 71 insertions(+), 8 deletions(-) diff --git a/sigrid.yaml b/sigrid.yaml index a2a663512..9e3a5c174 100644 --- a/sigrid.yaml +++ b/sigrid.yaml @@ -1,13 +1,76 @@ -# Sigrid analysis scope. +# Sigrid analysis scope for Stackiq. # -# Documented at https://docs.sigrid-says.com/reference/analysis-scope-configuration.html +# Every key below is documented at +# https://docs.sigrid-says.com/reference/analysis-scope-configuration.html # Sigrid's default excludes (node_modules, vendor, build output, docs, migrations, -# mocks and stubs) still apply on top of this file, and technologies and -# components are left to Sigrid's automatic detection. This file only leaves -# vendored tooling and third-party code out of the analysis. +# mocks and stubs) still apply on top of this file. Components are left to +# Sigrid's automatic detection. + +# Pin the maintainability model, so a yearly recalibration never changes the +# rating without a deliberate change to this file. +model: "2026" + +# Test-code patterns can only be set per language, and listing languages switches +# off automatic technology detection. The list therefore names every technology +# in the repo, so nothing that automatic detection would find is dropped. +languages: + - name: php + production: + test: + include: + - ".*/tests/.*[.]php" + - name: javascript + production: + test: + include: + - ".*/tests/.*" + - ".*/__tests__/.*" + - ".*[.](spec|test)[.](js|mjs|cjs|ts|tsx)" + - name: typescript + production: + test: + include: + - ".*/tests/.*" + - ".*/__tests__/.*" + - ".*[.](spec|test)[.](js|mjs|cjs|ts|tsx)" + - name: vue + production: + test: + include: + - ".*/tests/.*[.]vue" + - name: python + production: + test: + include: + - ".*/tests?/.*[.]py" + - ".*/test_[^/]*[.]py" + - ".*/conftest[.]py" + - name: script + production: + test: + include: + - ".*/tests/.*[.]sh" + +# Only generated files and developer tooling are excluded. exclude: + # Translation catalogues. l10n/.js is generated from l10n/.json + # (an OC.L10N.register() call around the same key/value pairs); no logic. + - ".*/l10n/[^/]*[.]js" + # Developer tooling: translation, quality, release and test-runner scripts. + # Not part of the shipped app. + - ".*/scripts/.*" + - ".*/tools/.*" + # Root-level ArchiMate round-trip comparison scripts (compare_archimate.php + # and .py): developer debug tools that .distignore already keeps out of the + # release package (compare_*.php). + - ".*/compare_[^/]*[.](php|py)" + # OpenSpec change proposals: design notes and spike code for changes that are + # not built yet. The shipped code lives in lib/ and src/. + - ".*/openspec/changes/.*" # Developer tooling for Claude Code under .claude/: skills, agents and their - # configuration, partly copied from upstream (the skill-creator skill carries - # its own Apache-2.0 licence and update script). Not part of the shipped app; - # the skills stay in the repository for developers. + # configuration, partly copied from upstream. Not part of the shipped app. - ".*/[.]claude/.*" + # Root-level tool configuration (ESLint flat config, PHPStan bootstrap, PHP-CS-Fixer). + - ".*/eslint[.]config[.]m?js" + - ".*/phpstan-bootstrap[.]php" + - ".*/[.]php-cs-fixer[.]dist[.]php"