Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .agents/rules/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,13 @@ If aggregation is implemented, follow
`.agents/docs` content, exclude private planning and maintenance rules, record
resolved source commits, normalize links, and keep generated content out of Git.
These are requirements for that future implementation, not evidence it exists.

## Shared quality configuration

The local dprint and ESLint entry points consume an exact formal
[Mono quality configuration](https://github.com/cordisx/cordisxmono/blob/c63c2e8c2ba7e11502934a52ad2ce3734e804cdc/.agents/docs/quality-tooling.md).
The Shared quality configuration CI job checks the installed configuration and
tracked-file coverage; inspect its report for excluded paths.
`npm run lint:source` runs the full source policy as a blocking CI step.
Configuration coverage and full-source lint are separate checks.
Update the dependency, lock, formatter reference and CI provider SHA together.
47 changes: 47 additions & 0 deletions .github/workflows/shared-quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Shared quality configuration

on:
pull_request:
push:
branches: [main]

permissions:
contents: read

jobs:
configuration:
runs-on: ubuntu-latest
env:
POLICY_REF: c63c2e8c2ba7e11502934a52ad2ce3734e804cdc
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
- uses: actions/setup-node@v7
with:
node-version: 22
- run: npm ci --ignore-scripts
- name: Install the exact shared audit provider
run: |
git init --quiet "$RUNNER_TEMP/quality-policy"
git -C "$RUNNER_TEMP/quality-policy" remote add origin https://github.com/cordisx/cordisxmono.git
git -C "$RUNNER_TEMP/quality-policy" fetch --depth=1 origin "$POLICY_REF"
git -C "$RUNNER_TEMP/quality-policy" checkout --quiet --detach FETCH_HEAD
test "$(git -C "$RUNNER_TEMP/quality-policy" rev-parse HEAD)" = "$POLICY_REF"
npm --prefix "$RUNNER_TEMP/quality-policy" ci --ignore-scripts
- name: Check effective configuration and tracked file coverage
run: >-
node "$RUNNER_TEMP/quality-policy/scripts/check-quality.mjs"
--repo "$GITHUB_WORKSPACE" --profile javascript
--policy-root "$RUNNER_TEMP/quality-policy" --policy-ref "$POLICY_REF"
--json > "$RUNNER_TEMP/quality-consumption.json"
- name: Enforce full-source lint
run: npm run --silent lint:source -- --format json --output-file "$RUNNER_TEMP/source-lint.json"
- uses: actions/upload-artifact@v4
if: always()
with:
name: quality-results
path: |
${{ runner.temp }}/quality-consumption.json
${{ runner.temp }}/source-lint.json
if-no-files-found: warn
19 changes: 2 additions & 17 deletions dprint.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,6 @@
{
"indentWidth": 2,
"newLineKind": "lf",
"typescript": {
"quoteStyle": "preferSingle",
"semiColons": "asi",
"module.sortImportDeclarations": "maintain",
"module.sortExportDeclarations": "maintain"
},
"markdown": {
"textWrap": "maintain"
},
"includes": [
"**/*.{ts,tsx,js,jsx,mjs,cjs,json,md}"
"**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs,json,md}"
],
"excludes": [
"**/node_modules/**",
Expand All @@ -23,9 +12,5 @@
"generated/**",
"assets/reicon/**"
],
"plugins": [
"npm:@dprint/typescript@0.96.1",
"npm:@dprint/json@0.23.0",
"npm:@dprint/markdown@0.23.3"
]
"extends": "https://raw.githubusercontent.com/cordisx/cordisxmono/c63c2e8c2ba7e11502934a52ad2ce3734e804cdc/tooling/quality/dprint/code.json"
}
20 changes: 20 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { defineConfig, globalIgnores } from 'eslint/config'
import sourcePolicy from '@cordisx/eslint-config'

export default defineConfig([
// Build outputs and verified generated/vendor artifacts; maintained tests stay included.
globalIgnores([
'**/node_modules/**',
'**/dist/**',
'**/build/**',
'**/coverage/**',
'**/.cache/**',
'assets/reicon/**',
'generated/**',
]),
{
files: ['**/*.{js,mjs,cjs,jsx}'],
languageOptions: { parserOptions: { ecmaFeatures: { jsx: true } } },
extends: [sourcePolicy],
},
])
Loading
Loading