Skip to content

Commit b3ba188

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 <[email protected]>
1 parent ca42fe4 commit b3ba188

File tree

3 files changed

+171
-6
lines changed

3 files changed

+171
-6
lines changed
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>robot-repo-bot</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>Automated repository management bot</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/robot-repo-bot</identifier>
18+
<source>https://github.com/hyperpolymath/robot-repo-bot</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>

README.adoc

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
= robot-repo-bot
2+
Jonathan D.A. Jewell <jonathan[email protected]>
3+
:toc: macro
4+
:icons: font
5+
:source-highlighter: rouge
6+
:experimental:
7+
:url-github: https://github.com/hyperpolymath/robot-repo-bot
8+
:url-gitlab: https://gitlab.com/hyperpolymath/robot-repo-bot
9+
:url-bitbucket: https://bitbucket.org/hyperpolymath/robot-repo-bot
10+
:url-codeberg: https://codeberg.org/hyperpolymath/robot-repo-bot
11+
12+
Automated repository management bot
13+
14+
image:https://img.shields.io/badge/RSR-Certified-gold[RSR Certified]
15+
image:https://img.shields.io/badge/License-AGPL%20v3-blue[License]
16+
17+
toc::[]
18+
19+
== Overview
20+
21+
robot-repo-bot is part of the link:https://rhodium.sh[Rhodium Standard] (RSR) ecosystem.
22+
23+
Domain: *software-development*
24+
25+
== Installation
26+
27+
[source,bash]
28+
----
29+
# Clone from GitHub (primary)
30+
git clone {url-github}
31+
32+
# Or from mirrors
33+
git clone {url-gitlab}
34+
git clone {url-codeberg}
35+
----
36+
37+
== RSR Stack
38+
39+
This project follows RSR conventions:
40+
41+
* ✅ ReScript for frontend/logic
42+
* ✅ Deno for JS runtime
43+
* ✅ WASM for performance-critical code
44+
* ✅ Rust/OCaml/Haskell for systems/proofs
45+
* ✅ Guile/Scheme for configuration
46+
* ❌ No TypeScript
47+
* ❌ No Go
48+
* ❌ No npm
49+
50+
== Mirrors
51+
52+
[cols="1,2"]
53+
|===
54+
| Platform | URL
55+
56+
| GitHub (primary) | {url-github}
57+
| GitLab | {url-gitlab}
58+
| Bitbucket | {url-bitbucket}
59+
| Codeberg | {url-codeberg}
60+
|===
61+
62+
== License
63+
64+
Licensed under AGPL-3.0-or-later OR LicenseRef-Palimpsest-0.5.
65+
66+
See link:LICENSE[LICENSE] for details.
67+
68+
== Contributing
69+
70+
See link:CONTRIBUTING.adoc[CONTRIBUTING.adoc].
71+
72+
== Metadata
73+
74+
* Domain: software-development
75+
* Framework: RSR (Rhodium Standard Repository)
76+
* Dublin Core: link:.well-known/dc.xml[.well-known/dc.xml]

0 commit comments

Comments
 (0)