rsim-export — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited rsim-export (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Purpose: Collect local RSIm skill improvements (skills/ + commands/) and publish to GitHub as a PR. When: After improve cycles with accumulated skill changes. Auto-suggested after /improve. Reminded at session start if > 7 days since last export. Requirements: gh CLI installed and authorized (gh auth login), git installed.
~/.claude/skills/sync-state.json:base_repo, last_export, local_versionbase_repo empty or null: Укажи URL базового репо (например: https://github.com/username/rsim):Wait for answer, save to sync-state.json.
gh CLI: gh --versionIf not found:
gh CLI не установлен.
Установи: https://cli.github.com/
После установки выполни: gh auth loginStop.
Последний экспорт: [last_export или "никогда"]
Собираю изменения скиллов новее этой даты...Read ~/.claude/skills/changelog.md. Find all lines where date > last_export (if last_export = null — take all lines).
Extract:
~/.claude/skills/[name]/SKILL.mdScan ~/.claude/commands/ — list files modified after last_export. Read each changed command file.
Ask:
Экспортировать новые записи из memory/semantic/patterns.md? (да / нет)If "да" — read ~/.claude/memory/semantic/patterns.md, extract entries added after last_export.
If nothing new (no skill changes, no command changes):
Нет новых улучшений для экспорта с [last_export].
Экспортировать нечего.Stop.
Before packaging, check collected skills for scripts/ subdirectories — these may contain personal or project-specific scripts not intended for public distribution.
For each collected skill, check if ~/.claude/skills/[name]/scripts/ contains any files.
If scripts/ files found:
⚠️ Найдены файлы в scripts/:
skills/[name]/scripts/[file]
...
scripts/ может содержать личные данные или проектные скрипты.
Исключить из экспорта? (да / нет)If no scripts/ files found → continue silently.
Read ~/.claude/skills/rsim-security-scan/patterns.md and apply all patterns to every collected file.
If suspicious pattern found:
⛔ SECURITY SCAN: подозрительный контент
Файл: [filename]
Категория: [category]
Паттерн: [pattern]
Строка: "[quote]"
Этот фрагмент пропущен из экспорта.Continue without that fragment. Do not stop the entire export.
Show summary:
Готово к экспорту:
Скиллы: N изменений — [list]
Commands: M изменений — [list or —]
Semantic patterns: K записей (opt-in)
Экспортировать? (да / нет)Wait for explicit "да".
Form contribution-YYYY-MM-DD.md:
# RSIm Contribution — YYYY-MM-DD
> exported via /rsim-export
## Modified Skills (N)
### skills/[name]/SKILL.md
[full content]
---
[repeat for each modified skill]
## Commands (M)
### commands/[name].md
[full content]
---
[repeat for each changed command]
## Semantic Patterns (K, opt-in)
[entries]CACHE_DIR="$HOME/.claude/.rsim-base-cache"
BASE_REPO="[base_repo from sync-state.json]"
# Clone or update cache
if [ -d "$CACHE_DIR/.git" ]; then
cd "$CACHE_DIR" && git pull
else
gh repo clone "$BASE_REPO" "$CACHE_DIR"
fi
# Create branch
cd "$CACHE_DIR"
BRANCH="contribution/$(date +%Y-%m-%d)"
git checkout -b "$BRANCH"
# Apply changes
# Copy changed SKILL.md files to skills/[name]/SKILL.md
# Copy changed command files to commands/
# Write contribution-YYYY-MM-DD.md to root
# If semantic patterns opted-in: append entries to memory/semantic/patterns.md
git add -A
git commit -m "feat: RSIm contribution from $(date +%Y-%m-%d)"
git push -u origin HEAD
gh pr create \
--title "RSIm Contribution — $(date +%Y-%m-%d)" \
--body "[auto-generated: N skill changes, M commands, K patterns]" \
--base mainShow user the PR URL.
Read ~/.claude/skills/VERSION first line → local_version.
Update ~/.claude/skills/sync-state.json:
last_export → today's datelocal_version → value from VERSION fileexported_counts.skill_changes → Nexported_counts.pattern_entries → K (0 if opt-in declined)(keep all other fields unchanged)
Final message:
✓ PR создан: [URL]
✓ sync-state.json обновлён (last_export: YYYY-MM-DD)
Куратор получит уведомление о новом PR.{
"base_repo": null,
"last_export": null,
"last_sync": null,
"local_version": null,
"latest_version": null,
"exported_counts": {
"skill_changes": 0,
"pattern_entries": 0
}
}~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.