Skip to content

Commit 7caa9d0

Browse files
Jonathan D.A. Jewellclaude
andcommitted
RSR standardization: README.adoc, Dublin Core, hooks, workflows
- Add AsciiDoc README with RSR stack policy - Add Dublin Core metadata (.well-known/dc.xml) - Add pre-commit hook (anti-TS/Go/Python/npm) - Add GitHub Actions rsr-antipattern.yml workflow 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent c6fc61e commit 7caa9d0

3 files changed

Lines changed: 148 additions & 362 deletions

File tree

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# RSR Anti-Pattern CI Check
2+
# SPDX-License-Identifier: AGPL-3.0-or-later
3+
#
4+
# Enforces: No TypeScript, No Go, No Python (except SaltStack), No npm
5+
# Allows: ReScript, Deno, WASM, Rust, OCaml, Haskell, Guile/Scheme
6+
7+
name: RSR Anti-Pattern Check
8+
9+
on:
10+
push:
11+
branches: [main, master, develop]
12+
pull_request:
13+
branches: [main, master, develop]
14+
15+
jobs:
16+
antipattern-check:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: actions/checkout@v4
20+
21+
- name: Check for TypeScript
22+
run: |
23+
if find . -name "*.ts" -o -name "*.tsx" | grep -v node_modules | grep -q .; then
24+
echo "❌ TypeScript files detected - use ReScript instead"
25+
find . -name "*.ts" -o -name "*.tsx" | grep -v node_modules
26+
exit 1
27+
fi
28+
echo "✅ No TypeScript files"
29+
30+
- name: Check for Go
31+
run: |
32+
if find . -name "*.go" | grep -q .; then
33+
echo "❌ Go files detected - use Rust/WASM instead"
34+
find . -name "*.go"
35+
exit 1
36+
fi
37+
echo "✅ No Go files"
38+
39+
- name: Check for Python (non-SaltStack)
40+
run: |
41+
PY_FILES=$(find . -name "*.py" | grep -v salt | grep -v _states | grep -v _modules | grep -v pillar | grep -v venv | grep -v __pycache__ || true)
42+
if [ -n "$PY_FILES" ]; then
43+
echo "❌ Python files detected - only allowed for SaltStack"
44+
echo "$PY_FILES"
45+
exit 1
46+
fi
47+
echo "✅ No non-SaltStack Python files"
48+
49+
- name: Check for npm lockfiles
50+
run: |
51+
if [ -f "package-lock.json" ] || [ -f "yarn.lock" ]; then
52+
echo "❌ npm/yarn lockfile detected - use Deno instead"
53+
exit 1
54+
fi
55+
echo "✅ No npm lockfiles"
56+
57+
- name: Check for tsconfig
58+
run: |
59+
if [ -f "tsconfig.json" ]; then
60+
echo "❌ tsconfig.json detected - use ReScript instead"
61+
exit 1
62+
fi
63+
echo "✅ No tsconfig.json"
64+
65+
- name: Verify Deno presence (if package.json exists)
66+
run: |
67+
if [ -f "package.json" ]; then
68+
if [ ! -f "deno.json" ] && [ ! -f "deno.jsonc" ]; then
69+
echo "⚠️ Warning: package.json without deno.json - migration recommended"
70+
fi
71+
fi
72+
echo "✅ Deno configuration check complete"
73+
74+
- name: Summary
75+
run: |
76+
echo "╔════════════════════════════════════════════════════════════╗"
77+
echo "║ RSR Anti-Pattern Check Passed ✅ ║"
78+
echo "║ ║"
79+
echo "║ Allowed: ReScript, Deno, WASM, Rust, OCaml, Haskell, ║"
80+
echo "║ Guile/Scheme, SaltStack (Python) ║"
81+
echo "║ ║"
82+
echo "║ Blocked: TypeScript, Go, npm, Python (non-Salt) ║"
83+
echo "╚════════════════════════════════════════════════════════════╝"

.well-known/dc.xml

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<metadata xmlns="http://purl.org/dc/elements/1.1/"
3-
xmlns:dcterms="http://purl.org/dc/terms/">
2+
<metadata
3+
xmlns="http://purl.org/dc/elements/1.1/"
4+
xmlns:dcterms="http://purl.org/dc/terms/"
5+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
46
<title>universal-language-server-plugin</title>
5-
<creator>Hyper Polymath</creator>
7+
<creator>Jonathan D.A. Jewell</creator>
8+
<subject>software-development</subject>
69
<subject>RSR</subject>
7-
<description>RSR-compliant project</description>
10+
<subject>Rhodium Standard</subject>
11+
<description>Universal Language Server Protocol plugin</description>
812
<publisher>Rhodium Standard</publisher>
13+
<contributor>Jonathan D.A. Jewell</contributor>
914
<date>2025</date>
1015
<type>Software</type>
16+
<format>application/octet-stream</format>
1117
<identifier>https://github.com/hyperpolymath/universal-language-server-plugin</identifier>
18+
<source>https://github.com/hyperpolymath/universal-language-server-plugin</source>
1219
<language>en</language>
20+
<relation>https://rhodium.sh</relation>
1321
<rights>AGPL-3.0-or-later OR LicenseRef-Palimpsest-0.5</rights>
1422
<dcterms:license>https://spdx.org/licenses/AGPL-3.0-or-later.html</dcterms:license>
15-
<dcterms:hasVersion>0.1.0</dcterms:hasVersion>
16-
<dcterms:isPartOf>RSR Framework</dcterms:isPartOf>
1723
</metadata>

0 commit comments

Comments
 (0)